Option Explicit On Option Strict On Imports Extensiones Imports System.IO Imports System.Data Imports Microsoft.Reporting.WebForms 'Imports msExcel = Microsoft.Office.Interop.Excel 'Imports VBIDE Partial Class OS_OrdenesServicios Inherits ClsPaginas #Region "Propiedades" Private Shared missing As Object = System.Reflection.Missing.Value Private Property CveCliente As Integer Get Return ViewState("CveCliente").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCliente") = value End Set End Property Private Property TipoEstatus As Integer Get Return ViewState("TipoEstatus").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoEstatus") = value End Set End Property Private Property CveFolio As Integer Get Return ViewState("CveFolio").ToString.ToEntero End Get Set(value As Integer) ViewState("CveFolio") = value End Set End Property Private Property CveSub As Integer Get Return ViewState("CveSub").ToString.ToEntero End Get Set(value As Integer) ViewState("CveSub") = value End Set End Property Private Property TmpDT As DataTable Get Return CType(ViewState("TmpDT"), DataTable) End Get Set(value As DataTable) ViewState("TmpDT") = value End Set End Property Private Property DTPS As DataTable Get Return CType(ViewState("DTPS"), DataTable) End Get Set(value As DataTable) ViewState("DTPS") = value End Set End Property Private Property DtSubProyectos As DataTable Get Return CType(ViewState("DtSubProyectos"), DataTable) End Get Set(value As DataTable) ViewState("DtSubProyectos") = value End Set End Property Private Property CveOS As Integer Get Return ViewState("CveOS").ToString.ToEntero End Get Set(value As Integer) ViewState("CveOS") = value End Set End Property Private Property CveOsDetalle As Integer Get Return ViewState("CveOsDetalle").ToString.ToEntero End Get Set(value As Integer) ViewState("CveOsDetalle") = value End Set End Property Private Property CveCaracteristicaValor As Integer Get Return ViewState("CveCaracteristicaValor").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCaracteristicaValor") = value End Set End Property Private Property CveConsecutivo As Integer Get Return ViewState("CveConsecutivo").ToString.ToEntero End Get Set(value As Integer) ViewState("CveConsecutivo") = value End Set End Property Private Property CveUsuarioAtendio As Integer Get Return ViewState("CveUsuarioAtendio").ToString.ToEntero End Get Set(value As Integer) ViewState("CveUsuarioAtendio") = value End Set End Property Private Property CveUsuarioAtendioCount As Integer Get Return ViewState("CveUsuarioAtendioCount").ToString.ToEntero End Get Set(value As Integer) ViewState("CveUsuarioAtendioCount") = value End Set End Property Private Property NombreCliente As String Get Return ViewState("NombreCliente").ToString End Get Set(value As String) ViewState("NombreCliente") = value End Set End Property Private Property ClienteDireccion As String Get Return ViewState("ClienteDireccion").ToString End Get Set(value As String) ViewState("ClienteDireccion") = value End Set End Property Private Property ClienteColonia As String Get Return ViewState("ClienteColonia").ToString End Get Set(value As String) ViewState("ClienteColonia") = value End Set End Property Private Property ClienteCiudad As String Get Return ViewState("ClienteCiudad").ToString End Get Set(value As String) ViewState("ClienteCiudad") = value End Set End Property Private Property ClienteEstado As String Get Return ViewState("ClienteEstado").ToString End Get Set(value As String) ViewState("ClienteEstado") = value End Set End Property Private Property TelefonoCliente As String Get Return ViewState("TelefonoCliente").ToString End Get Set(value As String) ViewState("TelefonoCliente") = value End Set End Property Private Property Materiales As String Get Return ViewState("Materiales").ToString End Get Set(value As String) ViewState("Materiales") = value End Set End Property Private Property CveCotizacion As Integer Get Return ViewState("CveCotizacion").ToString.ToEntero End Get Set(value As Integer) ViewState("CveCotizacion") = value End Set End Property Private Property TmpDTCaracteristica As DataTable Get Return CType(ViewState("TmpDTCaracteristica"), DataTable) End Get Set(value As DataTable) ViewState("TmpDTCaracteristica") = value End Set End Property Private Property TmpDTCuentaCaracteristica As DataTable Get Return CType(ViewState("TmpDTCuentaCaracteristica"), DataTable) End Get Set(value As DataTable) ViewState("TmpDTCuentaCaracteristica") = value End Set End Property Private Property TmpDTMaterialesDetalle As DataTable Get Return CType(ViewState("TmpDTMaterialesDetalle"), DataTable) End Get Set(value As DataTable) ViewState("TmpDTMaterialesDetalle") = value End Set End Property Private Property TmpDTSolicitarMaterial As DataTable Get Return CType(ViewState("TmpDTSolicitarMaterial"), DataTable) End Get Set(value As DataTable) ViewState("TmpDTSolicitarMaterial") = value End Set End Property Private Property TmpDTCuentaEquipo As DataTable Get Return CType(ViewState("TmpDTCuentaEquipo"), DataTable) End Get Set(value As DataTable) ViewState("TmpDTCuentaEquipo") = value End Set End Property Private Property EstatusOSDelUsuario As DataTable Get Return CType(ViewState("EstatusOSDelUsuario"), DataTable) End Get Set(value As DataTable) ViewState("EstatusOSDelUsuario") = value End Set End Property Private Property MensajeAlert As StringBuilder Get Return CType(ViewState("MensajeAlert"), StringBuilder) End Get Set(value As StringBuilder) 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 Private Property ClienteRFC As String Get Return ViewState("ClienteRFC").ToString End Get Set(value As String) ViewState("ClienteRFC") = value End Set End Property Private Property ClienteMail As String Get Return ViewState("ClienteMail").ToString End Get Set(value As String) ViewState("ClienteMail") = 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 'DATOS CLIENTE CveCliente = 0 NombreCliente = "" ClienteDireccion = "" ClienteCiudad = "" ClienteEstado = "" Materiales = "-1" TipoEstatus = 1 CveConsecutivo = 0 CveOsDetalle = -1 CveUsuarioAtendioCount = 0 ImgImprimir.Visible = False CargaSubProyecto() CargaTiposOrden() CargaTecnico() CargaPS(-1, DdlPSDetalle) CargaPsMateriales() 'CargaClasificaciones() CargaPSCaracteristicasOpciones() CargaCuentasCaracteristicas() CargaAlmacen() CreaDT() CreaDTPS() CreaDtMaterialesDetalle() CreaDtSolicitarMateriales() CveSub = -1 'Carga cliente If Request("CveCliente") IsNot Nothing AndAlso IsNumeric(Request("CveCliente")) AndAlso Request("CveCliente").ToEntero > 0 Then ViewState("CveCliente") = Request("CveCliente") HdnCveCliente.Value = Request("CveCliente") CargaCliente(CveCliente) CargarCuentasEquipos(CveCliente) Else ViewState("CveCliente") = -1 HdnCveCliente.Value = "-1" End If If Request("CveOS") IsNot Nothing AndAlso IsNumeric(Request("CveOS")) AndAlso Request("CveOS").ToEntero > 0 Then ViewState("CveOS") = Request("CveOS") Else ViewState("CveOS") = -1 End If If Request("CveCotizacion") IsNot Nothing AndAlso IsNumeric(Request("CveCotizacion")) AndAlso Request("CveCotizacion").ToEntero > 0 Then CveCotizacion = Request("CveCotizacion").ToEntero CargaVenta() Else CveCotizacion = -1 End If If Request("CveVenta") IsNot Nothing AndAlso IsNumeric(Request("CveVenta")) AndAlso Request("CveVenta").ToEntero > 0 Then CveCotizacion = Request("CveVenta").ToEntero CargaVenta() Else CveCotizacion = -1 End If 'Carga OS If CveOS > 0 Then 'CargaEstatusOS() CargaDatos() 'PermisosSegunEstatus() CargaDetalles() CargaMateriales() DivSeFactura.Visible = True BtnGuardar.Text = "Guardar Cambios" LtlTitulo.Text = "Consulta del Orden de Servicio" TxtFecha.Text = Now.ToString("dd/MM/yyy") If UsuarioActual.TienePermisoProceso(198) Then ChkSeFacturara.Visible = True ChkSeFacturara.Checked = True Else ChkSeFacturara.Visible = False ChkSeFacturara.Checked = False End If Else DivSeFactura.Visible = False TxtFechaRecibido.Text = Now.ToString("dd/MM/yyy") ViewState("CveOS") = -1 DdlEstatusOS.Enabled = False CargaEstatusOS() End If hdnEsThickbox.Value = "S" hdnClientIDLink.Value = "NoDefinido" End If End Sub #Region "DDL'S " Protected Sub DdlPSDetalle_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPSDetalle.SelectedIndexChanged If CveCliente > 0 OrElse DdlPSDetalle.SelectedValue = "-2" Then If DdlPSDetalle.SelectedIndex > 1 Then Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSDetalle.SelectedValue.ToEntero).FiltroPrimero("") CargaPSCaracteristicas() End If End If UpDetalleOS.Update() End Sub 'Protected Sub DdlCCEdit_SelectedIndexChanged(sender As Object, e As System.EventArgs) ' Dim gvr As GridViewRow = DirectCast(DirectCast(sender, DropDownList).BindingContainer, GridViewRow) ' Dim CveProyecto As String = DirectCast(sender, DropDownList).SelectedValue ' gvr.FCDropDownList("DDlSubProyecto").Items.Clear() ' gvr.FCDropDownList("DDlSubProyecto").DataSource = GlobalDTSubProyectos(CveProyecto.ToEntero) ' gvr.FCDropDownList("DDlSubProyecto").DataBind() ' gvr.FCDropDownList("DDlSubProyecto").Items.Insert(0, New ListItem("Sin SubProyecto Asignado", "-1")) 'End Sub Protected Sub DdlFR_SelectedIndexChanged(sender As Object, e As EventArgs) Dim DdlFR_Gv As DropDownList = CType(sender, DropDownList) Dim index As Integer = CType(DdlFR_Gv.NamingContainer, GridViewRow).FCLiteral("LtlConsecutivo").Text.ToString.ToEntero If UsuarioActual.Empresa.UsaAC Then TmpDT(index - 1)("CvePresupuestoIngreso") = DdlFR_Gv.SelectedValue End If TmpDT.AcceptChanges() End Sub Protected Sub DdlEstatusOS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlEstatusOS.SelectedIndexChanged Dim tipoDeEstatusSeleccionado As String = EstatusOSDelUsuario.FiltroPrimero(String.Format("CveEstatusOrdenServicio = {0}", DdlEstatusOS.SelectedValue)).Item("TipoEstatusTexto").ToString Select Case tipoDeEstatusSeleccionado Case "Inicial" 'Proceso Case "Terminado" 'Terminada 'Checar que todos los detalles esten terminados para poder cambiar a terminada If TmpDT.COUNT("Estatus", "Estatus = 'False'").ToEntero > 0 Then Alert("No se puede cambiar a Terminada, aún tiene Detalles de Orden de Servicio por Atender", TipoMensaje.MsgAdvertencia) 'Regresar a estatus Atendiendo 'DdlEstatusOS.SelectedValue = "2" End If ' Case 4 ' 'Cancelada ' Case 5 ' 'Entregada ' Guardar(True) Case "Cancelada" Dim CanceladoOrdenMinimo As String = EstatusOSDelUsuario.FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 5", "Orden ASC").ToString DdlEstatusOS.SelectedValue = CanceladoOrdenMinimo 'DdlEstatusOS.SelectedIndex = CanceladoOrdenMinimo End Select ''CargaEstatusOS(DdlEstatusOS.SelectedValue.ToEntero) 'PermisosSegunEstatus() 'GvPS.DataSource = TmpDT 'GvPS.DataBind() End Sub #End Region #Region "C A R G A S" Private Sub CargaSubProyecto(Optional CveSubProyecto As Integer = -1) Dim ObjOS As New ClsOS If ObjOS.GetSubProyectosEstatusInicial(UsuarioActual.CveUsuario, 1, UsuarioActual.CveEmpresa) Then DdlSubProyecto.Items.Clear() DdlSubProyecto.SelectedValue = Nothing DdlSubProyecto.DataSource = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) If CveSubProyecto > 0 Then DdlSubProyecto.SelectedValueExist(CveSubProyecto) DdlEstatusOS.DataSource = ObjOS.DtResultados.FiltraParametros(String.Format("CveSubProyecto = {0}", CveSubProyecto), "", {"CveEstatusOrdenServicio", "EstatusOrdenServicio"}) End If ObjOS.Dispose() DdlSubProyecto.DataBind() DdlEstatusOS.DataBind() End Sub Private Sub CargaTiposOrden() Dim ObjOS As New ClsOS DdlTipoOrdenOS.Items.Clear() If ObjOS.GetTipoOrdenesServicios(UsuarioActual.CveEmpresa) Then DdlTipoOrdenOS.DataSource = ObjOS.DtResultados Else DdlTipoOrdenOS.DataSource = Nothing End If ObjOS.Dispose() DdlTipoOrdenOS.DataBind() DdlTipoOrdenOS.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub CargaDatos() Dim ObjOS As New ClsOS() Dim IDOSDetalle As Integer = 1 Dim SeFacturara = "" If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then If ObjOS.DtResultados.Rows.Count > 0 Then 'Pestaña Datos Generales ViewState("CveCliente") = ObjOS.CveCliente.ToString CargaCliente(CveCliente) TxtDescripcion.Text = ObjOS.Descripcion TxtSolicito.Text = ObjOS.PersonaSolicito TxtFechaRecibido.Text = ObjOS.FechaRecepcion.ToString CveFolio = ObjOS.Folio LblFolio.Text = ObjOS.Folio.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)) 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 = 2 Then ' LnkTecnico.Visible = True 'End If If TipoEstatus = 3 Then 'DisableAll() '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() 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 End If DivCliente.Attributes.Add("class", "col-md-8") DivFolio.Visible = True DivEstatus.Visible = True DivMateriales.Visible = True ImgImprimir.Visible = True CargaEventoBitacora() CargaHistorial() Else Alert("La Orden de Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False End If End If ObjOS.Dispose() End Sub Private Sub CargaVenta() Dim ObjVentas As New ClsVentas If ObjVentas.GetVenta(CveCotizacion, UsuarioActual.CveEmpresa) Then If ObjVentas.DtResultados IsNot Nothing AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then 'Carga Cliente ViewState("CveCliente") = ObjVentas.DtResultados.Rows(0)("CveCliente").ToString.ToEntero CargaCliente(CveCliente) End If If ObjVentas.GetVentaDetalle(CveCotizacion) Then Dim Cons As Integer = 1 For Each dr As DataRow In ObjVentas.DtResultados.Rows Dim drt As DataRow = TmpDT.NewRow If dr("CveTipoPS").ToString.ToEntero = 2 Then drt("Consecutivo") = Cons drt("CveOSDetalle") = -1 drt("CvePS") = dr("CvePS") drt("PS") = dr("PS") drt("Cantidad") = dr("Cantidad") drt("Observaciones") = dr("Obs") drt("SeFacturara") = True drt("SeSuperviso") = False drt("Archivo") = -1 drt("CveCuentaEquipo") = "-1" drt("CuentaEquipoMostrar") = "Cuentas y/o Equipos" drt("Especificaciones") = "-1" TmpDT.Rows.Add(drt) Cons = Cons + 1 Else End If Next GvPS.DataSource = TmpDT GvPS.DataBind() End If 'CargaDetalle End If 'BtnVerCotizacion.Visible = True ObjVentas.Dispose() End Sub Private Sub CargaDetalles() Dim ObjOrdenServicio As New ClsOS() Dim IDOSDetalle As Integer = 1 CreaDT() If ObjOrdenServicio.GetOrdenesServiciosDetalle(CveOS) Then If ObjOrdenServicio.DtResultados IsNot Nothing Then For Each Row As DataRow In ObjOrdenServicio.DtResultados.Rows CveOsDetalle = Row("CveOSDetalle").ToString.ToEntero Dim ComentarioTecnico As String = Row("ComentarioTecnico").ToString Dim Especificaciones As String = "-1" Dim EspecificacionesLink As String = "" Dim SeFacturara As Boolean Dim Estatus As Boolean Dim SeSuperviso As Boolean If Row("SeFacturaraTexto").ToString = "Sí" Then SeFacturara = True Else SeFacturara = False If Row("Estatus").ToString = "Activo" Then Estatus = True Else Estatus = False If Row("SeSuperviso").ToString = "Sí" Then SeSuperviso = True Else SeSuperviso = False CargaMaterialesDetalle(CveOsDetalle, IDOSDetalle, IDOSDetalle) For Each R As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", IDOSDetalle)).Rows If Materiales = "-1" Then Materiales = "" Else Materiales = Materiales + "
" Materiales = Materiales + String.Format("{0} {1}", R("Cantidad").ToString, R("PS").ToString) Next CargaEspecificaciones(CveOsDetalle, IDOSDetalle, IDOSDetalle) For Each R As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", IDOSDetalle)).Rows If Especificaciones = "-1" Then Especificaciones = "" Else Especificaciones = Especificaciones + "," Especificaciones = Especificaciones + String.Format("{0}:{1}:{2}:{3}:{4}:{5}", R("CveCaracteristica").ToString, R("Caracteristica").ToString, R("CveCaracteristicaTipo"), R("CveOpcion").ToString, R("Opcion").ToString, R("Valor").ToString) Next RegistraScript(String.Format("CargaEspecificacionesPop('{0}');", Especificaciones)) AddPS(IDOSDetalle, Row("CveOSDetalle").ToString.ToEntero, Row("CvePS").ToString.ToEntero, Row("PS").ToString, Row("Cantidad").ToString.ToEntero, Row("ObservacionesServicio").ToString, Especificaciones, EspecificacionesLink, ComentarioTecnico, Row("CveCuentaEquipo").ToString.ToEntero, Row("CuentaEquipo").ToString, Row("FechaAtencion").ToString, Row("CveUsuarioAtendio").ToString.ToEntero, Row("UsuarioAtendio").ToString, Row("FechaTermino").ToString, Row("FechaEntrega").ToString, Row("CveUsuarioEntrego").ToString.ToEntero, Row("UsuarioEntrego").ToString, SeFacturara, SeSuperviso, Estatus, Row("Archivo").ToString, If(Materiales = "-1", "", Materiales), Row("CveUsuarioRecibio").ToString.ToEntero) IDOSDetalle = IDOSDetalle + 1 Next End If End If ObjOrdenServicio.Dispose() End Sub Private Sub CargaEspecificaciones(CveOsDetalle As Integer, Consecutivo As Integer, CveConsecutivoDetalle As Integer) Dim ObjEspecificaciones As New ClsGenerales If ObjEspecificaciones.GetCaracteristicasValores(-1, -1, -1, CveOsDetalle, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then For Each RowE As DataRow In ObjEspecificaciones.DtResultados.Rows Dim Row As DataRow = Nothing Row = TmpDTCaracteristica.NewRow() Row("CveCaracteristicaValor") = RowE("CveCaracteristicaValor").ToString.ToEntero Row("CveConsecutivo") = Consecutivo Row("CveConsecutivoDetalle") = CveConsecutivoDetalle Row("CveOSDetalle") = CveOsDetalle Row("CveConsecutivo") = Consecutivo Row("CveCaracteristica") = RowE("CveCaracteristica") Row("Caracteristica") = RowE("Caracteristica") Row("CveCaracteristicaTipo") = RowE("CveCaracteristicaTipo") Row("CveOpcion") = RowE("CveCaracteristicaOpcion") Row("Opcion") = RowE("CaracteristicaOpcion") Row("Valor") = RowE("CaracteristicaValor") TmpDTCaracteristica.Rows.Add(Row) Consecutivo = Consecutivo + 1 Next End If UpBodyGv.Update() ObjEspecificaciones.Dispose() End Sub Private Sub CargaMaterialesDetalle(CveOsDetalle As Integer, Consecutivo As Integer, CveConsecutivoDetalle As Integer) Dim ObjMateriales As New ClsOS If ObjMateriales.GetDetalleMateriales(CveOsDetalle, CveOS) Then For Each RowE As DataRow In ObjMateriales.DtResultados.Rows Dim Row As DataRow = Nothing Row = TmpDTMaterialesDetalle.NewRow() Row("CveConsecutivo") = Consecutivo Row("CveConsecutivoDetalle") = CveConsecutivoDetalle Row("CveOSDetalle") = CveOsDetalle Row("CveMaterial") = RowE("CveMaterial") Row("Cantidad") = RowE("Cantidad") Row("CveClasificacion") = RowE("CveClasificacion") Row("CvePS") = RowE("CvePS") Row("CveUM") = RowE("CveUM") Row("CveMovimiento") = RowE("CveMovimiento") Row("Clasificacion") = RowE("Clasificacion") Row("PS") = RowE("PS") Row("UM") = RowE("UM") TmpDTMaterialesDetalle.Rows.Add(Row) Consecutivo = Consecutivo + 1 Next End If UpAddMateriales.Update() ObjMateriales.Dispose() End Sub Private Sub CargaMateriales() Dim objOS As New ClsOS If objOS.GetDetalleMateriales(-1, CveOS) Then GvMateriales.DataSource = objOS.DtResultados End If objOS.Dispose() GvMateriales.DataBind() If (GvMateriales.Rows.Count > 0) Then GvMateriales.UseAccessibleHeader = True GvMateriales.HeaderRow.TableSection = TableRowSection.TableHeader RegistraScript("OrdenarGVMateriales();") End If End Sub Private Sub CargaEstatusOS() DdlEstatusOS.Items.Clear() DdlEstatusOS.DataSource = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) DdlEstatusOS.DataBind() '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() Objeto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1, AplicaParaVenta:=1).FiltraParametros(" CveTipoPS=1") Objeto.DataBind() Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) Objeto.Items.Insert(0, New ListItem("Seleccione el Servicio", "-1")) End Sub Private Sub CargaPsMateriales() 'Objeto.Items.Clear() 'Objeto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1) 'Objeto.DataBind() 'Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) 'Objeto.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) 'Carga Productos DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then 'DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) DdlPS.SelectedText = "" DdlPS.SelectedValue = "-1" Else DdlPS.ddl.Items.Clear() 'DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) DdlPS.ddl.DataBind() DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) End If End Sub Private Sub CargaCliente(CveCliente As Integer, Optional Estatus As Integer = 1) Dim ObjCliente As New ClsClientes() If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, Estatus) Then If ObjCliente.DtResultados.Rows.Count > 0 Then TxtCodigo.Text = ObjCliente.Codigo LblCliente.Text = String.Format("{1}", CveCliente, ObjCliente.Nombre) NombreCliente = ObjCliente.Nombre ClienteDireccion = ObjCliente.Direccion ClienteCiudad = ObjCliente.Ciudad ClienteColonia = ObjCliente.Colonia ClienteEstado = ObjCliente.Estado TelefonoCliente = ObjCliente.Telefono TxtSolicito.Text = ObjCliente.Contacto ClienteRFC = ObjCliente.RFC ClienteMail = ObjCliente.Mail If ObjCliente.GetSucursales(CveCliente) Then DdlSucursalCliente.DataSource = ObjCliente.DtResultados DdlClienteSucursalCuenta.DataSource = ObjCliente.DtResultados If ObjCliente.DtResultados.Rows.Count > 0 Then DivClienteSucursal.Visible = True DivClienteSucursalCuenta.Visible = True Else DivClienteSucursal.Visible = False DivClienteSucursalCuenta.Visible = False End If Else DivClienteSucursal.Visible = False DdlSucursalCliente.DataSource = Nothing DivClienteSucursalCuenta.Visible = False DdlClienteSucursalCuenta.DataSource = Nothing End If DdlSucursalCliente.DataBind() DdlClienteSucursalCuenta.DataBind() CargarCuentasEquipos(CveCliente) CargaCuentas() Else Alert("El cliente solicitado no existe, por favor intente de nuevo.", TipoMensaje.MsgError) End If End If ObjCliente.Dispose() UpDetalleOS.Update() End Sub Private Sub CreaDT() TmpDT = New DataTable TmpDT.Columns.Add("Consecutivo", GetType(Integer)) TmpDT.Columns.Add("CveOSDetalle", GetType(Integer)) TmpDT.Columns.Add("CvePS", GetType(Integer)) TmpDT.Columns.Add("Cantidad", GetType(Integer)) TmpDT.Columns.Add("PS", GetType(String)) TmpDT.Columns.Add("CveCuentaEquipo", GetType(Integer)) TmpDT.Columns.Add("CuentaEquipoMostrar", GetType(String)) TmpDT.Columns.Add("FechaAtencion", GetType(String)) TmpDT.Columns.Add("CveUsuarioAtendio", GetType(Integer)) TmpDT.Columns.Add("UsuarioAtendio", GetType(String)) TmpDT.Columns.Add("FechaTermino", GetType(String)) TmpDT.Columns.Add("FechaEntrega", GetType(String)) TmpDT.Columns.Add("CveUsuarioEntrego", GetType(Integer)) TmpDT.Columns.Add("CveUsuarioRecibio", GetType(Integer)) TmpDT.Columns.Add("UsuarioEntrego", GetType(String)) TmpDT.Columns.Add("SeFacturara", GetType(String)) TmpDT.Columns.Add("SeSuperviso", GetType(String)) TmpDT.Columns.Add("Archivo", GetType(String)) TmpDT.Columns.Add("Especificaciones", GetType(String)) TmpDT.Columns.Add("EspecificacionesLink", GetType(String)) TmpDT.Columns.Add("EspecificacionesMostrar", GetType(String)) TmpDT.Columns.Add("Materiales", GetType(String)) TmpDT.Columns.Add("MaterialesLink", GetType(String)) TmpDT.Columns.Add("Observaciones", GetType(String)) TmpDT.Columns.Add("Estatus", GetType(String)) TmpDT.Columns.Add("ComentarioTecnico", GetType(String)) End Sub Private Sub AddPS(Consecutivo As Integer, CveOSDetalle As Integer, CvePS As Integer, PS As String, Cantidad As Integer, Observaciones As String, Especificaciones As String, EspecificacionesLink As String, ComentarioTecnico As String, CveCuentaEquipo As Integer, CuentaEquipoMostrar As String, FechaAtencion As String, CveUsuarioAtendio As Integer, UsuarioAtendio As String, FechaTermino As String, FechaEntrega As String, CveUsuarioEntrego As Integer, UsuarioEntrego As String, SeFacturara As Boolean, SeSuperviso As Boolean, Estatus As Boolean, Archivo As String, Materiales As String, CveUsuarioRecibio As Integer) Dim Row As DataRow = Nothing Row = TmpDT.NewRow() Row("Consecutivo") = Consecutivo Row("CveOSDetalle") = CveOSDetalle Row("CvePS") = CvePS Row("Cantidad") = Cantidad Row("PS") = PS Row("CveCuentaEquipo") = If(CveCuentaEquipo > 0, CveCuentaEquipo, -1) If CveCuentaEquipo <> -1 Then Row("CuentaEquipoMostrar") = CuentaEquipoMostrar Else Row("CuentaEquipoMostrar") = "Cuentas y/o Equipos" Row("FechaAtencion") = FechaAtencion Row("CveUsuarioAtendio") = CveUsuarioAtendio Row("UsuarioAtendio") = UsuarioAtendio Row("FechaTermino") = FechaTermino Row("FechaEntrega") = FechaEntrega Row("CveUsuarioRecibio") = CveUsuarioRecibio Row("CveUsuarioEntrego") = CveUsuarioEntrego Row("UsuarioEntrego") = UsuarioEntrego Row("SeFacturara") = SeFacturara.ToString Row("SeSuperviso") = SeSuperviso.ToString Row("Archivo") = Archivo Row("Observaciones") = Observaciones If Especificaciones <> "-1" Then Row("EspecificacionesMostrar") = EspecificacionesParaMostrar(Especificaciones, "
") End If Row("Especificaciones") = Especificaciones Row("ComentarioTecnico") = ComentarioTecnico Row("Estatus") = Estatus.ToString Row("Materiales") = Materiales CveConsecutivo = Consecutivo TmpDT.Rows.Add(Row) 'Dim DR = TmpDT.Select($"CveOSDetalle = {CveOSDetalle}") 'DR(0)("Observaciones") = String.Format("{0}
{1}", DR(0)("Observaciones"), ComentarioTecnico) 'TmpDT.AcceptChanges() If CveOSDetalle > 0 Then GvPSTecnico.DataSource = TmpDT GvPSTecnico.DataBind() End If If UsuarioActual.Empresa.Funcionalidad(151).ToString = "1" Then LblTecnicoActual.Text = TmpDT.MAX("UsuarioAtendio") DivTecnicoGV.Visible = False Else DivTecnicoGV.Visible = True End If GvPS.DataSource = TmpDT GvPS.DataBind() End Sub 'Private Sub CargaClasificaciones() ' DdlClasificacion.DataSource = GlobalDTClasificaciones.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) ' DdlClasificacion.DataBind() ' '' DdlClasificacion.Items.Insert(0, New ListItem("Seleccione la Clasificación", "-1")) 'End Sub Private Sub CargaFolios(CveSub As Integer) Dim ObjFolios As New ClsGralFolios() If ObjFolios.GetFolios() Then Dim DT As DataTable = ObjFolios.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa & " AND CveSubProyecto = " & CveSub & " AND TipoDocto = 'OS' AND Estado = 'Activo'") If DT.Rows.Count > 0 Then ViewState("CveFolio") = DT.Rows(0)("CveFolio").ToString.ToEntero ViewState("FolioActual") = DT.Rows(0)("FActual").ToString 'ltlFolio.Text = DT.Rows(0)("FActual").ToString 'BtnEmitirImprimir.Enabled = True 'UpFacturar.Update() Else Alert("No tiene registrados Folios para Órdenes de Servicio en este subproyecto.", TipoMensaje.MsgAdvertencia) 'BtnEmitir.Enabled = False 'UpFacturar.Update() End If DT.Dispose() End If ObjFolios.Dispose() End Sub Private Sub UpdatePS(Consecutivo As Integer, CveOSDetalle As Integer, CvePS As Integer, PS As String, Cantidad As Integer, Observaciones As String, Especificaciones As String, EspecificacionesLink As String, Materiales As String, MaterialesLink As String, ComentarioTecnico As String, CveCuentaEquipo As Integer, CuentaEquipoMostrar As String, FechaAtencion As String, CveUsuarioAtendio As Integer, UsuarioAtendio As String, FechaTermino As String, FechaEntrega As String, CveUsuarioEntrego As Integer, UsuarioEntrego As String, SeFacturara As Boolean, SeSuperviso As Boolean, Estatus As Boolean, Archivo As String) TmpDT.Rows(Consecutivo)("CveOSDetalle") = CveOSDetalle TmpDT.Rows(Consecutivo)("CvePS") = CvePS TmpDT.Rows(Consecutivo)("PS") = PS TmpDT.Rows(Consecutivo)("Observaciones") = Observaciones TmpDT(Consecutivo)("EspecificacionesMostrar") = EspecificacionesParaMostrar(Especificaciones, "
") TmpDT.Rows(Consecutivo)("Especificaciones") = Especificaciones TmpDT.Rows(Consecutivo)("EspecificacionesLink") = EspecificacionesLink.Replace("EsThickbox", "ClientIDLink=@ClientIDLink&EsThickbox") If Materiales <> "-1" Then TmpDT.Rows(Consecutivo)("MaterialesMostrar") = MaterialesParaMostrar(Materiales, "
") Else TmpDT.Rows(Consecutivo)("Materiales") = "" End If TmpDT.Rows(Consecutivo)("ComentarioTecnico") = ComentarioTecnico TmpDT.Rows(Consecutivo)("CveCuentaEquipo") = If(CveCuentaEquipo > 0, CveCuentaEquipo, -1) If CveCuentaEquipo <> -1 Then TmpDT(Consecutivo)("CuentaEquipoMostrar") = CuentaEquipoMostrar Else TmpDT(Consecutivo)("CuentaEquipoMostrar") = "Cuentas y/o Equipos" TmpDT.Rows(Consecutivo)("FechaAtencion") = FechaAtencion TmpDT.Rows(Consecutivo)("CveUsuarioAtendio") = CveUsuarioAtendio TmpDT.Rows(Consecutivo)("UsuarioAtendio") = UsuarioAtendio TmpDT.Rows(Consecutivo)("FechaTermino") = FechaTermino TmpDT.Rows(Consecutivo)("FechaEntrega") = FechaEntrega TmpDT.Rows(Consecutivo)("CveUsuarioEntrego") = CveUsuarioEntrego TmpDT.Rows(Consecutivo)("UsuarioEntrego") = UsuarioEntrego TmpDT.Rows(Consecutivo)("SeFacturara") = SeFacturara.ToString TmpDT.Rows(Consecutivo)("SeSuperviso") = SeSuperviso.ToString TmpDT.Rows(Consecutivo)("Estatus") = Estatus.ToString TmpDT.Rows(Consecutivo)("Archivo") = Archivo TmpDT.Rows(Consecutivo)("Cantidad") = Cantidad 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 " Protected Sub BtnBuscarCliente_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnBuscarCliente.Click ViewState("CveCliente") = HdnCveCliente.Value.ToEntero CargaCliente(HdnCveCliente.Value.ToEntero) If DdlPSDetalle.SelectedIndex > 0 Then DdlPSDetalle_SelectedIndexChanged(sender, e) DdlPSDetalle.Focus() Else TxtCantidad.Focus() End If End Sub #End Region #Region "P E R M I S O S" Private Sub PermisosSegunEstatus() Dim TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor(String.Format("TipoEstatus", "CveEstatusOrdenServicio = {0}", "CveEstatusOrdenServicio ASC", DdlEstatusOS.SelectedValue.ToEntero)) Select Case TipoEstatus.ToEntero Case 1 'Inicial Case 2 'Proceso Case 3 'Terminada GvPS.Columns(10).Visible = False Case 4, 5 '4-Cancelada, 5-Entregada BtnGuardar.Enabled = False GvPS.Enabled = False BtnBuscarCliente.Enabled = False TxtSolicito.Enabled = False TxtDescripcion.Enabled = False TxtFechaRecibido.Enabled = False DdlPSDetalle.Enabled = False TxtObservacionesServicioDetalle.Enabled = False TxtComentarioTecnico.ReadOnly = True BtnComentarioTecnico.Enabled = False GvPS.Columns(6).Visible = False GvPS.Columns(7).Visible = False GvPS.Columns(8).Visible = False GvPS.Columns(9).Visible = False GvPS.Columns(10).Visible = False GvPS.Columns(11).Visible = False GvPS.Columns(12).Visible = False GvPS.Columns(13).Visible = False End Select 'permitir avanzar el estatus solo uno adelante For i As Integer = 0 To DdlEstatusOS.Items.Count - 1 If DdlEstatusOS.Items.IndexOf(DdlEstatusOS.Items(i)) <> DdlEstatusOS.SelectedIndex And DdlEstatusOS.Items.IndexOf(DdlEstatusOS.Items(i)) <> DdlEstatusOS.SelectedIndex + 1 Then DdlEstatusOS.Items(i).Enabled = False End If Next End Sub #End Region #Region "M E T O D O S" Protected Sub Guardar(Entregar As Boolean) Dim ObjOrdenServicio As New ClsOS() Dim ObjGenerales As New ClsGenerales(ObjOrdenServicio.IniciaTransacSQL) MensajeAlert = New StringBuilder Dim Errores As Boolean = False Dim EstatusOrdenServicio As Integer = DdlEstatusOS.SelectedValue.ToEntero Dim DirectorioEmpresa = UsuarioActual.Empresa.Ruta If Not CveOS > 0 Then Dim bandera As Integer = DdlEstatusOS.SelectedValue.ToEntero If Not ObjOrdenServicio.AddOrdenesServicios(CveCliente, DdlSubProyecto.SelectedValue.ToEntero, TxtSolicito.Text, TxtFechaRecibido.Text.ToDateTime, TxtDescripcion.Text, UsuarioActual.CveUsuario, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCotizacion, -1, -1, DdlTipoOrdenOS.SelectedValue.ToEntero, CveClienteSucursal:=DdlSucursalCliente.SelectedValue.ToEntero) Then Errores = True End If CargaCliente(CveCliente) For Each Row As DataRow In TmpDT.Rows If Not Errores Then Dim Consecutivo As Integer = Row("Consecutivo").ToString.ToEntero Dim CvePS As Integer = Row("CvePS").ToString.ToEntero Dim Observaciones As String = Row("Observaciones").ToString Dim SeFacturara As Boolean = CBool(Row("SeFacturara").ToString) Dim CveCuentaEquipo As Integer = Row("CveCuentaEquipo").ToString.ToEntero Dim ComentarioTecnico As String = Row("ComentarioTecnico").ToString Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero Dim Archivo As New System.IO.FileInfo(String.Format("{0}OS\Temp\{1}", UsuarioActual.Empresa.Ruta, Row("Archivo").ToString)) CveOsDetalle = ObjOrdenServicio.AddOrdenesServiciosDetalle(ObjOrdenServicio.CveOS, CvePS, Cantidad, -1, -1, Observaciones, False, True, False, CveCuentaEquipo, "-1", "-1", "-1", ComentarioTecnico, UsuarioActual.CveUsuario, Archivo:=Archivo.Name) If CveOsDetalle > 0 Then If Archivo.Name <> "-1" AndAlso Archivo.Exists Then 'Cambiar el nombre del archivo de CveUsuario-Consecutivo.ext a CveOS-Consecutivo.ext Dim ArchivoFinal As String = String.Format("OS{0}-{1}{2}", ObjOrdenServicio.CveOS, Consecutivo, System.IO.Path.GetExtension(Archivo.Extension)) '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) If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalleArchivo(ArchivoFinal, ObjOrdenServicio.CveOSDetalle) Then Errores = True End If End If For Each RowE As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows 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, CveOSDetalle:=CveOsDetalle, CvePs:=CvePS) Then Errores = True End If Next For Each RowM As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", Consecutivo)).Rows 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(-1, CveOsDetalle, CantidadMaterial, CveUnidadMedidaM, CveClasificacion, CvePSMaterial, True) Then Errores = True End If Next Else Errores = True End If End If Next If Not Errores Then ViewState("CveOS") = ObjOrdenServicio.CveOS ViewState("Folio") = ObjOrdenServicio.Folio CveFolio = ObjOrdenServicio.Folio 'MENSAJE PRINCIPAL MensajeAlert.AppendFormat(String.Format("
La Orden de Servicio: {0} se generó correctamente.

