From 23a419b9f6d71106a2e337194487255214adcaa6 Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Tue, 10 Jan 2023 12:23:17 -0700 Subject: [PATCH 01/20] Apoyo logistico, ordenes de servicio --- App_Code/CalendarEvent.vb | 2 + App_Code/ClsOIEventos.vb | 4 +- App_Code/ClsOS.vb | 21 ++- Ashx/CargaEventos.ashx | 49 ++++++ Compras/PopUpVerFactura.aspx.vb | 3 + Compras/ReembolsosComprobaciones.aspx.vb | 7 +- Contabilidad/PlantillasPolizasDetalle.aspx.vb | 10 ++ Empresas/140/Formatos/OrdenServicio.rdlc | 153 ++++++++++++++++-- Empresas/72/Formatos/OrdenServicio.rdlc | 18 +++ Empresas/Grales/Formatos/OrdenServicio.rdlc | 18 +++ General/SaldosIniciales.aspx.vb | 2 +- Inventarios/EntradasSalidas.aspx.vb | 15 +- Inventarios/RepEntregaAlmacenRuta.aspx.cs | 4 +- OS/OrdenesServicios.aspx.vb | 43 +++-- OS/RepOrdenesServicios.aspx.vb | 15 +- OS/RepServicioDomicilio.aspx | 55 ++++++- OS/RepServicioDomicilio.aspx.vb | 136 +++++++++++----- 17 files changed, 465 insertions(+), 90 deletions(-) diff --git a/App_Code/CalendarEvent.vb b/App_Code/CalendarEvent.vb index 20e8810af..44dbcf836 100644 --- a/App_Code/CalendarEvent.vb +++ b/App_Code/CalendarEvent.vb @@ -40,6 +40,8 @@ Public Class CalendarEvent Public Property CveOSDetalle As Integer Public Property CveUsuarioAtendio As Integer + Public Property CveSubProyectoUsuarioAtendio As Integer + End Class diff --git a/App_Code/ClsOIEventos.vb b/App_Code/ClsOIEventos.vb index 98f455ac7..f86784260 100644 --- a/App_Code/ClsOIEventos.vb +++ b/App_Code/ClsOIEventos.vb @@ -2448,10 +2448,10 @@ Public Class ClsOIEventos Optional RecurrenciaTipo As Integer = -1, Optional Frecuencia As Integer = -1, Optional DiasSemana As String = "-1", Optional Dia As Integer = -1, Optional Mes As Integer = -1, Optional RecurrenciaFin As String = "-1", Optional CveTipoEvento As Integer = 2, Optional Importe As Double = -1, Optional CveEmpresaCRM As Integer = -1, Optional CveContactoCRM As Integer = -1, Optional CveAcercamientoCRM As Integer = -1, Optional CveTipoProcesoCRM As Integer = -1, Optional CveEtapaProcesoCRM As Integer = -1, - Optional CveSubProyecto As Integer = -1) As Boolean + Optional CveSubProyecto As Integer = -1, Optional CveUsuarioPara As Integer = -1) As Boolean Dim Retorno As Boolean = False - Retorno = AddEvento(CveTipoEvento, CveAgendaTipo, Asunto, Descripcion, Prioridad, -1, CveUsuarioIng, FechaInicio, FechaFin, -1, -1, "-1", CveUsuarioIng, CveEmpresa, CveActivoFijo, CveIE, CveProspecto, CveCliente, CveOS, CveOC, + Retorno = AddEvento(CveTipoEvento, CveAgendaTipo, Asunto, Descripcion, Prioridad, CveUsuarioPara, CveUsuarioIng, FechaInicio, FechaFin, -1, -1, "-1", CveUsuarioIng, CveEmpresa, CveActivoFijo, CveIE, CveProspecto, CveCliente, CveOS, CveOC, CvePersonal, CveProveedor, CveEventoPadre:=CveEventoPadre, RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dia, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, Importe:=Importe, CveEmpresaCRM:=CveEmpresaCRM, CveContactoCRM:=CveContactoCRM, CveAcercamientoCRM:=CveAcercamientoCRM, CveTipoProcesoCRM:=CveTipoProcesoCRM, CveEtapaProcesoCRM:=CveEtapaProcesoCRM, CveSubProyecto:=CveSubProyecto) diff --git a/App_Code/ClsOS.vb b/App_Code/ClsOS.vb index 227fd3a8c..4bb50fc6d 100644 --- a/App_Code/ClsOS.vb +++ b/App_Code/ClsOS.vb @@ -64,6 +64,10 @@ Public Class ClsOS Public Property Año As String = "" Public Property CorreoOS As String = "" Public Property FechaInicio As DateTime + Public Property SubProyecto As String + Public Property Condiciones As String + + Private Class Especificaciones Public CveValor As Integer @@ -449,7 +453,8 @@ Public Class ClsOS #Region "ClsOSOrdenesServicios" 'Reporte de Ventas - Public Function GetRepOrdenesServicio(FechaI As String, FechaF As String, FechaTerminado As String, CveCliente As Integer, CveSubProyecto As Integer, CveUsuarioRecibio As Integer, CveTecnico As Integer, CveEstatusOrdenServicio As Integer, CveEmpresa As Integer) As Boolean + Public Function GetRepOrdenesServicio(FechaI As String, FechaF As String, FechaTerminado As String, CveCliente As Integer, CveSubProyecto As Integer, CveUsuarioRecibio As Integer, CveTecnico As Integer, + CveEstatusOrdenServicio As Integer, CveEmpresa As Integer, Optional Opcion As Integer = -1, Optional CveUsuarioAsignado As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OS_OrdenesServiciosGetRep") @@ -465,6 +470,8 @@ Public Class ClsOS .Add("@CveTecnico", SqlDbType.Int).Value = CveTecnico .Add("@CveEstatusOrdenServicio", SqlDbType.Int).Value = CveEstatusOrdenServicio .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@Opcion", SqlDbType.Int).Value = Opcion + .Add("@CveUsuarioAsignado", SqlDbType.Int).Value = CveUsuarioAsignado End With Try @@ -532,6 +539,8 @@ Public Class ClsOS Me.Año = Data.Rows(0)("Año").ToString Me.FechaInicio = Data.Rows(0)("FechaInicio").ToString.ToDateTime Me.CveOSDetalle = Data.Rows(0)("CveOSDetalle").ToString.ToEntero + Me.SubProyecto = Data.Rows(0)("SubProyecto").ToString + Me.Condiciones = Data.Rows(0)("Condiciones").ToString End If Retorno = True @@ -586,7 +595,8 @@ Public Class ClsOS End Function Public Function AddOrdenesServicios(CveCliente As Integer, CveSubProyecto As Integer, PersonaSolicito As String, FechaRecepcion As Date, Descripcion As String, CveUsuarioRecibio As Integer, CveEstatusOrdenServicio As Integer, CveUsuario As Integer, CveEmpresa As Integer, CveCotizacion As Integer, CveVenta As Integer, CveOSPadre As Integer, CveOSTipo As Integer, Optional CveClienteSucursal As Integer = -1, - Optional Direccion As String = "-1", Optional Telefono As String = "", Optional CveModeloAuto As Integer = -1, Optional Año As String = "-1", Optional Correo As String = "") As Boolean + Optional Direccion As String = "-1", Optional Telefono As String = "", Optional CveModeloAuto As Integer = -1, Optional Año As String = "-1", Optional Correo As String = "", + Optional Condiciones As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OS_OrdenesServiciosAdd") @@ -612,6 +622,7 @@ Public Class ClsOS .Add("@CveModeloAuto", SqlDbType.Int).Value = CveModeloAuto .Add("@Año", SqlDbType.VarChar).Value = Año .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Condiciones", SqlDbType.VarChar).Value = Condiciones .Add("@CveOS", SqlDbType.Int).Direction = ParameterDirection.Output .Add("@vFolio", SqlDbType.Int).Direction = ParameterDirection.Output @@ -655,8 +666,8 @@ Public Class ClsOS Return Retorno End Function Public Function UpdateOrdenesServicios(PersonaSolicito As String, FechaRecepcion As String, Descripcion As String, CveUsuarioRecibio As Integer, CveEstatusOrdenServicio As Integer, CveOS As Integer, CveUsuarioModifico As Integer, - CveOSTipo As Integer, Optional CveClienteSucursal As Integer = -1, Optional Direccion As String = "-1", - Optional Telefono As String = "", Optional CveModeloAuto As Integer = -1, Optional Año As String = "-1", Optional CveSubProyecto As Integer = -1, Optional Correo As String = "-1") As Boolean + CveOSTipo As Integer, Optional CveClienteSucursal As Integer = -1, Optional Direccion As String = "-1", Optional Telefono As String = "", Optional CveModeloAuto As Integer = -1, + Optional Año As String = "-1", Optional CveSubProyecto As Integer = -1, Optional Correo As String = "-1", Optional Condiciones As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OS_OrdenesServiciosUpdate") @@ -678,6 +689,7 @@ Public Class ClsOS .Add("@CveModeloAuto", SqlDbType.Int).Value = CveModeloAuto .Add("@Año", SqlDbType.VarChar).Value = Año .Add("@Correo", SqlDbType.VarChar).Value = Correo + .Add("@Condiciones", SqlDbType.VarChar).Value = Condiciones End With @@ -1768,3 +1780,4 @@ Public Class ClsOS End Sub #End Region End Class + diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index f376401a6..44ad73a30 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -94,6 +94,49 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState Dim ObjEventos As New ClsOIEventos Dim ErrorEventos = False Dim CveEmpresaCRM As Integer = 0 + + Dim DT_SubProyectos As New System.Data.DataTable + + DT_SubProyectos.Columns.Add("CveSubProyecto", GetType(Integer)) + DT_SubProyectos.Columns.Add("backgroundColor") + + 'son 26 + Dim Colores() As String = {"#006699", "#0099cc", "#0066cc", "#0033cc", "#0000ff", "#3333ff", "#3333ff", "#6600ff", "#9933ff", "#cc00ff", "#cc00cc", "#cc0099", "#cc3399", "#cc6699", "#cc0066", "#009933", "#00cc00", "#00cc66", "#009999", "#669900", "#99cc00", "#cccc00", "#cc9900", "#ff9900", "#006666", "#669999"} + + + If CveOS = -2 Then + + Dim objSub As New ClsSubProyectos + Dim DtTempSubproyectos As New DataTable + + If objSub.GetSubProyectos(CveEmpresa) Then + DtTempSubproyectos = objSub.DtResultados.FiltraParametros("", "CveSubProyecto") + End If + + objSub.Dispose() + + Dim ColorIndex As Integer = 0 + + If DtTempSubproyectos.Rows.Count > 0 Then + For Each drow As DataRow In DtTempSubproyectos.Rows + + + Dim Subrow = DT_SubProyectos.NewRow + Subrow("CveSubProyecto") = drow("CveSubProyecto").ToString.ToEntero + Subrow("backgroundColor") = Colores(ColorIndex) + + DT_SubProyectos.Rows.Add(Subrow) + + ColorIndex = ColorIndex + 1 + If ColorIndex >= 25 Then + ColorIndex = 0 + End If + + Next + End If + + End If + If ObjEventos.GetEventos(-1, -1, -1, "-1", "-1", -1, CveUsuario, CveUsuarioPara, -1, -1, -1, "-1", -1, -1, -1, -1, CveOS, -1, -1, -1, -1, -1, CveUsuario, CveUsuario, CveUsuario, CveEmpresa, pFI, pFF, CveSubProyecto:=CveSubProyecto) Then If ObjEventos.DtResultados.Rows.Count > 0 Then @@ -144,6 +187,7 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.CveOS = dr("CveOS").ToString.ToEntero cevent.CveOSDetalle = dr("CveOSDetalle").ToString.ToEntero cevent.CveUsuarioAtendio = dr("CveUsuarioAtendio").ToString.ToEntero + cevent.CveSubProyectoUsuarioAtendio = dr("CveSubProyectoUsuarioAtendio").ToString.ToEntero cevent.NombreAcercamiento = dr("NombreAcercamiento").ToString @@ -157,6 +201,11 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState cevent.backgroundColor = "#1BBC9B" End If + If CveOS = -2 Then + cevent.backgroundColor = DT_SubProyectos.FiltroPrimeroValor("backgroundColor", $" CveSubProyecto = {cevent.CveSubProyectoUsuarioAtendio } ") + cevent.backgroundColor = If(cevent.backgroundColor.Trim = "", "#1BBC9B", cevent.backgroundColor.Trim) + End If + 'VERIFICAMOS SI TIENE O NO RECURRENCIA If Not cevent.recurrenciatipo > 0 Then diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index a4b0f456c..8dec1d1af 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -5454,6 +5454,9 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("FechaImpresion", Now.ToString("dd/MM/yyyy"))) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario)) + params.Add(New ReportParameter("Condiciones", dr("Condiciones").ToString)) + params.Add(New ReportParameter("FechaAtencion", If(dr("FechaInicio").ToString.Length > 0, dr("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy"), ""))) + params.Add(New ReportParameter("TecnicoAsignado", dr("UsuarioAtendio").ToString)) diff --git a/Compras/ReembolsosComprobaciones.aspx.vb b/Compras/ReembolsosComprobaciones.aspx.vb index 128e2b9aa..af22a88cd 100644 --- a/Compras/ReembolsosComprobaciones.aspx.vb +++ b/Compras/ReembolsosComprobaciones.aspx.vb @@ -618,8 +618,9 @@ Partial Class Compras_ReembolsosComprobaciones IdCuentaBancaria = ObjMov.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero End If End If - Dim FolioIENew = ObjIE.GetNextFolio(If(CveCajaChica > 0, CveCajaChica, CvePersonal), 8).ToString - CveIECajaChica = ObjIE.AddBancos_IE(CveCajaChica, 8, If(ChkReembolsarSinBancos.Checked, TxtFechaPrePoliza.Text.ToDate, TxtFechaDocumento.Text.Trim.ToDate), FolioIENew, String.Format("Transferencia Cta: {0}", DdlCajaChica.SelectedItem), TxtImporte.Text.ToDecimal, CveMoneda, 0, TxtObservaciones.Text.Trim, "", False, False, -1, CvePrePolizaIERegistrado, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FueConciliado:=If(ChkReembolsarSinBancos.Checked Or CveCajaChica > 0, True, False)) + Dim FolioIENew = ObjIE.GetNextFolio(If(CveCajaChica > 0, CveCajaChica, CvePersonal), 2).ToString + CveIECajaChica = ObjIE.AddBancos_IE(CveCajaChica, 2, If(ChkReembolsarSinBancos.Checked, TxtFechaPrePoliza.Text.ToDate, TxtFechaDocumento.Text.Trim.ToDate), FolioIENew, String.Format("Transferencia Cta: {0}", DdlCajaChica.SelectedItem), TxtImporte.Text.ToDecimal, CveMoneda, 0, TxtObservaciones.Text.Trim, "", False, False, -1, CvePrePolizaIERegistrado, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FueConciliado:=If(ChkReembolsarSinBancos.Checked Or CveCajaChica > 0, True, False)) + '8 'AGREGO PREPOLIZA IE BANCOS If Not ObjMov.AddPrePolizasDetalle(CvePrePolizaIERegistrado, True, TxtImporte.Text.ToDecimal, String.Format("Transferencia Cta: {0}", DdlCajaChica.SelectedItem), 30, TxtObservaciones.Text, TxtFechaDocumento.Text.ToDate, IdCuentaBancaria, -1, CveIE:=CveIECajaChica, ImporteME:=If(tipoCambio = 1, 0, TxtImporte.Text.ToDecimal), ImporteMX:=TxtImporte.Text.ToDecimal * tipoCambio) Then MsgError = "Error al registrar detalle de concepto bancario" @@ -690,7 +691,7 @@ Partial Class Compras_ReembolsosComprobaciones CompraActual.CveTipoConceptoProveedor = gvr.DataKey("CveTipoConcepto").ToEntero CompraActual.CveProveedor = gvr.DataKey("CveProveedor").ToEntero CompraActual.CveMoneda = gvr.DataKey("CveMoneda").ToEntero - CompraActual.Fecha = gvr.DataKey("Fecha").ToDate + CompraActual.Fecha = gvr.DataKey("FechaCompra").ToDate CompraActual.SerieFolio = gvr.DataKey("SerieFolio").ToString CompraActual.ProveedorNombre = gvr.DataKey("Proveedor") CompraActual.TC = gvr.DataKey("TipoCambio").ToDecimal diff --git a/Contabilidad/PlantillasPolizasDetalle.aspx.vb b/Contabilidad/PlantillasPolizasDetalle.aspx.vb index 2b79f5b48..3d9238f6f 100644 --- a/Contabilidad/PlantillasPolizasDetalle.aspx.vb +++ b/Contabilidad/PlantillasPolizasDetalle.aspx.vb @@ -228,6 +228,16 @@ Partial Class Contabilidad_PlantillasPolizasDetalle Alert("Error al agregar la Plantilla Póliza y el Detalle.", TipoMensaje.MsgError) End If ObjPlantillaPoliza.Dispose() + + + If Not ErrorPlantilla Then + Using ObjContabilidad As New ClsContabilidad + If ObjContabilidad.GetConta_PlantillasPolizas(-1, -1) Then Application("GlobalDTContaPlantillasPolizas") = ObjContabilidad.DtResultados Else Application("GlobalDTContaPlantillasPolizas") = Nothing + If ObjContabilidad.GetConta_PlantillasPolizasDetalle(-1, -1) Then Application("GlobalDTContaPlantillasPolizasDetalle") = ObjContabilidad.DtResultados Else Application("GlobalDTContaPlantillasPolizasDetalle") = Nothing + End Using + End If + + End Sub Public Sub updatatos() diff --git a/Empresas/140/Formatos/OrdenServicio.rdlc b/Empresas/140/Formatos/OrdenServicio.rdlc index bf914db10..64ede27e0 100644 --- a/Empresas/140/Formatos/OrdenServicio.rdlc +++ b/Empresas/140/Formatos/OrdenServicio.rdlc @@ -1160,7 +1160,7 @@ 0.71688cm 5.3112cm 0.56825cm - 5.22521cm + 4.54835cm 12 - 4.83183cm + 5.18108cm 0.08599cm 0cm 20.21078cm @@ -1434,7 +1434,7 @@ Textbox18 1.36809cm 11.46032cm - 1.98807cm + 1.04858cm 8.7798cm 4 + + + + Condiciones: + + + + =Parameters!Condiciones.Value + + + + + @@ -1599,8 +1622,8 @@ Textbox2 1.007in 0.08599cm - 0.85363in - 4.40864in + 0.98905in + 3.84786in 5 + + true + true + + + + + Fecha de atención: + + + + =Parameters!FechaAtencion.Value + + + + + + + + + Ténico asignado: + + + + =Parameters!TecnicoAsignado.Value + + + + + + + + + + + + + + + + Textbox2 + 1.007in + 9.93011cm + 0.98905in + 3.84786in + 7 + + + 2pt + 2pt + 2pt + 2pt + + - 0.15873cm + 0.15872cm 0.08599cm 0cm 20.21078cm @@ -2033,6 +2142,24 @@ true ReportParameter1 + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + diff --git a/Empresas/72/Formatos/OrdenServicio.rdlc b/Empresas/72/Formatos/OrdenServicio.rdlc index 29e9ea5ef..0aa418493 100644 --- a/Empresas/72/Formatos/OrdenServicio.rdlc +++ b/Empresas/72/Formatos/OrdenServicio.rdlc @@ -2864,6 +2864,24 @@ Compuproveeores no se hace responsable por el resguardo de su equipo. true ReportParameter1 + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + diff --git a/Empresas/Grales/Formatos/OrdenServicio.rdlc b/Empresas/Grales/Formatos/OrdenServicio.rdlc index 28237868e..c3c84c4ef 100644 --- a/Empresas/Grales/Formatos/OrdenServicio.rdlc +++ b/Empresas/Grales/Formatos/OrdenServicio.rdlc @@ -2449,6 +2449,24 @@ true ReportParameter1 + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + + + String + true + true + ReportParameter1 + Cm 40c94aad-a12a-44fb-ab0d-ea36a9656792 diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 76cec5493..045a6964e 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -2368,7 +2368,7 @@ Partial Class General_SaldosIniciales For Each dRow As DataRow In dt.FiltraParametros(" LEN(Clasificacion) > 0 ").Rows - Dim Clasificacion As String = Regex.Replace(dRow("Clasificacion").ToString().Trim.Replace("\r\n", "").Replace(vbCrLf, "").Replace(vbCr, ""), "[^\u0009\u000A\u000D\u0020-\u007E]", "") + Dim Clasificacion As String = dRow("Clasificacion").ToString().Trim.Replace("\r\n", "").Replace(vbCrLf, "").Replace(vbCr, "") Dim Categoria As String = dRow("Categoria").ToString().Trim.Replace("\r\n", "").Replace(vbCrLf, "").Replace(vbCr, "") Dim UsoClasificacion As String = dRow("UsoClasificacion").ToString().Trim.ToUpper.Replace("\r\n", "").Replace(vbCrLf, "").Replace(vbCr, "") Dim CuentaContableIngreso As String = dRow("CuentaContableIngreso").ToString().Trim.Replace("-", "").Replace("\r\n", "").Replace(vbCrLf, "").Replace(vbCr, "") diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index feebf894c..315963d80 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -2041,14 +2041,21 @@ Partial Class Inventarios_EntradasSalidas If Not ErrorAC And Not ErrorMovInv Then - If ChkEmitirTimbrado.Checked Then + + If Not DdlDireccionEnvio.SelectedValue.ToEntero > 0 Then + ErrorMovInv = True + Alert("La direccion destino es requerida.", TipoMensaje.MsgAdvertencia) + End If + + + If ChkEmitirTimbrado.Checked AndAlso Not ErrorMovInv Then Dim ObjGral As New ClsGenerales(ObjInventario.IniciaTransacSQL) Dim CveSubProyectoTimbre As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows(0)("CveSubProyecto").ToString.ToEntero Dim Fechallegada As DateTime = (TxtFechaLlegada.Text & " 23:59:59").ToDateTime - Dim CveEntregaAlmacen As Integer = ObjGral.AddInvEntregaAlmacenRuta(CveSubProyectoTimbre, -1, -1, CveMovimiento, DdlChofer.SelectedValue.ToEntero, DdlUnidadCamion.SelectedValue.ToEntero, TxtFechaEntrega.Text.ToDate, TxtFechaLlegada.Text.ToDate, "T", "", "", MinFecha, 1, 1, TxtDistancia.Text.ToEntero, - CveConfigAutoTransporte:=DdlConfigAuto.SelectedValue.ToEntero, CveCamionRemolque1:=DdlRemolque1.SelectedValue.ToEntero, CveCamionRemolque2:=DdlRemolque2.SelectedValue.ToEntero) + Dim CveEntregaAlmacen As Integer = ObjGral.AddInvEntregaAlmacenRuta(CveSubProyectoTimbre, -1, DdlDireccionEnvio.SelectedValue.ToEntero, CveMovimiento, DdlChofer.SelectedValue.ToEntero, DdlUnidadCamion.SelectedValue.ToEntero, TxtFechaEntrega.Text.ToDate, TxtFechaLlegada.Text.ToDate, "T", "", "", MinFecha, 1, 1, TxtDistancia.Text.ToEntero, + CveConfigAutoTransporte:=DdlConfigAuto.SelectedValue.ToEntero, CveCamionRemolque1:=DdlRemolque1.SelectedValue.ToEntero, CveCamionRemolque2:=DdlRemolque2.SelectedValue.ToEntero) If CveEntregaAlmacen > 0 Then CveTimbre = ObjGral.AddGralTimbre("Tra", CveSubProyectoTimbre, TxtFechaEntrega.Text.ToDate, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveEntregaAlmacen:=CveEntregaAlmacen, AplicaCP:=ChkEmitirCartaPorte.Checked) @@ -2069,7 +2076,7 @@ Partial Class Inventarios_EntradasSalidas - If Not ErrorAC And Not ErrorMovInv Then + If Not ErrorAC And Not ErrorMovInv Then Dim Msg As New StringBuilder Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", ObjInventario.Folio, CveMovimiento) Msg.AppendFormat("

Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento))) diff --git a/Inventarios/RepEntregaAlmacenRuta.aspx.cs b/Inventarios/RepEntregaAlmacenRuta.aspx.cs index ed0c5bdae..502e39065 100644 --- a/Inventarios/RepEntregaAlmacenRuta.aspx.cs +++ b/Inventarios/RepEntregaAlmacenRuta.aspx.cs @@ -690,8 +690,8 @@ public partial class General_RepEntregaAlmacenRuta : ClsPaginas else { //e.Row.Cells[11].Text = ""; - e.Row.Cells[12].Text = ""; - e.Row.Cells[13].Text = ""; + e.Row.Cells[14].Text = ""; + e.Row.Cells[15].Text = ""; } if (e.Row.DataKey("Estatus").ToEntero() == 2) diff --git a/OS/OrdenesServicios.aspx.vb b/OS/OrdenesServicios.aspx.vb index f358ae335..d7509a1d8 100644 --- a/OS/OrdenesServicios.aspx.vb +++ b/OS/OrdenesServicios.aspx.vb @@ -1218,38 +1218,54 @@ Partial Class OS_OrdenesServicios 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 fname As String = "" + + If File.Exists(Row("Archivo").ToString) Then + Dim Archivo As New System.IO.FileInfo("") + fname = Archivo.Name + End If + + 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 + If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalle(CvePS, Cantidad, CveUsuarioEntrego, Observaciones, SeSuperviso, SeFacturara, Estatus, ComentarioTecnico, CveCuentaEquipo, fname, "-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) + CveOSDetalle = ObjOrdenServicio.AddOrdenesServiciosDetalle(CveOS, CvePS, Cantidad, -1, CveUsuarioEntrego, Observaciones, SeSuperviso, SeFacturara, Estatus, CveCuentaEquipo, "-1", "-1", FechaEntrega, ComentarioTecnico, UsuarioActual.CveUsuario, Archivo:=fname) 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 File.Exists(Row("Archivo").ToString) Then + Dim Archivo As New System.IO.FileInfo("") + If Archivo.Name <> "-1" Then + 'Cambiar el nombre del archivo de CveUsuario-Consecutivo.ext a CveOS-Consecutivo.ext + Dim ArchivoFinal As New System.IO.FileInfo(String.Format("{0}OS\Archivos\OS{1}-{2}{3}", UsuarioActual.Empresa.Ruta, CveOS, Consecutivo, System.IO.Path.GetExtension(Archivo.Extension))) - If Not ObjOrdenServicio.UpdateOrdenesServiciosDetalleArchivo(ArchivoFinal.Name, ObjOrdenServicio.CveOSDetalle) Then - Errores = True + 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 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 @@ -1279,6 +1295,7 @@ Partial Class OS_OrdenesServicios Next End If End If + Next Else Errores = True diff --git a/OS/RepOrdenesServicios.aspx.vb b/OS/RepOrdenesServicios.aspx.vb index 0b97bc7ba..53c4d46b7 100644 --- a/OS/RepOrdenesServicios.aspx.vb +++ b/OS/RepOrdenesServicios.aspx.vb @@ -20,6 +20,8 @@ Partial Class OS_RepOrdenesServicios ViewState("CveUsuarioTecnico") = -1 End If + txtFechaI.Text = $"01/01/{Now.Year}" + CargaDatos() OrdenaDatos() End If @@ -59,7 +61,18 @@ Partial Class OS_RepOrdenesServicios FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1") FechaTerminado = If(IsDate(TxtFechaTerminado.Text.Trim()), TxtFechaTerminado.Text.Trim(), "-1") - If ObjOrdenesServicios.GetRepOrdenesServicio(FechaI, FechaF, FechaTerminado, DdlClientes.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlUsuarioRecibio.SelectedValue.ToEntero, DdlTecnico.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + Dim Opcion As Integer = 1 + Dim CveUsuarioAsignado As Integer = UsuarioActual.CveUsuario + + If UsuarioActual.TienePermisoProceso(348) Then + Opcion = 2 + CveUsuarioAsignado = -1 + + End If + + + If ObjOrdenesServicios.GetRepOrdenesServicio(FechaI, FechaF, FechaTerminado, DdlClientes.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlUsuarioRecibio.SelectedValue.ToEntero, + DdlTecnico.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion:=Opcion, CveUsuarioAsignado:=CveUsuarioAsignado) Then Dim Filtro As String = "" Select Case DdlFacturado.SelectedValue Case "1" diff --git a/OS/RepServicioDomicilio.aspx b/OS/RepServicioDomicilio.aspx index 8ed61ce93..7dacef905 100644 --- a/OS/RepServicioDomicilio.aspx +++ b/OS/RepServicioDomicilio.aspx @@ -111,6 +111,12 @@ .select2-container--open { z-index: 1000 !important; } + + + /* #C_DVModalAsignacion > div:nth-child(2) > div > div > span{ + margin-left:200px!important; + }*/ + @@ -469,17 +475,17 @@
-
+
- + <%-- - - -
@@ -550,6 +556,16 @@
+
+
+ <%--CONDICIONES--%> +
+ + +
+
+
+
@@ -575,7 +591,7 @@
-
+
@@ -672,6 +688,7 @@ diff --git a/OS/RepServicioDomicilio.aspx.vb b/OS/RepServicioDomicilio.aspx.vb index 94319395a..825438e5c 100644 --- a/OS/RepServicioDomicilio.aspx.vb +++ b/OS/RepServicioDomicilio.aspx.vb @@ -280,6 +280,15 @@ Partial Class OS_RepServicioDomicilio cargaDropsModal() CargaClientePublicoGeneral() + If UsuarioActual.TienePermisoProceso(348) Then + DVModalAsignacion.Visible = True + End If + + + + 'RegistraScript(" PrimeraCargaCalendario = true;") + + End If End Sub @@ -595,7 +604,7 @@ Partial Class OS_RepServicioDomicilio End If 'DdlSubProyectoOS.Items.Clear() - CargarCentrosDeCosto(Nothing, DdlSubProyectoOS, Nothing, LblSubProyectoOS) + CargarCentrosDeCosto(Nothing, Nothing, Nothing, LblSubProyectoOS) 'DdlModeloAuto.Items.Clear() Dim ObjGral As New ClsGenerales @@ -607,6 +616,7 @@ Partial Class OS_RepServicioDomicilio DdlModeloAuto.Items.Insert(0, New ListItem("Sin Asignar", "-1")) + End Sub Private Sub CargaClientes() @@ -623,7 +633,7 @@ Partial Class OS_RepServicioDomicilio TxtSolicito.Text = "" TxtDescripcion.Text = "" TxtFechaOS.Text = "" - DdlSubProyectoOS.SelectedValueExist("-1") + 'DdlSubProyectoOS.SelectedValueExist("-1") TxtDireccion.Text = "" TxtEmail.Text = "" TxtTelefono.Text = "" @@ -645,6 +655,9 @@ Partial Class OS_RepServicioDomicilio FechaInicioOriginal = DateTime.Now DVFolio.Visible = False + DvModalSubProyecto.Visible = False + + TxtCondiciones.Text = "" End Sub @@ -707,7 +720,7 @@ Partial Class OS_RepServicioDomicilio TxtDescripcion.Text = ObjOS.Descripcion TxtSolicito.Text = ObjOS.PersonaSolicito TxtFechaOS.Text = ObjOS.FechaRecepcion.ToString("dd/MM/yyyy") - DdlSubProyectoOS.SelectedValueExist(ObjOS.CveSubProyecto) + 'DdlSubProyectoOS.SelectedValueExist(ObjOS.CveSubProyecto) TxtDireccion.Text = ObjOS.DtResultados.Rows(0)("DireccionOS").ToString TxtEmail.Text = ObjOS.CorreoOS TxtTelefono.Text = ObjOS.Telefono @@ -718,6 +731,9 @@ Partial Class OS_RepServicioDomicilio DdlModeloAuto.SelectedValueExist(ObjOS.CveModeloAuto) TxtAnio.Text = ObjOS.Año + LblModalSubproyecto.Text = ObjOS.SubProyecto + + TxtCondiciones.Text = ObjOS.Condiciones If TipoAccion = OSModalTipoAccion.Actualizacion Then @@ -725,6 +741,7 @@ Partial Class OS_RepServicioDomicilio CveTecnicoAsignarOrioginal = ObjOS.CveUsuarioAtendio FechaInicioOriginal = ObjOS.FechaInicio TxtModalFechaOS.Text = ObjOS.FechaInicio.ToString.ToDate.ToString("dd/MM/yyyy hh:mm") + DvModalSubProyecto.Visible = True 'TSTimeSelector.Hour = If(ObjOS.FechaInicio.Hour > 12, ObjOS.FechaInicio.Hour - 12, ObjOS.FechaInicio.Hour) 'TSTimeSelector.Minute = ObjOS.FechaInicio.Minute 'TSTimeSelector.AmPm = If(ObjOS.FechaInicio.Hour > 12, MKB.TimePicker.TimeSelector.AmPmSpec.PM, MKB.TimePicker.TimeSelector.AmPmSpec.AM) @@ -786,6 +803,15 @@ Partial Class OS_RepServicioDomicilio Dim CveOS As Integer = HFCveOS.Value.ToEntero Dim CveOsDetalle As Integer = HFCveOsDetalle.Value.ToEntero + + Dim CveSubProyectoTecnico As Integer = If(DdlTecnicoAsignar.SelectedValue.ToEntero > 0, GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto").ToEntero, -1) + + + If TipoAccion = OSModalTipoAccion.Asignacion AndAlso Not CveSubProyectoTecnico > 0 Then + Alert("No se encontro el subproyecto o centro de costo del tecnico seleccionado.") + Exit Sub + End If + If Not CvePSDetalle > 0 Then Alert("No esta asiganado el producto del detalle a la funcionalidad.") Exit Sub @@ -822,9 +848,10 @@ Partial Class OS_RepServicioDomicilio CveEstatosOrdenNueva = CveEstatusAsiganada End If - If ObjOS.AddOrdenesServicios(CveCliente, DdlSubProyectoOS.SelectedValue.ToEntero, TxtSolicito.Text, TxtFechaOS.Text.ToDateTime, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatosOrdenNueva, - UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, CveOrdenServicioTipo, CveClienteSucursal:=-1, - Direccion:=TxtDireccion.Text, Telefono:=TxtTelefono.Text, CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, Correo:=TxtEmail.Text) Then + If ObjOS.AddOrdenesServicios(CveCliente, CveSubProyectoTecnico, TxtSolicito.Text, TxtFechaOS.Text.ToDateTime, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatosOrdenNueva, + UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, CveOrdenServicioTipo, CveClienteSucursal:=-1, Direccion:=TxtDireccion.Text, + Telefono:=TxtTelefono.Text, CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, Correo:=TxtEmail.Text, + Condiciones:=TxtCondiciones.Text.Trim) Then CveOS = ObjOS.CveOS CveOsDetalle = ObjOS.AddOrdenesServiciosDetalle(CveOS, CvePSDetalle, 1, -1, -1, "", False, True, False, -1, "-1", "-1", "-1", "", UsuarioActual.CveUsuario, "") @@ -854,8 +881,8 @@ Partial Class OS_RepServicioDomicilio If CveOS > 0 Then If Not ObjOS.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaOS.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatusOrden, CveOS, UsuarioActual.CveUsuario, - -1, CveClienteSucursal:=-1, Direccion:=TxtDireccion.Text, Telefono:=TxtTelefono.Text, - CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, CveSubProyecto:=DdlSubProyectoOS.SelectedValue.ToEntero, Correo:=TxtEmail.Text) Then + -1, CveClienteSucursal:=-1, Direccion:=TxtDireccion.Text, Telefono:=TxtTelefono.Text, CveModeloAuto:=DdlModeloAuto.SelectedValue.ToEntero, Año:=TxtAnio.Text, + CveSubProyecto:=CveSubProyectoTecnico, Correo:=TxtEmail.Text, Condiciones:=TxtCondiciones.Text.Trim) Then TieneError = True End If @@ -876,21 +903,26 @@ Partial Class OS_RepServicioDomicilio - If ObjOS.GetSubProyectosEstatusInicial(DdlTecnicoAsignar.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then - Dim subProyectoDelTecnico As DataTable - subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros($"CveSubProyecto = {DdlSubProyectoOS.SelectedValue.ToEntero}") - - If subProyectoDelTecnico.Rows.Count > 0 Then - If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then - TieneError = True - End If - Else - Alert("El técnico y la Orden de Servicio deben pertenecer al mismo subProyecto", TipoMensaje.MsgAdvertencia) - TieneError = True - End If + If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then + TieneError = True End If + 'If ObjOS.GetSubProyectosEstatusInicial(DdlTecnicoAsignar.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then + ' Dim subProyectoDelTecnico As DataTable + ' subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoTecnico}") + + ' If subProyectoDelTecnico.Rows.Count > 0 Then + ' If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then + ' TieneError = True + ' End If + ' Else + ' Alert("El técnico y la Orden de Servicio deben pertenecer al mismo subProyecto", TipoMensaje.MsgAdvertencia) + ' TieneError = True + ' End If + 'End If + + If Not TieneError Then @@ -916,7 +948,7 @@ Partial Class OS_RepServicioDomicilio Dim OIDescripcion As String = $"{DdlTecnicoAsignar.SelectedItem.Text} Orden de servicio {FolioAsignar} " If Not ObjEventos.AddEventoAgenda(2, DdlTecnicoAsignar.SelectedItem.Text, OIDescripcion, 2, TxtModalFechaOS.Text.ToDateTime(), TxtModalFechaOS.Text.ToDateTime().AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2, - Importe:=0, CveOS:=CveOS, CveSubProyecto:=DdlSubProyectoOS.SelectedValue.ToEntero) Then + Importe:=0, CveOS:=CveOS, CveSubProyecto:=CveSubProyectoTecnico, CveUsuarioPara:=DdlTecnicoAsignar.SelectedValue.ToEntero) Then TieneError = True End If End If @@ -942,6 +974,10 @@ Partial Class OS_RepServicioDomicilio MandaCorreOS(CveOSAsignar, CorreoAsignado) End If + If Not TieneError And TxtEmail.Text.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then + MandaCorreOS(CveOSAsignar, TxtEmail.Text, True) + End If + If Not TieneError Then ConsultaOrdenesServiciosNoAsignadas() @@ -961,7 +997,7 @@ Partial Class OS_RepServicioDomicilio End Sub - Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String) + Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, Optional EsCliente As Boolean = False) @@ -1023,9 +1059,8 @@ Partial Class OS_RepServicioDomicilio params.Add(New ReportParameter("Solicito", dr("PersonaSolicito").ToString)) params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) params.Add(New ReportParameter("Recibio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaRecibido", dr("FechaRecepcion").ToString)) + params.Add(New ReportParameter("FechaRecibido", dr("FechaRecepcion").ToString.ToDate.ToString("dd/MM/yyyy"))) params.Add(New ReportParameter("FolioOS", dr("Folio").ToString)) - FolioOS = dr("Folio").ToString params.Add(New ReportParameter("ClienteTelefono", dr("Telefono").ToString)) params.Add(New ReportParameter("ClienteCalle", dr("Direccion").ToString)) params.Add(New ReportParameter("ClienteColonia", dr("Colonia").ToString)) @@ -1033,19 +1068,40 @@ Partial Class OS_RepServicioDomicilio params.Add(New ReportParameter("ClienteEstado", dr("Estado").ToString)) CveFolio = dr("Folio").ToString - If RutaReporte.Exists Then - params.Add(New ReportParameter("NoDeCliente", dr("CveCliente").ToString)) - params.Add(New ReportParameter("RFC", dr("RFC").ToString)) - params.Add(New ReportParameter("Vendedor", " ")) - params.Add(New ReportParameter("Correo", dr("Correo").ToString)) - params.Add(New ReportParameter("CodigoDeServicio", dr("CveOS").ToString)) - params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString)) - params.Add(New ReportParameter("TipoServicio", dr("TipoServicio").ToString)) - params.Add(New ReportParameter("TipoEquipo", dr("TipoEquipo").ToString)) - params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) - params.Add(New ReportParameter("Copia", "Copia: Original")) - params.Add(New ReportParameter("Equipo", dr("Equipo").ToString)) - End If + 'If RutaReporte.Exists Then + params.Add(New ReportParameter("NoDeCliente", dr("CveCliente").ToString)) + params.Add(New ReportParameter("RFC", dr("RFC").ToString)) + params.Add(New ReportParameter("Vendedor", " ")) + params.Add(New ReportParameter("Correo", dr("Correo").ToString)) + params.Add(New ReportParameter("CodigoDeServicio", dr("CveOS").ToString)) + params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString)) + params.Add(New ReportParameter("TipoServicio", dr("TipoServicio").ToString)) + params.Add(New ReportParameter("TipoEquipo", dr("TipoEquipo").ToString)) + 'params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString)) + params.Add(New ReportParameter("Copia", "Copia: Original")) + params.Add(New ReportParameter("Equipo", dr("Equipo").ToString)) + + params.Add(New ReportParameter("DireccionOS", dr("DireccionOS").ToString)) + params.Add(New ReportParameter("Telefono", dr("Telefono").ToString)) + params.Add(New ReportParameter("CorreoOS", dr("CorreoOS").ToString)) + + params.Add(New ReportParameter("ModeloMarca", dr("ModeloMarca").ToString)) + params.Add(New ReportParameter("Año", dr("Año").ToString)) + params.Add(New ReportParameter("TelefonoContacto", dr("TelefonoContacto").ToString)) + + params.Add(New ReportParameter("FechaImpresion", Now.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario)) + params.Add(New ReportParameter("Condiciones", dr("Condiciones").ToString)) + params.Add(New ReportParameter("FechaAtencion", If(dr("FechaInicio").ToString.Length > 0, dr("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy"), ""))) + params.Add(New ReportParameter("TecnicoAsignado", dr("UsuarioAtendio").ToString)) + + + + + 'End If + + + End If End If @@ -1063,13 +1119,11 @@ Partial Class OS_RepServicioDomicilio End If - If ObjOS.GetOrdenesServiciosDetalle(CveOS) Then - TmpDTOS = ObjOS.DtResultados - End If - If ObjOS.GetDetalleMateriales(-1, CveOS) Then + If ObjOS.GetOrdenesServiciosDetalle(CveOS) Then TmpDTMaterialesOS = ObjOS.DtResultados End If + Dim lrds As New List(Of ReportDataSource) Dim rds As New ReportDataSource With {.Name = "DataSet2", .Value = TmpDTMaterialesOS} Dim rds2 As New ReportDataSource With {.Name = "DataSet1", .Value = TmpDTOS} From ab65b91b62665deac7b60568214368550b3068b3 Mon Sep 17 00:00:00 2001 From: MLopez Date: Sat, 7 Jan 2023 19:40:38 -0700 Subject: [PATCH 02/20] E172 Rep Indicador Resumen: + Totales en Portlets, Promedio precio VxP, Fila totales Comp Productores y + info en grafica de pastel --- Compras/Proveedores.aspx.vb | 3 - General/RepIndicadorResumen.aspx | 198 +++++++++++++--------------- General/RepIndicadorResumen.aspx.vb | 80 ++++++++--- Site.master | 4 +- Styles/ReportePDF.html | 9 +- 5 files changed, 162 insertions(+), 132 deletions(-) diff --git a/Compras/Proveedores.aspx.vb b/Compras/Proveedores.aspx.vb index 0fcad37ea..26a459684 100644 --- a/Compras/Proveedores.aspx.vb +++ b/Compras/Proveedores.aspx.vb @@ -3835,7 +3835,6 @@ Partial Class Compras_Proveedores Private Sub ImprimirReporteCxPCrystal(Optional Formato As String = "PDF") Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepProveedorCxP.rpt", UsuarioActual.Empresa.Ruta)) Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") - 'Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim DTCxPTempral As DataTable = Nothing @@ -4217,7 +4216,6 @@ Partial Class Compras_Proveedores params.Add(New ReportParameter("LimiteCredito", TxtLimiteCredito.Text)) params.Add(New ReportParameter("SaldoDisponible", (TxtLimiteCredito.Text.ToDouble - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) params.Add(New ReportParameter("AgrupadoPor", $"Agrupado Por: {Proveedor}{FechaIn}{FechaFn}{FechVI}{FechVF}")) - params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepProveedorCxP.rdlc", DTCxPTempral, params, "RepCxP") @@ -4225,7 +4223,6 @@ Partial Class Compras_Proveedores Alert("No se encontraron datos con los filtros especificados", TipoMensaje.MsgAdvertencia) End If - ElseIf rblreporte.SelectedValue = "anc" Then 'OBTENEMOS LOS DATOS diff --git a/General/RepIndicadorResumen.aspx b/General/RepIndicadorResumen.aspx index 31e334953..6b1c27c79 100644 --- a/General/RepIndicadorResumen.aspx +++ b/General/RepIndicadorResumen.aspx @@ -19,25 +19,27 @@ background-color: #95A5A6; color: white; } - .table-scrollable { margin-top: 0px !important; margin-bottom: 0px !important; } - .margenbound { margin-left: 15px; text-align: right; } - .amChartsAttribution { - margin-top: -2px; - margin-bottom: 8px; - visibility: hidden; - } div[id^=chartdiv] { width: 100%; height: 400px; } + .portlet-total { + float:right!important; + display:inline-block!important; + } + .abbr { + overflow: hidden; + text-overflow: ellipsis; + display:block!important; + } @@ -96,12 +98,6 @@
- <%----%>
@@ -111,15 +107,15 @@
- Ventas por Productos -
-
-
-
+ Ventas por Productos
+
+ + +
- + <%--TODO: Esto se puede meter en el stored procedured, pero me da cosa moverle :S--%> + + + <%--TODO: Esto puede tronar si el valor es DBNull --%> + <%# If(Convert.ToDecimal(Eval("Cantidad")) = 0, 0.ToString("C"), (Convert.ToDecimal(Eval("SubTotal")) / Convert.ToInt32(Eval("Cantidad"))).ToString("C")) %> + +
@@ -143,11 +145,7 @@
- Ventas por Productos - Gráfica -
-
-
-
+ Ventas por Productos - Gráfica
@@ -168,20 +166,20 @@
- Compras Productores -
-
-
-
+ Compras Productores
+
+ + +
+ AutoGenerateColumns="False" AllowPaging="False" ShowFooter="True"> @@ -190,6 +188,7 @@ +
@@ -202,11 +201,7 @@
- Compras Productores - Gráfica por Cantidad(Kg) -
-
-
-
+ Compras Productores - Gráfica por Cantidad(Kg)
@@ -227,15 +222,15 @@
- Gastos -
-
-
-
+ Gastos
+
+ + +
- Compras por clasificación - Gráfica -
-
-
-
+ Compras por clasificación - Gráfica
@@ -283,15 +274,15 @@
- Cuentas por cobrar -
-
-
-
+ Cuentas por cobrar
+
+ + +
- Cuentas por cobrar - Gráfica Saldo VS Recuperado -
-
-
-
+ Cuentas por cobrar - Gráfica Saldo VS Recuperado
@@ -330,30 +317,6 @@
- -
- - -
-
- - Cuentas por cobrar - Gráfica Recuperado -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
@@ -363,15 +326,15 @@
- Cuentas por Pagar productores -
-
-
-
+ Cuentas por Pagar productores
+
+ + +
- Cuentas por Pagar productores - Gráfica -
-
-
-
+ Cuentas por Pagar productores - Gráfica
@@ -418,15 +377,15 @@
- Cuentas por Pagar no productores -
-
-
-
+ Cuentas por Pagar no productores
+
+ + +
- Cuentas por Pagar no productores - Gráfica -
-
-
-
+ Cuentas por Pagar no productores - Gráfica
@@ -507,7 +462,17 @@ align: 'left' }, legend: { - enabled: false + enabled: false, + // esto es para la grafica de pie + layout: 'vertical', + align: 'right', + width: 220, + verticalAlign: 'middle', + borderWidth: 0, + useHTML: true, + labelFormatter: function () { + return '
' + this.name + '
' + '
' + this.y.toLocaleString() + this.unit + '' + '$' + this.y2.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) + '
'; + }, }, xAxis: { type: 'category' @@ -547,6 +512,10 @@ // }, // //footerFormat: '{point.key}' //}, + tooltip: { + //valuePrefix: '$', + valueSuffix: " " + '{point.unit}' + }, plotOptions: { series: { animation: true, @@ -577,9 +546,14 @@ } }, pie: { + allowPointSelect: true, + cursor: 'pointer', dataLabels: { - enabled: true - } + enabled: true, + distance: -30, + format: '{point.percentage:.1f} %' + }, + showInLegend: true } }, series: [ @@ -594,11 +568,11 @@ //AmCharts.makeChart("chartdiv_vxp", { ...chartconfig, type: "serial", dataProvider: json["VxP"] }); // Ventas x Producto $('#' + "chartdiv_vxp").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], data: customAccessor(json["VxP"]) }] }) - $('#' + "chartdiv_compproductores").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], type: 'pie', data: customAccessor(json["CompProductores"]) }] }) + $('#' + "chartdiv_compproductores").highcharts({ ...chartconfig, chart: {}, legend: { ...chartconfig.legend, enabled: true }, series: [{ ...chartconfig.series[0], keys: ['name', 'y', 'y2', 'unit', 'unit2'], type: 'pie', data: customAccessorPie(json["CompProductores"]) }] }) $('#' + "chartdiv_compacreed").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], data: customAccessor(json["CompAcreed"]) }] }) $('#' + "chartdiv_cxp192").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], data: customAccessor(json["CxP192"]) }] }) $('#' + "chartdiv_cxp").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], data: customAccessor(json["CxP"]) }] }) - $('#' + "chartdiv_cxc").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], data: customAccessor(json["CxC"]) }, { type: 'line', data: customAccessor(json["CxCR"]) }] }) + $('#' + "chartdiv_cxc").highcharts({ ...chartconfig, series: [{ ...chartconfig.series[0], data: customAccessor(json["CxC"]) }, { ...chartconfig.series[0], type: 'line', data: customAccessor(json["CxCR"]) }] }) function customAccessor(data) { const newData = []; @@ -609,10 +583,18 @@ newData.push([point.Texto, point.Valor, point.Unidad]); } }); - //newData.sort(function (a, b) { - // return a[0] > b[0] ? 1 : -1; - //}); - //console.log(JSON.stringify(newData)) + return newData; + } + + function customAccessorPie(data) { + const newData = []; + data.forEach(function (point, index) { + if (point.Texto == "Otros") { + newData.push({ name: point.Texto, y: point.Cantidad, y2: point.Importe, unit: point.UnidadC, unit2:point.UnidadI, color: '#000000' }); + } else { + newData.push([point.Texto, point.Cantidad, point.Importe, point.UnidadC, point.UnidadI]); + } + }); return newData; } diff --git a/General/RepIndicadorResumen.aspx.vb b/General/RepIndicadorResumen.aspx.vb index 0566e31e4..b2bf87ec9 100644 --- a/General/RepIndicadorResumen.aspx.vb +++ b/General/RepIndicadorResumen.aspx.vb @@ -83,38 +83,51 @@ Partial Class General_RepIndicadorResumen GvCxC.HeaderRow.Cells(2).Text = "Recuperado" End If - 'Mostrar gráficos solo si hay datos en su respectiva tabla + 'Mostrar gráficos y totales en portlets solo si hay datos en su respectiva tabla If GvVxP.Rows.Count > 0 Then UPGraficaVxP.Visible = True + PLVxPTot.InnerHtml = "" + "Cantidad: " + "" + String.Format("{0:n} Kg", CType(GvVxP.DataSource, DataTable).SUM("Cantidad", "Orden IS NOT NULL")) _ + + "" + "Total: " + "" + String.Format("{0:c} MXN", CType(GvVxP.DataSource, DataTable).SUM("SubTotalMN", "Orden IS NOT NULL")) Else UPGraficaVxP.Visible = False + PLVxPTot.InnerHtml = Nothing End If If GvCompProductores.Rows.Count > 0 Then UPGraficaCompProductores.Visible = True + PLCompProductoresTot.InnerHtml = "" + "Cantidad: " + "" + String.Format("{0:n} Kg", CType(GvCompProductores.DataSource, DataTable).SUM("Cantidad", "")) Else UPGraficaCompProductores.Visible = False + PLCompProductoresTot.InnerHtml = Nothing End If If GvCompAcreed.Rows.Count > 0 Then UPGraficaCompAcreed.Visible = True + PLGastosTot.InnerHtml = "" + "Importe: " + "" + String.Format("{0:c} MXN", CType(GvCompAcreed.DataSource, DataTable).SUM("SubTotalMN", "CveClasificacion IS NOT NULL")) Else UPGraficaCompAcreed.Visible = False + PLGastosTot.InnerHtml = Nothing End If If GvCxC.Rows.Count > 0 Then UPGraficaCxC.Visible = True - 'UPGraficaCxCRec.Visible = True + PLCxCTot.InnerHtml = "" + "Saldo: " + "" + String.Format("{0:c} MXN", CType(GvCxC.DataSource, DataTable).SUM("SaldoMN", "CveCliente IS NOT NULL")) + Dim Recuper As Double = CType(GvCxC.DataSource, DataTable).SUM("RecuperadoMN", "CveCliente IS NOT NULL") + If (Recuper > 0) Then PLCxCTot.InnerHtml += "" + "Rec: " + "" + String.Format("{0:c} MXN", CType(GvCxC.DataSource, DataTable).SUM("RecuperadoMN", "CveCliente IS NOT NULL")) Else UPGraficaCxC.Visible = False - 'UPGraficaCxCRec.Visible = False + PLCxCTot.InnerHtml = Nothing End If If GvCxP192.Rows.Count > 0 Then UPGraficaCxP192.Visible = True + PLCxP192Tot.InnerHtml = "" + "Saldo: " + "" + String.Format("{0:c} MXN", CType(GvCxP192.DataSource, DataTable).SUM("SaldoMN", "CveProveedor IS NOT NULL")) Else UPGraficaCxP192.Visible = False + PLCxP192Tot.InnerHtml = Nothing End If If GvCxP.Rows.Count > 0 Then UPGraficaCxP.Visible = True + PLCxPTot.InnerHtml = "" + "Saldo: " + "" + String.Format("{0:c} MXN", CType(GvCxP.DataSource, DataTable).SUM("SaldoMN", "CveProveedor IS NOT NULL")) Else UPGraficaCxP.Visible = False + PLCxPTot.InnerHtml = Nothing End If 'Si no había datos en ninguna tabla no cargar función de gráficos @@ -149,6 +162,32 @@ Partial Class General_RepIndicadorResumen End If End If End Sub + Dim CompProductoresTotales As Decimal() = New Decimal(5 - 1) {} + Protected Sub GvCompProductores_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCompProductores.RowDataBound + 'Esto tambien se podría meter en el Stored Procedure + If e.Row.RowType = DataControlRowType.DataRow Then + CompProductoresTotales(0) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "Cantidad"), 0)) + CompProductoresTotales(1) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "SubTotal"), 0)) + CompProductoresTotales(2) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "PUPromedioKG"), 0)) + CompProductoresTotales(3) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "Saldo"), 0)) + CompProductoresTotales(4) += Convert.ToDecimal(IfNull(DataBinder.Eval(e.Row.DataItem, "Abonado"), 0)) + ElseIf e.Row.RowType = DataControlRowType.Footer Then + 'Movemos el pie a la primera fila de la tabla + Dim footerRow As GridViewRow = e.Row + GvCompProductores.Controls(0).Controls.Remove(footerRow) + GvCompProductores.Controls(0).Controls.AddAt(1, footerRow) + 'Ahora se registran los datos + e.Row.Cells(0).Text = "Totales" + e.Row.Cells(1).Text = CompProductoresTotales(0).ToString("N") + e.Row.Cells(2).Text = CompProductoresTotales(1).ToString("C") + e.Row.Cells(3).Text = (CompProductoresTotales(2) / GvCompProductores.Rows.Count).ToString("C") 'Promedio + e.Row.Cells(4).Text = CompProductoresTotales(3).ToString("C") + e.Row.Cells(5).Text = CompProductoresTotales(4).ToString("C") + For i As Integer = 1 To e.Row.Cells.Count - 1 + e.Row.Cells(i).CssClass = "margenbound" + Next + End If + End Sub Protected Sub GvComprasAcreed_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvCompAcreed.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.DBCampo("CveClasificacion") = "" Then @@ -230,32 +269,40 @@ Partial Class General_RepIndicadorResumen 'Dim group_resto_vxp = From e In resto_vxp Group e By e.Texto Into gpo = Group 'Dim group_resto_vxp = resto_vxp.GroupBy(Function(e) New With {Key e.Texto, Key e.Valor, Key e.Color, Key e.Unidad}).ToList() - 'Compras ProveedorClasificacion=192 + 'Compras Productores ProveedorClasificacion=192 DtCompProductores.Reset() DtCompProductores.Columns.Add("Texto") - DtCompProductores.Columns.Add("Valor") - DtCompProductores.Columns.Add("Unidad") + DtCompProductores.Columns.Add("Cantidad") + DtCompProductores.Columns.Add("Importe") + DtCompProductores.Columns.Add("UnidadC") + DtCompProductores.Columns.Add("UnidadI") For Each Dr As DataRow In GvCompProductores.DataSource.Rows Dim Row = DtCompProductores.NewRow() Row("Texto") = Dr("RazonSocial").ToString - Row("Valor") = Dr("Cantidad").ToString.FormatoNumero - Row("Unidad") = "Kg" + Row("Cantidad") = Dr("Cantidad").ToString.FormatoNumero + Row("Importe") = Dr("SubTotal").ToString.FormatoNumero + Row("UnidadC") = "Kg" + Row("UnidadI") = "MXN" DtCompProductores.Rows.Add(Row) Next - Dim comp_productores = From s In DtCompProductores.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim comp_productores = From s In DtCompProductores.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Cantidad = s("Cantidad").ToString().ToDouble(), .Importe = s("Importe").ToString().ToDouble(), .UnidadC = s("UnidadC").ToString(), .UnidadI = s("UnidadI").ToString()} Dim group_comp_productores = comp_productores.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { .Texto = g.Key, - .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), - .Unidad = "MXN" + .Cantidad = Math.Round(g.Sum(Function(x) x.Cantidad), 2), + .Importe = Math.Round(g.Sum(Function(x) x.Importe), 2), + .UnidadC = "Kg", + .UnidadI = "MXN" }).ToDataTable - Dim top_comp_productores = From s In group_comp_productores.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} - Dim resto_comp_productores = From s In group_comp_productores.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Valor = s("Valor").ToString().ToDouble(), .Unidad = s("Unidad").ToString()} + Dim top_comp_productores = From s In group_comp_productores.AsEnumerable().Take(10) Select New With {.Texto = s("Texto").ToString(), .Cantidad = s("Cantidad").ToString().ToDouble(), .Importe = s("Importe").ToString().ToDouble(), .UnidadC = s("UnidadC").ToString(), .UnidadI = s("UnidadI").ToString()} + Dim resto_comp_productores = From s In group_comp_productores.AsEnumerable().Skip(10) Select New With {.Texto = "Otros", .Cantidad = s("Cantidad").ToString().ToDouble(), .Importe = s("Importe").ToString().ToDouble(), .UnidadC = s("UnidadC").ToString(), .UnidadI = s("UnidadI").ToString()} Dim group_resto_comp_productores = resto_comp_productores.GroupBy(Function(x) x.Texto).[Select](Function(g) New With { .Texto = "Otros", - .Valor = Math.Round(g.Sum(Function(x) x.Valor), 2), - .Unidad = "MXN" + .Cantidad = Math.Round(g.Sum(Function(x) x.Cantidad), 2), + .Importe = Math.Round(g.Sum(Function(x) x.Importe), 2), + .UnidadC = "Kg", + .UnidadI = "MXN" }) - Dim query_comp_productores = top_comp_productores.Union(group_resto_comp_productores).OrderByDescending(Function(x) x.Valor) + Dim query_comp_productores = top_comp_productores.Union(group_resto_comp_productores).OrderByDescending(Function(x) x.Cantidad) 'Compras TipoProveedor=1 Acreedores (Gastos) DtCompAcreed.Reset() @@ -403,6 +450,7 @@ Partial Class General_RepIndicadorResumen }) Dim query_cxp = top_cxp.Union(group_resto_cxp).OrderByDescending(Function(x) x.Valor) + 'Serializar datos agrupándolos por su respectivo DataTable, todos en un solo JSON Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(New With {.VxP = query_vxp, .CompProductores = query_comp_productores, .CompAcreed = query_comp_acreed, .CxC = query_cxc, .CxCR = query_cxcr, .CxP192 = query_cxp192, .CxP = query_cxp}) 'Alert(json) diff --git a/Site.master b/Site.master index 5431b7312..0a9eac6db 100644 --- a/Site.master +++ b/Site.master @@ -15,8 +15,10 @@ <%: Scripts.Render("~/bundles/modernizr") %> <%: Styles.Render("~/Content/AjaxControlToolkit/Styles/Bundle") %> + + - + <%-- diff --git a/Styles/ReportePDF.html b/Styles/ReportePDF.html index 06a1f940c..f43adb8e4 100644 --- a/Styles/ReportePDF.html +++ b/Styles/ReportePDF.html @@ -1,16 +1,13 @@ - + \ No newline at end of file From cd996b15853d883f0efc5b37f19e0f7013e1951f Mon Sep 17 00:00:00 2001 From: MLopez Date: Tue, 10 Jan 2023 10:44:05 -0700 Subject: [PATCH 03/20] =?UTF-8?q?E141=20Rep=20Entradas=20salidas:=20Marca?= =?UTF-8?q?=20es=20ahora=20de=20selecci=C3=B3n=20m=C3=BAltiple=20Modificac?= =?UTF-8?q?iones=20en=20BD=20[SIG=5FResp=5FMLR]=20-=20PA=5FInv=5FReporteMo?= =?UTF-8?q?vimientos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsInventarios.vb | 4 +- Inventarios/RepEntradasSalidas.aspx | 78 +++++++++++++------------- Inventarios/RepEntradasSalidas.aspx.vb | 3 +- 3 files changed, 43 insertions(+), 42 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 4dcd35be4..0ff33a38c 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1755,7 +1755,7 @@ Public Class ClsInventarios Public Function RepMovimientos(CveEmpresa As Integer, CveMoneda As Integer, FechaI As String, FechaF As String, CveConcepto As Integer, CveProveedor As Integer, Almacenes As String, - CveCategoria As Integer, CveClasificacion As Integer, CvePS As Integer, Tipo As Integer, Optional CveMarca As Integer = -1, Optional CvePersonal As Integer = -1, + CveCategoria As Integer, CveClasificacion As Integer, CvePS As Integer, Tipo As Integer, Optional CveMarca As String = "-1", Optional CvePersonal As Integer = -1, Optional CveClasificacion2 As Integer = -1, Optional CveTipoAlmacen As String = "-1", Optional Modalidad As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -1774,7 +1774,7 @@ Public Class ClsInventarios ' .Add("@CveSubFamilia", SqlDbType.Int).Value = CveSubFamilia .Add("@CvePS", SqlDbType.Int).Value = CvePS .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion - .Add("@CveMarca", SqlDbType.Int).Value = CveMarca + .Add("@CveMarca", SqlDbType.VarChar).Value = CveMarca .Add("@CvePersonal", SqlDbType.Int).Value = CvePersonal .Add("@CveClasificacion2", SqlDbType.Int).Value = CveClasificacion2 .Add("@CveTipoAlmacen", SqlDbType.VarChar).Value = CveTipoAlmacen diff --git a/Inventarios/RepEntradasSalidas.aspx b/Inventarios/RepEntradasSalidas.aspx index b541aeccc..95766bb80 100644 --- a/Inventarios/RepEntradasSalidas.aspx +++ b/Inventarios/RepEntradasSalidas.aspx @@ -119,7 +119,7 @@
Proveedor
- +
Categoría
@@ -127,59 +127,59 @@
Clasificación
- -
-
-
- -
Producto
-
- - <%----%> -
-
-
Marca
-
- -
+
-
+
+ +
Producto
+
+ + <%----%> +
Personal
-
Tipo Almacén:
+
+
+ +
+
Marca
- +
-
Modalidad:
-
- - - - - -
-
Clasificación 2:
-
- - -
+
+ +
Tipo Almacén:
+
+ +
+
Modalidad:
+
+ + + + + +
+
Clasificación 2:
+
+ + +
- diff --git a/Inventarios/RepEntradasSalidas.aspx.vb b/Inventarios/RepEntradasSalidas.aspx.vb index c60cd06a3..32c24f006 100644 --- a/Inventarios/RepEntradasSalidas.aspx.vb +++ b/Inventarios/RepEntradasSalidas.aspx.vb @@ -226,6 +226,7 @@ Partial Class Inventarios_ReporteEntradasSalidas 'Dim fechaF As String = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1") FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1") FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1") + Dim Marcas As String = If(DdlMarca.GetSelectedValuesM = "", "-1", DdlMarca.GetSelectedValuesM) Dim TipoAlmacen As String = If(DdlTipoAlmacen.GetSelectedValuesM = "", "-1", DdlTipoAlmacen.GetSelectedValuesM) Dim Almacenes As String = If(DdlAlmacen.GetSelectedValuesM = "", "-1", DdlAlmacen.GetSelectedValuesM) @@ -235,7 +236,7 @@ Partial Class Inventarios_ReporteEntradasSalidas If Reporte.RepMovimientos(UsuarioActual.CveEmpresa, DdlMoneda.SelectedValue.ToEntero, FechaInicial, FechaFinal, DdlTipoMovimiento.SelectedValue.ToEntero, DdlProveedor.SelectedValue.ToEntero, Almacenes, DdlCategoria.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, - DdlMovs.SelectedValue.ToEntero, CveMarca, CvePersonal:=DdlPersonal.SelectedValue.ToEntero, CveClasificacion2:=DdlClasificacion2.SelectedValue.ToEntero, CveTipoAlmacen:=TipoAlmacen, + DdlMovs.SelectedValue.ToEntero, CveMarca:=Marcas, CvePersonal:=DdlPersonal.SelectedValue.ToEntero, CveClasificacion2:=DdlClasificacion2.SelectedValue.ToEntero, CveTipoAlmacen:=TipoAlmacen, Modalidad:=DdlModalidadFiltro.SelectedValue.ToEntero) Then dt = Reporte.DtResultados From 0383dabcb97413383e873de06db2aef7e459d632 Mon Sep 17 00:00:00 2001 From: MLopez Date: Tue, 10 Jan 2023 18:29:08 -0700 Subject: [PATCH 04/20] =?UTF-8?q?Mod=20Extensiones:=20Funciones=20para=20G?= =?UTF-8?q?ridViews,=20hacer=20posible=20DataBind=20que=20incluya=20las=20?= =?UTF-8?q?columnas=20no=20visibles=20Razonamiento:=20Las=20columnas=20mar?= =?UTF-8?q?cadas=20como=20no=20visibles=20en=20un=20GridView=20no=20almace?= =?UTF-8?q?nan=20datos,=20antes=20de=20esto=20se=20ten=C3=ADa=20que=20pone?= =?UTF-8?q?r=20visible=20la=20columna=20y=20volver=20a=20realizar=20de=20n?= =?UTF-8?q?uevo=20la=20consulta=20a=20la=20DB=20para=20recuperar=20el=20da?= =?UTF-8?q?to,=20agotando=20recursos=20innecesarios.=20-=20Se=20extiende?= =?UTF-8?q?=20DataBind()=20con=20el=20param=C3=A9tro=20BindearCamposNoVisi?= =?UTF-8?q?bles=20=20=20Ejemplo:=20Para=20Bindear=20un=20GridView=20que=20?= =?UTF-8?q?tambien=20contemple=20los=20campos=20ocultos,=20se=20manda=20a?= =?UTF-8?q?=20llamar=20Gv.DataBind(True)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/modExtensiones.vb | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index ae5d47fc5..9685028a6 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -1628,6 +1628,66 @@ Namespace Extensiones Public Function FCRangeValidator(ByVal Row As GridViewRow, ByVal Control As String) As RangeValidator Return DirectCast(Row.FindControl(Control), RangeValidator) End Function + + + Public Function GetColumn(ByVal gv As GridView, ByVal name As String) As Integer + Dim index As Integer = 0 + Dim found As Boolean = False + + For Each c As DataControlField In gv.Columns + + If TypeOf c Is BoundField Then + Dim field As BoundField = CType(c, BoundField) + + If name = field.DataField OrElse name = field.SortExpression OrElse name = field.HeaderText Then + found = True + Exit For + End If + End If + + index += 1 + Next + + Return If(found, index, -1) + End Function + + + Public Function HiddenColumns(gv As GridView) As List(Of Integer) + Dim columns As New List(Of Integer) + + For i As Integer = 0 To gv.Columns.Count - 1 + If gv.Columns(i).Visible = False Then columns.Add(i) + Next + + Return columns + End Function + + + Public Sub ShowAllColumns(gv As GridView) + For i As Integer = 0 To gv.Columns.Count - 1 + gv.Columns(i).Visible = True + Next + End Sub + + + Public Sub HideColumns(gv As GridView, columns As List(Of Integer)) + For Each i As Integer In columns + gv.Columns(i).Visible = False + Next + End Sub + + + Public Sub DataBind(gv As GridView, BindearCamposNoVisibles As Boolean) + If BindearCamposNoVisibles Then + Dim NoVisibles As List(Of Integer) = gv.HiddenColumns() + gv.ShowAllColumns() + gv.DataBind() + gv.HideColumns(NoVisibles) + Else + gv.DataBind() + End If + End Sub + #End Region #Region "Excel PDF" From 782804b7a7daa013898639003976390acb18c9b3 Mon Sep 17 00:00:00 2001 From: MLopez Date: Tue, 10 Jan 2023 18:30:09 -0700 Subject: [PATCH 05/20] =?UTF-8?q?E141=20Rep=20Entradas=20y=20salidas:=20Op?= =?UTF-8?q?ci=C3=B3n=20para=20personalizar=20columnas,=20no=20recargar=20c?= =?UTF-8?q?onsulta=20al=20personalizar=20Grid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/RepEntradasSalidas.aspx | 41 +++++++++++++++------- Inventarios/RepEntradasSalidas.aspx.vb | 47 ++++++++++++++++++++------ 2 files changed, 64 insertions(+), 24 deletions(-) diff --git a/Inventarios/RepEntradasSalidas.aspx b/Inventarios/RepEntradasSalidas.aspx index 95766bb80..82be31ee6 100644 --- a/Inventarios/RepEntradasSalidas.aspx +++ b/Inventarios/RepEntradasSalidas.aspx @@ -1,22 +1,37 @@ <%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEntradasSalidas.aspx.vb" Inherits="Inventarios_ReporteEntradasSalidas" %> -
  • - Generar PDF -
  • -
  • - Generar Excel -
  • -
  • - Generar Formato Inventario -
  • + + +
  • + Generar PDF +
  • +
  • + Generar Excel +
  • -
  • - Personalizar Columnas -
  • - <%--
  • +
  • + Excel Personalizado +
  • + +
  • + Generar Formato Inventario +
  • + +
  • + Personalizar Columnas +
  • + <%--
  • Generar Inventarios HP
  • --%> +
    + + + + + + +
    - - - - -
  • - Generar PDF + + + + +
  • + Generar PDF +
  • +
  • + Generar Excel +
  • + +
  • + Excel Personalizado +
  • + +
  • + +
  • -
  • - Generar Excel -
  • - -
  • - Excel Personalizado -
  • - -
  • -
  • - -
  • - Ver Dlls en pesos - -
  • - - -
  • - Programar Recursos - -
  • - -
    - - - - - -
    - +
  • + Ver Dlls en pesos + +
  • + + +
  • + Programar Recursos + +
  • + + + + + + + + +
    Reporte de CxP - Detalle @@ -216,18 +217,18 @@
    - -
    - - - -
    - - -
    - - - + +
    + + + +
    + + +
    + + +
    Comprobación:
    @@ -241,19 +242,19 @@
    -
    +
    Moneda:
    -
    - -
    +
    + +
    Aplica NC:
    -
    +
    - -
    + +
    @@ -264,7 +265,7 @@ - <%--0--%> diff --git a/Compras/RepCxPDetalle.aspx.vb b/Compras/RepCxPDetalle.aspx.vb index 22ed077f9..10ad64961 100644 --- a/Compras/RepCxPDetalle.aspx.vb +++ b/Compras/RepCxPDetalle.aspx.vb @@ -83,18 +83,6 @@ Partial Class RepCxPDetalle ViewState("FechaFin") = value End Set End Property - - - Private Property Personalizo As Integer - Get - Return ViewState("Personalizo").ToString.ToEntero - End Get - - Set(value As Integer) - ViewState("Personalizo") = value - End Set - End Property - Public Property FechaVInicio() As String Get @@ -205,7 +193,6 @@ Partial Class RepCxPDetalle Private Property TCEspecifico As Double - Public Property DTCuentasContables() As DataTable Get If ViewState("DTCuentasContables") Is Nothing Then @@ -218,20 +205,14 @@ Partial Class RepCxPDetalle Set(value As DataTable) ViewState("DTCuentasContables") = value End Set - End Property - - - + End Property #End Region - - 'pRivate ReadOnly Property ColumnasVisibles As - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load - If Not IsPostBack Then - Personalizo = 0 - + 'Private ReadOnly Property ColumnasVisibles As + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then ViewState("Opcion") = IfNull(Request("Op"), "S") - MostrarOcultarColumnas() + MostrarOcultarColumnas(False) CargaCombos() If Request("Op") IsNot Nothing Then CargaDatos() @@ -274,7 +255,6 @@ Partial Class RepCxPDetalle DdlUsuarioRegistro.Items.Insert(0, New ListItem("Todos", "-1")) DdlUsuarioRegistro.SelectedValueExist(UsuarioRegistro) - Dim CveSucursal As Integer = IfNull(Request("CveSubProyecto"), -1).ToString.ToEntero 'DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) @@ -309,7 +289,6 @@ Partial Class RepCxPDetalle FechaCorte = IfNull(Request("FechaCorte"), Now.ToDate.ToString).ToString txtCorteA.Text = $"31/12/{Now.Year}" - If Request("FechaI") <> "-1" AndAlso IsDate(Request("FechaI")) Then txtFechaI.Text = Request("FechaI") If Request("FechaF") <> "-1" AndAlso IsDate(Request("FechaF")) Then txtFechaF.Text = Request("FechaF") If Request("FechaVI") <> "-1" AndAlso IsDate(Request("FechaVI")) Then txtFechaVI.Text = Request("FechaVI") @@ -349,8 +328,6 @@ Partial Class RepCxPDetalle GvDatos.Columns(11).Visible = (UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 Or UsuarioActual.Empresa.Funcionalidad(134).ToEntero > 0) - - For Each lItem As ListItem In DdlGrupo.Items If lItem.Value.ToEntero = 9 Then @@ -358,7 +335,6 @@ Partial Class RepCxPDetalle End If Next - End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged @@ -544,11 +520,8 @@ Partial Class RepCxPDetalle End If End If - - End If - If e.Row.DBCampo("CveCompra") = "" Then e.Row.FCLabel("LblMoneda").Text = "" End If @@ -595,7 +568,7 @@ Partial Class RepCxPDetalle #End Region #Region "PERSONALIZAR" - Protected Sub MostrarOcultarColumnas() + Protected Sub MostrarOcultarColumnas(Optional Personalizo As Boolean = True) If ChkTipoDocto.Checked Then GvDatos.Columns(0).Visible = True @@ -639,15 +612,12 @@ Partial Class RepCxPDetalle GvDatos.Columns(7).Visible = False End If - If ChkMoneda.Checked Then GvDatos.Columns(8).Visible = True Else GvDatos.Columns(8).Visible = False End If - - If ChkSaldo.Checked Then GvDatos.Columns(9).Visible = True Else @@ -692,12 +662,12 @@ Partial Class RepCxPDetalle GvDatos.Columns(16).Visible = ChkDescripcion.Checked - Personalizo = 1 - If Personalizo = 1 Then + If Personalizo Then ImgExcelPersonalizado.Visible = True Else ImgExcelPersonalizado.Visible = False - End If + End If + UPAcciones.Update() UPDatos.Update() End Sub diff --git a/Inventarios/RepEntradasSalidas.aspx b/Inventarios/RepEntradasSalidas.aspx index 82be31ee6..a6f392e96 100644 --- a/Inventarios/RepEntradasSalidas.aspx +++ b/Inventarios/RepEntradasSalidas.aspx @@ -227,7 +227,7 @@ <%--0--%> - + <%--1--%> <%--2--%> diff --git a/Inventarios/RepEntradasSalidas.aspx.vb b/Inventarios/RepEntradasSalidas.aspx.vb index a11433761..72404a554 100644 --- a/Inventarios/RepEntradasSalidas.aspx.vb +++ b/Inventarios/RepEntradasSalidas.aspx.vb @@ -54,21 +54,11 @@ Partial Class Inventarios_ReporteEntradasSalidas Return (UsuarioActual.CveEmpresa.Contiene(72, 80)) End Get End Property - Private Property Personalizo As Integer - Get - Return ViewState("Personalizo").ToString.ToEntero - End Get - - Set(value As Integer) - ViewState("Personalizo") = value - End Set - End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then - Personalizo = 0 If UsuarioActual.CveEmpresa.Contiene(119) Then LnkFormatoInventario.Visible = True @@ -435,7 +425,7 @@ Partial Class Inventarios_ReporteEntradasSalidas #End Region #Region "PERSONALIZAR" - Private Sub MostrarOcultarColumnas() + Private Sub MostrarOcultarColumnas(Optional Personalizo As Boolean = True) GvM.Columns(1).Visible = ChkCodigoAlterno.Checked GvM.Columns(2).Visible = ChkCodigoBarras.Checked GvM.Columns(3).Visible = ChkClasificacion2.Checked @@ -510,12 +500,12 @@ Partial Class Inventarios_ReporteEntradasSalidas dvCan.Style.Add("width", "21%") End If - Personalizo = 1 - If Personalizo = 1 Then + If Personalizo Then LnkExcelPersonalizado.Visible = True Else LnkExcelPersonalizado.Visible = False End If + UPAcciones.Update() UpEncabezado.Update() UPPMov.Update() @@ -524,7 +514,6 @@ Partial Class Inventarios_ReporteEntradasSalidas Private Sub BtnPersonalizar_Click(sender As Object, e As EventArgs) Handles BtnPersonalizar.Click MostrarOcultarColumnas() RegistraScript("$('#DivPersonalizar').modal('hide')") - UPAcciones.Update() 'CargaDatos() End Sub From 5f741c24f6e2a70551a24bb844316136fef01ed3 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Wed, 11 Jan 2023 13:09:23 -0700 Subject: [PATCH 07/20] --- Nomina/Aguinaldo.aspx.cs | 4 +- Nomina/Nomina.aspx | 70 ++++++++++++- Nomina/Nomina.aspx.cs | 215 ++++++++++++++++++++++++++++++++++++--- 3 files changed, 268 insertions(+), 21 deletions(-) diff --git a/Nomina/Aguinaldo.aspx.cs b/Nomina/Aguinaldo.aspx.cs index 4b11f9b47..28e4abe3e 100644 --- a/Nomina/Aguinaldo.aspx.cs +++ b/Nomina/Aguinaldo.aspx.cs @@ -434,8 +434,8 @@ public partial class Nomina_Aguinaldo : ClsPaginas FraccionI = (aguinaldogravado / diasanio) * diasmes; FraccionII_1 = salariomensual + FraccionI; str.Clear(); - str.AppendFormat("SELECT dbo.Fnc_NomValues(40, 0, 00, -1, {0}, {1}, {1}) isrFraccionII_2,", FraccionII_1, diasmes); - str.AppendFormat(" dbo.Fnc_NomValues(40, 0, 00, -1, {0}, {1}, {1}) isrFraccionIII_1", salariomensual, diasmes); + str.AppendFormat("SELECT dbo.Fnc_NomValues(40, 0, {2}, -1, {0}, {1}, {1}) isrFraccionII_2,", FraccionII_1, diasmes, DdlEjercicios.SelectedValue); + str.AppendFormat(" dbo.Fnc_NomValues(40, 0, {2}, -1, {0}, {1}, {1}) isrFraccionIII_1", salariomensual, diasmes, DdlEjercicios.SelectedValue); if (objbase.runQuerystr(str.ToString())) { DataRow drow = objbase.DtResultados.Rows[0]; diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx index e5f0cdf13..c14eaccd0 100644 --- a/Nomina/Nomina.aspx +++ b/Nomina/Nomina.aspx @@ -262,6 +262,9 @@
  • Cargar masiva de conceptos
  • +
  • + Cargar netos +
  • Tablas de cálculo
  • @@ -404,7 +407,7 @@
    + DataTextField="TipoTrabajadorB" DataValueField="CveTipoTrabajador" ValidationGroup="GrpGuardar">
    @@ -629,7 +632,7 @@ <%--Descargar Cargar--%> - + Asistencia @@ -663,7 +666,7 @@
    - + @@ -3231,7 +3234,7 @@
    - +
    - +
    @@ -3364,6 +3367,9 @@
    +
    + +
    @@ -3383,6 +3389,60 @@
    + + + + +