From 0bd1f7f4fed2d1b1511a2fe0f122c44843c5bb83 Mon Sep 17 00:00:00 2001 From: Antonio Gonzalez Date: Fri, 11 Oct 2019 11:26:42 -0500 Subject: [PATCH] Ordenes de servicio actualizado --- OS/OrdenesServicios.aspx.vb | 228 ++++++++++++++++++++---------------- 1 file changed, 128 insertions(+), 100 deletions(-) diff --git a/OS/OrdenesServicios.aspx.vb b/OS/OrdenesServicios.aspx.vb index 5d3a25309..f4b7bab7e 100644 --- a/OS/OrdenesServicios.aspx.vb +++ b/OS/OrdenesServicios.aspx.vb @@ -238,6 +238,15 @@ Partial Class OS_OrdenesServicios ViewState("MensajeAlert") = value End Set End Property + + Private Property CveTecnico As Integer + Get + Return ViewState("CveTecnico").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveTecnico") = value + End Set + End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then @@ -270,18 +279,6 @@ Partial Class OS_OrdenesServicios CreaDtMaterialesDetalle() CreaDtSolicitarMateriales() CveSub = -1 - 'Carga estatus - Dim ObjEstatusPermisos As New ClsOS - If ObjEstatusPermisos.GetEstatusUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then - EstatusOSDelUsuario = ObjEstatusPermisos.DtResultados - Dim PermisoEstatus As New DataTable - PermisoEstatus = ObjEstatusPermisos.DtResultados.FiltraParametros("TipoEstatus = 1") - If PermisoEstatus.Rows.Count = 0 Then - UpGuardar.Visible = False - End If - End If - ObjEstatusPermisos.Dispose() - CargaEstatusOS(2) 'Carga cliente If Request("CveCliente") IsNot Nothing AndAlso IsNumeric(Request("CveCliente")) AndAlso Request("CveCliente").ToEntero > 0 Then @@ -315,6 +312,8 @@ Partial Class OS_OrdenesServicios 'Carga OS If CveOS > 0 Then + + CargaEstatusOS() CargaDatos() 'PermisosSegunEstatus() CargaDetalles() @@ -454,33 +453,45 @@ Partial Class OS_OrdenesServicios TxtFechaRecibido.Text = ObjOS.FechaRecepcion.ToString CveFolio = ObjOS.Folio LblFolio.Text = ObjOS.Folio.ToString - DdlEstatusOS.SelectedValue = ObjOS.CveEstatusOrdenServicio.ToString + DdlSubProyecto.SelectedValueExist(ObjOS.CveSubProyecto) DdlTipoOrdenOS.SelectedValueExist(ObjOS.CveOSTipo) DdlSucursalCliente.SelectedValueExist(ObjOS.CveClienteSucursal) TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero SeFacturara = GlobalDTTipoOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("SeFacturara", String.Format("CveOrdenServicioTipo = {0}", ObjOS.CveOSTipo)) - - If TipoEstatus = 2 Then - LnkTecnico.Visible = True + CveTecnico = ObjOS.CveUsuarioAtendio + CargarEstatusDelUsuario() + Dim validacionTieneEstatus As Integer = EstatusOSDelUsuario.FiltraParametros(String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio)).Rows.Count + If validacionTieneEstatus > 0 Then + DdlEstatusOS.Items.Clear() + DdlEstatusOS.DataSource = EstatusOSDelUsuario + DdlEstatusOS.DataBind() + Else + CargaEstatusOS() + DdlEstatusOS.Enabled = False End If + DdlEstatusOS.SelectedValue = ObjOS.CveEstatusOrdenServicio.ToString - If TipoEstatus = 3 Then - DisableAll() + 'If TipoEstatus = 2 Then + ' LnkTecnico.Visible = True + 'End If - If SeFacturara = "True" Then - HplFacturar.Visible = True - If ObjOS.CveCotizacion > 0 Then - HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", ObjOS.CveCotizacion) - Else - HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveOS={0}", CveOS) - End If - End If + 'If TipoEstatus = 3 Then + ' DisableAll() - ElseIf TipoEstatus = 4 Then - DisableAll() - End If + ' If SeFacturara = "True" Then + ' HplFacturar.Visible = True + ' If ObjOS.CveCotizacion > 0 Then + ' HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", ObjOS.CveCotizacion) + ' Else + ' HplFacturar.NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveOS={0}", CveOS) + ' End If + ' End If + + 'ElseIf TipoEstatus = 4 Then + ' DisableAll() + 'End If DivCliente.Attributes.Add("class", "col-md-8") DivFolio.Visible = True @@ -662,11 +673,11 @@ Partial Class OS_OrdenesServicios RegistraScript("OrdenarGVMateriales();") End If End Sub - Private Sub CargaEstatusOS(ValorSeleccionado As Integer) + Private Sub CargaEstatusOS() DdlEstatusOS.Items.Clear() - DdlEstatusOS.DataSource = EstatusOSDelUsuario + DdlEstatusOS.DataSource = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) DdlEstatusOS.DataBind() - DdlEstatusOS.SelectedValue = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "Orden ASC") + 'DdlEstatusOS.SelectedValue = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "Orden ASC") End Sub Private Sub CargaPS(CveClasificacion As Integer, Objeto As DropDownList) Objeto.Items.Clear() @@ -876,6 +887,19 @@ Partial Class OS_OrdenesServicios GvPS.DataSource = TmpDT GvPS.DataBind() End Sub + + Private Sub CargarEstatusDelUsuario() + Dim ObjEstatusPermisos As New ClsOS + If ObjEstatusPermisos.GetEstatusUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero) Then + EstatusOSDelUsuario = ObjEstatusPermisos.DtResultados + Dim PermisoEstatus As New DataTable + PermisoEstatus = ObjEstatusPermisos.DtResultados.FiltraParametros("TipoEstatus = 1") + If PermisoEstatus.Rows.Count = 0 Then + UpGuardar.Visible = False + End If + End If + ObjEstatusPermisos.Dispose() + End Sub #End Region #Region "BUSCAR CLIENTE " @@ -1031,83 +1055,87 @@ Partial Class OS_OrdenesServicios End If Else + If CveTecnico = UsuarioActual.CveUsuario Then + If ObjOrdenServicio.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaRecibido.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, DdlEstatusOS.SelectedValue.ToEntero, CveOS, UsuarioActual.CveUsuario, DdlTipoOrdenOS.SelectedValue.ToEntero, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero) Then + For Each Row As DataRow In TmpDT.Rows + If Not Errores Then + Dim CvePS As Integer = Row("CvePS").ToString.ToEntero + Dim CveOSDetalle As Integer = Row("CveOSDetalle").ToString.ToEntero + Dim Observaciones As String = Row("Observaciones").ToString + Dim SeFacturara As Boolean = CBool(Row("SeFacturara").ToString) + Dim Estatus As Boolean = CBool(Row("Estatus").ToString) + Dim SeSuperviso As Boolean = CBool(Row("SeSuperviso").ToString) + Dim CveCuentaEquipo As Integer = Row("CveCuentaEquipo").ToString.ToEntero + Dim Especificaciones As String = Row("Especificaciones").ToString + Dim ComentarioTecnico As String = Row("ComentarioTecnico").ToString + Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero + Dim Archivo As New System.IO.FileInfo(Row("Archivo").ToString) + Dim CveUsuarioEntrego As Integer = If(Entregar = True, UsuarioActual.CveUsuario, -1) + Dim FechaEntrega As String = If(Entregar = True, Now.ToString("dd/MM/yyy"), "-1") + Dim Consecutivo As Integer = Row("Consecutivo").ToString.ToEntero + CveConsecutivo = Consecutivo - If ObjOrdenServicio.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaRecibido.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, DdlEstatusOS.SelectedValue.ToEntero, CveOS, UsuarioActual.CveUsuario, DdlTipoOrdenOS.SelectedValue.ToEntero, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero) Then - For Each Row As DataRow In TmpDT.Rows - If Not Errores Then - Dim CvePS As Integer = Row("CvePS").ToString.ToEntero - Dim CveOSDetalle As Integer = Row("CveOSDetalle").ToString.ToEntero - Dim Observaciones As String = Row("Observaciones").ToString - Dim SeFacturara As Boolean = CBool(Row("SeFacturara").ToString) - Dim Estatus As Boolean = CBool(Row("Estatus").ToString) - Dim SeSuperviso As Boolean = CBool(Row("SeSuperviso").ToString) - Dim CveCuentaEquipo As Integer = Row("CveCuentaEquipo").ToString.ToEntero - Dim Especificaciones As String = Row("Especificaciones").ToString - Dim ComentarioTecnico As String = Row("ComentarioTecnico").ToString - Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero - Dim Archivo As New System.IO.FileInfo(Row("Archivo").ToString) - Dim CveUsuarioEntrego As Integer = If(Entregar = True, UsuarioActual.CveUsuario, -1) - Dim FechaEntrega As String = If(Entregar = True, Now.ToString("dd/MM/yyy"), "-1") - Dim Consecutivo As Integer = Row("Consecutivo").ToString.ToEntero - CveConsecutivo = Consecutivo - - If CveOSDetalle > 0 Then - If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalle(CvePS, Cantidad, CveUsuarioEntrego, Observaciones, SeSuperviso, SeFacturara, Estatus, ComentarioTecnico, CveCuentaEquipo, Archivo.Name, "-1", FechaEntrega, CveOSDetalle, CveOS) Then - Errores = True - End If - Else - CveOSDetalle = ObjOrdenServicio.AddOrdenesServiciosDetalle(CveOS, CvePS, Cantidad, -1, CveUsuarioEntrego, Observaciones, SeSuperviso, SeFacturara, Estatus, CveCuentaEquipo, "-1", "-1", FechaEntrega, ComentarioTecnico, UsuarioActual.CveUsuario, Archivo:=Archivo.Name) - If Not CveOSDetalle > 0 Then Errores = True - - End If - - If Archivo.Name <> "-1" Then - 'Cambiar el nombre del archivo de CveUsuario-Consecutivo.ext a CveOS-Consecutivo.ext - Dim ArchivoFinal As New System.IO.FileInfo(String.Format("{0}OS\Archivos\OS{1}-{2}{3}", UsuarioActual.Empresa.Ruta, CveOS, Consecutivo, System.IO.Path.GetExtension(Archivo.Extension))) - - If ArchivoFinal.Exists() Then - ArchivoFinal.Delete() - End If - - 'Mover el archivo de los temporales a OS - System.IO.File.Move(UsuarioActual.Empresa.Ruta & "\OS\Temp\" & Archivo.Name, UsuarioActual.Empresa.Ruta & "\OS\Archivos\" & ArchivoFinal.Name) - - If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalleArchivo(ArchivoFinal.Name, ObjOrdenServicio.CveOSDetalle) Then - Errores = True - End If - End If - - If TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows.Count > 0 Then - - For Each RowE As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows - Dim CveCaracteristicaValor As Integer = RowE("CveCaracteristicaValor").ToString.ToEntero - Dim CveCaracteristica As Integer = RowE("CveCaracteristica").ToString.ToEntero - Dim CveOpcion As Integer = RowE("CveOpcion").ToString.ToEntero - Dim Valor As String = RowE("Valor").ToString - - If Not ObjGenerales.AddUpdateCaracteristicasValores(CveCaracteristica, CveOpcion, Valor, UsuarioActual.CveUsuario, CveCaracteristicaValor:=CveCaracteristicaValor, CveOSDetalle:=CveOSDetalle) Then + If CveOSDetalle > 0 Then + If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalle(CvePS, Cantidad, CveUsuarioEntrego, Observaciones, SeSuperviso, SeFacturara, Estatus, ComentarioTecnico, CveCuentaEquipo, Archivo.Name, "-1", FechaEntrega, CveOSDetalle, CveOS) Then Errores = True End If - Next - End If + Else + CveOSDetalle = ObjOrdenServicio.AddOrdenesServiciosDetalle(CveOS, CvePS, Cantidad, -1, CveUsuarioEntrego, Observaciones, SeSuperviso, SeFacturara, Estatus, CveCuentaEquipo, "-1", "-1", FechaEntrega, ComentarioTecnico, UsuarioActual.CveUsuario, Archivo:=Archivo.Name) + If Not CveOSDetalle > 0 Then Errores = True - If TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows.Count > 0 Then - For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows - Dim CveMaterial As Integer = RowM("CveMaterial").ToString.ToEntero + End If - Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero - Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero - Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero - Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero + If Archivo.Name <> "-1" Then + 'Cambiar el nombre del archivo de CveUsuario-Consecutivo.ext a CveOS-Consecutivo.ext + Dim ArchivoFinal As New System.IO.FileInfo(String.Format("{0}OS\Archivos\OS{1}-{2}{3}", UsuarioActual.Empresa.Ruta, CveOS, Consecutivo, System.IO.Path.GetExtension(Archivo.Extension))) - If Not ObjOrdenServicio.AddUpdateDetalleMateriales(CveMaterial, CveOSDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, SeFacturara) Then + If ArchivoFinal.Exists() Then + ArchivoFinal.Delete() + End If + + 'Mover el archivo de los temporales a OS + System.IO.File.Move(UsuarioActual.Empresa.Ruta & "\OS\Temp\" & Archivo.Name, UsuarioActual.Empresa.Ruta & "\OS\Archivos\" & ArchivoFinal.Name) + + If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalleArchivo(ArchivoFinal.Name, ObjOrdenServicio.CveOSDetalle) Then Errores = True End If - Next + End If + + If TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows.Count > 0 Then + + For Each RowE As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows + Dim CveCaracteristicaValor As Integer = RowE("CveCaracteristicaValor").ToString.ToEntero + Dim CveCaracteristica As Integer = RowE("CveCaracteristica").ToString.ToEntero + Dim CveOpcion As Integer = RowE("CveOpcion").ToString.ToEntero + Dim Valor As String = RowE("Valor").ToString + + If Not ObjGenerales.AddUpdateCaracteristicasValores(CveCaracteristica, CveOpcion, Valor, UsuarioActual.CveUsuario, CveCaracteristicaValor:=CveCaracteristicaValor, CveOSDetalle:=CveOSDetalle) Then + Errores = True + End If + Next + End If + + If TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows.Count > 0 Then + For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows + Dim CveMaterial As Integer = RowM("CveMaterial").ToString.ToEntero + + Dim CveClasificacion As Integer = RowM("CveClasificacion").ToString.ToEntero + Dim CvePSMaterial As Integer = RowM("CvePS").ToString.ToEntero + Dim CveUnidadMedidaM As Integer = RowM("CveUM").ToString.ToEntero + Dim CantidadMaterial As Integer = RowM("Cantidad").ToString.ToEntero + + If Not ObjOrdenServicio.AddUpdateDetalleMateriales(CveMaterial, CveOSDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, SeFacturara) Then + Errores = True + End If + Next + End If End If - End If - Next + Next + Else + Errores = True + End If Else + Alert("No tienes permisos para modificar esta Orden de Servicio", TipoMensaje.MsgAdvertencia) Errores = True End If @@ -1209,7 +1237,7 @@ Partial Class OS_OrdenesServicios TxtSolicito.Text = "" TxtFechaRecibido.Text = "" TxtDescripcion.Text = "" - CargaEstatusOS(2) + CargaEstatusOS() GvPS.DataSource = Nothing GvPS.DataBind()