", ObjOrdenServicio.Folio)) MensajeAlert.AppendFormat("
", Encripta(String.Format("OP=OS&CVEOS={0}", ObjOrdenServicio.CveOS))) Dim Liga = $"document.location.href=""/OS/RepOrdenesServicios.aspx"";" ObjOrdenServicio.Commit() Alert(MensajeAlert.ToString, TipoMensaje.MsgInformacion, Liga) LimpiaDatos() Else ObjOrdenServicio.RollBack() 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 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 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 Next Else Errores = True End If Else Alert("No tienes permisos para modificar esta Orden de Servicio", TipoMensaje.MsgAdvertencia) Errores = True End If If Not Errores Then ObjOrdenServicio.Commit() Alert("Los cambios se guardaron correctamente.", TipoMensaje.MsgInformacion) UpDatos.Update() CargaHistorial() UpHistorial.Update() Else ObjOrdenServicio.RollBack() End If End If ObjOrdenServicio.Dispose() ObjGenerales.Dispose() End Sub Protected Sub BtnBuscarEspecificaciones_Click(sender As Object, e As EventArgs) Dim btn As Button = DirectCast(sender, Button) Dim DdlGVPS As DropDownList = Nothing Dim gvr As GridViewRow = DirectCast(btn.NamingContainer, GridViewRow) Dim ClientIDLink As String = GvPS.Rows(gvr.RowIndex).FCButton("BtnBuscarEspecificaciones").ClientID GvPS.Rows(gvr.RowIndex).FCHiddenField("HndEspecificaciones").Value = HdnEspecificaciones.Value Dim Especificaciones As String = HdnEspecificaciones.Value.ToString Dim EspecificacionesMostrar As String If Especificaciones <> "-1" Then EspecificacionesMostrar = EspecificacionesParaMostrar(Especificaciones, "
") Else EspecificacionesMostrar = "ESPECIFICACIONES" End If End Sub Protected Function EspecificacionesParaMostrar(Especificaciones As String, CambioLinea As String) As String Dim Mostrar As String = "" If Especificaciones <> "-1" Then For Each S As String In Especificaciones.Split(CChar(",")) If Mostrar <> "" Then Mostrar = Mostrar + CambioLinea End If Dim Esp As String() = S.Split(CChar(":")) If Esp(2) = "Sí" Then Mostrar = String.Format("{0} {1}-{2}", Mostrar, S.Split(CChar(":"))(1), S.Split(CChar(":"))(4)) Else Mostrar = String.Format("{0} {1}-{2}", Mostrar, S.Split(CChar(":"))(1), S.Split(CChar(":"))(5)) End If Next End If Return Mostrar End Function Protected Function MaterialesParaMostrar(Materiales As String, CambioLinea As String) As String Dim Mostrar As String = "" If Materiales <> "-1" Then For Each S As String In Materiales.Split(CChar(",")) If Mostrar <> "" Then Mostrar = Mostrar + CambioLinea End If Dim Esp As String() = S.Split(CChar(":")) ' Mostrar = String.Format("{0} {1}-{2}", Mostrar, S.Split(CChar(":"))(2), S.Split(CChar(":"))(4)) Mostrar = String.Format("{0} {1}", Mostrar, S) Next End If Return Mostrar End Function Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs) Dim filePath As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, CType(sender, LinkButton).CommandArgument) Dim Archivo As New System.IO.FileInfo(filePath) HttpContext.Current.Response.Clear() HttpContext.Current.Response.ClearContent() HttpContext.Current.Response.ContentType = "application/octet-stream" HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" + Path.GetFileName(filePath)) HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) HttpContext.Current.Response.TransmitFile(filePath) HttpContext.Current.Response.Flush() HttpContext.Current.Response.End() Archivo = Nothing End Sub Protected Sub BtnPSEspecificaciones_Click(sender As Object, e As EventArgs) Handles BtnPSEspecificaciones.Click Dim Especificaciones As String = "" Dim Mostrar As String = "" Especificaciones = HdnEspecificaciones.Value.ToString Dim EspecificacionesMostrar As String If Especificaciones <> "-1" Then EspecificacionesMostrar = EspecificacionesParaMostrar(Especificaciones, "
") Else EspecificacionesMostrar = "ESPECIFICACIONES" End If LtlPSEspecificaciones.Text = EspecificacionesMostrar End Sub Protected Sub BtnGuardar_Click(sender As Object, e As System.EventArgs) Handles BtnGuardar.Click Guardar(False) End Sub Private Sub LimpiaDatos() LblCliente.Text = "" TxtSolicito.Text = "" TxtFechaRecibido.Text = "" TxtDescripcion.Text = "" CargaEstatusOS() GvPS.DataSource = Nothing GvPS.DataBind() UpDatos.Update() End Sub Protected Sub imgEstatus_Click(sender As Object, e As EventArgs) Dim Row As GridViewRow = DirectCast(DirectCast(sender, Control).NamingContainer, GridViewRow) Dim Estatus = TmpDT(Row.RowIndex)("Estatus").ToString If Estatus = "False" Then TmpDT.Rows(Row.RowIndex)("Estatus") = "True" Row.FCLinkButton("imgEstatus").CssClass = "btn btn-circle btn-sm green" Else Row.FCLinkButton("imgEstatus").Enabled = False TmpDT.Rows(Row.RowIndex)("Estatus") = "False" Row.FCLinkButton("imgEstatus").CssClass = "btn btn-circle btn-sm red" End If UpDetalleOS.Update() End Sub Private Sub BtnAddGvDetalle_Click(sender As Object, e As EventArgs) Handles BtnAddGvDetalle.Click Dim ObjOS As New ClsOS Dim TieneError = False If CveCliente > 0 Then If DdlPSDetalle.SelectedValue.ToEntero > 0 Then Dim FileExtension As String = "" Dim Filesgral As List(Of Archivo) = TxtArchivo.getfiles().Archivos Dim Filename As String = "" For Each fileItem As Archivo In Filesgral FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") Filename = fileItem.filename Next If HdnModalidad.Value = "I" Then Dim Consecutivo As Integer = TmpDT.Rows.Count + 1 Dim Archivo As New System.IO.FileInfo(String.Format("{0}OS\Temp\OS{1}-{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, Consecutivo, FileExtension)) If Archivo.Exists() Then Archivo.Delete() End If If Filename <> "" Then Filename.FilesMove(String.Format("OS{0}-{1}", UsuarioActual.CveUsuario, Consecutivo), String.Format("Empresas\{0}\OS\Temp", UsuarioActual.CveEmpresa)) End If AddPS(Consecutivo, -1, DdlPSDetalle.SelectedValue.ToEntero, DdlPSDetalle.SelectedItem.Text, TxtCantidad.Text.ToEntero, TxtObservacionesServicioDetalle.Text, HdnEspecificaciones.Value.ToString, LtlPSEspecificaciones.Text, "", DdlIdentificador.SelectedValue.ToEntero, DdlIdentificador.SelectedItem.Text, "-1", -1, "-1", "-1", "-1", -1, "-1", ChkSeFacturara.Checked, ChkSeSuperviso.Checked, False, If(Filename <> "", Archivo.Name, "-1"), "", UsuarioActual.CveUsuario) Else Dim Consecutivo As Integer = TmpDT.Rows.Count - 1 Dim Archivo As New System.IO.FileInfo(String.Format("{0}OS\Temp\OS{1}-{2}.{3}", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, Consecutivo, FileExtension)) If Archivo.Exists() Then Archivo.Delete() 'File.Delete(String.Format("\Empresas\{0}\OI\Temp\OI{1}{2}.{3}", CveEmpresaActual, UsuarioActual.CveUsuario, DtDetalle.Rows.Count, FileExtension)) End If If Filename <> "" Then Filename.FilesMove(String.Format("OS{0}-{1}", UsuarioActual.CveUsuario, Consecutivo), String.Format("Empresas\{0}\OS\Temp", UsuarioActual.CveEmpresa)) End If UpdatePS(Consecutivo, CveOsDetalle, DdlPSDetalle.SelectedValue.ToEntero, DdlPSDetalle.SelectedItem.Text, TxtCantidad.Text.ToEntero, TxtObservacionesServicioDetalle.Text, HdnEspecificaciones.Value.ToString, LtlPSEspecificaciones.Text, "-1", "-1", "", DdlIdentificador.SelectedValue.ToEntero, DdlIdentificador.SelectedItem.Text, "-1", CveUsuarioAtendio, "-1", "-1", "-1", -1, "-1", True, False, False, If(Filename <> "", Archivo.Name, "-1")) End If If Not TieneError Then DdlPSDetalle.SelectedIndex = 0 LtlPSEspecificaciones.Text = "" GvValoresCaracteristicas.DataSource = Nothing GvValoresCaracteristicas.DataBind() TxtObservacionesServicioDetalle.Text = "" TxtArchivo.Text = "[]" Session("OS") = String.Empty UpDatos.Update() UpBodyGv.Update() RegistraScript("$('#DivGvDetalle').modal('hide');LimpiaModalGv();") End If Else Alert("Seleccione un Producto o Servicio", TipoMensaje.MsgAdvertencia) End If Else Alert("Seleccione el cliente", TipoMensaje.MsgAdvertencia) End If End Sub Public Sub imgE_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) HdnModalidad.Value = "U" TxtCantidad.Text = (GvRow.DataKey("Cantidad")) TxtObservacionesServicioDetalle.Text = (GvRow.DataKey("Observaciones")) DdlPSDetalle.SelectedValueExist(GvRow.DataKey("CvePS")) DdlIdentificador.SelectedValueExist(GvRow.DataKey("CveCuentaEquipo")) ChkSeFacturara.Checked = If(GvRow.DataKey("SeFacturara").ToString = "True", True, False) ChkSeSuperviso.Checked = If(GvRow.DataKey("SeSuperviso").ToString = "True", True, False) CveUsuarioAtendio = GvRow.DataKey("CveUsuarioAtendio").ToEntero LtlPSEspecificaciones.Text = (GvRow.DataKey("EspecificacionesMostrar")) If GvRow.DataKey("CveOSDetalle").ToString.ToEntero > 0 Then CveOsDetalle = GvRow.DataKey("CveOSDetalle").ToEntero Else CveOsDetalle = -1 For Each RowE As DataRow In TmpDTCaracteristica.Rows If GvRow.DataKey("CveOSDetalle").ToString.ToEntero > 0 Then GvValoresCaracteristicas.DataSource = TmpDTCaracteristica.FiltraParametros(String.Format("CveOSDetalle = {0}", GvRow.DataKey("CveOSDetalle"))) Else GvValoresCaracteristicas.DataSource = TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", GvRow.DataKey("Consecutivo"))) End If Next GvValoresCaracteristicas.DataBind() BtnAddGvDetalle.Text = "Actualizar" UpAddGvDetalle.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivGvDetalle")) End Sub Public Sub showDivGV_Click(sender As Object, e As EventArgs) 'Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) If CveOS > 0 And TipoEstatus > 1 And CveUsuarioAtendioCount < 0 Then Alert("Ya no se pueden registrar detalles en esta orden de servicio", TipoMensaje.MsgAdvertencia) Exit Sub End If If CveCliente > 0 Then HdnModalidad.Value = "I" CveOsDetalle = -1 GvValoresCaracteristicas.DataSource = Nothing GvValoresCaracteristicas.DataBind() BtnAddGvDetalle.Text = "Agregar" CveConsecutivo += 1 If UsuarioActual.Empresa.Funcionalidad(136) = "1" Then DivCuentaDetalle.Visible = False DdlCuentaEquipo.Visible = False Else DivCuentaDetalle.Visible = True DivCuentaDetalle.Visible = True End If UpBodyGv.Update() UpFooterGv.Update() RegistraScript("showDivGv();") Else Alert("Ingrese un Cliente", TipoMensaje.MsgAdvertencia) End If End Sub Private Sub ChkArchivo_CheckedChanged(sender As Object, e As EventArgs) Handles ChkArchivo.CheckedChanged TabArchivo.Visible = ChkArchivo.Checked UpBodyGv.Update() End Sub Private Sub DisableAll() TxtCodigo.Enabled = False TxtSolicito.Enabled = False TxtDescripcion.Enabled = False TxtFechaRecibido.Enabled = False DdlSubProyecto.Enabled = False DdlEstatusOS.Enabled = False DdlTipoOrdenOS.Enabled = False DdlSucursalCliente.Enabled = False GvPS.Enabled = False End Sub #End Region #Region "E V E N T O - B I T A C O R A" Protected Sub GVEventoBitacora_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvEB.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowIndex = 0 Then e.Row.Cells(0).Width = Unit.Pixel(200) e.Row.Cells(1).Width = Unit.Pixel(200) e.Row.Cells(2).Width = Unit.Pixel(100) e.Row.Cells(3).Width = Unit.Pixel(500) End If e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Left End If End Sub Protected Sub BtnGuardarEventoBitacora_Click(sender As Object, e As EventArgs) Handles BtnGuardarEventoBitacora.Click Dim ObjEventoBitacora As New ClsOIEventos Dim FileExtension As String = "-1" Dim filesgral As List(Of Archivo) = Anexo.getfiles().Archivos Dim filemove As String = "" For Each fileItem As Archivo In filesgral FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "") filemove = fileItem.filename Next If ObjEventoBitacora.AddEventoBitacora(TxtEventoDescripcion.Text.Trim, String.Format(".{0}", FileExtension), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveOS, -1, -1, -1, -1) Then If filemove <> "" Then filemove.FilesMove(String.Format("OI{0}", ObjEventoBitacora.CveEvento.ToString), String.Format("Empresas\{0}\OI", UsuarioActual.CveEmpresa)) End If GvEB.DataSource = ObjEventoBitacora.DtResultados TxtEventoDescripcion.Text = "" Anexo.Text = "[]" Alert("La bitácora/observación se guardó correctamente", TipoMensaje.MsgInformacion) RegistraScript("$('#ModalBitacora').modal('hide')", "hidemodal") End If ObjEventoBitacora.Dispose() GvEB.DataBind() UPEventoBitacora.Update() CargaEventoBitacora() UPAddEventoBitacora.Update() End Sub Private Sub CargaEventoBitacora() Dim ObjEventoBitacora As New ClsOIEventos() If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOS:=CveOS) Then GvEB.DataSource = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") Else GvEB.DataSource = Nothing End If GvEB.DataBind() End Sub #End Region #Region "H I S T O R I A L" Private Sub CargaHistorial() Dim ObjGral As New ClsGenerales If ObjGral.GetHistorialBitacora(-1, -1, -1, CveOS, -1, -1, -1, UsuarioActual.CveEmpresa) Then GvHistorial.DataSource = ObjGral.DtResultados Else GvHistorial.DataSource = Nothing End If GvHistorial.DataBind() ObjGral.Dispose() End Sub #End Region #Region "GV PS" Protected Sub GvPS_RowCommand(sender As Object, e As GridViewCommandEventArgs) Handles GvPS.RowCommand If e.CommandName = "Estatus" Then Dim objOrdenServicio As New ClsOS Dim index = (e.CommandArgument).ToString.ToEntero Dim gvr As GridViewRow = GvPS.Rows(index) Dim Consecutivo As Integer = gvr.FCLiteral("LtlConsecutivo").Text.ToEntero Dim Row As DataRow = TmpDT.FiltraParametros("Consecutivo = " + Consecutivo.ToString).Rows(0) Dim Estatus As Boolean = CBool(Row("Estatus")) 'Dim CveUsuarioAtendio As Integer = If(Estatus = True, UsuarioActual.CveUsuario, -1) Dim CveUsuarioAtendio As Integer = Row("CveUsuarioAtendio").ToString.ToEntero Dim CveOSDetalle As Integer = Row("CveOSDetalle").ToString.ToEntero If CveUsuarioAtendio > 0 Then If objOrdenServicio.UpdateOrdenesServiciosDetalleEstatus(Estatus, CveUsuarioAtendio, "-1", CveOSDetalle) Then For i As Integer = 0 To TmpDT.Rows.Count - 1 If TmpDT.Rows(i)("Consecutivo").ToString.ToEntero = Consecutivo Then TmpDT.Rows(i)("Estatus") = Estatus TmpDT.Rows(i)("CveUsuarioAtendio") = CveUsuarioAtendio End If Next GvPS.DataSource = TmpDT GvPS.DataBind() Dim DetallesPendientes As Integer = TmpDT.COUNT("Estatus", "Estatus = 'False'").ToEntero Dim TipoEstatusSeleccionado As Integer = EstatusOSDelUsuario.FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {}", DdlEstatusOS.SelectedValue), "Orden ASC").ToEntero If DetallesPendientes = 0 AndAlso TipoEstatusSeleccionado = 2 Then 'Se estatus de OS a TERMINADO DdlEstatusOS.SelectedValueExist(GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 3", "CveEstatusOrdenServicio ASC")) DdlEstatusOS_SelectedIndexChanged(sender, New EventArgs) Dim Liga = $"document.location.href=""/OS/RepOrdenesServicios.aspx"";" If objOrdenServicio.UpdateOrdenesServiciosEstatus(GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 3", "CveEstatusOrdenServicio ASC").ToEntero, UsuarioActual.CveUsuario, CveOS) Then Alert("Se cambió el Estatus de la Orden de Servicio", TipoMensaje.MsgInformacion, Liga) End If Else 'Se estatus de OS a En PROCESO DdlEstatusOS.SelectedValueExist(GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC")) DdlEstatusOS_SelectedIndexChanged(sender, New EventArgs) End If UpDatos.Update() UpEstatus.Update() End If Else Alert("No tiene asignada esta tarea", TipoMensaje.MsgError) End If objOrdenServicio.Dispose() End If End Sub Protected Sub GvPS_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvPS.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If CveOS < 0 Then e.Row.FCLinkButton("imgE").Visible = True Else If e.Row.DataKey("CveUsuarioAtendio").ToEntero = UsuarioActual.CveUsuario Then Dim URL As String = String.Format("javascript:LimpiaModal();SetValue('hdnCveOSDetalle', '{0}');SetObjects('{1}');ShowDivRegistro();return false;", e.Row.DBCampo("CveOSDetalle").ToEntero, e.Row.DBCampo("ComentarioTecnico").ToString) 'GeneroLigas Dim Liga As String = String.Format("", URL) e.Row.VerticalAlign = VerticalAlign.Middle e.Row.FCLinkButton("imgComentario").OnClientClick = URL 'Cambia Estatus Dim Estado = TmpDT(e.Row.RowIndex)("Estatus").ToString e.Row.FCLinkButton("imgEstatus").Attributes.Add("data-toggle", "confirmation") If Estado = "False" Then e.Row.FCLinkButton("imgEstatus").Attributes.Add("data-original-title", "¿Está seguro que ya esta terminada en su totalidad esta tarea?") Else e.Row.FCLinkButton("imgEstatus").Enabled = False e.Row.FCLinkButton("imgEstatus").Attributes.Remove("data-toggle") End If e.Row.FCLinkButton("imgE").Visible = True e.Row.FCLinkButton("imgD").Visible = False e.Row.FCLinkButton("imgComentario").Visible = True e.Row.FCLinkButton("imgEstatus").Visible = True e.Row.FCLinkButton("LtlMateriales").Visible = True Else If e.Row.DataKey("CveUsuarioRecibio").ToEntero = UsuarioActual.CveUsuario And TipoEstatus = 1 Then e.Row.FCLinkButton("imgE").Visible = True e.Row.FCLinkButton("imgD").Visible = False Else e.Row.FCLinkButton("imgE").Visible = False e.Row.FCLinkButton("imgD").Visible = False End If e.Row.FCLinkButton("imgComentario").Visible = False e.Row.FCLinkButton("imgEstatus").Visible = False e.Row.FCLinkButton("LtlMateriales").Visible = False End If End If End If End Sub Protected Sub GvPS_RowDeleting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvPS.RowDeleting Dim TieneError = False Dim DbRow As DataRow = Nothing Dim ObjOS As New ClsOS ObjOS.IniciaTransacSQL() Dim CveOSDetalle As Integer = GvPS.Rows(e.RowIndex).DataKey("CveOSDetalle").ToEntero If CveOSDetalle > 0 Then 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 If Not ObjOS.RemoveDetalleMateriales(CveMaterial, CveOSDetalle) Then TieneError = True End If Next End If If ObjOS.RemoveOrdenesServiciosDetalle(CveOSDetalle) Then GvPS.EditIndex = -1 Else TieneError = True End If End If If Not TieneError Then ObjOS.Commit() DbRow = TmpDT.Rows(e.RowIndex) TmpDT.Rows.Remove(DbRow) Else ObjOS.RollBack() End If GvPS.DataSource = TmpDT GvPS.DataBind() ObjOS.Dispose() UpDetalleOS.Update() End Sub Protected Sub GvPS_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvPS.RowUpdating Dim CveClasificacion As Integer = GvPS.Rows(e.RowIndex).FCDropDownList("DdlClasificacion").SelectedValue.ToEntero Dim Clasificacion As String = GvPS.Rows(e.RowIndex).FCDropDownList("DdlClasificacion").SelectedItem.Text Dim CvePS As Integer = GvPS.Rows(e.RowIndex).FCDropDownList("DdlPS").SelectedValue.ToEntero Dim PS As String = GvPS.Rows(e.RowIndex).FCDropDownList("DdlPS").SelectedItem.Text Dim Observaciones As String = GvPS.Rows(e.RowIndex).FCTextBox("TxtObservacionesServicio").Text Dim Ddl As DropDownList = GvPS.Rows(e.RowIndex).FCDropDownList("DdlUnidadMedida") Dim Cantidad As String = GvPS.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text Dim CveUM As Integer = Ddl.SelectedValue.ToEntero Dim UM As String = Ddl.SelectedItem.Text Dim CveCuentaEquipo As Integer = GvPS.Rows(e.RowIndex).FCHiddenField("HndCveCuentaEquipo").Value.ToEntero Dim CuentaEquipoLink As String = GvPS.Rows(e.RowIndex).FCLiteral("LtlCuentaEquipo").Text Dim CuentaEquipoMostrar As String = GvPS.Rows(e.RowIndex).FCButton("BtnBuscarCuentaEquipo").Text Dim Especificaciones As String = GvPS.Rows(e.RowIndex).FCHiddenField("HndEspecificaciones").Value.ToString Dim EspecificacionesLink As String = GvPS.Rows(e.RowIndex).FCLiteral("LtlEspecificaciones").Text Dim SeFacturara As Boolean = GvPS.Rows(e.RowIndex).FCCheckBox("ChkSeFacturara").Checked TmpDT.Rows(e.RowIndex)("CveClasificacion") = CveClasificacion TmpDT.Rows(e.RowIndex)("Clasificacion") = Clasificacion TmpDT.Rows(e.RowIndex)("CvePS") = CvePS TmpDT.Rows(e.RowIndex)("PS") = PS TmpDT.Rows(e.RowIndex)("Observaciones") = Observaciones TmpDT.Rows(e.RowIndex)("Cantidad") = Cantidad TmpDT.Rows(e.RowIndex)("CveUM") = CveUM TmpDT.Rows(e.RowIndex)("UM") = UM TmpDT.Rows(e.RowIndex)("CveCuentaEquipo") = CveCuentaEquipo TmpDT.Rows(e.RowIndex)("CuentaEquipoLink") = CuentaEquipoLink TmpDT.Rows(e.RowIndex)("CuentaEquipoMostrar") = CuentaEquipoMostrar If Especificaciones <> String.Empty Then TmpDT.Rows(e.RowIndex)("Especificaciones") = Especificaciones TmpDT.Rows(e.RowIndex)("EspecificacionesMostrar") = EspecificacionesParaMostrar(Especificaciones, "
") End If TmpDT.Rows(e.RowIndex)("EspecificacionesLink") = EspecificacionesLink TmpDT.Rows(e.RowIndex)("SeFacturara") = SeFacturara.ToString Dim Archivo As String = If(Not Session("OS") Is Nothing AndAlso Session("OS").ToString <> String.Empty, Session("OS").ToString, "-1") If Archivo <> "-1" Then 'cambiar el nombre a el archivo Dim DirectorioEmpresa As String = UsuarioActual.Empresa.Ruta Archivo = String.Format("{0}-{1}{2}", CveOS, TmpDT.Rows(e.RowIndex)("Consecutivo"), System.IO.Path.GetExtension(Archivo)) Rename(DirectorioEmpresa & "\OS\temp\" & Session("OS").ToString, DirectorioEmpresa & "\OS\temp\" & Archivo) TmpDT.Rows(e.RowIndex)("Archivo") = Archivo End If Session("OS") = String.Empty GvPS.EditIndex = -1 GvPS.DataSource = TmpDT GvPS.DataBind() ' UpDatos.Update() End Sub #End Region #Region "COMENTARIO TECNICO" Public Sub Comentario_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) 'hdnCveOSDetalle.Value = GvRow.DBCampo("CveOSDetalle").ToString TxtComentarioTecnico.Text = GvRow.DataKey("ComentarioTecnico") UpAddComentario.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivComentarioTecnico")) End Sub Protected Sub BtnComentarioTecnico_Click(sender As Object, e As EventArgs) Handles BtnComentarioTecnico.Click Dim objOrdenServicio As New ClsOS Dim CveOSDetalle As Integer = hdnCveOSDetalle.Value.ToEntero Dim ComentarioTecnico As String = TxtComentarioTecnico.Text.Trim If objOrdenServicio.UpdateOrdenesServiciosDetalleComentarioTecnico(ComentarioTecnico, CveOSDetalle) Then For i As Integer = 0 To TmpDT.Rows.Count - 1 If TmpDT.Rows(i)("CveOSDetalle").ToString.ToEntero = CveOSDetalle Then TmpDT.Rows(i)("ComentarioTecnico") = ComentarioTecnico End If Next 'Dim DR = TmpDT.Select($"CveOSDetalle = {CveOSDetalle}") 'DR(0)("Observaciones") = String.Format("{0}
{1}", DR(0)("Observaciones"), ComentarioTecnico) 'TmpDT.AcceptChanges() GvPS.DataSource = TmpDT GvPS.DataBind() UpDatos.Update() End If objOrdenServicio.Dispose() RegistraScript("$('#DivComentarioTecnico').modal('hide');") End Sub #End Region #Region "CUENTAS Y EQUIPOS MODAL" Private Sub CreaDTCuentaCaracteristicas() TmpDTCuentaCaracteristica = New DataTable TmpDTCuentaCaracteristica.Columns.Add("CveCaracteristicaValor", GetType(Integer)) TmpDTCuentaCaracteristica.Columns.Add("CveCaracteristica", GetType(Integer)) TmpDTCuentaCaracteristica.Columns.Add("Caracteristica", GetType(String)) TmpDTCuentaCaracteristica.Columns.Add("CveCaracteristicaTipo", GetType(String)) TmpDTCuentaCaracteristica.Columns.Add("CveOpcion", GetType(Integer)) TmpDTCuentaCaracteristica.Columns.Add("Opcion", GetType(String)) TmpDTCuentaCaracteristica.Columns.Add("Valor", GetType(String)) End Sub Private Sub AddCuentas(CveOSDetalle As Integer, CveTipoCuentaEquipo As Integer, TipoCuentaEquipo As String, CveCuentaEquipo As Integer, CuentaEquipo As String) Dim Row As DataRow = Nothing Row = TmpDTCuentaEquipo.NewRow() Row("CveOSDetalle") = CveOSDetalle Row("CveConsecutivo") = CveConsecutivo Row("CveTipoCuentaEquipo") = CveTipoCuentaEquipo Row("CveCuentaEquipo") = CveCuentaEquipo Row("TipoCuentaEquipo") = TipoCuentaEquipo Row("CuentaEquipo") = CuentaEquipo TmpDTCuentaEquipo.Rows.Add(Row) End Sub Protected Sub CargarCuentasEquipos(CveCliente As Integer) Dim ObjGenerales As New ClsGenerales DdlTipoCuentaDetalle.Items.Clear() If ObjGenerales.GetTipoCuentasEquipos() Then DdlTipoCuentaDetalle.DataSource = ObjGenerales.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) DdlTipoCuentaDetalle.DataBind() End If UpBodyAgregarCuenta.Update() ObjGenerales.Dispose() End Sub Protected Sub BtnAgregarCuenta_Click(sender As Object, e As EventArgs) RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarCuenta")) End Sub Private Sub BtnGuardarCuenta_Click(sender As Object, e As EventArgs) Handles BtnGuardarCuenta.Click Dim TieneError = False Dim objCuentasEquipos As New ClsGenerales() objCuentasEquipos.IniciaTransacSQL() If Not objCuentasEquipos.AddCuentaEquipo(CveCliente, DdlTipoCuentaDetalle.SelectedValue.ToEntero, TxtCuentaEquipo.Text.Trim, TxtNoSerie.Text.Trim, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaEquipoRelacionado:=DdlCuentaRelacionado.SelectedValue.ToEntero) Then TieneError = True End If For Each gvr As GridViewRow In GvCuentasCaracteristicas.Rows If gvr.RowType = DataControlRowType.DataRow Then Dim CveCaracteristica As Integer = gvr.DataKey("CveCaracteristica").ToEntero Dim CveCaracteristicaOpcion As Integer = If(gvr.FCDropDownList("DdlCarcateristicaOpcion").Visible = True, gvr.FCDropDownList("DdlCarcateristicaOpcion").SelectedValue.ToEntero, -1) Dim Valor As String = If(gvr.FCTextBox("TxtCuentaValor").Visible = True, gvr.FCTextBox("TxtCuentaValor").Text, gvr.FCDropDownList("DdlCarcateristicaOpcion").SelectedItem.Text) If Not objCuentasEquipos.AddUpdateCaracteristicasValores(CveCaracteristica, CveCaracteristicaOpcion, Valor, UsuarioActual.CveUsuario, CveCuentaEquipo:=objCuentasEquipos.CveCuentaEquipo) Then TieneError = True End If End If Next If Not TieneError Then objCuentasEquipos.Commit() CargarCuentasEquipos(CveCliente) TxtCuentaEquipo.Text = "" TxtNoSerie.Text = "" DdlTipoCuentaDetalle.SelectedValueExist(-1) CargaCuentas() DdlIdentificador.SelectedValueExist(objCuentasEquipos.CveCuentaEquipo) UpBodyAgregarCuenta.Update() Else objCuentasEquipos.RollBack() End If RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarCuenta")) UpDetalleOS.Update() objCuentasEquipos.Dispose() End Sub Protected Sub CargaCuentas() Dim ObjCuentasEquipos As New ClsGenerales() DdlIdentificador.Items.Clear() DdlCuentaEquipo.Items.Clear() DdlCuentaRelacionado.Items.Clear() If ObjCuentasEquipos.GetCuentasEquipos(CveCliente, -1) Then DdlIdentificador.DataSource = ObjCuentasEquipos.DtResultados DdlCuentaEquipo.DataSource = ObjCuentasEquipos.DtResultados DdlCuentaRelacionado.DataSource = ObjCuentasEquipos.DtResultados End If UpBodyGv.Update() UpDetalleOS.Update() ObjCuentasEquipos.Dispose() DdlIdentificador.DataBind() DdlCuentaEquipo.DataBind() DdlCuentaRelacionado.DataBind() DdlIdentificador.Items.Insert(0, New ListItem(" - ", "-1")) DdlCuentaEquipo.Items.Insert(0, New ListItem(" - ", "-1")) DdlCuentaRelacionado.Items.Insert(0, New ListItem(" - ", "-1")) End Sub Private Sub BtaAgregarCuentaEquipo_Click(sender As Object, e As EventArgs) Handles BtaAgregarCuentaEquipo.Click DdlClienteSucursalCuenta.SelectedValueExist(DdlSucursalCliente.SelectedValue) UpBodyAgregarCuenta.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarCuenta")) End Sub Private Sub CargaCuentasCaracteristicas() Dim ObjCaracteristicas As New ClsGenerales If ObjCaracteristicas.GetCaracteristicas(-1, 6, UsuarioActual.CveEmpresa) Then GvCuentasCaracteristicas.DataSource = ObjCaracteristicas.DtResultados Else GvCuentasCaracteristicas.DataSource = Nothing End If GvCuentasCaracteristicas.DataBind() ObjCaracteristicas.Dispose() End Sub Private Sub GvCuentasCaracteristicas_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCuentasCaracteristicas.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim CveCaracteristicaTipo As Integer = e.Row.DataKey("CveCaracteristicaTipo").ToEntero Dim dtTemp As New DataTable Dim objCaracteristicas As New ClsGenerales Dim CveCaracteristica As Integer = e.Row.DataKey("CveCaracteristica").ToEntero Dim DdlCarcateristicaOpcion As DropDownList = e.Row.FCDropDownList("DdlCarcateristicaOpcion") Dim TxtCuentaValor As TextBox = e.Row.FCTextBox("TxtCuentaValor") If objCaracteristicas.GetCaracteriscasOpciones(-1, UsuarioActual.Empresa.CveEmpresa) Then dtTemp = objCaracteristicas.DtResultados End If Select Case CveCaracteristicaTipo Case 0 TxtCuentaValor.Visible = True Case 1 DdlCarcateristicaOpcion.Visible = True dtTemp = dtTemp.FiltraParametros(" CveCaracteristica = " & CveCaracteristica) DdlCarcateristicaOpcion.DataSource = dtTemp DdlCarcateristicaOpcion.DataBind() DdlCarcateristicaOpcion.Items.Insert(0, New ListItem("-", "-1")) End Select objCaracteristicas.Dispose() End If End Sub Private Sub DdlCuentaEquipo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCuentaEquipo.SelectedIndexChanged DdlIdentificador.SelectedValueExist(DdlCuentaEquipo.SelectedValue) UpBodyGv.Update() End Sub #End Region #Region "ESPECIFICACIONES MODAL" Private Sub CreaDTPS() TmpDTCaracteristica = New DataTable TmpDTCaracteristica.Columns.Add("CveConsecutivo", GetType(Integer)) TmpDTCaracteristica.Columns.Add("CveConsecutivoDetalle", GetType(Integer)) TmpDTCaracteristica.Columns.Add("CveOSDetalle", GetType(Integer)) TmpDTCaracteristica.Columns.Add("CveCaracteristicaValor", GetType(Integer)) TmpDTCaracteristica.Columns.Add("CveCaracteristica", GetType(Integer)) TmpDTCaracteristica.Columns.Add("Caracteristica", GetType(String)) TmpDTCaracteristica.Columns.Add("CveCaracteristicaTipo", GetType(String)) TmpDTCaracteristica.Columns.Add("CveOpcion", GetType(Integer)) TmpDTCaracteristica.Columns.Add("Opcion", GetType(String)) TmpDTCaracteristica.Columns.Add("Valor", GetType(String)) End Sub Private Sub CargaPSCaracteristicasOpciones() Dim ObjCuentasEquipos As New ClsGenerales DdlOpcion.Items.Clear() If DdlCaracteristica.SelectedValue.ToString <> "" Then If ObjCuentasEquipos.GetCaracteristicasValores(-1, -1, DdlPSDetalle.SelectedValue.ToEntero, -1, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then DdlOpcion.DataSource = ObjCuentasEquipos.DtResultados.FiltraParametros("CveCaracteristica = " + DdlCaracteristica.SelectedValue.ToString) DdlOpcion.DataBind() End If End If ObjCuentasEquipos.Dispose() End Sub Private Sub CargaPSCaracteristicas() Dim ObjCaracteristicas As New ClsGenerales DdlCaracteristica.Items.Clear() If ObjCaracteristicas.GetCaracteristicasValores(-1, -1, DdlPSDetalle.SelectedValue.ToEntero, -1, -1, -1, 5, UsuarioActual.CveEmpresa, OpcionListado:=1) Then If ObjCaracteristicas.DtResultados.Rows.Count > 0 Then DdlCaracteristica.DataSource = ObjCaracteristicas.DtResultados TabEspecificaciones.Visible = True Else DdlCaracteristica.DataSource = Nothing TabEspecificaciones.Visible = False End If End If ObjCaracteristicas.Dispose() DdlCaracteristica.DataBind() CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero) End Sub Protected Sub DdlCaracteristica_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlCaracteristica.SelectedIndexChanged CambioProductosServiciosCaracteristicas(DdlCaracteristica.SelectedValue.ToEntero) End Sub Protected Sub CambioProductosServiciosCaracteristicas(Caracteristica As Integer) Dim ObjCaracteristicas As New ClsGenerales Dim DV As New DataView If DdlCaracteristica.SelectedValue <> "" Then If ObjCaracteristicas.GetCaracteristicas(-1, 5, UsuarioActual.CveEmpresa) Then DV = ObjCaracteristicas.DtResultados.FiltraParametros("CveCaracteristica = " + DdlCaracteristica.SelectedValue.ToString).AsDataView End If If DV(0)("CveCaracteristicaTipo").ToString = "1" Then DdlOpcion.Visible = True CargaPSCaracteristicasOpciones() txtValor.Visible = False ElseIf DV(0)("CveCaracteristicaTipo").ToString = "0" Then DdlOpcion.Visible = False txtValor.Visible = True End If Else DdlOpcion.ClearSelection() DdlOpcion.DataSource = "" DdlOpcion.DataBind() End If ObjCaracteristicas.Dispose() End Sub Protected Sub LbAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click Dim Consecutivo As Integer = TmpDTCaracteristica.Rows.Count + 1 If DdlCaracteristica.SelectedValue <> "" Then Dim EsOpcion As String Dim CveCaracteristicaTipo As Integer Dim Opcion As String Dim Valor As String If DdlOpcion.Visible = True Then EsOpcion = "Sí" CveCaracteristicaTipo = DdlOpcion.SelectedValue.ToEntero Opcion = DdlOpcion.SelectedItem.Text Valor = "-1" Else EsOpcion = "No" CveCaracteristicaTipo = -1 Opcion = "-1" Valor = txtValor.Text End If AddEspecificacion(DdlCaracteristica.SelectedValue.ToEntero, DdlCaracteristica.SelectedItem.Text, EsOpcion, CveCaracteristicaTipo, Opcion, Valor, Consecutivo) End If End Sub Private Sub AddEspecificacion(CveCaracteristica As Integer, Caracteristica As String, CveCaracteristicaTipo As String, CveOpcion As Integer, Opcion As String, Valor As String, Consecutivo As Integer) Dim Row As DataRow = Nothing Row = TmpDTCaracteristica.NewRow() Row("CveConsecutivo") = Consecutivo Row("CveConsecutivoDetalle") = CveConsecutivo Row("CveOSDetalle") = CveOsDetalle Row("CveCaracteristica") = CveCaracteristica Row("Caracteristica") = Caracteristica Row("CveCaracteristicaTipo") = CveCaracteristicaTipo Row("CveOpcion") = CveOpcion Row("Opcion") = Opcion If CveCaracteristicaTipo = "Sí" Then Row("Valor") = Opcion Else Row("Valor") = Valor End If TmpDTCaracteristica.Rows.Add(Row) For Each RowE As DataRow In TmpDTCaracteristica.Rows If RowE("CveOSDetalle").ToString.ToEntero > 0 Then GvValoresCaracteristicas.DataSource = TmpDTCaracteristica.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOsDetalle)) Else GvValoresCaracteristicas.DataSource = TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", CveConsecutivo)) End If Next GvValoresCaracteristicas.DataBind() Dim Especificaciones As String = "-1" If CveOsDetalle > 0 Then For Each R As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOsDetalle)).Rows If Especificaciones = "-1" Then Especificaciones = "" Else Especificaciones = Especificaciones + "," Especificaciones = Especificaciones + String.Format("{0}:{1}:{2}:{3}:{4}:{5}", R("CveCaracteristica").ToString, R("Caracteristica").ToString, R("CveCaracteristicaTipo"), R("CveOpcion").ToString, R("Opcion").ToString, R("Valor").ToString) Next Else For Each R As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", CveConsecutivo)).Rows If Especificaciones = "-1" Then Especificaciones = "" Else Especificaciones = Especificaciones + "," Especificaciones = Especificaciones + String.Format("{0}:{1}:{2}:{3}:{4}:{5}", R("CveCaracteristica").ToString, R("Caracteristica").ToString, R("CveCaracteristicaTipo"), R("CveOpcion").ToString, R("Opcion").ToString, R("Valor").ToString) Next End If RegistraScript(String.Format("CargaEspecificacionesPop('{0}');", Especificaciones)) UpBodyGv.Update() End Sub Private Sub GvValoresCaracteristicas_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvValoresCaracteristicas.RowDeleting Dim ObjGenerales As New ClsGenerales Dim DbRow As DataRow = Nothing Dim CveCaracteristica As Integer = GvValoresCaracteristicas.Rows(e.RowIndex).DataKey("CveCaracteristica").ToEntero Dim CveOSDetalle As Integer = GvValoresCaracteristicas.Rows(e.RowIndex).DataKey("CveOSDetalle").ToEntero If CveOSDetalle > 0 Then If ObjGenerales.RemoveCaracteristicasValores(CveCaracteristica, CveOSDetalle) Then GvValoresCaracteristicas.EditIndex = -1 End If Else DbRow = TmpDTCaracteristica.Rows(e.RowIndex) TmpDTCaracteristica.Rows.Remove(DbRow) End If CargaGridValores() Dim Especificaciones As String = "-1" For Each R As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivo = {0}", CveConsecutivo)).Rows If Especificaciones = "-1" Then Especificaciones = "" Else Especificaciones = Especificaciones + "," Especificaciones = Especificaciones + String.Format("{0}:{1}:{2}:{3}:{4}:{5}", R("CveCaracteristica").ToString, R("Caracteristica").ToString, R("CveCaracteristicaTipo"), R("CveOpcion").ToString, R("Opcion").ToString, R("Valor").ToString) Next RegistraScript(String.Format("CargaEspecificacionesPop('{0}');", Especificaciones)) ObjGenerales.Dispose() End Sub Private Sub CargaGridValores() GvValoresCaracteristicas.DataSource = TmpDTCaracteristica GvValoresCaracteristicas.DataBind() UpCaracteristicas.Update() End Sub #End Region #Region "MATERIALES MODAL" Private Sub CreaDtMaterialesDetalle() TmpDTMaterialesDetalle = New DataTable TmpDTMaterialesDetalle.Columns.Add("CveOSDetalle", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("CveConsecutivo", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("CveConsecutivoDetalle", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("CveMaterial", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("CveMovimiento", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("Cantidad", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("CveClasificacion", GetType(Integer)) TmpDTMaterialesDetalle.Columns.Add("CvePS", GetType(String)) TmpDTMaterialesDetalle.Columns.Add("CveUM", GetType(String)) TmpDTMaterialesDetalle.Columns.Add("Clasificacion", GetType(String)) TmpDTMaterialesDetalle.Columns.Add("PS", GetType(String)) TmpDTMaterialesDetalle.Columns.Add("UM", GetType(String)) End Sub Protected Sub LtlMateriales_Click(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) If GvRow.DataKey("CveOSDetalle").ToString.ToEntero > 0 Then CveOsDetalle = GvRow.DataKey("CveOSDetalle").ToEntero Else CveOsDetalle = -1 For Each RowE As DataRow In TmpDTMaterialesDetalle.Rows If GvRow.DataKey("CveOSDetalle").ToString.ToEntero > 0 Then GvMaterialesModal.DataSource = TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", GvRow.DataKey("CveOSDetalle"))) Else GvMaterialesModal.DataSource = TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", GvRow.DataKey("Consecutivo"))) End If Next GvMaterialesModal.DataBind() UpAddMateriales.Update() RegistraScript(String.Format("$('#{0}').modal();", "DivGvMateriales")) End Sub 'Private Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlClasificacion.SelectedIndexChanged ' CargaPsMateriales() ' UpAddMateriales.Update() 'End Sub Private Sub DdlPS_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlPS.selectedindexchange If CveCliente > 0 OrElse DdlPS.SelectedValue = "-2" Then If DdlPS.SelectedValue.ToEntero > 1 Then Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") If drPS IsNot Nothing Then DdlUnidadMedidaM.Items.Clear() DdlUnidadMedidaM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveUnidadMedida = {0}", drPS("CveUM"))) DdlUnidadMedidaM.DataBind() DdlUnidadMedidaM.SelectedValueExist(drPS("CveUnidadMedida").ToString) 'If DdlClasificacion.SelectedIndex = 0 Then ' If drPS("CveClasificacion").ToString IsNot Nothing Then ' DdlClasificacion.SelectedValueExist(drPS("CveClasificacion").ToString) ' Else ' Alert("El Productos/Servicio no tiene asignada una Clasificación.") ' End If 'End If End If End If End If End Sub Private Sub LbAgregarMaterial_Click(sender As Object, e As EventArgs) Handles LbAgregarMaterial.Click Dim ObjPS As New ClsProductosServicios Dim Clasificacion As String = "" Dim CveClasificacion As Integer If ObjPS.GetPS(DdlPS.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) Then Clasificacion = ObjPS.DtResultados.Rows(0)("Clasificacion").ToString CveClasificacion = ObjPS.CveClasificacion End If Dim Consecutivo As Integer = TmpDTMaterialesDetalle.Rows.Count + 1 AddMaterial(CveOsDetalle, CveClasificacion, TxtCantidadM.Text.ToEntero, Clasificacion, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, DdlUnidadMedidaM.SelectedValue.ToEntero, DdlUnidadMedidaM.SelectedItem.Text, Consecutivo) TxtCantidadM.Text = "" CargaPsMateriales() End Sub Private Sub AddMaterial(CveOSDetalle As Integer, CveClasificacion As Integer, Cantidad As Integer, Clasificacion As String, CvePS As Integer, PS As String, CveUM As Integer, UM As String, Consecutivo As Integer) Dim Row As DataRow = Nothing Row = TmpDTMaterialesDetalle.NewRow() Row("CveConsecutivo") = Consecutivo Row("CveConsecutivoDetalle") = CveConsecutivo Row("CveOSDetalle") = CveOSDetalle Row("CveMaterial") = -1 Row("Cantidad") = Cantidad Row("CveClasificacion") = CveClasificacion Row("CvePS") = CvePS Row("CveUM") = CveUM Row("Clasificacion") = Clasificacion Row("PS") = PS Row("UM") = UM TmpDTMaterialesDetalle.Rows.Add(Row) For Each RowE As DataRow In TmpDTMaterialesDetalle.Rows If RowE("CveOSDetalle").ToString.ToEntero > 0 Then GvMaterialesModal.DataSource = TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)) Else GvMaterialesModal.DataSource = TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", CveConsecutivo)) End If Next GvMaterialesModal.DataBind() Materiales = "-1" If CveOSDetalle > 0 Then For Each R As DataRow In TmpDTMaterialesDetalle.FiltraParametros(String.Format("CveOSDetalle = {0}", CveOSDetalle)).Rows If Materiales = "-1" Then Materiales = "" Else Materiales = Materiales + "
" Materiales = Materiales + String.Format("{0} {1}", R("Cantidad").ToString, R("PS").ToString) Next Else For Each R As DataRow In TmpDTCaracteristica.FiltraParametros(String.Format("CveConsecutivoDetalle = {0}", CveConsecutivo)).Rows If Materiales = "-1" Then Materiales = "" Else Materiales = Materiales + "
" Materiales = Materiales + String.Format("{0} {1}", R("Cantidad").ToString, R("PS").ToString) Next End If Dim DR = TmpDT.Select($"Consecutivo = {CveConsecutivo}") DR(0)("Materiales") = Materiales TmpDT.AcceptChanges() GvPS.DataSource() = TmpDT GvPS.DataBind() UpDetalleOS.Update() UpAddMateriales.Update() End Sub Private Sub BtnGuardarMateriales_Click(sender As Object, e As EventArgs) Handles BtnGuardarMateriales.Click 'VALIDA ALMACEN ORIGEN Y DESTINO Dim ErrorEncontrado As New StringBuilder If DdlAlmacenOrigen.SelectedValue = DdlAlmacenDestino.SelectedValue Then Alert("No se puede realizar un traspaso entre el mismo almacén.", TipoMensaje.MsgAdvertencia) Exit Sub End If If GvMaterialesModal.Rows.Count > 0 Then Dim ObjInventario As New ClsInventarios ObjInventario.IniciaTransacSQL() Dim CveTraspasoSolicitud As Integer = 0 Dim TieneError As Boolean = False Dim ErrorExistencia = False Dim TextoExistencia As StringBuilder = New StringBuilder 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN Dim Existencia As Double TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
") For Each dr As DataRow In TmpDTMaterialesDetalle.Rows Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59")) Existencia -= TmpDTMaterialesDetalle.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} ") If Existencia < 0 Then ErrorExistencia = True dr("Cantidad") = Existencia TextoExistencia.AppendFormat("- #{0}
", dr("PS").ToString) End If Next Dim Estatus As Integer = -1 If UsuarioActual.Empresa.Funcionalidad(105) <> "" Then Estatus = 1 Else Estatus = 3 End If Dim Folio As Integer = ObjInventario.AddTrasladoSolicitud($"Solicitud de traspaso OS#{LblFolio.Text}", DdlAlmacenOrigen.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero, Estatus, -1, TxtFecha.Text.ToDate, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOS:=CveOS) If Folio > 0 Then CveTraspasoSolicitud = ObjInventario.CveTraspasoSolicitud Else TieneError = True End If 'SI OCURRIO UN ERROR EN LA EXISTENCIA RECARGAMOS EL GRID PARA COLOREAR LOS DETALLES CON ERROR If ErrorExistencia Then Alert("Ocurrió un error en la existencia", TipoMensaje.MsgError) TieneError = True End If If Not TieneError Then Dim ObjOS As New ClsOS Dim MaterialesDetalleNuevos As DataTable = TmpDTMaterialesDetalle.FiltraParametros("CveMaterial = -1") For Each Row As DataRow In MaterialesDetalleNuevos.Rows Dim CveUM As Integer = Row("CveUM").ToString.ToEntero Dim CvePS As Integer = Row("CvePS").ToString.ToEntero Dim Cantidad As Integer = Row("Cantidad").ToString.ToEntero Dim CveClasificacion As Integer = Row("CveClasificacion").ToString.ToEntero If Not ObjOS.AddUpdateDetalleMateriales(-1, CveOsDetalle, Cantidad, CveUM, CveClasificacion, CvePS, True) Then TieneError = True ErrorEncontrado.AppendFormat("Ocurrió un Error al agregar los materiales.
") Exit For End If If Not ObjInventario.AddTrasladoSolicitudDetalle(CveTraspasoSolicitud, Cantidad, CveUM, CvePS, 0, "", -1) Then ErrorEncontrado.AppendFormat("Ocurrió un Error al guardar el traspaso.") TieneError = True Exit For End If Next ObjOS.Dispose() End If If Not TieneError Then ObjInventario.Commit() Alert($"El Traspaso se guardó correctamente con el folio #: {Folio}.", TipoMensaje.MsgInformacion, $"document.location.href=""/Inventarios/TrasladoSolicitud.aspx?CveTraspasoSolicitud={CveTraspasoSolicitud}""") Else ObjInventario.RollBack() Alert(ErrorEncontrado.ToString, TipoMensaje.MsgError) End If ObjInventario.Dispose() End If RegistraScript(String.Format("$('#{0}').modal('hide');", "DivGvMateriales")) End Sub Private Sub GvMaterialesModal_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvMaterialesModal.RowDeleting Dim ObjMateriales As New ClsOS Dim ObjInventario As New ClsInventarios(ObjMateriales.IniciaTransacSQL) Dim TieneError = False Dim DbRow As DataRow = Nothing Dim CveMaterial As Integer = GvMaterialesModal.Rows(e.RowIndex).DataKey("CveMaterial").ToEntero Dim CveOSDetalle As Integer = GvMaterialesModal.Rows(e.RowIndex).DataKey("CveOSDetalle").ToEntero Dim CveMovimiento As Integer = GvMaterialesModal.Rows(e.RowIndex).DataKey("CveMovimiento").ToEntero Dim CveConsecutivo As Integer = GvMaterialesModal.Rows(e.RowIndex).DataKey("CveConsecutivo").ToEntero If CveMaterial > 0 Then Dim CveMovimientoSalida = 0 Dim CveMovimientoEntrada = 0 Dim CveMovimientoSalida2 = 0 Dim CveMovimientoEntrada2 = 0 Dim CveMovimientoSalida3 = 0 Dim CveMovimientoEntrada3 = 0 Dim AlmacenEntrada = -1 Dim FolioSalida = 0 Dim FolioEntrada = 0 Dim ErrorMovInv As Boolean = False Dim ErrorAC As Boolean = False Dim ErrorExistencia = False Dim TextoError = "" Dim TextoExistencia As StringBuilder = New StringBuilder 'Obtenemos los movimientos detalle If ObjInventario.GetMovimientosOS(9, CveOS, UsuarioActual.CveEmpresa) Then If ObjInventario.DtResultados.Rows.Count > 0 Then Dim CveAlmacenOrigen As Integer = ObjInventario.DtResultados(0)("CveAlmacen").ToString.ToEntero Dim CveAlmacenDestino As Integer = ObjInventario.DtResultados(0)("AlmacenDestino2").ToString.ToEntero Dim CveMoneda As Integer = ObjInventario.DtResultados(0)("CveMoneda").ToString.ToEntero Dim CveTipoAlmacen As Integer = ObjInventario.DtResultados(0)("CveTipoAlmacen").ToString.ToEntero 'AGREGAMOS LA ENTRADA Movto 1 If Not TieneError Then AlmacenEntrada = CveAlmacenOrigen CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=CveAlmacenDestino, CveMovimientoRelacionado:=CveMovimientoSalida, CveOS:=CveOS) FolioEntrada = ObjInventario.Folio If CveMovimientoEntrada <= 0 Then TextoError = "No se pudo generar el movimiento de entrada correctamente" TieneError = True Else If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, -1, -1) Then TieneError = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For End If Next End If End If End If 'AGREGAMOS LA ENTRADA Movto 2 If Not TieneError Then AlmacenEntrada = CveAlmacenDestino CveMovimientoEntrada2 = ObjInventario.AddMovimiento(AlmacenEntrada, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=-1, CveMovimientoRelacionado:=CveMovimientoEntrada, CveOS:=CveOS) FolioEntrada = ObjInventario.Folio If CveMovimientoEntrada2 <= 0 Then TextoError = "No se pudo generar el movimiento de entrada correctamente" TieneError = True Else If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In ObjInventario.DtResultados.Rows If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada2, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, -1, -1) Then TieneError = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For End If Next End If End If End If If Not TieneError Then If ObjMateriales.RemoveDetalleMateriales(CveMaterial, CveOSDetalle) Then GvMaterialesModal.EditIndex = -1 Else TieneError = True End If Else ObjMateriales.RollBack() Alert(TextoError, TipoMensaje.MsgError) RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") End If End If End If End If If Not TieneError Then ObjMateriales.Commit() DbRow = TmpDTMaterialesDetalle.Rows(e.RowIndex) TmpDTMaterialesDetalle.Rows.Remove(DbRow) If CveOSDetalle > 0 Then CargaGvMateriales(String.Format("CveOSDetalle = {0}", CveOSDetalle)) Else CargaGvMateriales(String.Format("CveConsecutivo = {0}", CveConsecutivo)) End If Else ObjMateriales.RollBack() Alert("No se pudo eliminar el material", TipoMensaje.MsgError) End If ObjMateriales.Dispose() ObjInventario.Dispose() UpGvMateriales.Update() End Sub Private Sub CargaGvMateriales(Filtro As String) GvMaterialesModal.DataSource = TmpDTMaterialesDetalle.FiltraParametros(Filtro) GvMaterialesModal.DataBind() UpGvMateriales.Update() End Sub #End Region #Region "I M P R I M I R PDF" Private Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click Dim mensajeImprimir As New StringBuilder mensajeImprimir.AppendFormat(String.Format("
Descargar Orden de Servicio con Folio:
{1}
", CveOS, CveFolio)) mensajeImprimir.AppendFormat("
", Encripta(String.Format("OP=OS&CVEOS={0}", CveOS))) Alert(mensajeImprimir.ToString, TipoMensaje.MsgInformacion) End Sub #End Region #Region "S O L I C I T A R M A T E R I A L" Private Sub CreaDtSolicitarMateriales() TmpDTSolicitarMaterial = New DataTable TmpDTSolicitarMaterial.Columns.Add("CveConsecutivo", GetType(Integer)) TmpDTSolicitarMaterial.Columns.Add("Cantidad", GetType(Integer)) TmpDTSolicitarMaterial.Columns.Add("CveClasificacion", GetType(Integer)) TmpDTSolicitarMaterial.Columns.Add("CvePS", GetType(String)) TmpDTSolicitarMaterial.Columns.Add("CveUM", GetType(String)) TmpDTSolicitarMaterial.Columns.Add("Clasificacion", GetType(String)) TmpDTSolicitarMaterial.Columns.Add("PS", GetType(String)) TmpDTSolicitarMaterial.Columns.Add("UM", GetType(String)) End Sub Public Sub CargaAlmacen() DdlAlmacenOrigen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (1)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacenOrigen.DataBind() DdlAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlAlmacenDestino.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (23)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacenDestino.DataBind() DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Public Sub ShowDivSolicitarMaterial_Click(sender As Object, e As EventArgs) RegistraScript("ShowDivGvSolicitarMaterial();") End Sub Private Sub CargaPsSoliciarMaterial(CveClasificacion As Integer, Objeto As DropDownList) Objeto.Items.Clear() Objeto.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1).FiltraParametros("CveTipoPS=2") Objeto.DataBind() Objeto.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) Objeto.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) End Sub 'Private Sub LbGuardaSolicitarMaterial_Click(sender As Object, e As EventArgs) Handles LbGuardaSolicitarMaterial.Click ' 'VALIDA ALMACEN ORIGEN Y DESTINO ' If DdlAlmacenOrigen.SelectedValue = DdlAlmacenDestino.SelectedValue Then ' Alert("No se puede realizar un traspaso entre el mismo almacén.", TipoMensaje.MsgAdvertencia) ' Exit Sub ' End If ' If GvSolicitarMaterial.Rows.Count > 0 Then ' Dim ObjInventario As New ClsInventarios ' Dim CveMovimientoSalida = 0 ' Dim CveMovimientoEntrada = 0 ' Dim IDPoliza As Integer = 0 ' Dim FolioSalida = 0 ' Dim FolioEntrada = 0 ' Dim AlmacenEntrada = -1 ' Dim ErrorMovInv As Boolean = False ' Dim ErrorAC As Boolean = False ' Dim ErrorExistencia = False ' Dim TextoError = "" ' Dim TextoExistencia As StringBuilder = New StringBuilder ' 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN ' Dim Existencia As Double ' TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
") ' For Each dr As DataRow In TmpDTSolicitarMaterial.Rows ' Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, -1, TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), "-1") ' Existencia -= TmpDTSolicitarMaterial.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} ") ' If Existencia < 0 Then ' ErrorExistencia = True ' dr("Cantidad") = Existencia ' TextoExistencia.AppendFormat("- #{0}
", dr("PS").ToString) ' End If ' Next ' 'REGISTRA LA SALIDA Y ENTRADA (TRASPASO) ' If Not ErrorExistencia Then ' ObjInventario.IniciaTransacSQL() 'Inicia la transacción ' Dim Fecha As Date = TxtFecha.Text.ToDate ' 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN ' CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, CveOS:=CveOS) ' FolioSalida = ObjInventario.Folio ' If CveMovimientoSalida <= 0 Then ' TextoError = "No se pudo generar el movimiento de salida correctamente" ' ErrorMovInv = True ' Else ' For Each Dr As DataRow In TmpDTSolicitarMaterial.Rows ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1) Then ' ErrorMovInv = True ' TextoError = "Ocurrió un error al guardar los movimientos de salida" ' Exit For ' End If ' Next ' End If ' 'AGREGAMOS LA ENTRADA ' If Not ErrorMovInv Then ' AlmacenEntrada = DdlAlmacenDestino.SelectedValue.ToEntero ' CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, 9, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveAlmacenDestino:=-1, CveMovimientoRelacionado:=CveMovimientoSalida, CveOS:=CveOS) ' FolioEntrada = ObjInventario.Folio ' If CveMovimientoEntrada <= 0 Then ' TextoError = "No se pudo generar el movimiento de entrada correctamente" ' ErrorMovInv = True ' Else ' If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then ' For Each Dr As DataRow In ObjInventario.DtResultados.Rows ' If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, -1, -1) Then ' ErrorMovInv = True ' TextoError = "Ocurrió un error al guardar los movimientos de entrada" ' Exit For ' End If ' Next ' End If ' End If ' End If ' If Not ErrorMovInv Then ' ObjInventario.Commit() ' Dim Mensaje As StringBuilder = New StringBuilder ' Mensaje.Append("Se realizó con éxito el traspaso.") ' Mensaje.AppendFormat("
Folio de Salida: {0}", FolioSalida, CveMovimientoSalida) ' Mensaje.AppendFormat("
Imprimir Reporte", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) ' LimpiaMovimiento() ' Alert(Mensaje.ToString, TipoMensaje.MsgInformacion) ' Else ' ObjInventario.RollBack() ' Alert(TextoError, TipoMensaje.MsgError) ' RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") ' End If ' Else ' Alert(TextoExistencia.ToString, TipoMensaje.MsgError) ' RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") ' End If ' 'SI OCURRIO UN ERROR EN LA EXISTENCIA RECARGAMOS EL GRID PARA COLOREAR LOS DETALLES CON ERROR ' If ErrorExistencia Then ' Alert("Ocurrió un error en la existencia", TipoMensaje.MsgError) ' End If ' ObjInventario.Dispose() ' End If 'End Sub Private Sub LimpiaMovimiento() CargaAlmacen() TxtFecha.Text = Now.ToShortDateString UpAddMateriales.Update() End Sub Private Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged CargaFolios(DdlSubProyecto.SelectedValue.ToEntero) End Sub #End Region #Region "C A M B I A R T E C N I C O" Private Sub CargaTecnico() DdlTecnico.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) DdlTecnico.DataBind() DdlTecnico.Items.Insert(0, New ListItem("Seleccione", "-1")) End Sub Private Sub LnkTecnico_Click(sender As Object, e As EventArgs) Handles LnkTecnico.Click RegistraScript(String.Format("$('#{0}').modal('show');", "DivCambiarTecnico")) End Sub Private Sub BtnCambiarTecnico_Click(sender As Object, e As EventArgs) Handles BtnCambiarTecnico.Click Dim ObjOS As New ClsOS Dim TieneError = False If UsuarioActual.Empresa.Funcionalidad(151).ToString = "1" Then If Not ObjOS.UpdateTecnicoOS(DdlTecnico.SelectedValue.ToEntero, CveOS) Then TieneError = True End If Else For Each row As GridViewRow In GvPSTecnico.Rows If row.RowType = DataControlRowType.DataRow Then If row.FCCheckBox("ChbxAsignar").Checked Then If Not ObjOS.UpdateTecnicoOSGV(DdlTecnico.SelectedValue.ToEntero, row.DataKey("CveOSDetalle").ToEntero) Then TieneError = True End If End If End If Next End If If Not TieneError Then Alert("Se asignaron las ordenes de servicio correctamente", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "DivCambiarTecnico")) CargaDetalles() CargaDatos() End If ObjOS.Dispose() End Sub Private Sub GvPSTecnico_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPSTecnico.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DataKey("CveUsuarioAtendio").ToEntero > 0 Then CveUsuarioAtendioCount += 1 End If End If End Sub #End Region End Class