From 3b1e1a17e65e5f36374b91993bef1d44d664e9ed Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 25 Apr 2025 09:49:02 -0700 Subject: [PATCH 01/33] --Sobr/Falt en rep cortes --- Bancos/RepCortes.aspx | 5 +++++ Bancos/RepCortes.aspx.vb | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/Bancos/RepCortes.aspx b/Bancos/RepCortes.aspx index 0f8f26f74..d6fc48fb1 100644 --- a/Bancos/RepCortes.aspx +++ b/Bancos/RepCortes.aspx @@ -448,6 +448,11 @@ + + + + + diff --git a/Bancos/RepCortes.aspx.vb b/Bancos/RepCortes.aspx.vb index 177d8cb61..ca533a117 100644 --- a/Bancos/RepCortes.aspx.vb +++ b/Bancos/RepCortes.aspx.vb @@ -231,6 +231,10 @@ Partial Class Bancos_RepCortes DtCortesVentas = DsDatos.Tables(0) GvD.DataSource = DtCortesVentas + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + GvD.Columns(3).Visible = True + End If + divDetalle.Visible = True 'RESUMEN DtCortesVentasResumen = DsDatos.Tables(1) From 0a57ae4ae0a751c33e77dcb66f45c053f2396758 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 25 Apr 2025 18:50:06 -0700 Subject: [PATCH 02/33] --FIX cortes --- Bancos/PopIEVentas.aspx.vb | 66 ++++++++++++++++++++++++--------- Bancos/RepCortes.aspx | 4 +- Bancos/RepCortes.aspx.vb | 6 ++- Compras/PopUpVerFactura.aspx.vb | 2 +- Ventas/ClientesAbonar.aspx.vb | 65 +++++++++++++++++++++++++++++++- 5 files changed, 120 insertions(+), 23 deletions(-) diff --git a/Bancos/PopIEVentas.aspx.vb b/Bancos/PopIEVentas.aspx.vb index 7f47b4731..4fd113f60 100644 --- a/Bancos/PopIEVentas.aspx.vb +++ b/Bancos/PopIEVentas.aspx.vb @@ -545,16 +545,7 @@ Partial Class Bancos_PopIEVentas FechaVenta = dr("Fecha").ToString.ToDate SaldoVenta = dr("Saldo").ToString.ToDouble - - 'Cortes de Caja - If UsuarioActual.TienePermisoProceso(160) Then - CargaCorteCaja() - End If - - If UsuarioActual.Empresa.Funcionalidad(531) = "1" OrElse (dr("CveCorte").ToString.ToEntero > 0) Then 'toma como proridad el que viene de - CveCorte = dr("CveCorte").ToString.ToEntero - End If - + Me.CveCorte = CargaCorteCaja(pCveVenta, UsuarioActual) If RFCCliente.ToUpper <> "XAXX010101000" Then Dim CveProveedor As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa, RFC:=RFCCliente.ToUpper).FiltroPrimeroValor("CveProveedor").ToEntero @@ -581,18 +572,57 @@ Partial Class Bancos_PopIEVentas ObjVenta.Dispose() End Sub - Private Sub CargaCorteCaja() - 'Checar si hay un Turno Abierto - Dim ObjPVenta As New ClsPuntoVenta + Protected Function CargaCorteCaja(CveVenta As Integer, UsuarioActual As Usuario) As Integer + Dim CveCorte As Integer = -1 - If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then + Dim CveCorteVenta As Integer = -1 + Dim EsCredito As Boolean = False + Dim UsaCorteActual As Boolean = False - If ObjPVenta.DtResultados.Rows.Count > 0 Then - CveCorte = ObjPVenta.CveCorte + If CveVenta > 0 Then + Using ObjVentas As New ClsVentas + If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) Then + EsCredito = If(ObjVentas.DtResultados.FiltroPrimeroValor("CondicionesPago").ToEntero() = 1, True, False) + CveCorteVenta = ObjVentas.DtResultados.FiltroPrimeroValor("CveCorte").ToEntero() + End If + End Using + + If UsuarioActual.TienePermisoProceso(160) OrElse UsuarioActual.TienePermisoProceso(371) Then + 'SI ES FACTURA A CREDITO + If EsCredito OrElse CveCorteVenta <= 0 Then + UsaCorteActual = True + End If + End If + + 'SI ES CONTADO TOMAR EL DE LA VENTA + If Not EsCredito Then + UsaCorteActual = False + End If + + 'EN BDH TOMAR EL DE LA VENTA + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + UsaCorteActual = False + End If + Else + If UsuarioActual.TienePermisoProceso(160) OrElse UsuarioActual.TienePermisoProceso(371) Then + UsaCorteActual = True End If End If - ObjPVenta.Dispose() - End Sub + + If UsaCorteActual Then + Dim ObjPVenta As New ClsPuntoVenta + If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then + If ObjPVenta.DtResultados.Rows.Count > 0 Then + CveCorte = ObjPVenta.CveCorte + End If + End If + ObjPVenta.Dispose() + Else + CveCorte = CveCorteVenta + End If + + Return CveCorte + End Function Private Sub CargaCliente(ByVal CveCliente As Integer, RFC As String) Dim ObjCliente As New ClsClientes diff --git a/Bancos/RepCortes.aspx b/Bancos/RepCortes.aspx index d6fc48fb1..7c9ebeeb3 100644 --- a/Bancos/RepCortes.aspx +++ b/Bancos/RepCortes.aspx @@ -131,7 +131,7 @@ - + @@ -315,7 +315,7 @@ - <%----%> + diff --git a/Bancos/RepCortes.aspx.vb b/Bancos/RepCortes.aspx.vb index ca533a117..5827880e9 100644 --- a/Bancos/RepCortes.aspx.vb +++ b/Bancos/RepCortes.aspx.vb @@ -90,6 +90,10 @@ Partial Class Bancos_RepCortes GvDatos.Columns(4).Visible = True End If + If UsuarioActual.CveRol = 1 Then + GvDatos.Columns(21).Visible = True 'COLUMNA DE CveCorte + End If + GvP.DataBind() GvDep.DataBind() GvPorIVA.DataBind() @@ -219,7 +223,7 @@ Partial Class Bancos_RepCortes Dim ConsultaPorSucursal As Boolean = UsuarioActual.Empresa.Funcionalidad(382) = "1" If ConsultaPorSucursal Then - CveCorte = -1 + 'CveCorte = -1 FechaConsulta = gvr.DataKey("FechaInicial").ToDate() End If diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 3ebde3353..b81b0efbe 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1749,7 +1749,7 @@ Partial Class PopUpVerFactura End Using End If - CveCorte = -1 + 'CveCorte = -1 End If Dim ObjVenta As New ClsVentas diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 184fd643b..216ca1ed8 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -10,6 +10,14 @@ Partial Class Ventas_ClientesAbonar #Region "Propiedades" + Private Property CveCorte As Integer + Get + Return ViewState("CveCorte").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveCorte") = value + End Set + End Property Private ReadOnly Property CveCliente As Integer Get Return ViewState("CveCliente").ToString.ToEntero @@ -172,6 +180,7 @@ Partial Class Ventas_ClientesAbonar Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not Page.IsPostBack Then + Me.CveCorte = -1 CveMonedaPago = -1 If Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToString.ToEntero > 0 Then ViewState("CveCliente") = Request("CveCliente").ToString.ToEntero @@ -229,6 +238,8 @@ Partial Class Ventas_ClientesAbonar ChkPagarDolares.Visible = False End If RegistraScript($"TipoCambioActual = {GlobalTipoCambio(Fecha).FormatoNumero(4)}") + + Me.CveCorte = CargaCorteCaja(-1, UsuarioActual) End If RVTxtFechaDocumento.MaximumValue = NowADS().ToString("dd/MM/yyyy") @@ -255,6 +266,58 @@ Partial Class Ventas_ClientesAbonar End Sub + Protected Function CargaCorteCaja(CveVenta As Integer, UsuarioActual As Usuario) As Integer + Dim CveCorte As Integer = -1 + + Dim CveCorteVenta As Integer = -1 + Dim EsCredito As Boolean = False + Dim UsaCorteActual As Boolean = False + + If CveVenta > 0 Then + Using ObjVentas As New ClsVentas + If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa, VerificaAlmacen:=False) Then + EsCredito = If(ObjVentas.DtResultados.FiltroPrimeroValor("CondicionesPago").ToEntero() = 1, True, False) + CveCorteVenta = ObjVentas.DtResultados.FiltroPrimeroValor("CveCorte").ToEntero() + End If + End Using + + If UsuarioActual.TienePermisoProceso(160) OrElse UsuarioActual.TienePermisoProceso(371) Then + 'SI ES FACTURA A CREDITO + If EsCredito OrElse CveCorteVenta <= 0 Then + UsaCorteActual = True + End If + End If + + 'SI ES CONTADO TOMAR EL DE LA VENTA + If Not EsCredito Then + UsaCorteActual = False + End If + + 'EN BDH TOMAR EL DE LA VENTA + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + UsaCorteActual = False + End If + Else + If UsuarioActual.TienePermisoProceso(160) OrElse UsuarioActual.TienePermisoProceso(371) Then + UsaCorteActual = True + End If + End If + + If UsaCorteActual Then + Dim ObjPVenta As New ClsPuntoVenta + If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then + If ObjPVenta.DtResultados.Rows.Count > 0 Then + CveCorte = ObjPVenta.CveCorte + End If + End If + ObjPVenta.Dispose() + Else + CveCorte = CveCorteVenta + End If + + Return CveCorte + End Function + Private Sub CargaTipoTransaccion() DdlTipoTransaccion.DataSource = GlobalDTTipoTransacciones.FiltraParametros("Tipo = 'Ing' AND Estatus = 1 ") DdlTipoTransaccion.DataBind() @@ -870,7 +933,7 @@ Partial Class Ventas_ClientesAbonar CveIE = ObjIE.AddBancos_IE(DdlCuenta.SelectedValue.ToEntero, DdlTipoTransaccion.SelectedValue.ToEntero, TxtFechaDocumento.Text.Trim.ToDate, Folio, TxtAboneA.Text.Trim, TxtImporte.Text.ToDecimal, GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", "CveCuenta = " & DdlCuenta.SelectedValue).ToEntero, TipoCambio, TxtObservaciones.Text.Trim, "", True, True, -1, CvePrePoliza, Comprobante, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCuentaDeposito:=CveCuentaDeposito, - CveProveedorIntermediario:=CveProvIntermediario, ImporteDeduccionesPago:=TxtImporteDeduccionesPago.Text.ToDecimal, FechaEmision:=FechaEmision) + CveProveedorIntermediario:=CveProvIntermediario, ImporteDeduccionesPago:=TxtImporteDeduccionesPago.Text.ToDecimal, FechaEmision:=FechaEmision, CveCorte:=Me.CveCorte) If Folio = "-1" Then TxtFolio.Text = ObjIE.Folio.ToString() End If From d079b82845c3ef93f75b9db2b083273e3b87e2a6 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 27 Apr 2025 13:05:40 -0700 Subject: [PATCH 03/33] =?UTF-8?q?--=20Manejo=20de=20sesi=C3=B3n.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ashx/SIGFacturacion.ashx | 1 + 1 file changed, 1 insertion(+) diff --git a/Ashx/SIGFacturacion.ashx b/Ashx/SIGFacturacion.ashx index 034a71d08..ec403c3e2 100644 --- a/Ashx/SIGFacturacion.ashx +++ b/Ashx/SIGFacturacion.ashx @@ -233,6 +233,7 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual End If ObjUsuarios.Dispose() Return UsuarioActual From 309600e9380a3f9a8ab1bff29d403314a3f06037 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 27 Apr 2025 13:40:12 -0700 Subject: [PATCH 04/33] - ocultar columna de importes cuando es almacenista --- Ventas/RepComisionesSMS.aspx.vb | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Ventas/RepComisionesSMS.aspx.vb b/Ventas/RepComisionesSMS.aspx.vb index 23d0bf991..4f74bc443 100644 --- a/Ventas/RepComisionesSMS.aspx.vb +++ b/Ventas/RepComisionesSMS.aspx.vb @@ -66,6 +66,18 @@ Partial Class Ventas_RepComisionesSMS GvDatos.Columns(19).Visible = False 'fecha pago GvDatos.Columns(20).Visible = False 'pagada End If + 'ocultar columnas en usuario almacen. + If UsuarioActual.CveRol = 1578 Then 'almacen + GvDatos.Columns(11).Visible = False 'precio unitario + GvDatos.Columns(12).Visible = False 'precio total + GvDatos.Columns(14).Visible = False 'vendedor + GvDatos.Columns(16).Visible = False 'tecnico + GvDatos.Columns(17).Visible = False 'gerente + GvDatos.Columns(18).Visible = False 'ed.medica + GvDatos.Columns(19).Visible = False 'fecha pago + GvDatos.Columns(20).Visible = False 'pagada + End If + End Sub Public Sub CargaDatos() From 15479007ee51107c6d03a9d5cdc74e1ed7fca661 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 28 Apr 2025 12:05:46 -0700 Subject: [PATCH 05/33] -- alta clientes en mayusculas --- Ventas/PV.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 65cdb1650..07cea1e59 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -6759,7 +6759,7 @@ Partial Class PV Dim TipoPersona As Boolean = If(RdTipoPersona.SelectedValue.ToEntero = 1, True, False) Dim GeneroCliente As Boolean = If(DdlGeneroCliente.SelectedValue.ToEntero = 1 Or DdlGeneroCliente.SelectedValue.ToEntero = -1, True, False) - If ObjCliente.AgregarClienteNoFrecuente(TxtNombreCliente.Text.Trim, TxtDireccionCliente.Text.Trim, TxtNumExtCliente.Text.Trim, TxtNumIntCliente.Text.Trim, + If ObjCliente.AgregarClienteNoFrecuente(TxtNombreCliente.Text.Trim.ToUpper, TxtDireccionCliente.Text.Trim, TxtNumExtCliente.Text.Trim, TxtNumIntCliente.Text.Trim, TxtColoniaCliente.Text.Trim, TxtLocalidadCliente.Text.Trim, TxtCiudadCliente.Text.Trim, DdlEstadoSAT.SelectedValue.ToEntero, TxtRFCCliente.Text.Trim, TxtCPCliente.Text.Trim, TxtTelefonoCliente.Text.Trim, TxtCorreoCliente.Text.Trim, DdlSubProyectoDatos.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", DdlMetodoCliente.SelectedValue.ToEntero(), DdlFormaCliente.SelectedValue.ToEntero(), CvePrecioLista:=CvePrecioLista, From c4e58b18fc96eb62e99c4479b241229a94b7c5d9 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Mon, 28 Apr 2025 15:51:29 -0700 Subject: [PATCH 06/33] TareasProgramadas Envio de estado cuenta, compras cvetipoOperacion, , reembolsos filtror rwo acumulado, ajkustes carta porte, OC carga desde excel filtro rows vacios, personal cuentas deposito --- Ashx/TareasProgramadas.ashx | 17 +- Compras/Compras.aspx.vb | 6 +- Compras/Proveedores.aspx | 186 ++++++------- Compras/ReembolsosComprobaciones.aspx.vb | 2 +- .../Grales/Formatos/CartaPorteTimbrado.rdlc | 7 +- OC/OC.aspx.vb | 22 ++ OI/Proyecto.aspx | 50 +++- RH/Personal.aspx | 200 +++++++++++++- RH/Personal.aspx.vb | 248 +++++++++++++++--- 9 files changed, 577 insertions(+), 161 deletions(-) diff --git a/Ashx/TareasProgramadas.ashx b/Ashx/TareasProgramadas.ashx index fb461e57e..8e79bea06 100644 --- a/Ashx/TareasProgramadas.ashx +++ b/Ashx/TareasProgramadas.ashx @@ -108,7 +108,9 @@ Public Class TareasProgramadas : Implements IHttpHandler, IReadOnlySessionState context.Response.Write(retorno) Case "EstadosCuenta" 'CargaEstadosCuenta(context, 119, 227774) - CargaEstadosCuenta(context, 119, -1, FechaEnvio, FechaActual) + 'CargaEstadosCuenta(context, 119, -1, FechaEnvio, FechaActual) + Dim tCveEmpresa As Integer = context.Request("CveEmpresa").ToString.ToEntero + CargaEstadosCuenta(context, tCveEmpresa, -1, FechaEnvio, FechaActual) Case "ScoreCard" CargaScoreCard(context, 140, FechaEnvio) @@ -354,6 +356,9 @@ Public Class TareasProgramadas : Implements IHttpHandler, IReadOnlySessionState #Region "E S T A D O S D E C U E N T A" Private Sub CargaEstadosCuenta(ByVal context As HttpContext, pCveEmpresa As Integer, pCveCliente As Integer, FechaEnvio As DateTime, FechaActual As DateTime) + + Dim Usuario As Usuario = ValidaUsuarioSistema(100, pCveEmpresa) + Dim Retorno As New JArray() Dim DtEmpresas As DataTable = Nothing Using ObjEmpresas As New ClsSisEmpresas() @@ -364,7 +369,7 @@ Public Class TareasProgramadas : Implements IHttpHandler, IReadOnlySessionState If DtEmpresas IsNot Nothing Then For Each Row As DataRow In DtEmpresas.Rows - Dim Usuario As Usuario = ValidaUsuarioSistema(100, Row("CveEmpresa").ToString().ToEntero()) + 'Dim Usuario As Usuario = ValidaUsuarioSistema(100, Row("CveEmpresa").ToString().ToEntero()) Dim obj As JObject = EjecutarEnvioEstadoCuenta(Usuario, FechaEnvio, FechaActual, pCveCliente:=pCveCliente) Retorno.Add(obj) @@ -499,7 +504,9 @@ Public Class TareasProgramadas : Implements IHttpHandler, IReadOnlySessionState Dim Envio As Boolean = False If Not String.IsNullOrEmpty(Correo) Then + 'Correo = "oscar.irigoyen@adssistemas.mx" Envio = EnviarEstadoCuenta(UsuarioActual, Correo, Cliente) + GuardaLog($"Log envio Estados Cuenta correo {If(Envio, "Enviado", "Error")} CveCliente {CveCliente} ") End If If Envio Then @@ -522,6 +529,7 @@ Public Class TareasProgramadas : Implements IHttpHandler, IReadOnlySessionState New JProperty("Cliente", Cliente.Nombre) )) End If + End If Next End If @@ -857,7 +865,10 @@ Public Class TareasProgramadas : Implements IHttpHandler, IReadOnlySessionState If sw.Elapsed.TotalSeconds > 10 Then GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") End If - If MR IsNot Nothing Then MR.Dispose() + If MR IsNot Nothing Then + 'MR.Close() + MR.Dispose() + End If Return Bytes End Function diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 6ed284990..985b03230 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -2562,7 +2562,7 @@ Partial Class Compras_Compras DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) End If - If DIOTCveTipoOperacion.Contiene(0, 3) Then ' 85 - Otros + If DIOTCveTipoOperacion.Contiene(0, 3, 4) Then ' 85 - Otros If UsuarioActual.CveEmpresa <> 119 Then DdlRetIVAConcepto.Items.Insert(0, New ListItem("Honorarios/Serv. Prof.", "1")) DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) @@ -2585,7 +2585,7 @@ Partial Class Compras_Compras DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) End If - If DIOTCveTipoOperacion.Contiene(3) Then ' 85 - Otros + If DIOTCveTipoOperacion.Contiene(3, 4) Then ' 85 - Otros If UsuarioActual.CveEmpresa <> 119 Then DdlRetIVAConcepto.Items.Insert(0, New ListItem("Honorarios/Serv. Prof.", "1")) DdlRetIVAConcepto.Items.Add(New ListItem("Arrendamiento", "4")) @@ -2619,7 +2619,7 @@ Partial Class Compras_Compras DdlRetISRConcepto.Items.Insert(0, New ListItem("Arrendamiento", "2")) End If - If DIOTCveTipoOperacion.Contiene(3) Then ' 85 - Otros + If DIOTCveTipoOperacion.Contiene(3, 4) Then ' 85 - Otros If UsuarioActual.CveEmpresa <> 119 Then DdlRetISRConcepto.Items.Insert(0, New ListItem("Honorarios", "1")) DdlRetISRConcepto.Items.Insert(1, New ListItem("Arrendamiento", "2")) diff --git a/Compras/Proveedores.aspx b/Compras/Proveedores.aspx index 4a7d61348..4c7dd8fa6 100644 --- a/Compras/Proveedores.aspx +++ b/Compras/Proveedores.aspx @@ -3326,89 +3326,89 @@ - -
+
+
-
-
-
-
- - -
-
-
-
- - - -
-
-
-
-
-
- - -
-
-
-
- - -
-
-
-
- - <%----%> - -
-
-
-
- - - -
-
-
-
-
-
- - - -
-
-
-
- - -
-
-
-
-
- - -
+
+ + +
-
-
- - - +
+
+
+ + + +
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + + +
+
+
+
+
+
+ + + +
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+ + + +
+
-
-
@@ -3427,38 +3427,38 @@
-
-
-
+
+
+
-
-
+
+
-
- - +
+ +
-
-
+
+
-
- - - Seleccione uno - - - - +
+ + + Seleccione uno + + + + + +
-
-
- + + + + +
@@ -320,6 +314,36 @@ + + + diff --git a/General/Dashboard.aspx.vb b/General/Dashboard.aspx.vb index 7384cc14f..59fc12ef4 100644 --- a/General/Dashboard.aspx.vb +++ b/General/Dashboard.aspx.vb @@ -5,68 +5,444 @@ Imports System.Web.Services Imports Newtonsoft.Json Imports ADSNetLibrary.SIGAPI.Models.CRM.Request Imports ADSNetLibrary.SIGAPI.Services.CRM +Imports System.Globalization Partial Class General_Dashboard Inherits ClsPaginas Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then - CargarIndicadores() + BindDropdown() + ddlDashboardOption.SelectedValue = "1" ' Opción por defecto: Ingresos + LoadDashboard() End If End Sub - Private Sub CargarIndicadores() - Dim Gral As New ClsGenerales - Dim ds As DataSet = Gral.GetDashboardData(UsuarioActual.CveEmpresa) + Protected Sub ddlDashboardOption_SelectedIndexChanged(sender As Object, e As EventArgs) + LoadDashboard() + End Sub - If ds IsNot Nothing AndAlso ds.Tables.Count > 0 Then - ProcesarDatosIndicadores(ds.Tables(0)) + Private Sub BindDropdown() + ' Actualmente las opciones están definidas en el markup + ' Aquí podrías cargar dinámicamente si lo deseas en el futuro + End Sub + + Private Sub LoadDashboard() + Dim opcion As Integer = Integer.Parse(ddlDashboardOption.SelectedValue) + Dim hoy As DateTime = DateTime.Now + Dim inicio As DateTime = New DateTime(hoy.Year, 1, 1) + + Dim Gral As New ClsGenerales + Gral.GetDashboardData(opcion, UsuarioActual.CveEmpresa, inicio, hoy) + Dim ds As DataSet = Gral.DSResultados + If ds Is Nothing Then Return + + ' Selecciona la vista según la opción elegida + mvDashboard.ActiveViewIndex = opcion - 1 ' Asume que la primera opción = ViewIndex 0 + + Select Case opcion + Case 1 ' Ingresos + ProcesarDatosIndicadores(ds.Tables("Indicadores")) + CargarResumenSucursales(ds.Tables("DetalleDia")) + CargarVentasMensuales(ds.Tables("DetalleAnualesMes")) + + CargarVentasPorSucursal(ds.Tables("DetalleDia")) + CargarVentasPorVendedor(ds.Tables("VentasPorVendedor")) + CargarVentasPorClasificacion(ds.Tables("VentasPorClasificacion")) + CargarVentasPorMarca(ds.Tables("VentasPorMarca")) + CargarVentasPorPS(ds.Tables("VentasPorPS")) + CargarVentasPorCliente(ds.Tables("VentasPorCliente")) + CargarVentasPorProveedor(ds.Tables("VentasPorProveedor")) + + + Case 2 ' Recuperación + ' TODO: Implementar carga de indicadores, gráficas y grids para Recuperación + + Case 3 ' Compras + ' TODO: Implementar carga para Compras + + Case 4 ' Gasto + ' TODO: Implementar carga para Gasto + + Case 5 ' Cuentas por Pagar + ' TODO: Implementar carga para CxP + + Case 6 ' Inventario + ' TODO: Implementar carga para Inventario + + Case 7 ' Utilidad + ' TODO: Implementar carga para Utilidad + + Case 8 ' Impuestos + ' TODO: Implementar carga para Impuestos + + Case 9 ' CRM + ' TODO: Implementar carga para CRM + + Case 10 ' RH + ' TODO: Implementar carga para RH + + Case 11 ' AF + ' TODO: Implementar carga para AF + End Select + End Sub + + Private Sub CargarIndicadores(dt As DataTable) + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + ProcesarDatosIndicadores(dt) End If End Sub Private Sub ProcesarDatosIndicadores(dt As DataTable) - If dt.Rows.Count > 0 Then - Dim dr As DataRow = dt.Rows(0) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + Dim dr As DataRow = dt.Rows(0) ' Indicador Año - MuestraIndicador(DivIndicadores, "blue", "fa fa-calendar", "Año Actual", dr("AcumAño").ToString.FormatoNumero(0), "#", "Acumulado", - dr("AcumAñoPromedio").ToString.FormatoNumero(0), "#", "Promedio", + MuestraIndicador(DivIndicadoresLeft, "blue", "fa fa-calendar", "Año Actual", dr("AcumAño").ToString.FormatoNumero(0), "#", "Acumulado", + dr("AcumAñoPromedio").ToString.FormatoNumero(0), "#", "Ticket Promedio", dr("AcumAñoContado").ToString.FormatoNumero(0), "#", "Contado", dr("AcumAñoCredito").ToString.FormatoNumero(0), "#", "Crédito") ' Indicador Mes - MuestraIndicador(DivIndicadores, "green", "fa fa-calendar-check-o", "Mes Actual", + MuestraIndicador(DivIndicadoresLeft, "green", "fa fa-calendar-check-o", "Mes Actual", dr("AcumMes").ToString.FormatoNumero(0), "#", "Acumulado", - dr("AcumMesPromedio").ToString.FormatoNumero(0), "#", "Promedio", + dr("AcumMesPromedio").ToString.FormatoNumero(0), "#", "Ticket Promedio", dr("AcumMesContado").ToString.FormatoNumero(0), "#", "Contado", dr("AcumMesCredito").ToString.FormatoNumero(0), "#", "Crédito") ' Indicador Semana - MuestraIndicador(DivIndicadores, "purple", "fa fa-calendar-minus-o", "Semana Actual", + MuestraIndicador(DivIndicadoresRight, "purple", "fa fa-calendar-minus-o", "Semana Actual", dr("AcumSemana").ToString.FormatoNumero(0), "#", "Acumulado", - dr("AcumSemanaPromedio").ToString.FormatoNumero(0), "#", "Promedio", + dr("AcumSemanaPromedio").ToString.FormatoNumero(0), "#", "Ticket Promedio", dr("AcumSemanaContado").ToString.FormatoNumero(0), "#", "Contado", dr("AcumSemanaCredito").ToString.FormatoNumero(0), "#", "Crédito") - MuestraIndicador(DivIndicadores, "red", "fa fa-sun-o", "Hoy", + MuestraIndicador(DivIndicadoresRight, "red", "fa fa-sun-o", "Hoy", "0".FormatoNumero(0), "#", "Acumulado", - "0".FormatoNumero(0), "#", "Promedio", + "0".FormatoNumero(0), "#", "Ticket Promedio", "0".FormatoNumero(0), "#", "Contado", "0".FormatoNumero(0), "#", "Crédito") - End If + End Sub + Private Sub CargarVentasMensuales(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim mesesOrdenados = ObtenerMesesOrdenados() + + Dim años = dt.AsEnumerable() _ + .Select(Function(r) r.Field(Of Integer)("Año")) _ + .Distinct() _ + .OrderBy(Function(y) y) _ + .ToList() + + Dim seriesData As New List(Of Dictionary(Of String, Object)) + For Each año In años + Dim añoData = dt.AsEnumerable() _ + .Where(Function(r) r.Field(Of Integer)("Año") = año) _ + .OrderBy(Function(r) r.Field(Of DateTime)("Fecha")) _ + .ToList() + + Dim dataPoints As New List(Of Object()) + For Each dr In añoData + Dim fecha = dr.Field(Of DateTime)("Fecha") + Dim mesIndex = fecha.Month - 1 + dataPoints.Add({mesIndex, dr("Total").ToString.ToDecimal()}) + Next + + seriesData.Add(New Dictionary(Of String, Object) From { + {"name", año.ToString}, + {"data", dataPoints}, + {"color", GetColorForYear(años.IndexOf(año))} + }) + Next + + Dim chartOptions = New With { + .chart = New With {.type = "line"}, + .title = New With {.text = "Ventas Mensuales por Año"}, + .xAxis = New With { + .type = "category", + .categories = mesesOrdenados, + .title = New With {.text = "Mes"} + }, + .yAxis = New With { + .title = New With {.text = "Ventas (MXN)"}, + .labels = New With {.format = "${value:,.0f}"} + }, + .tooltip = New With { + .headerFormat = "{series.name}
", + .pointFormat = "Mes: {point.category}
Total: ${point.y:,.2f} MXN" + }, + .series = seriesData + } + + Dim script = $" + Highcharts.chart('divVentasMensuales', {JsonConvert.SerializeObject(chartOptions)}); + " + ScriptManager.RegisterStartupScript(Me, Me.GetType(), "graficaVentas", script, True) + End Sub + + Private Sub CargarResumenSucursales(dt As DataTable) + + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + ' Crear estructura para el GridView + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("Sucursal", GetType(String)) + dtGrid.Columns.Add("VentaAnual", GetType(Decimal)) + dtGrid.Columns.Add("UtilidadAnual", GetType(Decimal)) + dtGrid.Columns.Add("VentaMensual", GetType(Decimal)) + dtGrid.Columns.Add("UtilidadMensual", GetType(Decimal)) + + ' Solo agregar filas que no sean el total + For Each row As DataRow In dt.Rows + If row("Sucursal").ToString() <> "Total" Then + Dim newRow = dtGrid.NewRow() + newRow("Sucursal") = row("Sucursal") + newRow("VentaAnual") = If(IsDBNull(row("Año Actual")), 0D, row("Año Actual")) + newRow("UtilidadAnual") = If(IsDBNull(row("Utilidad")), 0D, row("Utilidad")) + newRow("VentaMensual") = If(IsDBNull(row("Mes Actual")), 0D, row("Mes Actual")) + newRow("UtilidadMensual") = If(IsDBNull(row("UtilidadMes")), 0D, row("UtilidadMes")) + dtGrid.Rows.Add(newRow) + End If + Next + + gvResumenSucursales.DataSource = dtGrid + gvResumenSucursales.DataBind() + + End Sub + + Private Sub CargarVentasPorSucursal(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("Sucursal", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("Sucursal").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("Sucursal") = row("Sucursal") + nr("Año") = If(IsDBNull(row("Año Actual")), 0D, row("Año Actual")) + nr("Mes") = If(IsDBNull(row("Mes Actual")), 0D, row("Mes Actual")) + nr("Semana") = If(IsDBNull(row("Semana Actual")), 0D, row("Semana Actual")) + nr("Día") = If(IsDBNull(row("Vendido")), 0D, row("Vendido")) + dtGrid.Rows.Add(nr) + End If + Next + + gvVentasPorSucursal.DataSource = dtGrid + gvVentasPorSucursal.DataBind() + End Sub + + Private Sub CargarVentasPorVendedor(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("Vendedor", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("Vendedor").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("Vendedor") = row("Vendedor") + nr("Año") = If(IsDBNull(row("Año")), 0D, row("Año")) + nr("Mes") = If(IsDBNull(row("Mes")), 0D, row("Mes")) + nr("Semana") = If(IsDBNull(row("Semana")), 0D, row("Semana")) + nr("Día") = If(IsDBNull(row("Dia")), 0D, row("Dia")) + dtGrid.Rows.Add(nr) + End If + Next + gvVentasPorVendedor.DataSource = dtGrid + gvVentasPorVendedor.DataBind() + End Sub + + Private Sub CargarVentasPorClasificacion(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("Clasificacion", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("Clasificacion").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("Clasificacion") = row("Clasificacion") + nr("Año") = If(IsDBNull(row("Año")), 0D, row("Año")) + nr("Mes") = If(IsDBNull(row("Mes")), 0D, row("Mes")) + nr("Semana") = If(IsDBNull(row("Semana")), 0D, row("Semana")) + nr("Día") = If(IsDBNull(row("Dia")), 0D, row("Dia")) + dtGrid.Rows.Add(nr) + End If + Next + gvVentasPorClasificacion.DataSource = dtGrid + gvVentasPorClasificacion.DataBind() + End Sub + + Private Sub CargarVentasPorMarca(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("Marca", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("Marca").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("Marca") = row("Marca") + nr("Año") = If(IsDBNull(row("Año")), 0D, row("Año")) + nr("Mes") = If(IsDBNull(row("Mes")), 0D, row("Mes")) + nr("Semana") = If(IsDBNull(row("Semana")), 0D, row("Semana")) + nr("Día") = If(IsDBNull(row("Dia")), 0D, row("Dia")) + dtGrid.Rows.Add(nr) + End If + Next + gvVentasPorMarca.DataSource = dtGrid + gvVentasPorMarca.DataBind() + End Sub + + Private Sub CargarVentasPorPS(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("ProductoServicio", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("ProductoServicio").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("ProductoServicio") = row("ProductoServicio") + nr("Año") = If(IsDBNull(row("Año")), 0D, row("Año")) + nr("Mes") = If(IsDBNull(row("Mes")), 0D, row("Mes")) + nr("Semana") = If(IsDBNull(row("Semana")), 0D, row("Semana")) + nr("Día") = If(IsDBNull(row("Dia")), 0D, row("Dia")) + dtGrid.Rows.Add(nr) + End If + Next + gvVentasPorPS.DataSource = dtGrid + gvVentasPorPS.DataBind() + End Sub + + Private Sub CargarVentasPorCliente(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("NombreCliente", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("NombreCliente").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("NombreCliente") = row("NombreCliente") + nr("Año") = If(IsDBNull(row("Año")), 0D, row("Año")) + nr("Mes") = If(IsDBNull(row("Mes")), 0D, row("Mes")) + nr("Semana") = If(IsDBNull(row("Semana")), 0D, row("Semana")) + nr("Día") = If(IsDBNull(row("Dia")), 0D, row("Dia")) + dtGrid.Rows.Add(nr) + End If + Next + gvVentasPorCliente.DataSource = dtGrid + gvVentasPorCliente.DataBind() + End Sub + + Private Sub CargarVentasPorProveedor(dt As DataTable) + If dt Is Nothing OrElse dt.Rows.Count = 0 Then + Return + End If + + + Dim dtGrid = New DataTable() + dtGrid.Columns.Add("NombreProveedor", GetType(String)) + dtGrid.Columns.Add("Año", GetType(Decimal)) + dtGrid.Columns.Add("Mes", GetType(Decimal)) + dtGrid.Columns.Add("Semana", GetType(Decimal)) + dtGrid.Columns.Add("Día", GetType(Decimal)) + + For Each row As DataRow In dt.Rows + If row("NombreProveedor").ToString() <> "Total" Then + Dim nr = dtGrid.NewRow() + nr("NombreProveedor") = row("NombreProveedor") + nr("Año") = If(IsDBNull(row("Año")), 0D, row("Año")) + nr("Mes") = If(IsDBNull(row("Mes")), 0D, row("Mes")) + nr("Semana") = If(IsDBNull(row("Semana")), 0D, row("Semana")) + nr("Día") = If(IsDBNull(row("Dia")), 0D, row("Dia")) + dtGrid.Rows.Add(nr) + End If + Next + gvVentasPorProveedor.DataSource = dtGrid + gvVentasPorProveedor.DataBind() + End Sub + + + + Private Function ObtenerMesesOrdenados() As List(Of String) + Return CultureInfo.CurrentCulture.DateTimeFormat.MonthNames _ + .Take(12) _ + .Select(Function(m) m) _ + .ToList() + End Function + + Private Function GetColorForYear(index As Integer) As String + ' Paleta de colores para las series + Dim colors = {"#3598dc", "#32c5d2", "#8e44ad", "#e7505a", "#1bbc9b", "#f3c200"} + Return colors(index Mod colors.Length) + End Function + Private Sub MuestraIndicador(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, Comentario As String, Link As String, TitleComentario As String) Dim htmldiv As New StringBuilder - htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) + htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) htmldiv.AppendFormat("
{0}
Ver Más
", Link) DIV.InnerHtml = htmldiv.ToString End Sub Private Sub MuestraIndicador(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, C1 As String, CL1 As String, CT1 As String, C2 As String, CL2 As String, CT2 As String) Dim htmldiv As New StringBuilder - htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) + htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) htmldiv.AppendFormat("
{0}
", Titulo) htmldiv.AppendFormat("", CT1, C1) htmldiv.AppendFormat("", CT2, C2) @@ -77,7 +453,7 @@ Partial Class General_Dashboard End Sub Private Sub MuestraIndicador(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, C1 As String, CL1 As String, CT1 As String, C2 As String, CL2 As String, CT2 As String, C3 As String, CL3 As String, CT3 As String) Dim htmldiv As New StringBuilder - htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) + htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) htmldiv.AppendFormat("
{0}
", Titulo) htmldiv.AppendFormat("", CT1, C1) htmldiv.AppendFormat("", CT2, C2) @@ -89,7 +465,7 @@ Partial Class General_Dashboard End Sub Private Sub MuestraIndicador(DIV As HtmlGenericControl, Color As String, Icono As String, Titulo As String, C1 As String, CL1 As String, CT1 As String, C2 As String, CL2 As String, CT2 As String, C3 As String, CL3 As String, CT3 As String, C4 As String, CL4 As String, CT4 As String) Dim htmldiv As New StringBuilder - htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) + htmldiv.AppendFormat("{0}
", DIV.InnerHtml, Color, Icono) htmldiv.AppendFormat("
{0}
", Titulo, CT1, C1) htmldiv.AppendFormat("", CT2, C2) htmldiv.AppendFormat("", CT3, C3) From a0e27a17311e24000a36949b65b4318f8ff2d932 Mon Sep 17 00:00:00 2001 From: Luis Quijada Date: Sat, 3 May 2025 13:57:03 -0700 Subject: [PATCH 26/33] Dashboard Correcciones Tabla Utilidad --- General/Dashboard.aspx | 87 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 72 insertions(+), 15 deletions(-) diff --git a/General/Dashboard.aspx b/General/Dashboard.aspx index c5afa596d..cc3ede1b8 100644 --- a/General/Dashboard.aspx +++ b/General/Dashboard.aspx @@ -19,7 +19,7 @@ } .table td, .table th { - padding: 0.75rem; + padding: 2px; border-top: 1px solid #dee2e6; } @@ -573,7 +573,7 @@ .header-group { display: block; font-weight: bold; - padding: 5px; + padding: 2px; } @@ -590,11 +590,11 @@ } .sub-header { - padding: 5px; + padding: 2px; } .sub-data { - padding: 8px; + padding: 2px; text-align: right; border-left: 1px solid #dee2e6; } @@ -653,7 +653,7 @@ /* Opcional: quita cualquier padding extra en encabezados */ .custom-grid thead th { - padding: 0.5rem 0.75rem !important; + padding: 2px !important; } @@ -664,15 +664,7 @@ width: 100% !important; } - /* Elimina todos los bordes en celdas y encabezados */ - .custom-grid th, - .custom-grid td, - .resumen-grid th, - .resumen-grid td { - border: none !important; - background: transparent !important; - padding: 0.75rem !important; - } + /* Línea gruesa bajo los títulos */ .custom-grid thead th, @@ -754,8 +746,73 @@ overflow-x: hidden; } + /* ——— Resumen‑grid idéntico a custom‑grid ——— */ + .resumen-grid, + .custom-grid { + border-collapse: collapse; + width: 100% !important; + table-layout: fixed; + font-size: 8px !important; + } + + .resumen-grid th, + .resumen-grid td { + /* mismo borde inferior */ + border: none !important; + border-bottom: 1px solid #dee2e6 !important; + /* padding reducido a 2px */ + padding: 2px !important; + /* mismo wrapping */ + white-space: normal !important; + word-wrap: break-word !important; + } + + /* ——— Wrapper scrollable idéntico ——— */ + .portlet-body.table-responsive { + /* padding interior reducido */ + padding: 2px !important; + /* misma altura máxima */ + max-height: 170px !important; + overflow-y: auto; + overflow-x: hidden; + } + + + + /* ajustar los sub‑contenedores de “Utilidad” */ + #gvResumenSucursales .sub-columns, + #gvResumenSucursales .sub-columns > div { + padding: 2px !important; + margin: 0 !important; + } + + .custom-grid td, + .custom-grid th, + .resumen-grid td, + .resumen-grid th { + padding: 2px !important; /* Padding uniforme de 2px */ + vertical-align: middle !important; + } + + .portlet-body.table-responsive { + height: 170px !important; /* Altura exacta */ + overflow-y: auto !important; /* Scroll vertical si hay overflow */ + padding: 2px !important; /* Padding interno reducido */ + } + + + #gvResumenSucursales .sub-data { + padding: 2px !important; /* Padding igual al resto */ + border-left: 1px solid #dee2e6 !important; + } + + /* Eliminar padding extra en sub-columnas */ + #gvResumenSucursales .sub-columns > div { + padding: 0 !important; + margin: 0 !important; + } @@ -808,7 +865,7 @@ From 0492eb5756d25c848a4f5416a93a31e61665b316 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 5 May 2025 09:13:51 -0700 Subject: [PATCH 27/33] =?UTF-8?q?--=20activaci=C3=B3n=20de=20cancelaci?= =?UTF-8?q?=C3=B3n=20de=20venta/remisi=C3=B3n=20al=20cancelar=20el=20viaje?= =?UTF-8?q?!=20y=20si=20tiene=20pago=20se=20genera=20el=20ixc?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/Modelos.vb | 4 +- Transportes/RepContratoDetalle.aspx.vb | 32 ++++----- Transportes/RepContratos.aspx.vb | 19 ----- Transportes/RepContratosCalendario.aspx | 39 ++++------- Transportes/RepContratosCalendario.aspx.vb | 80 ++++++---------------- 5 files changed, 55 insertions(+), 119 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 42765c4be..e0251b3d1 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -4334,7 +4334,7 @@ Namespace Modelos Next End If - If ObjConta.ValidacionesPrePoliza(ObjFactura.CvePrePoliza, UsuarioActual, Opcion:=2) Then + If Not ErrorPrepoliza AndAlso ObjConta.ValidacionesPrePoliza(ObjFactura.CvePrePoliza, UsuarioActual, Opcion:=2) Then If ObjConta.ValorPolizaDescuadre > 0 Then If ObjConta.ValorPolizaDescuadre = 2 Then ErrorList.Add(ObjConta.MensajePolizaDescuadre) @@ -5805,7 +5805,7 @@ Namespace Modelos End If 'CUANDO SE CANCELA, Y TIENE RELACIONADA UNA REMISIÓN, Y ESTA NO SE CANCELARÁ. DEBE DE HACER EN AUTOMÁTICO LOS MOVIMIENTOS AL ALMACEN DE ENTREGA POR ADELANTADO - Dim RevivirRemisiones As Boolean = Not EsRefacturacion AndAlso ((TieneRemisionesRelacionadas AndAlso ListaRemisionesCancelar Is Nothing) OrElse (DtRemisionesRelacionadas.Rows.Count > ListaRemisionesCancelar.Count)) + Dim RevivirRemisiones As Boolean = Not EsRefacturacion AndAlso ((TieneRemisionesRelacionadas AndAlso ListaRemisionesCancelar Is Nothing) OrElse (ListaRemisionesCancelar IsNot Nothing AndAlso DtRemisionesRelacionadas.Rows.Count > ListaRemisionesCancelar.Count)) 'REMISION YA SE DEBE HACER POR EL PROCESO DE DEVOLUCION DE ALMACEN If Not EsRefacturacion AndAlso (ObjFactura.SaldoAlmacen <> 0 AndAlso ObjFactura.EsDevolucionVenta.Contiene(0, 1)) AndAlso Not (RealizarDevolucionAlmacen.Contiene(1, 2)) And RevivirRemisiones = False Then diff --git a/Transportes/RepContratoDetalle.aspx.vb b/Transportes/RepContratoDetalle.aspx.vb index 272f108ad..43eae8823 100644 --- a/Transportes/RepContratoDetalle.aspx.vb +++ b/Transportes/RepContratoDetalle.aspx.vb @@ -624,24 +624,24 @@ Partial Class RepContratoDetalle End If End If - 'If Not ErrorProceso AndAlso Not CveVentaRemision > 0 AndAlso ChkEsPresupuestal.Checked = False Then - ' 'CveVentaRemision - ' Dim ObsRemisionPartida As String = $"{DdlTipoAF.SelectedItem.Text}-{ TxtDescripcion.Text}-{TxtFolio.Text}" + If Not ErrorProceso AndAlso Not CveVentaRemision > 0 AndAlso ChkEsPresupuestal.Checked = False Then + 'CveVentaRemision + Dim ObsRemisionPartida As String = $"{DdlTipoAF.SelectedItem.Text}-{ TxtDescripcion.Text}-{TxtFolio.Text}" - ' Dim Respuesta As New RespuestaFacturacion() - ' Dim CvePS As Integer = 907784 - ' Respuesta = GeneraRemision(CveContrato, ObsRemisionPartida, TxtImporte.Text.ToDecimal, CvePS, ObjContratos.IniciaTransacSQL, DdlSubProyecto.SelectedValue.ToEntero) + Dim Respuesta As New RespuestaFacturacion() + Dim CvePS As Integer = 907784 + Respuesta = GeneraRemision(CveContrato, ObsRemisionPartida, TxtImporte.Text.ToDecimal, CvePS, ObjContratos.IniciaTransacSQL, DdlSubProyecto.SelectedValue.ToEntero) - ' If Respuesta.CveVenta > 0 Then - ' CveVentaRemision = Respuesta.CveVenta - ' SerieFolioRemision = Respuesta.SerieFolio - ' ErrorProceso = False - ' SeGeneroRemision = True - ' Else - ' ErrorProceso = True - ' Alert("se presento un error al generar la remisión", TipoMensaje.MsgAdvertencia) - ' End If - 'End If + If Respuesta.CveVenta > 0 Then + CveVentaRemision = Respuesta.CveVenta + SerieFolioRemision = Respuesta.SerieFolio + ErrorProceso = False + SeGeneroRemision = True + Else + ErrorProceso = True + Alert("se presento un error al generar la remisión", TipoMensaje.MsgAdvertencia) + End If + End If If Not ErrorProceso Then ObjContratos.Commit() diff --git a/Transportes/RepContratos.aspx.vb b/Transportes/RepContratos.aspx.vb index 744f1aa8b..a93d56ed6 100644 --- a/Transportes/RepContratos.aspx.vb +++ b/Transportes/RepContratos.aspx.vb @@ -165,22 +165,17 @@ Partial Class ListadoContratos Dim tempArray() As String tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) Dim fDestino = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", $"{CveContrato.ToString}.{ FileExtension}") - Try If File.Exists(fDestino) Then File.Delete(fDestino) End If - File.Move(fileItem.FileUrl, fDestino) - If Not File.Exists(fDestino) Then ErrorProceso = True End If - If ObjContratos.UpdateContratoArchivo(CveContrato, $"{CveContrato.ToString}.{ FileExtension}", UsuarioActual.CveEmpresa) Then ErrorProceso = False End If - Catch ex As Exception ErrorProceso = True End Try @@ -222,7 +217,6 @@ Partial Class ListadoContratos End If End If - If Not ErrorProceso Then ObjContratos.Commit() @@ -323,7 +317,6 @@ Partial Class ListadoContratos If Not Directory.Exists(folderContratosPath) Then Directory.CreateDirectory(folderContratosPath) End If - If Not Directory.Exists(Path.Combine(folderContratosPath, "Temp")) Then Directory.CreateDirectory(Path.Combine(folderContratosPath, "Temp")) End If @@ -334,26 +327,20 @@ Partial Class ListadoContratos Session("FileExtension") = FileExtension Dim tempArray() As String tempArray = fileItem.filename.ToString().Split("-".ToCharArray()) - - ViewState("extencion") = FileExtension ViewState("FUrl") = Path.Combine(UsuarioActual.Empresa.Ruta, "Contratos", "Temp", fileItem.filename) - File.Move(fileItem.FileUrl, ViewState("FUrl").ToString) LbArchivo.Text = tempArray(1) - Next UpModal.Update() RegistraScript("$('#ModalUpload').modal('hide')", "hidemodal1") - End Sub #End Region #Region "G E N E R A R E M I S O N" - Private Function GeneraRemision(CveContrato As Integer, ObsPartida As String, Importe As Decimal, CvePS As Integer, ByRef TransaccionSQL As SqlClient.SqlTransaction) As RespuestaFacturacion Dim Respuesta As New RespuestaFacturacion() @@ -366,7 +353,6 @@ Partial Class ListadoContratos Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, CveSubProyecto, DdlClientes.SelectedValue.ToEntero, CveMoneda, "Rem") If ObjFactura IsNot Nothing AndAlso ProcesoOK Then - ObjFactura.CveMoneda = CveMoneda ObjFactura.CveContrato = CveContrato ObjFactura.Observaciones = ObsPartida @@ -433,8 +419,6 @@ Partial Class ListadoContratos End Sub End Class - - #End Region Protected Sub LnkAgregarContrato_Click(sender As Object, e As EventArgs) @@ -442,7 +426,4 @@ Partial Class ListadoContratos RegistraScript("$('#ModalAgregar').modal({ backdrop: 'static', keyboard: false });") UpTitulos.Update() End Sub - - - End Class diff --git a/Transportes/RepContratosCalendario.aspx b/Transportes/RepContratosCalendario.aspx index 6bc9d7074..aeccaaf1b 100644 --- a/Transportes/RepContratosCalendario.aspx +++ b/Transportes/RepContratosCalendario.aspx @@ -731,23 +731,23 @@ - + + + + + + + + + + + + <%----%>
- - - - - - - - - - - - +
@@ -1236,11 +1236,7 @@ setTimeout(() => { // dateAxis.zoomToDates(new Date(anioI, mesI, diaI), new Date(anioF, mesF, diaF)); }, 1500); - } - - - var PrimeraCargaCalendario = true; var currentUpdateEvent; @@ -1257,20 +1253,15 @@ let anio = parseInt($('#<%=HidCurrentYear.ClientID%>').val()); Calendario(mes, anio); - }); } function selectDate(start, end, allDay) { } - function updateEvent(event, element, esCalendario = true) { - - + function updateEvent(event, element, esCalendario = true) { $('#<%=HdnCveContrato.ClientID%>').val(event.id); - $('#BtnCargaContratoCalendario').click(); - - + $('#BtnCargaContratoCalendario').click(); } function formatearFechaISO(fechaISO) { diff --git a/Transportes/RepContratosCalendario.aspx.vb b/Transportes/RepContratosCalendario.aspx.vb index ba4c43fb8..ad0243b62 100644 --- a/Transportes/RepContratosCalendario.aspx.vb +++ b/Transportes/RepContratosCalendario.aspx.vb @@ -5,6 +5,7 @@ Imports ADSNetLibrary.SIGAPI.Helpers Imports Extensiones.ModExtensiones Imports GemBox.Spreadsheet Imports Microsoft.Reporting.WebForms +Imports Modelos Imports Newtonsoft.Json.Linq Partial Class RepContratosCalendario @@ -301,19 +302,13 @@ Partial Class RepContratosCalendario Dim CvePadre As Integer = -1 For Each dRowUnidad As DataRow In DtUnidades.Rows - - Dim CveActivoFijo As Integer = dRowUnidad("CveActivoFijo").ToString.ToEntero Dim CodigoAF As String = dRowUnidad("Codigo").ToString 'Dim unidad As String = $"{dRowUnidad("Codigo").ToString}-{dRowUnidad("Descripcion").tostring}" - Dim SeEncontro As Boolean = False - Dim EsHijo As Boolean = False For Each Row As DataRow In DtAvance.FiltraParametros("CodigoAF <> '' AND TipoEstatus <> 3").Rows - Dim CveActivoFijoContrato As Integer = Row("CveAF").ToString.ToEntero - 'If CveActivoFijo = CveActivoFijoContrato Then ' str.AppendLine(String.Format("{0}", separator)) ' SeEncontro = True @@ -325,9 +320,6 @@ Partial Class RepContratosCalendario ' separator = "," ' encontrados = encontrados + 1 'End If - - - If CveActivoFijo = CveActivoFijoContrato Then str.AppendLine(String.Format("{0}", separator)) SeEncontro = True @@ -343,18 +335,15 @@ Partial Class RepContratosCalendario separator, Row("CveContrato").ToString, Row("NumeroContrato").ToString().Replace("\\", "\\\\").Replace("""", "\"""), Row("FechaInicial"), Row("FechaFinal"), 0, 100, unidad, duracion, ColorAleatorio(randomNumber), Row("CodigoAF").ToString, Row("CveContrato").ToString) ) End If - If Not EsHijo Then CvePadre = Row("CveContrato").ToString.ToEntero EsHijo = True End If - separator = "," encontrados = encontrados + 1 Else EsHijo = False End If - Next If Not SeEncontro Then @@ -365,18 +354,11 @@ Partial Class RepContratosCalendario str.AppendLine(String.Format("{{id: {1}, text: ""{2}"", start_date: ""{3}"", end_date: ""{4}"", parent: {5}, progress:{6}, open: true, unidad: ""{7}"",duracion: ""{8}"", color: ""{9}"",codigoaf: ""{10}"", hidden: true}} ", "", CveActivoFijo, -1, txtFechaF.Text.ToDate.ToString("yyyy/MM/dd HH:mm"), txtFechaF.Text.ToDate.ToString("yyyy/MM/dd HH:mm"), 0, 100, "", "", ColorAleatorio(randomNumber), CodigoAF)) separator = "," - End If - 'str.AppendLine(String.Format("}")) - Next - End If - - - str.AppendLine("];loadGant();") RegistraScript(str.ToString()) @@ -389,7 +371,6 @@ Partial Class RepContratosCalendario Private Function ColorAleatorio(randomNumber As Random) As String Dim listaColores As New List(Of String) - listaColores.Add("#94f35a") listaColores.Add("#1989a9") listaColores.Add("#5a3c98") @@ -436,10 +417,7 @@ Partial Class RepContratosCalendario listaColores.Add("#058106") listaColores.Add("#0485f2") listaColores.Add("#401685") - - Dim ranNumber As Integer = randomNumber.Next(0, listaColores.Count - 1) - Return listaColores(ranNumber) End Function @@ -591,8 +569,6 @@ Partial Class RepContratosCalendario DdlTipoAF.SelectedValueExist(DRow("CveTipoAF").ToString) DdlTipoAF_SelectedIndexChanged(Nothing, Nothing) - - If DRow("CveAF").ToString.ToEntero > 0 Then Dim ExisteItem As Boolean = False For Each item As ListItem In DdlAF.Items @@ -607,10 +583,7 @@ Partial Class RepContratosCalendario DdlAF.Items.Add(New ListItem(TmpItemText, $"{DRow("CveAF").ToString}")) End If End If - - DdlAF.SelectedValueExist(DRow("CveAF").ToString) - HidCveAF.Value = "-1" HidCveAFDes.Value = "" If DRow("CveAF").ToString.ToEntero > 0 Then @@ -619,10 +592,9 @@ Partial Class RepContratosCalendario End If TxtMotivoCambioUnidad.Text = "" DVMotivoCambioAF.Visible = False - - HypRemision.Text = DRow("RemisionSerieFolio").ToString HypRemision.NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={DRow("CveVentaRemision").ToString}" + HdnCveVentaRemision.Value = DRow("CveVentaRemision").ToString If DRow("RemisionSaldo").ToString.ToDecimal > 0 Then LblSaldo.Text = $"Saldo {DRow("RemisionSaldo").ToString.ToDecimal.ToString("###,###,###.00")}" @@ -642,15 +614,8 @@ Partial Class RepContratosCalendario Else Alert("Contrato no especificado", TipoMensaje.MsgAdvertencia) End If - - - - - - End Sub - Protected Sub UpdateContrato(sender As Object, e As EventArgs) Dim TieneError As Boolean = False Dim NumChoferes As Integer = If(chkSegundoChofer.Checked, 2, 1) @@ -662,6 +627,7 @@ Partial Class RepContratosCalendario Dim ObjContratos As New ClsContratos Dim objGenerales As New ClsGenerales(ObjContratos.IniciaTransacSQL()) + Dim ObjVentas As New ClsVentas(ObjContratos.IniciaTransacSQL()) Dim DTAgendadados As New DataTable If ObjContratos.GetContratosValUnidadesAgendadas(DdlAF.SelectedValue.ToEntero, TxtFechaSalida.Text.ToDate, TxtFechaRegreso.Text.ToDate, UsuarioActual.CveEmpresa, CveContrato) Then @@ -691,8 +657,22 @@ Partial Class RepContratosCalendario -1, -1, -1, -1, "", "", -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, False, TxtAnticipo.Text.ToDecimal, TxtPesos.Text.ToDecimal, TxtDolares.Text.ToDecimal, -1, 0, CveContratoTipo:=34, CveContratosEstatus:=DdlEstatusContrato.SelectedValue.ToEntero, CveChofer:=DdlChofer.SelectedValue.ToEntero, CveChofer2:=DdlChofer2.SelectedValue.ToEntero, CveTipoAF:=DdlTipoAF.SelectedValue.ToEntero, CveAF:=DdlAF.SelectedValue.ToEntero, CantidadPasajeros:=TxtCantidadPasajeros.Text.ToEntero, Observaciones:=TxtObservaciones.Text.Trim, NumChoferes:=NumChoferes) Then - RegistraScript("$('#ModalActualizar').modal('hide');") - Alert("Actualizado Correctamente.") + + 'cancelar la venta. + If DdlEstatusContrato.SelectedValue = "52" Then 'cancelación de Fact/Rem + Dim CancelacionPagos = OpcionesCancelacionPagos.ConPagos_GenerarIxC + Dim resp As Modelos.Factura.MCancelacionVentaMensaje = Nothing + Dim ObjFacturaCancelacion As New Modelos.Factura(UsuarioActual, HdnCveVentaRemision.Value.ToEntero, UsuarioActual.CveEmpresa, EsCancelacion:=True, VerificaAlmacen:=True) + If ObjFacturaCancelacion IsNot Nothing AndAlso ObjFacturaCancelacion.CveVenta > 0 Then + resp = ObjFacturaCancelacion.CancelarFactura(0, CancelacionPagos:=CancelacionPagos, ValidarSAT:=False) + If resp.HuboError Then + TieneError = True + Else + RegistraScript("$('#ModalActualizar').modal('hide');") + Alert("Actualizado Correctamente.") + End If + End If + End If Else TieneError = True End If @@ -702,10 +682,9 @@ Partial Class RepContratosCalendario Else ObjContratos.Commit() End If - ObjContratos.Dispose() objGenerales.Dispose() - + ObjVentas.Dispose() UpTitulos.Update() CargaDatos() InicializaCalendar() @@ -726,20 +705,17 @@ Partial Class RepContratosCalendario TxtFechaSalida.Text = Convert.ToDateTime(GvRow.DataKey("FechaInicial")).ToString("dd/MM/yyyy HH:mm:ss") TxtFechaRegreso.Text = Convert.ToDateTime(GvRow.DataKey("FechaFinal")).ToString("dd/MM/yyyy HH:mm:ss ") TxtMoneda.Text = GvRow.DataKey("Moneda") - TxtAnticipo.Text = GvRow.DataKey("ImporteMin") TxtDolares.Text = GvRow.DataKey("Importe") 'Requeridos - DdlChofer.SelectedValueExist(GvRow.DataKey("CveChofer")) DdlChofer2.SelectedValueExist(GvRow.DataKey("CveChofer2")) chkSegundoChofer.Checked = If(NumChoferes = 2, True, False) - DdlEstatusContrato.SelectedValueExist(GvRow.DataKey("CveContratosEstatus")) DdlSubProyectoModal.SelectedValueExist(GvRow.DataKey("CveSubProyecto")) - DdlTipoAF.SelectedValueExist(GvRow.DataKey("CveTipoAF")) DdlTipoAF_SelectedIndexChanged(Nothing, Nothing) + HdnCveVentaRemision.Value = GvRow.DataKey("CveVentaRemision") If GvRow.DataKey("CveAF").ToEntero > 0 Then Dim ExisteItem As Boolean = False @@ -749,7 +725,6 @@ Partial Class RepContratosCalendario Exit For End If Next - If Not ExisteItem Then Dim TmpItemText As String = GlobalDTActivoFijos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CodDesc", $" EstadoActivoFijo= 'Activo' AND CveActivoFijo = {GvRow.DataKey("CveAF")}") DdlAF.Items.Add(New ListItem(TmpItemText, $"{GvRow.DataKey("CveAF")}")) @@ -757,7 +732,6 @@ Partial Class RepContratosCalendario End If DdlAF.SelectedValueExist(GvRow.DataKey("CveAF")) - HidCveAF.Value = "-1" HidCveAFDes.Value = "" If GvRow.DataKey("CveAF").ToEntero > 0 Then @@ -766,17 +740,13 @@ Partial Class RepContratosCalendario End If TxtMotivoCambioUnidad.Text = "" DVMotivoCambioAF.Visible = False - - HypRemision.Text = GvRow.DataKey("RemisionSerieFolio") HypRemision.NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={GvRow.DataKey("CveVentaRemision")}" - If GvRow.DataKey("RemisionSaldo").ToDecimal > 0 Then LblSaldo.Text = $"Saldo {GvRow.DataKey("RemisionSaldo").ToDecimal.ToString("###,###,###.00")}" Else LblSaldo.Text = "" End If - CveContrato = GvRow.DataKey("CveContrato").ToEntero OcultarMostrarSegundoChofer() @@ -790,19 +760,17 @@ Partial Class RepContratosCalendario If HidModClienteNombre.Value = "" Then HidModClienteNombre.Value = GlobalDTCliente(UsuarioActual.CveEmpresa, -1, HidModCveCliente.Value.ToEntero).FiltroPrimeroValor("NombreComercial") End If - TxtMotivoCambioUnidad.Text = "" DVMotivoCambioAF.Visible = False DdlClientes.SelectedText = HidModClienteNombre.Value DdlClientes.SelectedValue = HidModCveCliente.Value DdlClientes.txtText.Value = HidModClienteNombre.Value DdlClientes.txtValue.Value = HidModCveCliente.Value - chkSegundoChofer.Checked = If(HidNumChoferes.Value.ToEntero = 2, True, False) OcultarMostrarSegundoChofer() HypRemision.Text = HidRemisionSerieFolio.Value - HypRemision.NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={HidCveVentaRemision.Value}" + HypRemision.NavigateUrl = $"/Ventas/Ventas.aspx?CveVenta={HdnCveVentaRemision.Value}" If HidRemisionSaldo.Value.ToDecimal > 0 Then LblSaldo.Text = $"Saldo {HidRemisionSaldo.Value.ToDecimal.ToString("###,###,###.00")}" Else @@ -884,11 +852,9 @@ Partial Class RepContratosCalendario Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click Dim SubProyecto As String = DdlSubProyectos.SelectedItem.Text - Dim SbFiltros As New StringBuilder() SbFiltros.AppendFormat($"Fecha Inicio: {txtFechaI.Text} Fecha Fin: {txtFechaF.Text}|") SbFiltros.AppendFormat("SubProyecto: {0}|", SubProyecto) - GvContratos.ExportToExcelGembox($"Reporte_Contratos_{NowADS.ToString("yyyyMMddHHmmss")}", UsuarioActual, "Reporte Contratos", DatoTituloExtra:=$"", DatosFiltros:=SbFiltros.ToString()) End Sub @@ -960,6 +926,4 @@ Partial Class RepContratosCalendario CargaCronograma(DdlTipoVistaCalendario.SelectedValue.ToEntero) End Sub - - End Class From 2c04a060648ad6065b905f7d56c964d1ac2082e6 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 5 May 2025 12:01:57 -0700 Subject: [PATCH 28/33] Nombre de usuario en corte --- Compras/PopUpVerFactura.aspx.vb | 3 ++- Ventas/CatAutorizacionLimites.aspx.vb | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index b518789fa..f79289734 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1741,6 +1741,7 @@ Partial Class PopUpVerFactura If ObjVta.GetVta_Cortes("-1", "-1", -1, CveCorte, UsuarioActual.CveEmpresa, -1) AndAlso ObjVta.DtResultados.Rows.Count > 0 Then FechaConsulta = ObjVta.DtResultados.FiltroPrimeroValor("FechaInicial").ToString().ToDate().Date CveSubProyecto = ObjVta.DtResultados.FiltroPrimeroValor("CveSubProyecto").ToEntero() + Nombre = ObjVta.DtResultados.FiltroPrimeroValor("UsuarioNombre").ToString End If End Using End If @@ -1761,7 +1762,7 @@ Partial Class PopUpVerFactura If RowInfo IsNot Nothing Then Fecha = RowInfo("FechaInicial").ToString - Nombre = RowInfo("Nombre").ToString + End If End If diff --git a/Ventas/CatAutorizacionLimites.aspx.vb b/Ventas/CatAutorizacionLimites.aspx.vb index e6610d386..9b091d937 100644 --- a/Ventas/CatAutorizacionLimites.aspx.vb +++ b/Ventas/CatAutorizacionLimites.aspx.vb @@ -88,8 +88,11 @@ Partial Class Ventas_CatAutorizacionLimites FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim.ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim.ToDate, MaxFecha) + Dim CveUsuarioConsulta As Integer = UsuarioActual.CveUsuario + If UsuarioActual.Empresa.Funcionalidad(595) = "3" Then CveUsuarioConsulta = -1 + Dim ObjGral As New ClsVentas - If ObjGral.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedorFiltro.SelectedValue.ToEntero(), "-1", CveEstatus:=DdlEstatus.SelectedValue.ToEntero(), FechaI:=FechaI, FechaF:=FechaF, CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then + If ObjGral.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedorFiltro.SelectedValue.ToEntero(), "-1", CveEstatus:=DdlEstatus.SelectedValue.ToEntero(), FechaI:=FechaI, FechaF:=FechaF, CveUsuarioConsulta:=CveUsuarioConsulta) Then GvDatos.DataSource = ObjGral.DtResultados End If ObjGral.Dispose() From 1bc5a00142bf74ba60c73c5757564346c82ff518 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 5 May 2025 14:06:42 -0700 Subject: [PATCH 29/33] -- cambio a filtrar por la fecha de salida --- Transportes/RepContratos.aspx.vb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Transportes/RepContratos.aspx.vb b/Transportes/RepContratos.aspx.vb index a93d56ed6..e62ea28c1 100644 --- a/Transportes/RepContratos.aspx.vb +++ b/Transportes/RepContratos.aspx.vb @@ -73,8 +73,7 @@ Partial Class ListadoContratos Private Sub CargaDatos() Dim ObjContratos As New ClsContratos - If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, DdlCliente.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, CveSubProyecto:=DdlCentroCostos.SelectedValue.ToEntero, CveTipoAF:=DdlTipoUnidad.SelectedValue.ToEntero, CveChofer:=DdlChofer.SelectedValue.ToEntero, - FechaInicioIngreso:=txtFechaI.Text.ToDate, FechaFinIngreso:=txtFechaF.Text.ToDate) Then + If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, DdlCliente.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, CveSubProyecto:=DdlCentroCostos.SelectedValue.ToEntero, CveTipoAF:=DdlTipoUnidad.SelectedValue.ToEntero, CveChofer:=DdlChofer.SelectedValue.ToEntero) Then GvContratos.DataSource = ObjContratos.DtResultados DtDatos = ObjContratos.DtResultados.Copy From 4acf5fda67cd5d4c55e26c03eeaf698cb6703cbf Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 5 May 2025 14:34:17 -0700 Subject: [PATCH 30/33] - --- Transportes/RepContratos.aspx.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Transportes/RepContratos.aspx.vb b/Transportes/RepContratos.aspx.vb index e62ea28c1..38a8034ba 100644 --- a/Transportes/RepContratos.aspx.vb +++ b/Transportes/RepContratos.aspx.vb @@ -74,7 +74,8 @@ Partial Class ListadoContratos Dim ObjContratos As New ClsContratos If ObjContratos.GetContratosReporte(UsuarioActual.CveEmpresa, txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, DdlCliente.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, CveSubProyecto:=DdlCentroCostos.SelectedValue.ToEntero, CveTipoAF:=DdlTipoUnidad.SelectedValue.ToEntero, CveChofer:=DdlChofer.SelectedValue.ToEntero) Then - GvContratos.DataSource = ObjContratos.DtResultados + + GvContratos.DataSource = ObjContratos.DtResultados.FiltraParametros($"FechaInicial >= '{txtFechaI.Text.ToDate.ToString("yyyy/MM/dd")}'", "FechaInicial") DtDatos = ObjContratos.DtResultados.Copy End If From 1a462e1da6a6afa75560a242a565979fb9971a1a Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 5 May 2025 21:25:55 -0700 Subject: [PATCH 31/33] - --- App_Code/ClsContabilidad.vb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 8f709f32e..944f482ba 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -5867,7 +5867,7 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function AddCuentasGlobales(CveConceptoContable As Integer, CveCuenta As Integer, TipoGlobal As Integer, CveEmpresa As Integer) As Boolean + Public Function AddCuentasGlobales(CveConceptoContable As Integer, CveCuenta As Integer, TipoGlobal As Integer, CveEmpresa As Integer, PorcentajeImpuesto As Decimal, CveColectiva As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Conta_CuentasGlobalesAdd") @@ -5877,6 +5877,8 @@ Public Class ClsContabilidad .Add("@CveCuenta", SqlDbType.Int).Value = CveCuenta .Add("@TipoGlobal", SqlDbType.Int).Value = TipoGlobal .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@PorcentajeImpuesto", SqlDbType.Money).Value = PorcentajeImpuesto + .Add("@CveColectiva", SqlDbType.Int).Value = CveColectiva End With Try From 563de5b37fb1be9fb79c1cfc191e70a9e36f3872 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Mon, 5 May 2025 22:18:34 -0700 Subject: [PATCH 32/33] Correcion ClsContPaqi MovmientosImpuestos, correcion RH cuentas bancarias, formato Entrada 13 --- App_Code/ClsContPAQi.vb | 2 +- App_Code/ClsInventarios.vb | 3 +++ Compras/PopUpVerFactura.aspx.vb | 16 ++++++++++++---- Compras/RepComplementoPago.aspx | 6 +++--- Compras/RepComplementoPago.aspx.vb | 6 +++--- RH/Personal.aspx | 2 +- RH/Personal.aspx.vb | 11 +++++------ 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/App_Code/ClsContPAQi.vb b/App_Code/ClsContPAQi.vb index 66a22101d..e905fcd03 100644 --- a/App_Code/ClsContPAQi.vb +++ b/App_Code/ClsContPAQi.vb @@ -584,7 +584,7 @@ Public Class ClsContPAQi VALUES (@IdMovDev, @RowVersion, @IdPoliza, ISNULL ((SELECT MAX (NumMovto) FROM MovimientosImpuestos WHERE IdPoliza = @IdPoliza), 0) + 1, @IdPersona, 0,YEAR(@FechaMov), MONTH(@FechaMov), @IdCuenta, 0, 1, 0, @Serie, @Folio, @Referencia, @UUID, 2, 0, 1, @TipoMovimiento, 1, @Impuesto, 2,'', @TasaOCuota, @SubTotal, - @ImpImpuesto, @ImpImpuesto,0, @IVANoAcred, 0, 0, 0, 0, 0, @GuidMov, @GuidMovPadre, 0, + @ImpImpuesto, (@ImpImpuesto + @SubTotal),0, @IVANoAcred, 0, 0, 0, 0, 0, @GuidMov, @GuidMovPadre, 0, @ConceptoIVA, @SubconceptoIVA, 0, @ProporcionDIOT, @DeducibleDIOT); EXEC PA_UpdateId 'Id_MovimientoImpuesto'; diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index e70e86699..0b28c1fba 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -94,6 +94,8 @@ Public Class ClsInventarios Public Property CveOrdenCompra As Integer Public Property CveOrdenCompraLiga As Integer Public Property FolioOC As String + Public Property DescripcionOC As String + Public Property CvePS As Integer Public Property CveEntregaForanea As Integer Public Property CvePaqueteriaGuia As Integer @@ -852,6 +854,7 @@ Public Class ClsInventarios CveOrdenCompra = dr("CveOrdenCompra").ToString.ToEntero CveOrdenCompraLiga = dr("CveOrdenCompraLiga").ToString.ToEntero FolioOC = dr("FolioOC").ToString + DescripcionOC = dr("DescripcionOC").ToString FolioInterno = dr("VentaAnticipo").ToString CveCliente = If(dr("CveCliente").ToString.ToEntero > 0, dr("CveCliente").ToString.ToEntero, -1) CveClienteSucursal = If(dr("CveClienteSucursal").ToString.ToEntero > 0, dr("CveClienteSucursal").ToString.ToEntero, -1) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index f79289734..0c6535bcd 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -2888,6 +2888,7 @@ Partial Class PopUpVerFactura Dim CvePrePoliza As Integer = ObjInventarios.DtResultados.FiltroPrimeroValor("CvePrePoliza").ToEntero Dim DireccionCliente As String = ObjInventarios.DtResultados.FiltroPrimeroValor("DireccionCliente") + Dim Ruta As String = "" Dim Supervisor As String = "" @@ -2911,6 +2912,8 @@ Partial Class PopUpVerFactura Dim CveMoneda As Integer = ObjInventarios.CveMoneda Dim FolioVenta As String = ObjInventarios.FolioVenta Dim FolioOC As String = ObjInventarios.FolioOC + Dim DescripcionOC As String = ObjInventarios.DescripcionOC + Dim FolioInterno As String = ObjInventarios.FolioInterno Dim CveCliente As Integer = ObjInventarios.CveCliente @@ -3091,7 +3094,7 @@ Partial Class PopUpVerFactura PuestoEnrego, RazonSocial, ResponsableCarga, ResponsableRecibio, NombreCliente, CantidadProductos:=CantidadProductos, CantidadUsados:=CantidadUsados, CveTipoAlmacen:=CveTipoAlmacen, NombreEntrego:=NombreEntrego, CveConceptoMovRelacionado:=CveConceptoMovtoRelacionado, FolioRelacionado:=FolioRelacionado, UsuarioRegistro:=UsuarioCapturo, - Ruta:=Ruta, Supervisor:=Supervisor, Guia:=Guia, Consola:=Consola, DireccionCliente:=DireccionCliente) + Ruta:=Ruta, Supervisor:=Supervisor, Guia:=Guia, Consola:=Consola, DireccionCliente:=DireccionCliente, DescripcionOC:=DescripcionOC) End Sub Private Sub PUanacExtr(CveMoneda As Integer) 'preciounitario a moneda nacional o extranjera @@ -3110,7 +3113,8 @@ Partial Class PopUpVerFactura EstadoDestino As String, PaisDestino As String, CPDestino As String, FechaMovimiento As Date, NombreCapturo As String, PuestoRecibio As String, PuestoEntrego As String, RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String, Optional CantidadProductos As Decimal = 0, Optional CantidadUsados As Decimal = 0, Optional CveTipoAlmacen As Integer = -1, Optional NombreEntrego As String = "", Optional CveConceptoMovRelacionado As Integer = -1, Optional FolioRelacionado As String = "", Optional UsuarioRegistro As String = "", - Optional Ruta As String = Nothing, Optional Supervisor As String = Nothing, Optional Guia As String = "", Optional Consola As String = "-1", Optional DireccionCliente As String = "") + Optional Ruta As String = Nothing, Optional Supervisor As String = Nothing, Optional Guia As String = "", Optional Consola As String = "-1", Optional DireccionCliente As String = "", + Optional DescripcionOC As String = "") Select Case CveConcepto @@ -3159,7 +3163,7 @@ Partial Class PopUpVerFactura If UsuarioActual.CveEmpresa.Contiene(4, 145) Then params.Add(New ReportParameter("FacturadoA", If(CveCompra > 0, dr("RazonSocial").ToString, ""))) End If - If UsuarioActual.CveEmpresa.Contiene(119, 199, 201) Then + If UsuarioActual.CveEmpresa.Contiene(119, 199, 201, 13) Then params.Add(New ReportParameter("LogoPath", RutaImagenLogo)) params.Add(New ReportParameter("RazonSocialOC", RazonSocialOC)) @@ -3172,12 +3176,16 @@ Partial Class PopUpVerFactura params.Add(New ReportParameter("NombreProveedor", If(CveCompra > 0, dr("RazonSocial").ToString, ""))) End If + If UsuarioActual.CveEmpresa.Contiene(13) Then + params.Add(New ReportParameter("DescripcionOC", DescripcionOC)) + End If + Dim ConceptoFormato As String = "ENTRADA DE ALMACÉN" If CveConcepto = 32 Then ConceptoFormato = "ENTRADA POR AJUSTE" If CveConcepto = 33 Then ConceptoFormato = "ENTRADA MANUAL" 'IMPRESION ESPECIAL SALIDA DE COMPUPROVEEDORES y VSH - If UsuarioActual.CveEmpresa.Contiene(72, 80, 119, 4, 145, 146, 186, 193, 189, 199, 201) Then + If UsuarioActual.CveEmpresa.Contiene(72, 80, 119, 4, 145, 146, 186, 193, 189, 199, 201, 13) Then params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("Concepto", ConceptoFormato)) params.Add(New ReportParameter("Almacen", Almacen)) diff --git a/Compras/RepComplementoPago.aspx b/Compras/RepComplementoPago.aspx index 2eeab0a77..121bcdb3d 100644 --- a/Compras/RepComplementoPago.aspx +++ b/Compras/RepComplementoPago.aspx @@ -136,9 +136,9 @@ <%--0--%> - + <%--1--%> - + <%--2--%> @@ -149,7 +149,7 @@ <%--3--%> <%--4--%> - + <%--5--%> <%--6--%> diff --git a/Compras/RepComplementoPago.aspx.vb b/Compras/RepComplementoPago.aspx.vb index cf4bf2ab6..ed3cd252a 100644 --- a/Compras/RepComplementoPago.aspx.vb +++ b/Compras/RepComplementoPago.aspx.vb @@ -105,9 +105,9 @@ Partial Class Compras_RepComplementoPago GvDatos.Columns(2).Visible = ChkFolioFiscal.Checked If ChkFolioFiscal.Checked Then - GvDatos.Columns(0).ItemStyle.Width = 15% + 'GvDatos.Columns(0).ItemStyle.Width = 15% Else - GvDatos.Columns(0).ItemStyle.Width = 30% + 'GvDatos.Columns(0).ItemStyle.Width = 30% End If UpDatos.Update() @@ -240,7 +240,7 @@ Partial Class Compras_RepComplementoPago SbFiltros.AppendFormat("SubProyecto: {0}|", SubProyecto) - GvDatos.ExportToExcelGembox("RepComplementos_" & NowADS().ToShortDateString, UsuarioActual, "Ordenes de Servicio Medicas", DatoTituloExtra:=$"", DatosFiltros:=SbFiltros.ToString()) + GvDatos.ExportToExcelGembox("RepComplementos_" & NowADS().ToShortDateString, UsuarioActual, "Reporte de Complementos Pago de Compras", DatoTituloExtra:=$"", DatosFiltros:=SbFiltros.ToString()) End Sub Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control) diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 1d77e1cf1..00b264ed3 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -5133,7 +5133,7 @@
- +
diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index dfcb4d6bc..b812d44a9 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -3447,7 +3447,6 @@ Partial Class RH_Personal Row("CLABE") = TxtCLABECB.Text.Trim Row("SWIFT") = TxtSWIFT.Text Row("Plaza") = TxtPlaza.Text - Row("Cuenta") = TxtNumeroSucursal.Text Row("CIE") = TxtConvenioCIE.Text Row("Referencia") = TxtReferenciaC.Text Row("RefCrediProveedor") = TxtRefCrediProveedor.Text @@ -8455,13 +8454,13 @@ Partial Class RH_Personal 'End Sub - Protected Sub ChkPagoElectronico_CheckedChanged(sender As Object, e As EventArgs) + 'Protected Sub ChkPagoElectronico_CheckedChanged(sender As Object, e As EventArgs) - 'If ChkEstatusPagoE.Checked Then - ' Alert("Se está activando manualmente el pago por Layout BBVA. Recuerde que la alta se realiza directo en la plataforma", TipoMensaje.MsgAdvertencia) - 'End If + ' 'If ChkEstatusPagoE.Checked Then + ' ' Alert("Se está activando manualmente el pago por Layout BBVA. Recuerde que la alta se realiza directo en la plataforma", TipoMensaje.MsgAdvertencia) + ' 'End If - End Sub + 'End Sub End Class From 4e6e92d9e4ef34eeab8cc833a1da249df94408a2 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 6 May 2025 11:03:39 -0700 Subject: [PATCH 33/33] Compras no actualizar total en compra nueva con xml --- Compras/Compras.aspx.vb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index cd5dbd416..45306e38b 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1362,6 +1362,8 @@ Partial Class Compras_Compras Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + + If Not IsPostBack Then 'ImgBtnBuscarOC.Attributes.Add("data-toggle", "tooltip") 'ImgBtnBuscarOC.Attributes.Add("data-placement", "top") @@ -17609,10 +17611,15 @@ Partial Class Compras_Compras If TxtDescuento.Text.ToDouble > 0 Then TrDescuento.Visible = True If ActualizaTotales And (UsuarioActual.CveEmpresa = 72 Or Not CveCompraFactura > 0) Then - TxtTotal.Text = Total.ToString.FormatoNumero() - If CveCompra > 0 AndAlso CveCompraFactura = 0 Then + + If Not (CveFactura > 0 And CveCompra <= 0) Then + TxtTotal.Text = Total.ToString.FormatoNumero() + ElseIf CveCompra > 0 AndAlso CveCompraFactura = 0 Then 'Compra manual que ya estaba registrada + TxtTotal.Text = Total.ToString.FormatoNumero() TxtIVA.Text = IVA.ToString.FormatoNumero() End If + + End If Else