From e475e53e44e59638d7511436d96be1901d3c2f18 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 19 Jun 2024 22:12:59 -0700 Subject: [PATCH 01/87] -- cambio fecha --- Ventas/RepComisionesSMS.aspx.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ventas/RepComisionesSMS.aspx.vb b/Ventas/RepComisionesSMS.aspx.vb index fcf4f8de3..c7d758c1b 100644 --- a/Ventas/RepComisionesSMS.aspx.vb +++ b/Ventas/RepComisionesSMS.aspx.vb @@ -24,8 +24,8 @@ Partial Class Ventas_RepComisionesSMS Dim FechaInicial As Date = New Date(10) - txtFechaI.Text = Now.FirstDayOfMonth.ToString("dd/MM/yyyy") - txtFechaF.Text = Now.ToString("dd/MM/yyyy") + txtFechaI.Text = NowADS().FirstDayOfMonth.ToString("dd/MM/yyyy") + txtFechaF.Text = NowADS().AddDays(2).ToShortDateString CargaCombos() CargaDatos() End If From a9a7bed6e4ea2167197c4f1fbb494e17d741b6d7 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 19 Jun 2024 22:13:27 -0700 Subject: [PATCH 02/87] -- mejora SMS --- Ventas/Ventas.aspx.vb | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 8c2799db2..bbc4f3803 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -2563,7 +2563,6 @@ Partial Class Ventas End If If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso UsuarioActual.CveUsuario = 100 Then DivPenalizacion.Visible = True - End If If UsuarioActual.Empresa.Funcionalidad(595) = "2" Then LnkSolicitarCredito.Visible = True @@ -37769,7 +37768,7 @@ Partial Class Ventas Protected Sub LnkDvModalTipoVentaAceptar_Click(sender As Object, e As EventArgs) - If RBLTipoVenta.SelectedValue.ToEntero = 2 Then + If RBLTipoVenta.SelectedValue = "2" Then 'pago directo If DdlClientesModal.SelectedValue.ToEntero > 0 Then ViewState("CveCliente") = DdlClientesModal.SelectedValue.ToEntero @@ -37802,11 +37801,9 @@ Partial Class Ventas End If CveClienteSucursalOS = DdlClienteSucursalSucursal() - - If ChkRequiereTecnicoModal.Checked Then If Not IsDate(TxtFechaModal.Text.Replace(",", "")) Then - Alert("El campo fecha no es valido.", TipoMensaje.MsgAdvertencia) + Alert("El campo fecha no es válido.", TipoMensaje.MsgAdvertencia) Exit Sub End If End If @@ -37819,7 +37816,6 @@ Partial Class Ventas Dim Clasificacion As String = GvRow.DataKey("Clasificacion").ToString Dim CvePS As Integer = GvRow.DataKey("CvePS").ToEntero Dim CodigoPS As String = GvRow.DataKey("CodigoPS") - Dim PU As Decimal = GvRow.FCTextBox("TxtPrecio").Text.ToDecimal If Cantidad > 0 Then @@ -37828,33 +37824,21 @@ Partial Class Ventas Exit Sub End If End If - Next ChkRequiereTecnico.Checked = ChkRequiereTecnicoModal.Checked TxtFechaOS.Text = TxtFechaModal.Text - - If ChkRequiereTecnicoModal.Checked Then - TdFechaOS1.Visible = True - TdFechaOS2.Visible = True - Else - TdFechaOS1.Visible = False - TdFechaOS2.Visible = False - End If - + TdFechaOS1.Visible = ChkRequiereTecnicoModal.Checked + TdFechaOS2.Visible = ChkRequiereTecnicoModal.Checked DdlMedico.SelectedValueExist(DdlMedicoModal.SelectedValue) DdlProcedimiento.SelectedValueExist(DdlProcedimientoModal.SelectedValue) Dim tCveAlmacenExistencia As Integer = -1 - If RBLTipoVenta.SelectedValue.Contiene("2") Then 'si es pago directo es factura - 'DdlTipoComprobante.SelectedValueExist("Ing") + If RBLTipoVenta.SelectedValue.Contiene("2") Then 'si es pago directo es remisión sino tine técnico TrVentasMedicas1.Visible = True TrVentasMedicas2.Visible = True - - TdFechaOS1.Visible = True - TdFechaOS2.Visible = True ChkRequiereTecnico.Checked = ChkRequiereTecnicoModal.Checked ChkRequiereTecnico.Enabled = True @@ -37864,7 +37848,6 @@ Partial Class Ventas DdlTipoComprobante.SelectedValueExist("Rem") End If - ElseIf RBLTipoVenta.SelectedValue.Contiene("3") Then ' A vista DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("Pedido", "Ped")) DdlTipoComprobante.SelectedValueExist("Ped") @@ -37879,10 +37862,8 @@ Partial Class Ventas Else DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("Pedido", "Ped")) DdlTipoComprobante.SelectedValueExist("Ped") - TrVentasMedicas1.Visible = True TrVentasMedicas2.Visible = True - TdFechaOS1.Visible = True TdFechaOS2.Visible = True @@ -37894,7 +37875,6 @@ Partial Class Ventas End If DdlTipoComprobante.Enabled = False - CargaCliente(CveCliente) ' Si es pago directo no asigna la sucurasl al dll @@ -37909,7 +37889,6 @@ Partial Class Ventas End If End If - DdlTipoComprobante_SelectedIndexChanged(sender, Nothing) Dim CountPsAgregados As Integer = 0 From a322a92fa0bcc96a8800c7818ba6ac3a1781f329 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 19 Jun 2024 22:33:44 -0700 Subject: [PATCH 03/87] - mejora --- Ventas/Ventas.aspx.vb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index bbc4f3803..ac099a4ad 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -37835,19 +37835,17 @@ Partial Class Ventas Dim tCveAlmacenExistencia As Integer = -1 - If RBLTipoVenta.SelectedValue.Contiene("2") Then 'si es pago directo es remisión sino tine técnico - + If RBLTipoVenta.SelectedValue.Contiene("2") Then 'si es pago directo es remisión sino tiene técnico TrVentasMedicas1.Visible = True TrVentasMedicas2.Visible = True ChkRequiereTecnico.Checked = ChkRequiereTecnicoModal.Checked ChkRequiereTecnico.Enabled = True If ChkRequiereTecnico.Checked Then - DdlTipoComprobante.SelectedValueExist("Ped") + DdlTipoComprobante.SelectedValueExistInsert("Ped", "Pedido") Else - DdlTipoComprobante.SelectedValueExist("Rem") + DdlTipoComprobante.SelectedValueExistInsert("Rem", "Remisión") End If - ElseIf RBLTipoVenta.SelectedValue.Contiene("3") Then ' A vista DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("Pedido", "Ped")) DdlTipoComprobante.SelectedValueExist("Ped") @@ -38004,7 +38002,6 @@ Partial Class Ventas UpDvModalTipoVenta.Update() End Sub - Private Function GeneraOS(ByRef TransacSQL As SqlClient.SqlTransaction, ByRef errorList As List(Of String), CveVentaOS As Integer, SerieFolioOS As String) As Boolean Dim Errores As Boolean = False From f26512765bebf9cb517c0351ba6bf817492578b6 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 19 Jun 2024 23:58:18 -0700 Subject: [PATCH 04/87] -- modulo nuevo --- App_Code/ClsPaginas.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 1f67f7ea8..c57311bfb 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -10348,7 +10348,7 @@ Public Class ClsPaginas PaginaDict.Add("/OS/CatEstatusOrdenServicio.aspx".ToUpper(), 99) PaginaDict.Add("/OS/PopUpBuscarCuentasEquipos.aspx".ToUpper(), 100) PaginaDict.Add("/OS/PopUpCuentasEquipos.aspx".ToUpper(), -1) - 'PaginaDict.Add("/OS/CatSubTiposOrdenesServicios.aspx".ToUpper(), 101) + PaginaDict.Add("/OS/RepServiciosMedicos.aspx".ToUpper(), 178) 'PaginaDict.Add("/OS/CatCaracteristicasOrdenServicio.aspx".ToUpper(), 131) 'PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), 132) PaginaDict.Add("/OS/RepOrdenesServicios.aspx".ToUpper(), 134) From 2f18962697349352b1a792befeadee6fd771be63 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 19 Jun 2024 23:58:38 -0700 Subject: [PATCH 05/87] - columna tipo de venta --- OS/Asignaciones.aspx | 13 +++++++------ OS/Asignaciones.aspx.vb | 32 +++++++++++--------------------- 2 files changed, 18 insertions(+), 27 deletions(-) diff --git a/OS/Asignaciones.aspx b/OS/Asignaciones.aspx index ab915fb3e..4682fa2da 100644 --- a/OS/Asignaciones.aspx +++ b/OS/Asignaciones.aspx @@ -199,15 +199,16 @@ - + - - - + + + - - + + + diff --git a/OS/Asignaciones.aspx.vb b/OS/Asignaciones.aspx.vb index aafbc61a0..27dd8d20a 100644 --- a/OS/Asignaciones.aspx.vb +++ b/OS/Asignaciones.aspx.vb @@ -1,8 +1,7 @@ Option Explicit On Option Strict On -Imports System.Data -Imports System.Data.Entity.Core.Metadata.Edm +Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Imports MKB.TimePicker @@ -70,16 +69,12 @@ Partial Class OS_Asignaciones BtnAsignar.Visible = False End If End If - ObjEstatusPermisos.Dispose() - - - - + ObjEstatusPermisos.Dispose() End If RegistraScript(" $('#GvNA tr').each(function() { - $(this).find('td:eq(6) input').each(function() { + $(this).find('td:eq(7) input').each(function() { if($(this).val()!=':'){ $(this).attr('style', 'width: 20px;'); }else{ @@ -99,16 +94,15 @@ Partial Class OS_Asignaciones GvNA.Columns(6).Visible = False GvNA.Columns(7).Visible = True - GvNA.Columns(8).Visible = True - GvNA.Columns(11).Visible = True - + GvNA.Columns(8).Visible = True + GvNA.Columns(9).Visible = True + GvNA.Columns(12).Visible = True GvNA.Columns(2).HeaderText = "Hospital" - GvNA.Columns(9).HeaderText = "Fecha Cirugía" - GvNA.Columns(10).HeaderText = "Hora Cirugía" + GvNA.Columns(10).HeaderText = "Fecha Cirugía" + GvNA.Columns(11).HeaderText = "Hora Cirugía" End If - End Sub #Region "C A R G A S " @@ -558,8 +552,7 @@ Partial Class OS_Asignaciones e.Row.FindControl("TimeSelector").Visible = True End If - If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then - + If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then Dim FechaCita = e.Row.DataKey("FechaCitaOS").ToDateTime e.Row.FCTextBox("FechaOS").Text = FechaCita.ToString("dd/MM/yyyy") e.Row.FCTextBox("FechaOS").Visible = True @@ -569,13 +562,10 @@ Partial Class OS_Asignaciones Dim TMSelector = DirectCast(e.Row.FindControl("TimeSelector"), TimeSelector) TMSelector.Date = FechaCita - e.Row.Cells(9).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.Ticks.ToString) - e.Row.Cells(10).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.ToString("HHmm")) + e.Row.Cells(10).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.Ticks.ToString) + e.Row.Cells(11).Attributes.Add("data-order", e.Row.DBCampo("FechaCitaOS").ToDate.ToString("HHmm")) End If - - - End If UpOS.Update() From b49894a071fa71f85a0cf917bbf9477b2d82a0fe Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 20 Jun 2024 08:21:19 -0700 Subject: [PATCH 06/87] - liga concepto rowdatabound --- Contabilidad/RegPrePolizaS.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index b368d9f2b..06d12c20c 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -573,7 +573,7 @@ Partial Class ContabilidadC_RegPrePolizaS Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero - If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) + If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301, 3, 11) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288, 370, 371, 372, 373) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")) If CveConceptoContable.Contiene(30, 204, 66, 92, 202, 10, 21, 48, 56, 338, 339, 340, 345, 346, 347) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) From b4d5ec380eb4502bd9f8e4c723a3bf7141a07535 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 20 Jun 2024 13:11:26 -0700 Subject: [PATCH 07/87] =?UTF-8?q?--EE.=20validaci=C3=B3n=20de=20precios=20?= =?UTF-8?q?m=C3=ADnimos=20en=20cotizaciones.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index ac099a4ad..d4001e38b 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -8870,6 +8870,14 @@ Partial Class Ventas Dim DatarowPS As DataRow = Nothing DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=TmpDT.Rows(e.RowIndex)("CvePS").ToString().ToEntero()).FiltroPrimero("") ' Estado = -1 + + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then + If PU < DatarowPS("PrecioMinimo").ToString().ToDecimal() Then + Alert($"El precio no puede ser menor al precio mínimo. Precio Mínimo: {DatarowPS("PrecioMinimo"):N2}", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + 'verifica si tiene ventaminima If Cantidad > 0 AndAlso DatarowPS("VentaMinima").ToString().ToDecimal > 0 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "PA")) Then 'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15... @@ -13181,10 +13189,10 @@ Partial Class Ventas End If 'SI ES DEVOLUCION DIRECTA, SIN RELACION A UNA FACTURA - 'If UsuarioActual.CveEmpresa.Contiene(1, 192) AndAlso DdlTipoComprobante.SelectedValue = "Dev" AndAlso CveVentaDevolucion <= 0 AndAlso Timbre.CFDIRelacionados.UUID.Count = 0 Then - ' Timbre.CFDIRelacionados.TipoRelacion = "" - ' Timbre.CFDIRelacionados.TipoRelacionTexto = "" - 'End If + If UsuarioActual.CveEmpresa.Contiene(1, 190) AndAlso DdlTipoComprobante.SelectedValue = "Dev" AndAlso CveVentaDevolucion <= 0 AndAlso Timbre.CFDIRelacionados.UUID.Count = 0 Then + Timbre.CFDIRelacionados.TipoRelacion = "" + Timbre.CFDIRelacionados.TipoRelacionTexto = "" + End If 'SI LAS FACTURAS SE RELACIONARAN MANUALMENTE SE AGREGAN If Me.AplicaRelacionManual AndAlso DdlTipoRelacionARelacionar.SelectedValue.ToEntero() > 0 Then @@ -16705,6 +16713,10 @@ Partial Class Ventas If ObjMovtos.DtResultados.SUM("Saldo", "Saldo > 0 AND SaldoSubtotal > 0 AND Tipo = 'Ant'") > 0 Then HdnTieneAnticipos.Value = "1" End If + + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DtMovtos IsNot Nothing AndAlso DtMovtos.Rows.Count = 0 Then + ImgAntiPend.Visible = False + End If Else GVAnticipos.DataSource = Nothing End If @@ -18737,6 +18749,16 @@ Partial Class Ventas Return False End If + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then + Dim DatarowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") + If DatarowPS IsNot Nothing Then + If PU < DatarowPS("PrecioMinimo").ToString().ToDecimal() Then + Alert($"El precio no puede ser menor al precio mínimo. Precio Mínimo: {DatarowPS("PrecioMinimo"):N2}", TipoMensaje.MsgAdvertencia) + Return False + End If + End If + End If + 'SI NO VIENE DESDE EL MODAL If CantidadModal = 0 Then If TxtCantidad.Text.ToDecimal() <= 0 Then @@ -20266,11 +20288,11 @@ Partial Class Ventas If Not UsuarioActual.TienePermisoProceso(264) Then DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Dev")) Else - 'If UsuarioActual.CveEmpresa.Contiene(1, 192) Then - ' If DdlTipoComprobante.Items.FindByValue("Dev") Is Nothing Then - ' DdlTipoComprobante.Items.Add(New ListItem("Devolución", "Dev")) - ' End If - 'End If + If UsuarioActual.CveEmpresa.Contiene(1, 190) Then + If DdlTipoComprobante.Items.FindByValue("Dev") Is Nothing Then + DdlTipoComprobante.Items.Add(New ListItem("Devolución", "Dev")) + End If + End If End If 'Puede facturar From dc0cda7142c9f3468ba9cf57e0f669d314df37cb Mon Sep 17 00:00:00 2001 From: rakcsle Date: Thu, 20 Jun 2024 16:50:54 -0700 Subject: [PATCH 08/87] Correciones Solicitudes SAT --- App_Code/ClsCompras.vb | 2 +- App_Code/ClsMovimientos.vb | 7 +- Compras/Compras.aspx.vb | 4 +- Contabilidad/RepIVA.aspx.cs | 5 +- Contratos/RepPresupuestos.aspx.vb | 9 +- .../Grales/Formatos/RepPresupuestoAnual.rdlc | 2124 +++++++++-------- General/SaldosMenores.aspx | 58 +- General/SaldosMenores.aspx.vb | 191 +- OC/OC.aspx.vb | 10 +- SAT/SolicitudesIngresoSat.aspx.cs | 13 +- SAT/SolicitudesNominaSat.aspx | 2 +- SAT/SolicitudesNominaSat.aspx.cs | 152 +- 12 files changed, 1464 insertions(+), 1113 deletions(-) diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 10be3c7d4..a2491dbad 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -574,7 +574,7 @@ Public Class ClsCompras DataAdapter("PA_Comp_CompraDetalleRemove") - + SqlAdapter.SelectCommand.CommandTimeout = 0 With SqlAdapter.SelectCommand.Parameters .Add("@CveCompraDetalle", SqlDbType.Int).Value = CveCompraDetalle End With diff --git a/App_Code/ClsMovimientos.vb b/App_Code/ClsMovimientos.vb index dced0eeca..a7bd91c78 100644 --- a/App_Code/ClsMovimientos.vb +++ b/App_Code/ClsMovimientos.vb @@ -117,7 +117,9 @@ Public Class ClsMovimientos #Region "CxC" - Public Function GetCxCClienteDetalle(CveCliente As Integer, FechaI As String, FechaF As String, CveMoneda As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, CveClienteSucursal As Integer, Optional TipoDocto As String = "-1", Optional FechaCorte As Date = MaxFecha, Optional FechaVencimientoI As Date = MinFecha, Optional FechaVencimientoF As Date = MaxFecha) As Boolean + Public Function GetCxCClienteDetalle(CveCliente As Integer, FechaI As String, FechaF As String, CveMoneda As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, CveClienteSucursal As Integer, Optional TipoDocto As String = "-1", + Optional FechaCorte As Date = MaxFecha, Optional FechaVencimientoI As Date = MinFecha, Optional FechaVencimientoF As Date = MaxFecha, Optional Opcion As Integer = 1, Optional SaldoMayorA As Decimal = -999999999999, + Optional SaldoMenorA As Decimal = 999999999999) As Boolean Dim Retorno As Boolean = False FechaCorte = IIf(FechaCorte = Nothing, ClsPaginas.NowADS().AddYears(1), FechaCorte).ToString.ToDate @@ -135,6 +137,9 @@ Public Class ClsMovimientos .Add("@FechaCorte", SqlDbType.Date).Value = FechaCorte .Add("@FechaVencimientoI", SqlDbType.Date).Value = FechaVencimientoI .Add("@FechaVencimientoF", SqlDbType.Date).Value = FechaVencimientoF + .Add("@Opcion", SqlDbType.Int).Value = Opcion + .Add("@SaldoMayorA", SqlDbType.Money).Value = SaldoMayorA + .Add("@SaldoMenorA", SqlDbType.Money).Value = SaldoMenorA End With Try diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 81cb8ee6f..d945f314e 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1948,7 +1948,7 @@ Partial Class Compras_Compras For Each concepto As XmlNode In nodeconceptos ' Obtener la descripción del concepto Dim descripcion As String = ValorXML(concepto, "Descripcion") - Dim importeValue As Decimal = Decimal.Parse(ValorXML(concepto, "Importe")) + Dim importeValue As Decimal = Decimal.Parse(ValorXML(concepto, "Importe")).RoundSQL(2) ' Seleccionar el nodo de Impuestos dentro de Concepto, si existe Dim impuestosNode As XmlNode = concepto.SelectSingleNode("cfdi:Impuestos", namespaces) @@ -1958,7 +1958,7 @@ Partial Class Compras_Compras Dim retenciones As XmlNodeList = impuestosNode.SelectNodes("cfdi:Retenciones/cfdi:Retencion", namespaces) For Each retencion As XmlNode In retenciones ' Obtener los valores de los atributos Base e Importe - Dim baseValue As Decimal = Decimal.Parse(ValorXML(retencion, "Base")) + Dim baseValue As Decimal = Decimal.Parse(ValorXML(retencion, "Base")).RoundSQL(2) Dim impuesto As String = ValorXML(retencion, "Impuesto") If impuesto = "001" Then diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index 7281c9988..ace02b2f8 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -260,8 +260,9 @@ public partial class Contabilidad_RepIVA : ClsPaginas ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, DtIEPSA, DtIVAA, "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); - - + //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + + } Ruta.GuardaLogAD(); //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); diff --git a/Contratos/RepPresupuestos.aspx.vb b/Contratos/RepPresupuestos.aspx.vb index 32dd3467a..7995872cd 100644 --- a/Contratos/RepPresupuestos.aspx.vb +++ b/Contratos/RepPresupuestos.aspx.vb @@ -605,9 +605,14 @@ Partial Class Contratos_RepPresupuestos params.Add(New ReportParameter("Autorizado", LtlAutorizado.Text.FormatoNumero())) params.Add(New ReportParameter("Ejercido", LtlEjercido.Text.FormatoNumero())) params.Add(New ReportParameter("PorEjercer", LtlPorEjercer.Text.FormatoNumero())) - - params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) + params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) + + + params.Add(New ReportParameter("PresupuestoRestrictivo", UsuarioActual.Empresa.Funcionalidad(532))) + + ImprimirPDF("Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc", DtPresupuestos, params, "Reporte de Presupuestos Anual", Formato) + Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If diff --git a/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc b/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc index 83cd50208..446a7587f 100644 --- a/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc +++ b/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc @@ -1,1061 +1,5 @@  - - - - - true - true - - - - - =Parameters!PorEjercer.Value - - - - - - - - - - - - - Black - - 1pt - - - Black - - 1pt - - - Black - - 1pt - - - Black - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - true - true - - - - - Descripcion - - - - - - - Textbox28 - - - - - - Gray - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - 3.13228cm - - - 3.06185cm - - - 1.55043cm - - - 3.45602cm - - - 1.46938cm - - - - - 0.6cm - - - - - true - true - - - - - =iif(CDec(Fields!Autorizado.Value)=0,"-",Fields!Autorizado.Value) - - - - - - - Huerta - - - =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =iif(CDec(Fields!Ejercido.Value)=0,"-",Fields!Ejercido.Value) - - - - - - - Motivo - - - =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =iif(CDec(Fields!EjercidoPorcentaje.Value)=0,"-",Fields!EjercidoPorcentaje.Value) - - - - - - - TicketBascula - - - =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =iif(CDec(Fields!PorEjercer.Value)=0,"-",Fields!PorEjercer.Value) - - - - - - - Peso - - - =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =iif(CDec(Fields!PorEjercerPorcentaje.Value)=0,"-",Fields!PorEjercerPorcentaje.Value) - - - - - - - PesoMerma - - - =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - 0.6cm - - - true - true - - - - - Importe - - - - - - - Textbox40 - - - Gray - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - true - true - - - - - Importe - - - - - - - Textbox42 - - - Gray - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - true - true - - - - - % - - - - - - - Textbox44 - - - Gray - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - true - true - - - - - Importe - - - - - - - Textbox47 - - - Gray - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.6cm - - - true - true - - - - - % - - - - - - - Textbox4 - - - Gray - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - 7.14207cm - - - true - true - - - - - =Fields!Agrupador.Value - - - - - - - FolioOC - - - =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - DataSet1 - 3.39562cm - 0.17167cm - 1.2cm - 19.81203cm - 1 - - - - - - true - true - - - - - =Parameters!Ejercido.Value - - - - - - - - - - - - - Black - - 1pt - - - Black - - 1pt - - - Black - - 1pt - - - Black - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!Autorizado.Value - - - - - - - - - - - - - Black - - 1pt - - - Black - - 1pt - - - Black - - 1pt - - - Black - - 1pt - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!AgrupadoPor.Value - HTML - - - - - - - Textbox1 - 0.34368cm - 0.06614cm - 0.58236cm - 19.58715cm - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - 1.9343in - - - - - - - Textbox1 - 2.43857cm - 0.6cm - 14.68354cm - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - REPORTE DE PRESUPUESTO ANUAL - - - - - - - - - - - - - - - - Textbox2 - 0.63528cm - 2.40329cm - 0.52945cm - 14.68354cm - 1 - - - 2pt - 2pt - 2pt - 2pt - - - - External - =Parameters!LogoPath.Value - FitProportional - 0.06614cm - 2.22362cm - 2.33715cm - 2 - - - - - - - - - - - 1.08126cm - true - true - - - true - true - - - - - ="Página " & Globals.PageNumber & " de " & Globals.TotalPages - - - - - - - Textbox3 - 0.40041cm - 16.97887cm - 0.68085cm - 2.06587cm - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =iif(Globals.PageNumber = Globals.TotalPages, "Usuario: ", "") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =iif(Globals.PageNumber = Globals.TotalPages, Parameters!UsuarioImprimio.Value, "") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =iif(Globals.PageNumber = Globals.TotalPages, "Fecha Impresión: ", "") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =iif(Globals.PageNumber = Globals.TotalPages, Parameters!FechaImpresion.Value, "") - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 29.7cm - 21cm - 0.5cm - 0.5cm - 1cm - 1cm - 0.13cm - + + + + + + + + + + + + Black + + 1pt + + + Black + + 1pt + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + true + true + + + + + Descripcion + + + + + + + Textbox28 + + + + + + Gray + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + 3.13228cm + + + 3.06185cm + + + 1.55043cm + + + 3.45602cm + + + 1.46938cm + + + + + 0.6cm + + + + + true + true + + + + + =iif(CDec(Fields!Autorizado.Value)=0,"-",Fields!Autorizado.Value) + + + + + + + Huerta + + + =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + = IIF( Parameters!PresupuestoRestrictivo.Value = "2", IIF(CDec(Fields!Autorizado.Value)=0,"-",Fields!Autorizado.Value),IIF(CDec(Fields!Ejercido.Value)=0,"-",Fields!Ejercido.Value)) + + + + + + + Motivo + + + =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =iif(CDec(Fields!EjercidoPorcentaje.Value)=0,"-",Fields!EjercidoPorcentaje.Value) + + + + + + + TicketBascula + + + =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =iif(CDec(Fields!PorEjercer.Value)=0,"-",Fields!PorEjercer.Value) + + + + + + + Peso + + + =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =iif(CDec(Fields!PorEjercerPorcentaje.Value)=0,"-",Fields!PorEjercerPorcentaje.Value) + + + + + + + PesoMerma + + + =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + 0.6cm + + + true + true + + + + + Importe + + + + + + + Textbox40 + + + Gray + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + true + true + + + + + Importe + + + + + + + Textbox42 + + + Gray + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + true + true + + + + + % + + + + + + + Textbox44 + + + Gray + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + true + true + + + + + Importe + + + + + + + Textbox47 + + + Gray + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.6cm + + + true + true + + + + + % + + + + + + + Textbox4 + + + Gray + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + 7.14207cm + + + true + true + + + + + =Fields!Agrupador.Value + + + + + + + FolioOC + + + =IIf(Fields!Tipo.Value = 0, "#67809F",IIf(Fields!Tipo.Value = 1,"LightSteelBlue","Transparent")) + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + DataSet1 + 3.39562cm + 0.17167cm + 1.2cm + 19.81203cm + 1 + + + + + + true + true + + + + + =Parameters!Ejercido.Value + + + + + + + + + + + + + Black + + 1pt + + + Black + + 1pt + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Autorizado.Value + + + + + + + + + + + + + Black + + 1pt + + + Black + + 1pt + + + Black + + 1pt + + + Black + + 1pt + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!AgrupadoPor.Value + HTML + + + + + + + Textbox1 + 0.34368cm + 0.06614cm + 0.58236cm + 19.58715cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + 1.9343in + + + + + + + Textbox1 + 2.43857cm + 0.6cm + 14.68354cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + REPORTE DE PRESUPUESTO ANUAL + + + + + + + + + + + + + + + + Textbox2 + 0.63528cm + 2.40329cm + 0.52945cm + 14.68354cm + 1 + + + 2pt + 2pt + 2pt + 2pt + + + + External + =Parameters!LogoPath.Value + FitProportional + 0.06614cm + 2.22362cm + 2.33715cm + 2 + + + + + + + + + + + 1.08126cm + true + true + + + true + true + + + + + ="Página " & Globals.PageNumber & " de " & Globals.TotalPages + + + + + + + Textbox3 + 0.40041cm + 16.97887cm + 0.68085cm + 2.06587cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =iif(Globals.PageNumber = Globals.TotalPages, "Usuario: ", "") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =iif(Globals.PageNumber = Globals.TotalPages, Parameters!UsuarioImprimio.Value, "") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =iif(Globals.PageNumber = Globals.TotalPages, "Fecha Impresión: ", "") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =iif(Globals.PageNumber = Globals.TotalPages, Parameters!FechaImpresion.Value, "") + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 29.7cm + 21cm + 0.5cm + 0.5cm + 1cm + 1cm + 0.13cm + + + + + + + + + + Reporte Órdenes Médicas + + + + + + + +
+
+
+ + +
+
+
+ + +
+ +
+ + + +
+ +
+ +
+
+
+
+
+
+
+
+ + + +
+
+ Os: +
+
+ +
+
+ Asignar +
+
+
+
+ + + +
+
+ +
+
+
+ + Cirugías +
+
+
+ +
+
+ + + + + + + + +
+
+
+
+ + + + + + + + + + +
+ + + + + + + + + + + + +
+ +
+ + + + + + diff --git a/OS/RepServiciosMedicos.aspx.vb b/OS/RepServiciosMedicos.aspx.vb new file mode 100644 index 000000000..4d33a8f19 --- /dev/null +++ b/OS/RepServiciosMedicos.aspx.vb @@ -0,0 +1,1232 @@ +Option Explicit On +Option Strict On + +Imports Extensiones +Imports System.Data +Imports Microsoft.Reporting.WebForms +Imports System.Web.Services +Partial Class OS_RepServiciosMedicos + Inherits ClsPaginas + +#Region "PROPIEDADES" + + Private Property DtDatos As DataTable + Get + DtDatos = DirectCast(ViewState("DtDatos"), DataTable) + End Get + + Set(ByVal value As DataTable) + ViewState("DtDatos") = value + End Set + End Property + Private Property Agrupador As String + Get + Return ViewState("Agrupador").ToString + End Get + + Set(value As String) + ViewState("Agrupador") = value + End Set + End Property + Private Property TCEspecifico As Double + Get + Return ViewState("TCEspecifico").ToString.ToDouble + End Get + + Set(value As Double) + ViewState("TCEspecifico") = value + End Set + End Property + Private Property TipoCambio As Integer + Get + Return ViewState("TipoCambio").ToString.ToEntero + End Get + + Set(value As Integer) + ViewState("TipoCambio") = value + End Set + End Property + + + Private Property DT_OSSubProyectos As DataTable + Get + If ViewState("DT_OSSubProyectos") Is Nothing Then + ViewState("DT_OSSubProyectos") = New DataTable + End If + Return DirectCast(ViewState("DT_OSSubProyectos"), DataTable) + + End Get + + Set(value As DataTable) + ViewState("DT_OSSubProyectos") = value + End Set + End Property + + Private Property DT_OSNoAsignadas As DataTable + Get + If ViewState("DT_OSNoAsignadas") Is Nothing Then + ViewState("DT_OSNoAsignadas") = New DataTable + End If + Return DirectCast(ViewState("DT_OSNoAsignadas"), DataTable) + + End Get + + Set(value As DataTable) + ViewState("DT_OSNoAsignadas") = value + End Set + End Property + + Private Property CveOSDetalleAsignar As Integer + Get + If ViewState("CveOSDetalleAsignar") Is Nothing Then + ViewState("CveOSDetalleAsignar") = -1 + End If + Return ViewState("CveOSDetalleAsignar").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveOSDetalleAsignar") = value + End Set + End Property + + Private Property CveSubProyectoAsignar As Integer + Get + If ViewState("CveSubProyectoAsignar") Is Nothing Then + ViewState("CveSubProyectoAsignar") = -1 + End If + Return ViewState("CveSubProyectoAsignar").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveSubProyectoAsignar") = value + End Set + End Property + + Private Property CveOrdenServicioTipo As Integer + Get + If ViewState("CveOrdenServicioTipo") Is Nothing Then + ViewState("CveOrdenServicioTipo") = -1 + End If + Return ViewState("CveOrdenServicioTipo").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveOrdenServicioTipo") = value + End Set + End Property + + Private Property FolioAsignar As String + Get + If ViewState("FolioAsignar") Is Nothing Then + ViewState("FolioAsignar") = "" + End If + Return ViewState("FolioAsignar").ToString + End Get + Set(value As String) + ViewState("FolioAsignar") = value + End Set + End Property + Private Property ConceptoAsignar As String + Get + If ViewState("ConceptoAsignar") Is Nothing Then + ViewState("ConceptoAsignar") = "" + End If + Return ViewState("ConceptoAsignar").ToString + End Get + Set(value As String) + ViewState("ConceptoAsignar") = value + End Set + End Property + Private Property ClienteAsignar As String + Get + If ViewState("ClienteAsignar") Is Nothing Then + ViewState("ClienteAsignar") = "" + End If + Return ViewState("ClienteAsignar").ToString + End Get + Set(value As String) + ViewState("ClienteAsignar") = value + End Set + End Property + Private Property SubProyectoAsignar As String + Get + If ViewState("SubProyectoAsignar") Is Nothing Then + ViewState("SubProyectoAsignar") = "" + End If + Return ViewState("SubProyectoAsignar").ToString + End Get + Set(value As String) + ViewState("SubProyectoAsignar") = value + End Set + End Property + Private Property CveOSAsignar As Integer + Get + If ViewState("CveOSAsignar") Is Nothing Then + ViewState("CveOSAsignar") = -1 + End If + Return ViewState("CveOSAsignar").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveOSAsignar") = value + End Set + End Property + Private Property TipoAccion As OSModalTipoAccion + Get + If ViewState("TipoAccion") Is Nothing Then + ViewState("TipoAccion") = OSModalTipoAccion.Agregar + End If + Return DirectCast(ViewState("TipoAccion"), OSModalTipoAccion) + End Get + Set(value As OSModalTipoAccion) + ViewState("TipoAccion") = value + End Set + End Property + + + + Private Property CveTecnicoAsignarOrioginal As Integer + Get + If ViewState("CveTecnicoAsignarOrioginal") Is Nothing Then + ViewState("CveTecnicoAsignarOrioginal") = -1 + End If + Return ViewState("CveTecnicoAsignarOrioginal").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveTecnicoAsignarOrioginal") = value + End Set + End Property + + Private Property FechaInicioOriginal As DateTime + Get + If ViewState("FechaInicioOriginal") Is Nothing Then + ViewState("FechaInicioOriginal") = NowADS() + End If + Return ViewState("FechaInicioOriginal").ToString.ToDateTime + End Get + Set(value As DateTime) + ViewState("FechaInicioOriginal") = value + End Set + End Property + + + Private Property CveClientePublicoGeneral As Integer + Get + If ViewState("CveClientePublicoGeneral") Is Nothing Then + ViewState("CveClientePublicoGeneral") = -1 + End If + Return ViewState("CveClientePublicoGeneral").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveClientePublicoGeneral") = value + End Set + End Property + + Private Property NombreClientePublicoGeneral As String + Get + If ViewState("NombreClientePublicoGeneral") Is Nothing Then + ViewState("NombreClientePublicoGeneral") = "" + End If + Return ViewState("NombreClientePublicoGeneral").ToString + End Get + Set(value As String) + ViewState("NombreClientePublicoGeneral") = value + End Set + End Property + + + Private Property DTTecnicos As DataTable + Get + If ViewState("DTTecnicos") Is Nothing Then + ViewState("DTTecnicos") = New DataTable + End If + + Return DirectCast(ViewState("DTTecnicos"), DataTable) + End Get + + Set(ByVal value As DataTable) + ViewState("DTTecnicos") = value + End Set + End Property + + Enum OSModalTipoAccion + Agregar + Actualizacion + Asignacion + End Enum + + + +#End Region + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + CargaUsuariosTecnicos() + CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyectoEtiqueta) + LblSubProyectoFiltro.Text = LblSubProyectoEtiqueta.Text + ' LblModalSubProyectoLabel.Text = LblSubProyectoEtiqueta.Text + CargaTecnicos() + ConsultaOrdenesServiciosNoAsignadas() + CargaOrdenesServiciosNoAsignadas() + CargaTecnicosAsignar() + InicializaCalendar() + GetCargaTiposOrden() + cargaDropsModal() + CargaClientePublicoGeneral() + + If UsuarioActual.TienePermisoProceso(348) Then + DVModalAsignacion.Visible = True + End If + + If UsuarioActual.TienePermisoProceso(352) Then + LnkCancelarOrden.Visible = True + End If + + End If + End Sub + + Private Sub CargaUsuariosTecnicos() + Dim DTTecnicosresultado As DataTable = Nothing + DTTecnicos = New DataTable + Dim ObjOS As New ClsOS + If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then + DTTecnicosresultado = ObjOS.DtResultados.FiltraParametros(" Estatus = 'True' ") + End If + + If DTTecnicosresultado IsNot Nothing Then + For Each SubProyecto As DataRow In DTTecnicosresultado.Rows + Dim TecnicosSubProyectoAux As DataTable = DTTecnicosresultado.FiltraParametros(String.Format("SubProyecto = '{0}'", SubProyecto.Item("SubProyecto"))) + If TecnicosSubProyectoAux.Rows.Count > 0 Then + Dim EstatusDeTipoProcesoMenor As Integer = TecnicosSubProyectoAux.Rows(0).Item("CveEstatusOrdenServicio").ToString.ToEntero + Dim dtAuxiliar As New DataTable + dtAuxiliar = DTTecnicosresultado.FiltraParametros(String.Format("SubProyecto = '{0}' AND CveEstatusOrdenServicio = {1}", SubProyecto.Item("SubProyecto"), EstatusDeTipoProcesoMenor), "", {"CveUsuario", "Nombre"}) + DTTecnicos.Merge(dtAuxiliar) + End If + Next + End If + ObjOS.Dispose() + + 'Dim ObjUsuarios As New ClsSisUsuarios + 'If ObjUsuarios.GetPermisosPorUsuarioProcesos(-1, -1, -1, -1, 351, UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa) Then + ' If UsuarioActual.CveRol = 1 Then + ' DTTecnicos = ObjUsuarios.DtResultados.FiltraParametros(" CveProcesoUsuarioAcceso > 0") + ' Else + ' DTTecnicos = ObjUsuarios.DtResultados.FiltraParametros(" CveProcesoUsuarioAcceso > 0 and CveUsuario <> 100") + ' End If + + 'End If + 'ObjUsuarios.Dispose() + + End Sub + +#Region "CARGAS" + +#End Region + +#Region " FULL CALENDAR " + Private Sub InicializaCalendar() + RegistraScript("InitCalendar();") + + HdnU.Value = UsuarioActual.CveUsuario.ToString + HdnE.Value = UsuarioActual.CveEmpresa.ToString + + DirectCast(Master.FindControl("TSM"), ScriptManager).EnablePageMethods = True + CargaTiposAgenda() + CheckRecurrencia.Attributes.Add("onclick", "CheckAdd(this);") + End Sub + Private Sub CargaTiposAgenda() + Dim ObjEventos As New ClsOIEventos + + If ObjEventos.GetAgendaTipo() Then + DdlAgedaTipo.DataSource = ObjEventos.DtResultados + DdlAgedaTipo.DataBind() + DdlAgedaTipo.Items.Insert(0, New ListItem("Seleccione", "-1")) + Else + Alert("Ocurrió un error al obtener los tipos de agenda. Por favor recargue la página", TipoMensaje.MsgError) + End If + + ObjEventos.Dispose() + End Sub + + Private Sub CargaTecnicos() + DdlTecnico.DataSource = DTTecnicos 'GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) + DdlTecnico.DataBind() + DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1")) + End Sub + + Private Sub CargaTecnicosAsignar() + + + 'Dim ObjOS As New ClsOS + 'Dim TecnicosSubProyectos As New DataTable + 'Dim TecnicosResultado As New DataTable + + 'If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then + ' TecnicosSubProyectos = ObjOS.DtResultados + 'End If + + 'For Each SubProyecto As DataRow In DT_OSSubProyectos.Rows + ' Dim TecnicosSubProyectoAux As DataTable = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}'", SubProyecto.Item("SubProyecto"))) + ' If TecnicosSubProyectoAux.Rows.Count > 0 Then + ' Dim EstatusDeTipoProcesoMenor As Integer = TecnicosSubProyectoAux.Rows(0).Item("CveEstatusOrdenServicio").ToString.ToEntero + ' Dim dtAuxiliar As New DataTable + ' dtAuxiliar = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}' AND CveEstatusOrdenServicio = {1}", SubProyecto.Item("SubProyecto"), EstatusDeTipoProcesoMenor), "", {"CveUsuario", "Nombre"}) + ' TecnicosResultado.Merge(dtAuxiliar) + ' End If + 'Next + ''DtTecnicosSubProyectos = TecnicosResultado + + 'ObjOS.Dispose() + + DdlTecnicoAsignar.DataSource = DTTecnicos 'GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True'") + DdlTecnicoAsignar.DataBind() + DdlTecnicoAsignar.Items.Insert(0, New ListItem("Seleccione uno", "-1")) + + UpModalOS.Update() + + End Sub + + + Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) + Dim ObjEventos As New ClsOIEventos + + Dim FechaInicio = TxtFechaInicioAgenda.Text.ToDateTime() + Dim FechaFin = TxtFechaFinAgenda.Text.ToDateTime() + + RegistraScript("GetView();") + + Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1" + If CheckRecurrencia.Checked Then + RecurrenciaTipo = RBLRecurrencia.SelectedValue.ToEntero + Frecuencia = TxtFrecuencia.Text.ToEntero + + 'OBTENEMOS LOS DIAS SELECCIONADOS EN LA OPCION DE RECURRENCIA POR SEMANA + Select Case RecurrenciaTipo + Case 3 + Dim StringDias = "" + For Each item As ListItem In CheckDiasSemana.Items + If item.Selected Then + If StringDias.Length > 0 Then + StringDias += "," + End If + StringDias += item.Value + End If + Next + If StringDias.Length > 0 Then + DiasSemana = StringDias + End If + End Select + + + 'If RBSinFechaFinAdd.Checked Then + ' RecurrenciaFin = "-1" + 'Else + If RBNumeroOcurrencias.Checked Then + RecurrenciaFin = TxtNumeroOcurrencias.Text + ElseIf RBFechaFin.Checked Then + RecurrenciaFin = TxtFechaFinRecurrencia.Text + Else + RecurrenciaFin = "-1" + End If + Else + If HdnCveEvento.Value.ToEntero > 0 Then + Frecuencia = -2 : DiasSemana = "-2" : Dias = -2 : Mes = -2 : RecurrenciaFin = "-2" + End If + End If + + '11/05/2018 - GASTO RECURRENTE + Dim CveTipoEvento As Integer = IIf(ChkGastoRecurrente.Checked, 10, 2).ToString().ToEntero() + Dim Importe As Double = Convert.ToDouble(IIf(ChkGastoRecurrente.Checked, TxtImporteGastoRecurrente.Text, "-1")) + + If HdnCveEvento.Value.ToEntero > 0 Then + If ObjEventos.UpdateEvento(TxtAsuntoAgenda.Text, TxtDescripcionAgenda.Text, DdlPrioridad.SelectedValue.ToEntero, DdlAgedaTipo.SelectedValue.ToEntero, -1, FechaInicio, FechaFin, -1, "-1", HdnCveEvento.Value.ToEntero, "-1", + RecurrenciaTipo, Frecuencia, DiasSemana, Dias, Mes, RecurrenciaFin, Importe:=Importe) Then + Alert("El Evento se actualizó correctamente", TipoMensaje.MsgInformacion) + Else + Alert("Ocurrió un error al actualizar el evento", TipoMensaje.MsgAdvertencia) + End If + Else + If ObjEventos.AddEventoAgenda(DdlAgedaTipo.SelectedValue.ToEntero, TxtAsuntoAgenda.Text, TxtDescripcionAgenda.Text, DdlPrioridad.SelectedValue.ToEntero, FechaInicio, FechaFin, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, + RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=CveTipoEvento, Importe:=Importe) Then + + Alert("El Evento se guardó correctamente", TipoMensaje.MsgInformacion) + Else + Alert("Ocurrió un error al Guardar el evento", TipoMensaje.MsgAdvertencia) + End If + End If + + ObjEventos.Dispose() + RegistraScript("Calendario();SetView();$('#ModalAgenda').modal('hide');", "1234") + LimpiaModalAgenda() + + End Sub + Private Sub LimpiaModalAgenda() + TxtDescripcionAgenda.Text = "" + TxtAsuntoAgenda.Text = "" + DdlPrioridad.SelectedValue = "1" + TxtNumeroOcurrencias.Text = "" + TxtFechaFinRecurrencia.Text = "" + RBFechaFin.Checked = False + RBNumeroOcurrencias.Checked = False + RBLRecurrencia.SelectedValue = "1" + CheckDiasSemana.ClearSelection() + RBLRecurrencia_SelectedIndexChanged(RBLRecurrencia, EventArgs.Empty) + TxtFrecuencia.Text = "1" + LblEmpresaCRM.Text = "" + End Sub + + Protected Sub BtnEliminar_Click(sender As Object, e As EventArgs) + + Dim ObjEventos As New ClsOIEventos + RegistraScript("GetView();") + + If ObjEventos.RemoveEvento(HdnCveEvento.Value.ToEntero, UsuarioActual.CveEmpresa) Then + RegistraScript("Calendario();SetView();$('#ModalAgenda').modal('hide');", "1234") + Alert("El evento se eliminó correctamente", TipoMensaje.MsgInformacion) + Else + Alert("Ocurrió un error al eliminar el evento, por favor intente de nuevo.", TipoMensaje.MsgError) + End If + + ObjEventos.Dispose() + End Sub + + + Public Shared Function EliminaEvento(CveEvento As Integer, CveEmpresa As Integer) As String + Dim ObjEventos As New ClsOIEventos + + ObjEventos.RemoveEvento(CveEvento, CveEmpresa) + + ObjEventos.Dispose() + Return CveEvento.ToString + End Function + + + Public Shared Function ActualizaEvento(ClsEvent As CalendarEvent) As String + Dim ObjEventos As New ClsOIEventos + + Dim FechaInicio = DateTimeOffset.Parse(ClsEvent.start).DateTime + Dim FechaFin = DateTimeOffset.Parse(ClsEvent.end).DateTime + + If ObjEventos.UpdateEvento("-1", "-1", -1, -1, -1, FechaInicio, FechaFin, -1, "-1", ClsEvent.id) Then + End If + + ObjEventos.Dispose() + Return "a" + End Function + Protected Sub RBLRecurrencia_SelectedIndexChanged(sender As Object, e As EventArgs) + Select Case RBLRecurrencia.SelectedValue.ToEntero + Case 1 + LblTextoFrecuencia.Text = "Hora(s)" + TrDiasSemanaAdd.Style("display") = "none" + Case 2 + LblTextoFrecuencia.Text = "Dia(s)" + TrDiasSemanaAdd.Style("display") = "none" + Case 3 + LblTextoFrecuencia.Text = "Semana(s)" + TrDiasSemanaAdd.Style("display") = "block" + + 'Chequea los dias seleccionados en la recurrencia + For Each item As ListItem In CheckDiasSemana.Items + If HdnDiasSemanaAgendar.Value.Contains(item.Value) Then + item.Selected = True + Else + item.Selected = False + End If + Next + Case 4 + LblTextoFrecuencia.Text = "Mes(es)" + TrDiasSemanaAdd.Style("display") = "none" + Case 5 + LblTextoFrecuencia.Text = "Año(s)" + TrDiasSemanaAdd.Style("display") = "none" + Case Else + End Select + UpRecurrencia.Update() + End Sub + Protected Sub BtnActualizaAdd_Click(sender As Object, e As EventArgs) + RBLRecurrencia_SelectedIndexChanged(RBLRecurrencia, EventArgs.Empty) + End Sub +#End Region + + Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) + RegistraScript("Calendario();") + End Sub + + Private Sub CargaOrdenesServiciosNoAsignadas() + + DdlOrdenesSinAsignar.DataSource = DT_OSNoAsignadas + DdlOrdenesSinAsignar.DataBind() + DdlOrdenesSinAsignar.Items.Insert(0, New ListItem("Seleccione Uno", "-1")) + + UpOrdenesSinAsignar.Update() + + End Sub + Private Sub ConsultaOrdenesServiciosNoAsignadas() + + Dim CveEstatusOrdenServicio As Integer = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus=1").ToEntero + + If CveEstatusOrdenServicio = 0 Then + Alert("No se pudo carga el estatus", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim ObjOS As New ClsOS + + If ObjOS.GetOrdenesServiciosNoAsignadas(-1, -1, CveEstatusOrdenServicio, UsuarioActual.CveEmpresa, "-1", "-1") Then + DT_OSSubProyectos = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) + DT_OSNoAsignadas = ObjOS.DtResultados + Else + DT_OSSubProyectos = New DataTable + DT_OSNoAsignadas = New DataTable + End If + ObjOS.Dispose() + + 'If DT_OSNoAsignadas.Rows.Count > 0 Then + ' DVOSPendientes.Visible = True + 'Else + ' DVOSPendientes.Visible = False + 'End If + UpOrdenesSinAsignar.Update() + + End Sub + + Private Sub cargaDropsModal() + + 'DdlClientesWS.ddl.Items.Clear() + 'DdlClientesWS.txtText.Value = "" + 'DdlClientesWS.txtValue.Value = "" + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlClientesWS.setEsWebService(True) + Else + DdlClientesWS.setEsWebService(False) + CargaClientes() + End If + + End Sub + + Private Sub CargaClientes() + If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlClientesWS.ddl.Items.Clear() + DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) + DdlClientesWS.DataBind() + DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) + End If + End Sub + + Private Sub LipiaModalOS() + + TxtSolicito.Text = "" + TxtDescripcion.Text = "" + TxtFechaOS.Text = "" + + DdlClientesWS.txtText.Value = "" + DdlClientesWS.txtValue.Value = "" + DdlClientesWS.ddl.SelectedValueExist("-1") + DdlTecnicoAsignar.SelectedValueExist("-1") + + 'TSTimeSelector.Hour = NowADS().Hour + 'TSTimeSelector.Minute = NowADS().Minute + + CveTecnicoAsignarOrioginal = -1 + FechaInicioOriginal = NowADS() + + DVFolio.Visible = False + DvModalSubProyecto.Visible = False + + End Sub + + Protected Sub LnkOrdenesSinAsignarMostarModal_Click(sender As Object, e As EventArgs) + TipoAccion = OSModalTipoAccion.Asignacion + HFCveOS.Value = "-1" + MostarModal() + End Sub + Private Sub MostarModal() + + LipiaModalOS() + If TipoAccion = OSModalTipoAccion.Agregar Then + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlClientesWS.txtValue.Value = CveClientePublicoGeneral.ToString + DdlClientesWS.txtText.Value = NombreClientePublicoGeneral + Else + DdlClientesWS.ddl.SelectedValueExist(CveClientePublicoGeneral) + End If + + TxtFechaOS.Text = NowADS().ToString("dd/MM/yyyy") + RegistraScript("$('#DVModalOS').modal('show');") + LblModalOStitulo.Text = "Agregar Orden de Servicio" + + ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Or TipoAccion = OSModalTipoAccion.Asignacion Then + + 'cargaDropsModal() + LblModalOStitulo.Text = "Actualizar Orden de Servicio" + + + Dim IDOSDetalle As Integer = 1 + Dim SeFacturara = "" + Dim CveOsConsultar As Integer = HFCveOS.Value.ToEntero + + 'If Not CveOsConsultar > 0 AndAlso Not DdlOrdenesSinAsignar.SelectedValue.ToEntero > 0 Then + ' Alert("clave de orden de servicio no encontrada.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + + If CveOsConsultar > 0 Then + DdlOrdenesSinAsignar.SelectedValueExist(-1) + End If + Dim ObjOS As New ClsOS() + If ObjOS.GetOrdenesServicios(CveOsConsultar, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOSDetalle:=DdlOrdenesSinAsignar.SelectedValue.ToEntero) Then + + DVFolio.Visible = True + HLkFolio.Text = ObjOS.Folio.ToString + HLkFolio.NavigateUrl = $"/OS/OrdenesServicios.aspx?CveOS={ObjOS.CveOS}" + + HLKPDF.NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=OS&CVEOS={0}", ObjOS.CveOS))}" + + + HFCveOS.Value = ObjOS.CveOS.ToString + HFCveOsDetalle.Value = ObjOS.CveOSDetalle.ToString + TxtDescripcion.Text = ObjOS.Descripcion + TxtSolicito.Text = ObjOS.PersonaSolicito + TxtFechaOS.Text = ObjOS.FechaRecepcion.ToString("dd/MM/yyyy") + 'DdlSubProyectoOS.SelectedValueExist(ObjOS.CveSubProyecto) + DdlClientesWS.txtText.Value = ObjOS.Cliente + DdlClientesWS.txtValue.Value = ObjOS.CveCliente.ToString + DdlClientesWS.ddl.SelectedValueExist(ObjOS.CveCliente.ToString) + + If TipoAccion = OSModalTipoAccion.Actualizacion Then + DdlTecnicoAsignar.SelectedValueExist(ObjOS.CveUsuarioAtendio) + CveTecnicoAsignarOrioginal = ObjOS.CveUsuarioAtendio + FechaInicioOriginal = ObjOS.FechaInicio + + DvModalSubProyecto.Visible = True + LblModalOStitulo.Text = "Actualizar Orden de Servicio" + '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) + End If + + + Dim TipoEstatus As Integer = 0 + TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero + + 'LnkModalAsignar.Visible = If(TipoEstatus.Contiene(4, 5), False, True) + LnkCancelarOrden.Visible = If(TipoEstatus.Contiene(4, 5), False, True) + + If (TipoEstatus = 5) Then + LblModalOStitulo.Text = "Orden Cancelada" + End If + + RegistraScript("$('#DVModalOS').modal('show');") + + End If + ObjOS.Dispose() + + ElseIf False Then ' Anterior + + CveOSDetalleAsignar = -1 + CveOSAsignar = -1 + CveSubProyectoAsignar = -1 + Dim DTable As DataTable = DT_OSNoAsignadas.FiltraParametros($"CveOSDetalle={DdlOrdenesSinAsignar.SelectedValue}") + + If DTable.Rows.Count = 1 Then + + CveOSDetalleAsignar = DTable.Rows(0)("CveOSDetalle").ToString.ToEntero + CveSubProyectoAsignar = DTable.Rows(0)("CveSubProyecto").ToString.ToEntero + CveOSAsignar = DTable.Rows(0)("CveOS").ToString.ToEntero + FolioAsignar = DTable.Rows(0)("Folio").ToString + + 'LblModalConcepto.Text = DTable.Rows(0)("Concepto").ToString + 'LblModalCliente.Text = DTable.Rows(0)("Nombre").ToString + 'LblModalSubProyecto.Text = DTable.Rows(0)("SubProyecto").ToString + + LblModalOStitulo.Text = "Asignar Orden de Servicio" + + RegistraScript("$('#DVModalOS').modal('show');") + Else + Alert("Error al cargar datos.") + End If + + End If + + + UpModalOS.Update() + + End Sub + + + Protected Sub LnkModalAsignar_Click(sender As Object, e As EventArgs) + + Dim TieneError As Boolean = False + Dim CveEstatusSolicidato = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "CveEstatusOrdenServicio ASC").ToEntero + Dim CveEstatusAsiganada = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero + + Dim CveCliente As Integer = If(Not DdlClientesWS.SelectedValue.ToEntero > 0, DdlClientesWS.txtValue.Value.ToString.ToEntero, DdlClientesWS.SelectedValue.ToEntero) + Dim CvePSDetalle As Integer = UsuarioActual.Empresa.Funcionalidad(708).ToEntero + Dim EsNueva As Boolean = False + + + 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", " CveSubProyecto > 0 ").ToEntero, -1) + + If CveSubProyectoTecnico = 0 And DdlTecnicoAsignar.SelectedValue.ToEntero = 100 Then + CveSubProyectoTecnico = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1).FiltroPrimeroValor("CveSubProyecto").ToEntero + End If + + + 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 + End If + + If Not CveCliente > 0 Then + Alert("Debe seleccionar una cliente.") + Exit Sub + End If + + If TipoAccion = OSModalTipoAccion.Asignacion Then + + If Not DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then + Alert("El tecnico es requerido", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + + + End If + + Dim ObjOS As New ClsOS + ObjOS.IniciaTransacSQL() + + If CveOS > 0 Then + + Dim CveEstatusOrden = CveEstatusSolicidato + If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then + CveEstatusOrden = CveEstatusAsiganada + End If + + If TipoAccion = OSModalTipoAccion.Asignacion Then + CveEstatusOrden = CveEstatusAsiganada + End If + + CveOS = HFCveOS.Value.ToEntero + CveOsDetalle = HFCveOsDetalle.Value.ToEntero + + If CveOS > 0 Then + + If Not ObjOS.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaOS.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatusOrden, CveOS, UsuarioActual.CveUsuario, + -1, CveClienteSucursal:=-1, Direccion:="", Telefono:="", + CveSubProyecto:=CveSubProyectoTecnico, Correo:="") Then + TieneError = True + End If + Else + TieneError = True + End If + + End If + + 'Dim picker As MKB.TimePicker.TimeSelector = TSTimeSelector + 'Dim time As DateTime + 'time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtModalFechaOS.Text, picker.Hour, picker.Minute, picker.AmPm)) + + If Not TieneError AndAlso CveOS > 0 AndAlso CveOsDetalle > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 AndAlso + (HFCveUsuarioAtendio.Value.ToEntero <> DdlTecnicoAsignar.SelectedValue.ToEntero) Then + + + 'If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) 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 + + If Not ObjOS.UpdateOrdenesServiciosEstatus(CveEstatusAsiganada, UsuarioActual.CveUsuario, CveOS) Then + TieneError = True + End If + + If Not TieneError Then + + + Dim ObjEventos As New ClsOIEventos(ObjOS.IniciaTransacSQL()) + + If HFOCveOIEvento.Value.ToEntero > 0 Then + + If Not ObjEventos.RemoveAgendaBitacora(HFOCveOIEvento.Value.ToEntero, UsuarioActual.CveEmpresa) Then + TieneError = True + End If + + End If + + + Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1" + Dim OIDescripcion As String = $"{DdlTecnicoAsignar.SelectedItem.Text} Orden de servicio {FolioAsignar} " + If Not ObjEventos.AddEventoAgenda(2, DdlTecnicoAsignar.SelectedItem.Text, OIDescripcion, 2, TxtFechaOS.Text.ToDateTime(), TxtFechaOS.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:=CveSubProyectoTecnico, CveUsuarioPara:=DdlTecnicoAsignar.SelectedValue.ToEntero) Then + TieneError = True + End If + End If + End If + End If + + If Not TieneError Then + ObjOS.Commit() + Else + ObjOS.RollBack() + End If + ObjOS.Dispose() + + Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString + If Not TieneError And CorreoAsignado.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then + CorreoAsignado = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString + MandaCorreOS(CveOS, CorreoAsignado) + End If + + 'If Not TieneError And TxtEmail.Text.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then + ' MandaCorreOS(CveOS, TxtEmail.Text, True) + 'End If + + If Not TieneError Then + + ConsultaOrdenesServiciosNoAsignadas() + CargaOrdenesServiciosNoAsignadas() + + If TipoAccion = OSModalTipoAccion.Asignacion Then + Alert("Orden asignada correctamente.") + ElseIf TipoAccion = OSModalTipoAccion.Agregar Then + Alert("Orden Guardada correctamente.") + ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Then + Alert("Orden actualizada correctamente.") + End If + + RegistraScript("$('#DVModalOS').modal('hide');Calendario();") + + End If + + End Sub + + Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, Optional EsCliente As Boolean = False) + + Dim ObjOS As New ClsOS() + Dim params As New List(Of ReportParameter) + Dim CveFolio = "" + + Dim TmpDTOS = New DataTable + TmpDTOS.Columns.Add("CveOSDetalle", GetType(Integer)) + + TmpDTOS.Columns.Add("CveClasificacion", GetType(Integer)) + TmpDTOS.Columns.Add("Clasificacion", GetType(String)) + TmpDTOS.Columns.Add("CvePS", GetType(Integer)) + TmpDTOS.Columns.Add("CveUM", GetType(Integer)) + TmpDTOS.Columns.Add("UM", GetType(String)) + TmpDTOS.Columns.Add("Cantidad", GetType(Integer)) + TmpDTOS.Columns.Add("PS", GetType(String)) + TmpDTOS.Columns.Add("Especificaciones", GetType(String)) + TmpDTOS.Columns.Add("Materiales", GetType(String)) + TmpDTOS.Columns.Add("CveCuentaEquipo", GetType(Integer)) + TmpDTOS.Columns.Add("Observaciones", GetType(String)) + TmpDTOS.Columns.Add("FechaAtencion", GetType(String)) + TmpDTOS.Columns.Add("CveUsuarioAtendio", GetType(Integer)) + TmpDTOS.Columns.Add("UsuarioAtendio", GetType(String)) + TmpDTOS.Columns.Add("FechaTermino", GetType(String)) + TmpDTOS.Columns.Add("FechaEntrega", GetType(String)) + TmpDTOS.Columns.Add("CveUsuarioEntrego", GetType(Integer)) + TmpDTOS.Columns.Add("UsuarioEntrego", GetType(String)) + TmpDTOS.Columns.Add("SeFacturara", GetType(String)) + TmpDTOS.Columns.Add("SeSuperviso", GetType(String)) + TmpDTOS.Columns.Add("Estatus", GetType(String)) + TmpDTOS.Columns.Add("Archivo", GetType(String)) + TmpDTOS.Columns.Add("ComentarioTecnico", GetType(String)) + + + Dim TmpDTMaterialesOS = New DataTable + TmpDTMaterialesOS.Columns.Add("CveOSDetalle", GetType(Integer)) + TmpDTMaterialesOS.Columns.Add("CveConsecutivo", GetType(Integer)) + TmpDTMaterialesOS.Columns.Add("CveConsecutivoDetalle", GetType(Integer)) + TmpDTMaterialesOS.Columns.Add("CveMaterial", GetType(Integer)) + TmpDTMaterialesOS.Columns.Add("Cantidad", GetType(Integer)) + TmpDTMaterialesOS.Columns.Add("CveClasificacion", GetType(Integer)) + TmpDTMaterialesOS.Columns.Add("CvePS", GetType(String)) + TmpDTMaterialesOS.Columns.Add("CveUM", GetType(String)) + TmpDTMaterialesOS.Columns.Add("Clasificacion", GetType(String)) + TmpDTMaterialesOS.Columns.Add("PS", GetType(String)) + TmpDTMaterialesOS.Columns.Add("UM", GetType(String)) + + Dim FolioOS As String = "" + + Dim RutaReporte As New System.IO.FileInfo(String.Format("{0}Formatos/OrdenServicio.rdlc", UsuarioActual.Empresa.Ruta)) + + If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + If ObjOS.DtResultados.Rows.Count > 0 Then + + Dim dtOS As DataTable = ObjOS.DtResultados + Dim dr As DataRow = dtOS.Rows(0) + params.Add(New ReportParameter("Cliente", dr("Cliente").ToString)) + 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.ToDate.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("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)) + params.Add(New ReportParameter("ClienteCiudad", dr("Ciudad").ToString)) + 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)) + + 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", NowADS().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 hh:mm tt"), ""))) + params.Add(New ReportParameter("TecnicoAsignado", dr("UsuarioAtendio").ToString)) + + 'End If + + End If + End If + + Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") + + If Not RutaReporte.Exists Then + + RutaReporte = New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\OrdenServicio.rdlc", ModExtensiones.DirectorioBaseEmpresas)) + + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) + params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) + + End If + + + 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 = TmpDTMaterialesOS} + + lrds.Add(rds) + lrds.Add(rds2) + ObjOS.Dispose() + + Dim ReporteByte As Byte() = StreamPDF(RutaReporte.FullName, lrds, params, NombreArchivo:=String.Format("OrdenServicio-{0}", CveFolio)) + + If ReporteByte IsNot Nothing Then + Try + ViewState("Para") = CorreoUsuarioAsignado + ViewState("ArrayCC") = "" + ViewState("Asunto") = "Asinación Orden de Servicio" + ViewState("FolioOSMail") = FolioOS + ViewState("Body") = "Asinación Orden de Servicio" + + + ViewState("bytesOS") = ReporteByte + Dim Hilo As New Threading.Thread(AddressOf SendmailOS) + Hilo.Start() + Catch ex As Exception + GuardaLogAD($"Error al enviar correo de OS {ex.StackTrace}") + End Try + End If + + End Sub + + Private Sub SendmailOS() + + Dim Asunto, Para, ArrayCC, Body As String + Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString) + Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString) + ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString) + + Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString) + + + Dim Mail As New ClsSisMail() + Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail) + LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.NombreArchivo = $"OS_{ViewState("FolioOSMail") }.pdf", .ArchivoBinario = DirectCast(ViewState("bytesOS"), Byte())}) + Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail) + + End Sub + + Private Sub GetCargaTiposOrden() + Dim ObjOS As New ClsOS + + If ObjOS.GetTipoOrdenesServicios(UsuarioActual.CveEmpresa) AndAlso ObjOS.DtResultados IsNot Nothing AndAlso ObjOS.DtResultados.Rows.Count > 0 Then + CveOrdenServicioTipo = ObjOS.DtResultados.FiltroPrimeroValor("CveOrdenServicioTipo").ToEntero + Else + CveOrdenServicioTipo = -1 + End If + ObjOS.Dispose() + + End Sub + + + Protected Sub LnkCommando_Click(sender As Object, e As EventArgs) + + ' Alert($"HFCveOS:{HFCveOS.Value}, HFCveOsDetalle:{HFCveOsDetalle.Value }, HFCveOIEvento:{HFOCveOIEvento.Value}") + TipoAccion = OSModalTipoAccion.Actualizacion + 'RegistraScript("$('#DVModalOS').modal('show');") + MostarModal() + + End Sub + + Protected Sub DdlTecnicoAsignar_SelectedIndexChanged(sender As Object, e As EventArgs) + + + If TipoAccion = OSModalTipoAccion.Asignacion Then + + + 'DdlTecnicoAsignar.Visible = True + 'RfvDdlTecnicoAsignar.Visible = True + 'VCERfvDdlTecnicoAsignar.Visible = True + + 'RfvTxtModalFechaOS.Visible = True + 'VceRfvTxtModalFechaOS.Enabled = True + ElseIf TipoAccion = OSModalTipoAccion.Agregar Or TipoAccion = OSModalTipoAccion.Actualizacion Then + + 'DdlTecnicoAsignar.Visible = False + 'RfvDdlTecnicoAsignar.Visible = False + ' VCERfvDdlTecnicoAsignar.Visible = False + + 'RfvTxtModalFechaOS.Visible = False + 'VceRfvTxtModalFechaOS.Enabled = False + + End If + + UpModalOS.Update() + + End Sub + + Private Sub CargaClientePublicoGeneral() + + Dim ObjCliente As New ClsClientes() + + If ObjCliente.GetClientes(-1, "PUBLICO EN GENERAL", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then + + If ObjCliente.DtResultados.Rows.Count > 0 Then + Me.CveClientePublicoGeneral = ObjCliente.CveCliente + Me.NombreClientePublicoGeneral = ObjCliente.Nombre + End If + End If + ObjCliente.Dispose() + + End Sub + + + Protected Sub DdlTecnicoAsignar_SelectedIndexChanged1(sender As Object, e As EventArgs) + ValidaHorarioNoOperativo() + End Sub + + Protected Sub LnkValidaHorarioNoOperativo_Click(sender As Object, e As EventArgs) + ValidaHorarioNoOperativo() + End Sub + + Private Sub ValidaHorarioNoOperativo() + If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then + + Dim objOS As New ClsOS + Dim DTHorarios As New DataTable + + If objOS.GetOrdenesServiciosTecnicoHorarioNoOperativo(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + DTHorarios = objOS.DtResultados + End If + objOS.Dispose() + + If DTHorarios IsNot Nothing AndAlso DTHorarios.Rows.Count > 0 Then + + Dim HoraInicio As TimeSpan = DTHorarios.Rows(0)("HoraInicio").ToString.ToDate.TimeOfDay + Dim HoraFin As TimeSpan = DTHorarios.Rows(0)("HoraFin").ToString.ToDate.TimeOfDay + Dim HoraAsignacion As TimeSpan = TxtFechaOS.Text.ToDate.TimeOfDay + + If HoraAsignacion >= HoraInicio And HoraAsignacion <= HoraFin Then + Alert($"La hora especificada esta dentro del horario no operativo del Técnico {HoraInicio.ToString()} a {HoraFin.ToString()} .", TipoMensaje.MsgAdvertencia) + End If + End If + 'ViewState("Validando") = Nothing + + End If + End Sub + + Protected Sub LnkCancelarOrden_Click(sender As Object, e As EventArgs) + + RegistraScript($"$('#{TxtModalCancelarOrdenMotivo.ClientID}').focus();;$('#DVModalCancelacionOrden').modal('show');") + + TxtModalCancelarOrdenMotivo.Focus() + TxtModalCancelarOrdenMotivo.Text = "" + UpmodalCacelaOrden.Update() + + End Sub + + + + Protected Sub LnkmodalCancelarORdenServicio_Click(sender As Object, e As EventArgs) + + Dim TieneError As Boolean = True + Dim CveOS As Integer = HFCveOS.Value.ToEntero + Dim objOS As New ClsOS + Dim ObjEventoBitacora As New ClsOIEventos(objOS.IniciaTransacSQL) + If objOS.UpdateOrdenesServiciosFinaliza(CveOS, -1, -1, UsuarioActual.CveEmpresa, Opcion:=2) Then 'Opcion:=2 Es para cancelar + If ObjEventoBitacora.AddEventoBitacora($"Motivo Cancelación: {TxtModalCancelarOrdenMotivo.Text.Trim}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveOS, -1, -1, -1, -1) Then + TieneError = False + End If + End If + + If TieneError Then + objOS.RollBack() + Else + objOS.Commit() + End If + + objOS.Dispose() + + + If Not TieneError Then + Alert("Orden Cancelada Correctamente", TipoMensaje.MsgInformacion, "location.reload(true);") + RegistraScript("$('#DVModalCancelacionOrden').modal('hide');") + RegistraScript("$('#DVModalFinalizarOrden').modal('hide');") + End If + End Sub +End Class From 1971fe7074fb30d0bcc23dd637112018a803a35a Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 11:22:47 -0700 Subject: [PATCH 10/87] -mejora --- Sistemas/RolesDetalle.aspx.vb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Sistemas/RolesDetalle.aspx.vb b/Sistemas/RolesDetalle.aspx.vb index c24d2e7ca..e297b2a10 100644 --- a/Sistemas/RolesDetalle.aspx.vb +++ b/Sistemas/RolesDetalle.aspx.vb @@ -29,7 +29,7 @@ Partial Class Sistemas_RolesDetalle CargaGridProcesos() CargaUsuarios() - DdlModulo.DataSource = GlobalDTModulos() + DdlModulo.DataSource = GlobalDTModulos().FiltraParametros("", Orderby:="Modulo") DdlModulo.DataBind() If CveRol <> -1 Then @@ -153,11 +153,10 @@ Partial Class Sistemas_RolesDetalle Dim TieneError As Boolean = False If CveRol <> -1 Then - If TxtRol.Text <> LblRol.Text And CveRol <> -1 Then - If Not Roles.UpdateRol(DdlModulo.SelectedValue.ToEntero, TxtRol.Text, UsuarioActual.CveUsuario, CveRol) Then - TieneError = True - Exit Sub - End If + + If Not Roles.UpdateRol(DdlModulo.SelectedValue.ToEntero, TxtRol.Text, UsuarioActual.CveUsuario, CveRol) Then + TieneError = True + Exit Sub End If 'Agregar Indicadores From 4a48860d4ab5ca6e14fdab3159f44ea259549c76 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 13:38:07 -0700 Subject: [PATCH 11/87] - modificaciones --- Bancos/DepositosCaja.aspx | 2 +- Bancos/DepositosCaja.aspx.vb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Bancos/DepositosCaja.aspx b/Bancos/DepositosCaja.aspx index b24b9059c..1b258fe1f 100644 --- a/Bancos/DepositosCaja.aspx +++ b/Bancos/DepositosCaja.aspx @@ -330,7 +330,7 @@
-
+
diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index e94b3853b..faeecc9df 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -194,8 +194,8 @@ Partial Class Bancos_DepositosCaja TotalImporte = TotalImporte + Comision 'Comision = -(Comision) ' se inverte el valor, va cargada 'Descuento = -(Descuento) ' se inverte el valor, va cargada - If DdlSubProyectoDeposito.SelectedValue.ToEntero = -1 Or DdlClasificacion.SelectedValue.ToEntero = -1 Then - Alert("Debes Seleccionar un Subproyecto y una Clasificación", TipoMensaje.MsgAdvertencia) + If DdlSubProyectoDeposito.SelectedValue.ToEntero = -1 Then + Alert("Debes Seleccionar un Subproyecto ", TipoMensaje.MsgAdvertencia) Exit Sub End If End If @@ -344,7 +344,7 @@ Partial Class Bancos_DepositosCaja CveSubProyectoComision = DdlSubProyectoDeposito.SelectedValue.ToEntero CveClasificacionComision = DdlClasificacion.SelectedValue.ToEntero If Comision <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, True, Comision, Comision * TipoCambio, 78, DdlClasificacion.SelectedItem.Text, DdlClasificacion.SelectedItem.Text, CveClasificacion:=CveClasificacionComision, CveSubProyecto:=CveSubProyectoComision) Then + If Not ObjConta.AddPrePolizasDetalle(NuevaCvePrePoliza, True, Comision, Comision * TipoCambio, 78, "Depósito Bancario", "Depósito Bancario", CveClasificacion:=CveClasificacionComision, CveSubProyecto:=CveSubProyectoComision) Then OcurrioError = True End If End If From ae0e3b53933a1eb70a0a628bb95d58bddfb6e5aa Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 14:18:28 -0700 Subject: [PATCH 12/87] --activar autorizaciones para GDiaz --- Sistemas/UsuarioDetalle.aspx.vb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Sistemas/UsuarioDetalle.aspx.vb b/Sistemas/UsuarioDetalle.aspx.vb index 2ba7e488a..e84d997fe 100644 --- a/Sistemas/UsuarioDetalle.aspx.vb +++ b/Sistemas/UsuarioDetalle.aspx.vb @@ -456,12 +456,12 @@ Partial Class Sistemas_UsuarioDetalle TabAsignar.Visible = False End If - If UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then + If UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" OrElse UsuarioActual.Empresa.Funcionalidad(382).ToString = "1" Then TrDescuentoAutorizado.Visible = True TrLimiteAutorizacion.Visible = True DivDatosAutorizacion.Visible = True - End If - + End If + If UsuarioActual.Empresa.Funcionalidad(109).ToString = "1" Then TrDescuentoAutorizado.Visible = True End If From b7d6f056b7c17d5a2202392c5bd18c39aee87f75 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 14:18:44 -0700 Subject: [PATCH 13/87] =?UTF-8?q?-=20activar=20cancelaci=C3=B3n=20con=20pa?= =?UTF-8?q?gos.=20GDiaz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/RepCancelacionesPorRespuesta.aspx.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index b4907ecf4..80134a3fd 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -571,7 +571,12 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas { factura.RealizarDevolucionAlmacen = true; } - retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse); + bool AplicaCancelacionConPagos = false; + if (UsuarioActual.Empresa.Funcionalidad(382) == "1") + { + AplicaCancelacionConPagos = true; + } + retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse,AplicaCancelacionConPagos: AplicaCancelacionConPagos); } From 7239c3319830cc8b4cd02c1f0ef5b1e1ddd1fceb Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 14:19:18 -0700 Subject: [PATCH 14/87] -- que tome el cvecorte de la compra, si el usuario no lo tiene activado -- que tome la fecha del pago en base a la venta --- Ventas/PVCobranza.aspx.vb | 123 +++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 62 deletions(-) diff --git a/Ventas/PVCobranza.aspx.vb b/Ventas/PVCobranza.aspx.vb index f7939e85d..b71acda4a 100644 --- a/Ventas/PVCobranza.aspx.vb +++ b/Ventas/PVCobranza.aspx.vb @@ -2,7 +2,7 @@ Option Strict On Imports System.Data -Imports System.IO +Imports System.IO Imports Extensiones Partial Class Ventas_PVCobranza @@ -17,8 +17,6 @@ Partial Class Ventas_PVCobranza End Set End Property - - Private Property DineroCaja As Double Get Return If(IsNothing(ViewState("DineroCaja")), 0, ViewState("DineroCaja").ToString().ToDecimal()) @@ -183,7 +181,7 @@ Partial Class Ventas_PVCobranza If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then If ObjPVenta.DtResultados.Rows.Count > 0 Then - Total = ObjPVenta.DtResultados(0)("ImporteInicial").ToString().ToDouble + ObjPVenta.DtResultados(0)("VentasEfectivo").ToString().ToDouble + ObjPVenta.DtResultados(0)("Ingresado").ToString().ToDouble - ObjPVenta.DtResultados(0)("Retirado").ToString().ToDouble - ObjPVenta.DtResultados(0)("Devoluciones").ToString().ToDouble + Total = ObjPVenta.DtResultados(0)("ImporteInicial").ToString.ToDouble + ObjPVenta.DtResultados(0)("VentasEfectivo").ToString().ToDouble + ObjPVenta.DtResultados(0)("Ingresado").ToString().ToDouble - ObjPVenta.DtResultados(0)("Retirado").ToString().ToDouble - ObjPVenta.DtResultados(0)("Devoluciones").ToString().ToDouble DineroCaja = Total LblEfectivoEsperado.Text = Total.FormatoNumero(2) LblEfectivoBloqueo.Text = Total.FormatoNumero(2) @@ -388,6 +386,7 @@ Partial Class Ventas_PVCobranza End If Dim PagadoSinEfectivo As Decimal = Pagado - TxtImporteEfectivo.Text.ToDecimal + Dim tCveCorte As Integer = CveCorte If PagadoSinEfectivo > LtlSaldo.Text.ToDecimal() Then Alert("El pago con los metodos de pago actuales no puede ser mayor al importe de la venta", TipoMensaje.MsgAdvertencia) @@ -422,9 +421,10 @@ Partial Class Ventas_PVCobranza VentaActual.PorcentajeIVA = DbRowVenta("PorcentajeIVA").ToString.ToDecimal VentaActual.UsuarioActual = UsuarioActual VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero + If tCveCorte <= 0 AndAlso DbRowVenta("CveCorte").ToString.ToEntero > 0 Then tCveCorte = DbRowVenta("CveCorte").ToString.ToEntero Dim CvePrePoliza As Integer - Dim Fecha As Date = NowADS() + Dim Fecha As Date = DbRowVenta("Fecha").ToString.ToDate 'NowADS() Dim MsgError As String = "" Dim SaldoPendiente As Decimal = DbRowVenta("Saldo").ToString.ToDecimal @@ -440,75 +440,76 @@ Partial Class Ventas_PVCobranza Try 'FACTURAR LA REMISION PARA HACER EL PAGO - If UsuarioActual.CveEmpresa = 189 AndAlso VentaActual.TipoDocto = "Rem" Then + If UsuarioActual.CveEmpresa.Contiene(189, 197) AndAlso VentaActual.TipoDocto = "Rem" Then respFactura = GenerarFactura(VentaActual, ObjVentas2, ObjClientes) If respFactura Is Nothing Then - MsgError = "Ocurrío un error al generar la factura" + MsgError = "Ocurrió un error al generar la factura" ElseIf (respFactura IsNot Nothing AndAlso respFactura.Mensajes.Count > 0) AndAlso respFactura.TieneError Then MsgError = respFactura.Mensajes(0) End If - 'REALIZAR EL PAGO EN LA FACTURA If respFactura IsNot Nothing AndAlso Not respFactura.TieneError Then CveVenta = respFactura.CveVenta End If End If - CvePrePoliza = ObjConta.AddPrePolizas("PVCobranza", 11, 0, 0, 1, Fecha, $"Pago {VentaActual.SerieFolio}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3) + If MsgError = "" Then + CvePrePoliza = ObjConta.AddPrePolizas("PVCobranza", 11, 0, 0, 1, Fecha, $"Pago {VentaActual.SerieFolio}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3) - If CvePrePoliza > 0 Then + If CvePrePoliza > 0 Then - If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteCredito.Text.ToDecimal > 0 Then - MsgError = RegistraIE(12, DdlCuentaTarjetaCredito.SelectedValue.ToEntero, TxtImporteCredito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) - SaldoPendiente -= TxtImporteCredito.Text.ToDecimal - PagoAplicado += TxtImporteCredito.Text.ToDecimal - End If - - If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteDebito.Text.ToDecimal > 0 Then - MsgError = RegistraIE(11, DdlCuentaTarjetaDebito.SelectedValue.ToEntero, TxtImporteDebito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) - SaldoPendiente -= TxtImporteDebito.Text.ToDecimal - PagoAplicado += TxtImporteDebito.Text.ToDecimal - End If - - If SaldoPendiente > 0 AndAlso TxtImporteCheque.Text.ToDecimal > 0 Then - MsgError = RegistraIE(3, DdlCuentaCheque.SelectedValue.ToEntero, TxtImporteCheque.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) - SaldoPendiente -= TxtImporteCheque.Text.ToDecimal - PagoAplicado += TxtImporteCheque.Text.ToDecimal - End If - - If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteTransferencia.Text.ToDecimal > 0 Then - MsgError = RegistraIE(8, DdlCuentaTransferencia.SelectedValue.ToEntero, TxtImporteTransferencia.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) - SaldoPendiente -= TxtImporteTransferencia.Text.ToDecimal - PagoAplicado += TxtImporteTransferencia.Text.ToDecimal - End If - - If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteEfectivo.Text.ToDecimal > 0 Then - Dim PagoEfectivo As Decimal = TxtImporteEfectivo.Text.ToDecimal - - PagoAplicado += PagoEfectivo - If PagoAplicado >= SaldoTotalInicial Then - TxtCambio.Text = (PagoAplicado - SaldoTotalInicial).FormatoNumero - PagoEfectivo = SaldoPendiente + If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteCredito.Text.ToDecimal > 0 Then + MsgError = RegistraIE(12, DdlCuentaTarjetaCredito.SelectedValue.ToEntero, TxtImporteCredito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2, tCveCorte) + SaldoPendiente -= TxtImporteCredito.Text.ToDecimal + PagoAplicado += TxtImporteCredito.Text.ToDecimal End If - MsgError = RegistraIE(13, DdlCuentaEfectivo.SelectedValue.ToEntero, PagoEfectivo, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) - SaldoPendiente -= PagoEfectivo - End If - If SaldoPendiente > 0 Then - MsgError = "Tiene saldo pendiente por aplicar" - End If + If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteDebito.Text.ToDecimal > 0 Then + MsgError = RegistraIE(11, DdlCuentaTarjetaDebito.SelectedValue.ToEntero, TxtImporteDebito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2, tCveCorte) + SaldoPendiente -= TxtImporteDebito.Text.ToDecimal + PagoAplicado += TxtImporteDebito.Text.ToDecimal + End If - If MsgError = "" AndAlso Not ObjVentas2.UpdateVentaCorte(CveVenta, UsuarioActual.CveEmpresa, CveCorte) Then - MsgError = "Error al aplicar el corte" - End If + If SaldoPendiente > 0 AndAlso TxtImporteCheque.Text.ToDecimal > 0 Then + MsgError = RegistraIE(3, DdlCuentaCheque.SelectedValue.ToEntero, TxtImporteCheque.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2, tCveCorte) + SaldoPendiente -= TxtImporteCheque.Text.ToDecimal + PagoAplicado += TxtImporteCheque.Text.ToDecimal + End If - If MsgError = "" AndAlso Not ObjVentas2.UpdateVentaTicketImpreso(CveVenta, 0) Then - MsgError = "No se pudo desmarcar la impresión" - End If + If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteTransferencia.Text.ToDecimal > 0 Then + MsgError = RegistraIE(8, DdlCuentaTransferencia.SelectedValue.ToEntero, TxtImporteTransferencia.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2, tCveCorte) + SaldoPendiente -= TxtImporteTransferencia.Text.ToDecimal + PagoAplicado += TxtImporteTransferencia.Text.ToDecimal + End If - Else - MsgError = "Error al registrar prepólizas" + If MsgError = "" AndAlso SaldoPendiente > 0 AndAlso TxtImporteEfectivo.Text.ToDecimal > 0 Then + Dim PagoEfectivo As Decimal = TxtImporteEfectivo.Text.ToDecimal + + PagoAplicado += PagoEfectivo + If PagoAplicado >= SaldoTotalInicial Then + TxtCambio.Text = (PagoAplicado - SaldoTotalInicial).FormatoNumero + PagoEfectivo = SaldoPendiente + End If + MsgError = RegistraIE(13, DdlCuentaEfectivo.SelectedValue.ToEntero, PagoEfectivo, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2, tCveCorte) + SaldoPendiente -= PagoEfectivo + End If + + If SaldoPendiente > 0 Then + MsgError = "Tiene saldo pendiente por aplicar" + End If + + If MsgError = "" AndAlso Not ObjVentas2.UpdateVentaCorte(CveVenta, UsuarioActual.CveEmpresa, tCveCorte) Then + MsgError = "Error al aplicar el corte" + End If + + If MsgError = "" AndAlso Not ObjVentas2.UpdateVentaTicketImpreso(CveVenta, 0) Then + MsgError = "No se pudo desmarcar la impresión" + End If + + Else + MsgError = "Error al registrar prepólizas" + End If End If Catch ex As Exception MsgError = "Error al registrar el pago" @@ -517,16 +518,14 @@ Partial Class Ventas_PVCobranza If MsgError = "" Then ObjVentas2.Commit() - + Dim msBuild As New StringBuilder() 'SI SE GENERO FACTURA DE INGRESO, TIMBRARLA DESPUES DE REALIZAR EL PAGO If respFactura IsNot Nothing Then If Not respFactura.Factura.TimbrarFactura() Then - Alert("La factura no se pudo timbrar", TipoMensaje.MsgAdvertencia) + msBuild.Append("La factura no se pudo timbrar
") End If End If - Dim msBuild As New StringBuilder() - If respFactura IsNot Nothing Then msBuild.Append($"Pago Registrado correctamente.") For Each m In respFactura.Mensajes @@ -632,7 +631,7 @@ Partial Class Ventas_PVCobranza ObjFactura.GenerarSalidaAlmacen = True ObjFactura.DtInventario = ObjFactura.DtDetalle.FiltraParametros("CveTipoPS = 2").Copy() - ObjFactura.CveAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 1 AND CveSubProyecto = {VentaRemision.CveSubProyecto}").ToString().ToEntero() + ObjFactura.CveAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 1 AND CveSubProyecto = {VentaRemision.CveSubProyecto}", "Orden").ToString().ToEntero() ObjFactura.CalculaTotales() ObjFactura.PreparaTimbre() @@ -706,11 +705,11 @@ Partial Class Ventas_PVCobranza Return Retorno End Function - Private Function RegistraIE(Metodo As Integer, CveBancoCuenta As Integer, ImportePago As Decimal, Fecha As Date, CvePrePoliza As Integer, VentaActual As Venta, ByRef ObjIE As ClsBancos, ByRef ObjConta As ClsContabilidad, ByRef ObjVentas As ClsVentas) As String + Private Function RegistraIE(Metodo As Integer, CveBancoCuenta As Integer, ImportePago As Decimal, Fecha As Date, CvePrePoliza As Integer, VentaActual As Venta, ByRef ObjIE As ClsBancos, ByRef ObjConta As ClsContabilidad, ByRef ObjVentas As ClsVentas, tCveCorte As Integer) As String Dim Retorno As String = "" Dim CveIEPago As Integer = 0 Dim ErrorConta As Boolean - CveIEPago = ObjIE.AddBancos_IE(CveBancoCuenta, Metodo, Fecha, "-1", VentaActual.ClienteNombre, ImportePago, 1, 1, VentaActual.SerieFolio, "", False, True, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCorte:=CveCorte) + CveIEPago = ObjIE.AddBancos_IE(CveBancoCuenta, Metodo, Fecha, "-1", VentaActual.ClienteNombre, ImportePago, 1, 1, VentaActual.SerieFolio, "", False, True, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCorte:=tCveCorte) If CveIEPago > 0 Then Dim Pago As New VentaPago Pago.ImportePagoVenta = ImportePago From 875d1e4f4fd58a34c439d800acf78da1f74ffd1c Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 14:47:42 -0700 Subject: [PATCH 15/87] =?UTF-8?q?--=20cambio=20content-type=20de=20pdf,=20?= =?UTF-8?q?para=20correcci=C3=B3n=20de=20descarga=20sobre=20ipad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsPaginas.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index c57311bfb..70cba6b84 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5426,12 +5426,12 @@ Public Class ClsPaginas bytes = bytes Response.Buffer = True Response.Clear() + Response.ClearHeaders() If Formato = "PDF" Then Response.ContentType = "application/pdf" Else Response.ContentType = mimeType End If - Response.ClearHeaders() Dim fileExtension As String = "" If Not String.IsNullOrEmpty(Extension) Then fileExtension = Extension From aa46522d5f0b064632236c55342d5373243cb453 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 21 Jun 2024 15:02:11 -0700 Subject: [PATCH 16/87] =?UTF-8?q?--=20activaci=C3=B3n=20de=20liga=20a=20ka?= =?UTF-8?q?rdex.=20en=20grid,=20para=20pesta=C3=B1a=20de=20almacen.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index d4001e38b..7f71e50f0 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -9330,6 +9330,7 @@ Partial Class Ventas e.Row.CssClass = "SubTotales" End If Else + e.Row.FCLiteral("LtlPS").Text = String.Format(" {4}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveAlmacen"), e.Row.DBCampo("Fecha").ToDate.AddDays(-7).ToShortDateString, e.Row.DBCampo("Fecha").ToDate.AddDays(7).ToShortDateString, e.Row.DBCampo("PS")) e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left e.Row.FCCheckBox("cbInv").Visible = True From 838d3380a573bb3a59786502b78a35cafdc387c2 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Fri, 21 Jun 2024 17:45:28 -0700 Subject: [PATCH 17/87] Saldos Menores --- App_Code/ClsMovimientos.vb | 8 +- Contabilidad/RepIVA.aspx.cs | 27 +- Empresas/119/Formatos/RepIVA.rpt | Bin 131072 -> 147456 bytes Empresas/Grales/Formatos/CatPS.rpt | Bin 245760 -> 245760 bytes General/SaldosMenores.aspx | 315 +++++++---- General/SaldosMenores.aspx.vb | 806 ++++++++++++++++++----------- 6 files changed, 740 insertions(+), 416 deletions(-) diff --git a/App_Code/ClsMovimientos.vb b/App_Code/ClsMovimientos.vb index a7bd91c78..2f8a91298 100644 --- a/App_Code/ClsMovimientos.vb +++ b/App_Code/ClsMovimientos.vb @@ -609,7 +609,8 @@ Public Class ClsMovimientos 'CveAplicaNC Public Function GetCxPProveedor(CveProveedor As Integer, FechaI As String, FechaF As String, CveUsuarioProgramo As Integer, CveUsuarioRegistro As Integer, CveUsuarioResponsable As Integer, CveClasificacionProveedor As Integer, CveMoneda As Integer, CveEstatus As Integer, CveProveedorSucursal As Integer, CveAplicaNC As Integer, - Optional FechaVI As String = "-1", Optional FechaVF As String = "-1", Optional CodigoProgramacion As String = "-1", Optional CveSubProyecto As Integer = -1) As Boolean + Optional FechaVI As String = "-1", Optional FechaVF As String = "-1", Optional CodigoProgramacion As String = "-1", Optional CveSubProyecto As Integer = -1, Optional Opcion As Integer = 1, + Optional CveEmpresa As Integer = -1, Optional SaldoMayorA As Decimal = -999999999999, Optional SaldoMenorA As Decimal = 999999999999) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Comp_ProveedorCxP") With SqlAdapter.SelectCommand.Parameters @@ -628,7 +629,10 @@ Public Class ClsMovimientos .Add("@FechaVF", SqlDbType.VarChar).Value = FechaVF .Add("@CodigoProgramacion", SqlDbType.VarChar).Value = CodigoProgramacion .Add("@CveSubProyecto", SqlDbType.SmallInt).Value = CveSubProyecto - + .Add("@Opcion", SqlDbType.SmallInt).Value = Opcion + .Add("@CveEmpresaOp", SqlDbType.SmallInt).Value = CveEmpresa + .Add("@SaldoMayorA", SqlDbType.Money).Value = SaldoMayorA + .Add("@SaldoMenorA", SqlDbType.Money).Value = SaldoMenorA End With diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index ace02b2f8..1a90339d7 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -253,14 +253,33 @@ public partial class Contabilidad_RepIVA : ClsPaginas if (Archivo.Exists) { Ruta = string.Format("{0}Formatos\\{1}", UsuarioActual.Empresa.Ruta, Formato); - ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + + if (UsuarioActual.Empresa.Funcionalidad(713).ToEntero() == 1) + { + ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, DtIEPSA, DtIVAA, "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + } + else + { + //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, new DataTable(), new DataTable(), "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + } + }else { Ruta = ModExtensiones.DirectorioBaseEmpresas + $@"Empresas\Grales\Formatos\{Formato}"; - - + //ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, DtIEPSA, DtIVAA, "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + if (UsuarioActual.Empresa.Funcionalidad(713).ToEntero() == 1) + { ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, DtIEPSA, DtIVAA, "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); - //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + } + else + { + //ImprimirbytesPDF(ImprimirPDFCrystal(Ruta, Dt, para, "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + ImprimirbytesPDF(ImprimirSubRepPDFCrystal(Ruta, Dt, para, new DataTable(), new DataTable(), "RepIEPSPorcentaje.rpt", "RepIVAPorcentaje.rpt", "Reporte de IVA", Opcion), "Reporte de IVA", Opcion); + } + + } diff --git a/Empresas/119/Formatos/RepIVA.rpt b/Empresas/119/Formatos/RepIVA.rpt index dac02e363da336cadc31e9c7ed5432488be59dad..7467658403c8d5c1b84da30133c98dc9a7aeebbe 100644 GIT binary patch delta 23698 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 diff --git a/Empresas/Grales/Formatos/CatPS.rpt b/Empresas/Grales/Formatos/CatPS.rpt index b1c8440bf3b9c8b0718cfc8340edf243c34f29cb..d6860ee14d25270f49f56918c5c61c2d709ffb21 100644 GIT binary patch delta 8302 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 a=e~&K63HYm{C}(7)FiNEiCYqw^}hgL4t|ON delta 8284 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 WCCZY(uM#jfqF*( diff --git a/General/SaldosMenores.aspx b/General/SaldosMenores.aspx index 7ab09bad8..74d387dfa 100644 --- a/General/SaldosMenores.aspx +++ b/General/SaldosMenores.aspx @@ -146,18 +146,18 @@ - - + + - - -

-
+ + +
+
" style="display: inline-block; margin-right: -20px; width: 150px;" /> " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
+
-
+
@@ -195,17 +195,17 @@ - + - -
-
+ +
+
" style="display: inline-block; margin-right: -20px; width: 150px;" /> " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
+
-
+
@@ -245,116 +245,205 @@ - - + + -
-
- " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
-
-
+
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+
+
-
- - - - - - - - - <%----%> - - - - - - - - Venta - - - - - - - - Tipo
- Docto -
- - - -
+
+ + + + + + + + + <%----%> + + + + + - - Cliente - - - - - - - - - Fecha
- Venta -
- - - -
- + Venta + + + + + - - Moneda - - - - - - - - - Monto + + Tipo
+ Docto +
+ + + +
+ + + + Cliente + + + + + + + + + Fecha
+ Venta +
+ + + +
+ + + + Moneda + + + + + + + + + Monto
- Venta -
- -   - -
- - - Saldo - -   - - + Venta + + +   + + -
-
+ + Saldo + +   + + -
-
+ + -
-
+ + + +
+
-
+
- + +
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+
+
+
+ + + + + + <%-- 0 --%> + + + + + + + + <%-- 1 --%> + + Factura + + + + + + + + Tipo
+ Docto +
+ + + +
+ + + + Proveedor + + + + + + <%-- 5 --%> + + Fecha Compra + + + + + + <%-- 5 --%> + + Moneda + + + + + + <%-- 8 --%> + + Monto Compra + +   + + + <%-- 10 --%> + + Saldo + +   + + + +
+ +
+ +
+
+ +
+
@@ -406,14 +495,20 @@
- + + + + + +
diff --git a/General/SaldosMenores.aspx.vb b/General/SaldosMenores.aspx.vb index 4863ff897..1859ef420 100644 --- a/General/SaldosMenores.aspx.vb +++ b/General/SaldosMenores.aspx.vb @@ -36,6 +36,15 @@ Partial Public Class General_SaldosMenores End Set End Property + Private Property DtDatosCompras As DataTable + Get + Return DirectCast(ViewState("DtDatosCompras"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtDatosCompras") = value + End Set + End Property + Private Property Tipo As Integer Get Return DirectCast(ViewState("Tipo"), Integer) @@ -45,32 +54,32 @@ Partial Public Class General_SaldosMenores End Set End Property - Private Property CveMoneda As Integer - Get - Return DirectCast(ViewState("CveMoneda"), Integer) - End Get - Set(value As Integer) - ViewState("CveMoneda") = value - End Set - End Property + 'Private Property CveMoneda As Integer + ' Get + ' Return DirectCast(ViewState("CveMoneda"), Integer) + ' End Get + ' Set(value As Integer) + ' ViewState("CveMoneda") = value + ' End Set + 'End Property - Private Property TCEspecifico As Double - Get - Return DirectCast(ViewState("TCEspecifico"), Double) - End Get - Set(value As Double) - ViewState("TCEspecifico") = value - End Set - End Property + 'Private Property TCEspecifico As Double + ' Get + ' Return DirectCast(ViewState("TCEspecifico"), Double) + ' End Get + ' Set(value As Double) + ' ViewState("TCEspecifico") = value + ' End Set + 'End Property - Private Property TipoCambio As Integer - Get - Return DirectCast(ViewState("TipoCambio"), Integer) - End Get - Set(value As Integer) - ViewState("TipoCambio") = value - End Set - End Property + 'Private Property TipoCambio As Integer + ' Get + ' Return DirectCast(ViewState("TipoCambio"), Integer) + ' End Get + ' Set(value As Integer) + ' ViewState("TipoCambio") = value + ' End Set + 'End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load @@ -79,7 +88,23 @@ Partial Public Class General_SaldosMenores End If End Sub Protected Sub BtnonClickTabs_Click(sender As Object, e As EventArgs) - Consultar() + 'Consultar() + + GvDatosIXC.DataSource = Nothing + GvCxC.DataSource = Nothing + GvCxP.DataSource = Nothing + + GvDatosIXC.DataBind() + GvCxC.DataBind() + GvCxP.DataBind() + + DvSaldar.Visible = False + + Upsaldar.Update() + UpDatos.Update() + UpDatosNCEXC.Update() + UPVentas.Update() + UPCompras.Update() End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click Consultar() @@ -92,6 +117,7 @@ Partial Public Class General_SaldosMenores DtDatosIXC = New DataTable DtDatosNCEXC = New DataTable DtDatosVentas = New DataTable + DtDatosCompras = New DataTable DvSubProyectoSaldar1.Visible = False DvSubProyectoSaldar2.Visible = False @@ -117,289 +143,35 @@ Partial Public Class General_SaldosMenores End If End If + + If Tabs.ActiveTab Is TabCompras Then + CargaDatosCompras() + If DtDatosCompras.Rows.Count > 0 Then + DvSaldar.Visible = True + End If + End If + + + Upsaldar.Update() End Sub Protected Sub BtnSaldar_Click(sender As Object, e As EventArgs) If Tabs.ActiveTab Is TabIXC Then - Dim ObjConta As New ClsContabilidad() - ObjConta.IniciaTransacSQL() - Dim CvePrePoliza As Integer = 0, CveVenta As Integer = -1, CveIE As Integer = -1 - Dim Saldo As Decimal = 0 - Dim SaldoAdmin As Decimal = 0 - Dim ImporteTotalGasto As Decimal = 0 - Dim MsgError As String = "" - - CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, 0, 0, 1, TxtFecha.Text.ToDate(), TxtConcepto.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 3) - Dim tMovto As Boolean = True - Dim tConceptoSaldar As Integer = 78 - - If CvePrePoliza > 0 Then - For Each Gv As GridViewRow In GvDatosIXC.Rows - Dim ConPreP As New ConceptosTipoSaldo() - - If Gv.FCCheckBox("Chk").Checked Then - - If Gv.DataKey("CveVenta").ToEntero > 0 Then - ConPreP = ClsPaginas.ObtenerCveConceptoPrePoliza(6, Gv.DataKey("CveMoneda").ToEntero(), False, 2) - ElseIf Gv.DataKey("CveIE").ToEntero > 0 Then - ConPreP.CveConcepto = 3 - End If - - 'If Tipo = 1 OrElse Tipo = 2 Then - If Gv.DataKey("CveVenta").ToEntero() > 0 Then - CveVenta = Gv.DataKey("CveVenta").ToEntero() - Saldo = -Gv.DataKey("Saldo").ToDecimal() - SaldoAdmin = Saldo - - ElseIf Gv.DataKey("CveIE").ToEntero() > 0 Then - 'ElseIf Tipo = 3 Then - ConPreP = ClsPaginas.ObtenerCveConceptoPrePoliza(18, Gv.DataKey("CveMoneda").ToEntero(), True, 2) - CveIE = Gv.DataKey("CveIE").ToEntero() - Saldo = Gv.DataKey("Saldo").ToDecimal() - SaldoAdmin = Saldo - End If - - Saldo = -Saldo ' invertimos el saldo para que se haga negativo para que sea Abono - - ImporteTotalGasto += Saldo - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, SaldoAdmin, Saldo, ConPreP.CveConcepto, Gv.DataKey("SerieFolio").ToString(), TxtConcepto.Text, CveIE, CveVenta, CveCliente:=Gv.DataKey("CveCliente").ToEntero()) Then - MsgError = "Ocurrio un error al saldar el movimiento" - Exit For - End If - - If Gv.DataKey("CveMoneda").ToEntero() > 1 Then - Dim ImporteMN As Decimal = (Saldo * Gv.DataKey("TipoCambio").ToDecimal() - Saldo).RoundSQL() - ImporteTotalGasto += ImporteMN - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, Saldo, ImporteMN, ConPreP.CveConceptoComplementario, Gv.DataKey("SerieFolio").ToString(), TxtConcepto.Text, CveIE, CveVenta, CveCliente:=Gv.DataKey("CveCliente").ToEntero(), ImporteME:=Saldo, TipoCambio:=Gv.DataKey("TipoCambio").ToDecimal()) Then - MsgError = "Ocurrio un error al saldar el movimiento" - Exit For - End If - End If - End If - Next - - If ImporteTotalGasto <> 0 Then - ImporteTotalGasto *= -1 ' se invierte el valor, para cuadre de prepoliza - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, ImporteTotalGasto, ImporteTotalGasto, tConceptoSaldar, "", TxtConcepto.Text, CveIE, CveVenta, CveSubProyecto:=DdlSubProyectoSaldar.SelectedValue.ToEntero()) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - Else - MsgError = "Poliza no insertada" - End If - End If - - If MsgError = "" Then - ObjConta.Commit() - ' DvSaldar.Visible = False - Dim Msg As String = "Los movimientos se saldaron correctamente." - Msg &= $"

Ver Póliza   " - Alert(Msg) - Else - ObjConta.RollBack() - Alert(MsgError, ModExtensiones.TipoMensaje.MsgError) - End If - - CargaDatosIXC() - ObjConta.Dispose() + SaldarIXC() End If - If Tabs.ActiveTab Is TabVentas Then + SaldarVentas() + End If - - Dim ObjConta As New ClsContabilidad - ObjConta.IniciaTransacSQL() - Dim CvePrePoliza As Integer = 0 - Dim MsgError As String = "" - - 'Dim ObjIE As New ClsBancos - Dim FechaUltimaFluctuacion As Date = MinFecha - Dim TipoCambioFluctuacion As Decimal = 1 - - Dim tFecha As Date = TxtFecha.Text.ToDate - Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) - - If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then - If UltimaFluctuacion.FechaFluctuacion <= tFecha Then - FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion - TipoCambioFluctuacion = UltimaFluctuacion.TCFluctuacion - End If - End If - - CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ClientesAbonar/SaldarI", 47, 0, 0, 1, TxtFecha.Text.ToDate, TxtFecha.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - - For Each gr As GridViewRow In GvCxC.Rows - If gr.FCCheckBox("Chk").Checked Then - Dim PorcentajePago As Decimal = gr.DataKey("Saldo").ToDecimal / gr.DataKey("Original").ToDecimal - Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal - Dim RETIVA As Decimal = gr.DataKey("RetIVA").ToDecimal - Dim SubTotal As Decimal = PorcentajePago * (gr.DataKey("SubTotal").ToDecimal.RoundSQL - gr.DataKey("Descuento").ToDecimal.RoundSQL).RoundSQL - Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal.RoundSQL - Dim IEPS As Decimal = PorcentajePago * gr.DataKey("IEPS").ToDecimal.RoundSQL - Dim TCVenta As Decimal = gr.DataKey("TipoCambio").ToDecimal - Dim FechaVenta As Date = gr.DataKey("Fecha").ToDate - Dim tCveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero - Dim TCPago As Decimal = GlobalTipoCambio(TxtFecha.Text.ToDate).FormatoNumero(4).ToDecimal - Dim CveConceptoDeduccion As Integer = DdlTipoDeduccion.SelectedValue.ToEntero - - Dim CveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero - - 'si la fecha del documento es anterior a su ultima fluctuación. toma el Tc de la fluctuacion - If tCveMoneda = 2 Then - If FechaVenta < FechaUltimaFluctuacion Then - TCVenta = TipoCambioFluctuacion - End If - End If - 'condicionante - Dim ClienteMovto As Boolean = True - Dim SubtotalMovto As Boolean = False - Dim CveConceptoCliente As Integer = 2 - Dim ImpuestosMovto As Boolean = False - - Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero - Dim ConceptoPartida As String = TxtConcepto.Text.Trim & " " & gr.DataKey("SerieFolio").ToString - 'TxtConcepto.Text - 'If CveConceptoDeduccion = 255 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(266).ToEntero - 'If CveConceptoDeduccion = 179 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero - 'If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero - 'If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero - - If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) Then - - ClienteMovto = False : Saldo = Saldo * -1 - ImpuestosMovto = True : IVA = IVA * -1 - RETIVA = ((SubTotal * RETIVA / gr.DataKey("SubTotal").ToDecimal.RoundSQL) * -1).RoundSQL(2) - CveConceptoCliente = 1 - End If - - Dim UsaComplementaria As Boolean = True - - 'If UsuarioActual.CveEmpresa = 119 Then - ' UsaComplementaria = True - 'End If - - If MsgError = "" Then - Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, True, 1) - 'normal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, Saldo, ConPreP.CveConcepto, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If UsaComplementaria AndAlso tCveMoneda = 2 Then - 'complementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, If(CveMoneda = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ConPreP.CveConceptoComplementario, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If - - 'fluctuación. - If tCveMoneda = 2 Then - Dim ImporteFluctuacion As Decimal = 0 - ImporteFluctuacion = Saldo * (TCPago - TCVenta) - - If CveSubProyecto <= 0 Then - MsgError = $"No se pudo obtener el sub proyecto de la venta {gr.DataKey("SerieFolio").ToString}" - End If - - If TCPago > TCVenta Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), Math.Abs(ImporteFluctuacion), 64, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), Math.Abs(ImporteFluctuacion), 65, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If - - 'cuando hay pago en dólares, se ajusta el concepto de subtotal, - SubTotal = (Saldo * TCVenta) + ImporteFluctuacion - (IVA * TCVenta) - (IEPS * TCVenta) - - End If - - If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, If(CveMoneda = 1, IVA, IVA * TCVenta), 13, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, PorcentajeImpuesto:=gr.DataKey("PorcentajeIVA").ToDecimal, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, If(CveMoneda = 1, RETIVA, RETIVA * TCVenta), 8, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, If(CveMoneda = 1, IEPS, IEPS * TCVenta), 38, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - 'al gasto,Subtotal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, SubtotalMovto, SubTotal, SubTotal, CveConceptoDeduccion, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, CveSubProyecto:=CveSubProyecto, CveCuenta:=-1, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - - If ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=5) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - MsgError = ObjConta.MensajePolizaDescuadre + " " + ObjConta.ValorDiferencia - GuardaLogAD($"Ventas/ClientesAbonar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") - Exit For - End If - End If - End If - End If - Next - - If MsgError = "" Then - 'ObjConta.RollBack() - ObjConta.Commit() - 'DvSaldar.Visible = False - CargaDatosVentas() - 'RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") - Alert(String.Format("Los movimientos se saldaron correctamente.
Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) - 'BtnSaldarCuentasIncobrables.Visible = False - Else - ObjConta.RollBack() - Alert(MsgError, TipoMensaje.MsgError) - End If - - - ObjConta.Dispose() - - + If Tabs.ActiveTab Is TabCompras Then + SaldarCompras() End If - TxtFecha.Text = DateTime.Today.ToString() Upsaldar.Update() - End Sub - - - -#Region "I X C" - Protected Sub InicializaDatos() - txtFechaI.Text = $"01/01/{Now.Year}" - txtFechaF.Text = DateTime.Today.ToString() - TxtFecha.Text = DateTime.Today.ToString() - - TxtSaldoMayorA.Text = "0" - TxtSaldoMenorA.Text = "1000" - - CargaSucursales() - - Dim CveCliente As Integer = If(Request("CveCliente") Is Nothing, -1, Request("CveCliente").ToString().ToEntero()) - - - CveMoneda = If(Request("CveMoneda") Is Nothing, -1, Request("CveMoneda").ToString().ToEntero()) - txtFechaI.Text = If(Request("FechaI") Is Nothing, NowADS().ToString(), Request("FechaI").ToString()) - txtFechaF.Text = If(Request("FechaF") Is Nothing, NowADS().ToString(), Request("FechaF").ToString()) - TipoCambio = If(Request("TipoCambio") Is Nothing, 1, Request("TipoCambio").ToString().ToEntero()) - TCEspecifico = If(Request("TCEspecifico") Is Nothing, -1, Request("TCEspecifico").ToString().ToDouble()) - 'RblTipoCambio.SelectedValue = TipoCambio.ToString() - 'LiEspecifico.InnerText = TCEspecifico.FormatoNumero() - - Dim FechaICorte As DateTime - FechaICorte = If(Request("FechaICorte") Is Nothing, DateTime.MinValue, Request("FechaICorte").ToString().ToDate()) - - Tipo = -1 - End Sub @@ -409,6 +181,26 @@ Partial Public Class General_SaldosMenores DdlSubProyectoSaldar.DataBind() End Sub +#Region "I X C" + Protected Sub InicializaDatos() + + + txtFechaI.Text = $"01/01/{Now.Year}" + txtFechaF.Text = DateTime.Today.ToString() + TxtFecha.Text = DateTime.Today.ToString() + + TxtSaldoMayorA.Text = "0" + TxtSaldoMenorA.Text = "1000" + + CargaSucursales() + ' + Tipo = -1 + + + End Sub + + + Protected Sub CargaDatosIXC() @@ -421,7 +213,7 @@ Partial Public Class General_SaldosMenores - If ObjVenta.GetRepAnticiposNCIXCDetalle(CveCliente, -1, txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveEmpresa, 1, -1, CveMoneda, FechaICorte, FechaFCorte, TipoCambio, TCEspecifico, + If ObjVenta.GetRepAnticiposNCIXCDetalle(CveCliente, -1, txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveEmpresa, 1, -1, -1, FechaICorte, FechaFCorte, -1, -1, SaldoMayorA:=TxtSaldoMayorA.Text.ToDecimal, SaldoMenorA:=TxtSaldoMenorA.Text.ToDecimal) Then GvDatosIXC.DataSource = ObjVenta.DtResultados DtDatosIXC = ObjVenta.DtResultados @@ -497,7 +289,91 @@ Partial Public Class General_SaldosMenores End Sub + Protected Sub SaldarIXC() + Dim ObjConta As New ClsContabilidad() + ObjConta.IniciaTransacSQL() + Dim CvePrePoliza As Integer = 0, CveVenta As Integer = -1, CveIE As Integer = -1 + Dim Saldo As Decimal = 0 + Dim SaldoAdmin As Decimal = 0 + Dim ImporteTotalGasto As Decimal = 0 + Dim MsgError As String = "" + CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, 0, 0, 1, TxtFecha.Text.ToDate(), TxtConcepto.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 3) + Dim tMovto As Boolean = True + Dim tConceptoSaldar As Integer = 78 + + If CvePrePoliza > 0 Then + For Each Gv As GridViewRow In GvDatosIXC.Rows + Dim ConPreP As New ConceptosTipoSaldo() + + If Gv.FCCheckBox("Chk").Checked Then + + If Gv.DataKey("CveVenta").ToEntero > 0 Then + ConPreP = ClsPaginas.ObtenerCveConceptoPrePoliza(6, Gv.DataKey("CveMoneda").ToEntero(), False, 2) + ElseIf Gv.DataKey("CveIE").ToEntero > 0 Then + ConPreP.CveConcepto = 3 + End If + + 'If Tipo = 1 OrElse Tipo = 2 Then + If Gv.DataKey("CveVenta").ToEntero() > 0 Then + CveVenta = Gv.DataKey("CveVenta").ToEntero() + Saldo = -Gv.DataKey("Saldo").ToDecimal() + SaldoAdmin = Saldo + + ElseIf Gv.DataKey("CveIE").ToEntero() > 0 Then + 'ElseIf Tipo = 3 Then + ConPreP = ClsPaginas.ObtenerCveConceptoPrePoliza(18, Gv.DataKey("CveMoneda").ToEntero(), True, 2) + CveIE = Gv.DataKey("CveIE").ToEntero() + Saldo = Gv.DataKey("Saldo").ToDecimal() + SaldoAdmin = Saldo + End If + + Saldo = -Saldo ' invertimos el saldo para que se haga negativo para que sea Abono + + ImporteTotalGasto += Saldo + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, SaldoAdmin, Saldo, ConPreP.CveConcepto, Gv.DataKey("SerieFolio").ToString(), TxtConcepto.Text, CveIE, CveVenta, CveCliente:=Gv.DataKey("CveCliente").ToEntero()) Then + MsgError = "Ocurrio un error al saldar el movimiento" + Exit For + End If + + If Gv.DataKey("CveMoneda").ToEntero() > 1 Then + Dim ImporteMN As Decimal = (Saldo * Gv.DataKey("TipoCambio").ToDecimal() - Saldo).RoundSQL() + ImporteTotalGasto += ImporteMN + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, Saldo, ImporteMN, ConPreP.CveConceptoComplementario, Gv.DataKey("SerieFolio").ToString(), TxtConcepto.Text, CveIE, CveVenta, CveCliente:=Gv.DataKey("CveCliente").ToEntero(), ImporteME:=Saldo, TipoCambio:=Gv.DataKey("TipoCambio").ToDecimal()) Then + MsgError = "Ocurrio un error al saldar el movimiento" + Exit For + End If + End If + End If + Next + + If ImporteTotalGasto <> 0 Then + ImporteTotalGasto *= -1 ' se invierte el valor, para cuadre de prepoliza + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, ImporteTotalGasto, ImporteTotalGasto, tConceptoSaldar, "", TxtConcepto.Text, CveIE, CveVenta, CveSubProyecto:=DdlSubProyectoSaldar.SelectedValue.ToEntero()) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + Else + MsgError = "Poliza no insertada" + End If + End If + + If MsgError = "" Then + ObjConta.Commit() + ' DvSaldar.Visible = False + Dim Msg As String = "Los movimientos se saldaron correctamente." + Msg &= $"

Ver Póliza   " + Alert(Msg) + Else + ObjConta.RollBack() + Alert(MsgError, ModExtensiones.TipoMensaje.MsgError) + End If + + CargaDatosIXC() + ObjConta.Dispose() + End Sub #End Region @@ -514,7 +390,7 @@ Partial Public Class General_SaldosMenores Dim ObjVenta As New ClsVentas() Dim CveCliente As Integer = -1 - If ObjVenta.GetRepAnticiposNCIXCDetalle(CveCliente, -1, txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveEmpresa, 1, -1, CveMoneda, FechaICorte, FechaFCorte, TipoCambio, TCEspecifico, + If ObjVenta.GetRepAnticiposNCIXCDetalle(CveCliente, -1, txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), UsuarioActual.CveEmpresa, 1, -1, -1, FechaICorte, FechaFCorte, -1, -1, SaldoMayorA:=TxtSaldoMayorA.Text.ToDecimal, SaldoMenorA:=TxtSaldoMenorA.Text.ToDecimal) Then GvDatosNCEXC.DataSource = ObjVenta.DtResultados DtDatosNCEXC = ObjVenta.DtResultados @@ -593,9 +469,6 @@ Partial Public Class General_SaldosMenores #Region "V E N T A S" - - '/Compras/RepAnt-NC-EXCDetalle.aspx - Protected Sub CargaDatosVentas() Dim Mov As New ClsMovimientos @@ -643,8 +516,341 @@ Partial Public Class General_SaldosMenores End Sub + Protected Sub SaldarVentas() + Dim ObjConta As New ClsContabilidad + ObjConta.IniciaTransacSQL() + Dim CvePrePoliza As Integer = 0 + Dim MsgError As String = "" + + 'Dim ObjIE As New ClsBancos + Dim FechaUltimaFluctuacion As Date = MinFecha + Dim TipoCambioFluctuacion As Decimal = 1 + + Dim tFecha As Date = TxtFecha.Text.ToDate + Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) + + If UsuarioActual.Empresa.Funcionalidad(703) = "1" AndAlso UltimaFluctuacion IsNot Nothing Then + If UltimaFluctuacion.FechaFluctuacion <= tFecha Then + FechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion + TipoCambioFluctuacion = UltimaFluctuacion.TCFluctuacion + End If + End If + + CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ClientesAbonar/SaldarI", 47, 0, 0, 1, TxtFecha.Text.ToDate, TxtConcepto.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + + For Each gr As GridViewRow In GvCxC.Rows + If gr.FCCheckBox("Chk").Checked Then + Dim PorcentajePago As Decimal = gr.DataKey("Saldo").ToDecimal / gr.DataKey("Original").ToDecimal + Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal + Dim RETIVA As Decimal = gr.DataKey("RetIVA").ToDecimal + Dim SubTotal As Decimal = PorcentajePago * (gr.DataKey("SubTotal").ToDecimal.RoundSQL - gr.DataKey("Descuento").ToDecimal.RoundSQL).RoundSQL + Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal.RoundSQL + Dim IEPS As Decimal = PorcentajePago * gr.DataKey("IEPS").ToDecimal.RoundSQL + Dim TCVenta As Decimal = gr.DataKey("TipoCambio").ToDecimal + Dim FechaVenta As Date = gr.DataKey("Fecha").ToDate + Dim tCveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero + Dim TCPago As Decimal = GlobalTipoCambio(TxtFecha.Text.ToDate).FormatoNumero(4).ToDecimal + Dim CveConceptoDeduccion As Integer = DdlTipoDeduccion.SelectedValue.ToEntero + + Dim CveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero + + 'si la fecha del documento es anterior a su ultima fluctuación. toma el Tc de la fluctuacion + If tCveMoneda = 2 Then + If FechaVenta < FechaUltimaFluctuacion Then + TCVenta = TipoCambioFluctuacion + End If + End If + 'condicionante + Dim ClienteMovto As Boolean = True + Dim SubtotalMovto As Boolean = False + Dim CveConceptoCliente As Integer = 2 + Dim ImpuestosMovto As Boolean = False + + Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero + Dim ConceptoPartida As String = TxtConcepto.Text.Trim & " " & gr.DataKey("SerieFolio").ToString + 'TxtConcepto.Text + 'If CveConceptoDeduccion = 255 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(266).ToEntero + 'If CveConceptoDeduccion = 179 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero + 'If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero + 'If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero + + If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) Then + + ClienteMovto = False : Saldo = Saldo * -1 + ImpuestosMovto = True : IVA = IVA * -1 + RETIVA = ((SubTotal * RETIVA / gr.DataKey("SubTotal").ToDecimal.RoundSQL) * -1).RoundSQL(2) + CveConceptoCliente = 1 + End If + + Dim UsaComplementaria As Boolean = True + + 'If UsuarioActual.CveEmpresa = 119 Then + ' UsaComplementaria = True + 'End If + + If MsgError = "" Then + Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, True, 1) + 'normal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, Saldo, ConPreP.CveConcepto, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + If UsaComplementaria AndAlso tCveMoneda = 2 Then + 'complementaria + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, If(CveMoneda = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ConPreP.CveConceptoComplementario, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + + 'fluctuación. + If tCveMoneda = 2 Then + Dim ImporteFluctuacion As Decimal = 0 + ImporteFluctuacion = Saldo * (TCPago - TCVenta) + + If CveSubProyecto <= 0 Then + MsgError = $"No se pudo obtener el sub proyecto de la venta {gr.DataKey("SerieFolio").ToString}" + End If + + If TCPago > TCVenta Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), Math.Abs(ImporteFluctuacion), 64, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + Else + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), Math.Abs(ImporteFluctuacion), 65, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + + 'cuando hay pago en dólares, se ajusta el concepto de subtotal, + SubTotal = (Saldo * TCVenta) + ImporteFluctuacion - (IVA * TCVenta) - (IEPS * TCVenta) + + End If + + If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, If(CveMoneda = 1, IVA, IVA * TCVenta), 13, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, PorcentajeImpuesto:=gr.DataKey("PorcentajeIVA").ToDecimal, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, If(CveMoneda = 1, RETIVA, RETIVA * TCVenta), 8, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, If(CveMoneda = 1, IEPS, IEPS * TCVenta), 38, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + 'al gasto,Subtotal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, SubtotalMovto, SubTotal, SubTotal, CveConceptoDeduccion, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, CveSubProyecto:=CveSubProyecto, CveCuenta:=-1, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + + If ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=5) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + MsgError = ObjConta.MensajePolizaDescuadre + " " + ObjConta.ValorDiferencia + GuardaLogAD($"Ventas/ClientesAbonar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + Exit For + End If + End If + End If + End If + Next + + If MsgError = "" Then + 'ObjConta.RollBack() + ObjConta.Commit() + 'DvSaldar.Visible = False + CargaDatosVentas() + 'RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") + Alert(String.Format("Los movimientos se saldaron correctamente.
Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) + 'BtnSaldarCuentasIncobrables.Visible = False + Else + ObjConta.RollBack() + Alert(MsgError, TipoMensaje.MsgError) + End If + + + ObjConta.Dispose() + End Sub + +#End Region + +#Region "C O M P R A S" + + + Protected Sub CargaDatosCompras() + + Dim Mov As New ClsMovimientos + Dim FechaI As String = txtFechaI.Text + Dim FechaF As String = txtFechaF.Text + + + + If Mov.GetCxPProveedor(-1, FechaI, FechaF, -1, -1, -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", CveSubProyecto:=-1, Opcion:=2, CveEmpresa:=UsuarioActual.CveEmpresa, SaldoMayorA:=TxtSaldoMayorA.Text.ToDecimal, SaldoMenorA:=TxtSaldoMenorA.Text.ToDecimal) Then + DtDatosCompras = Mov.DtResultados + GvCxP.DataSource = DtDatosCompras + DtDatosCompras.Columns.Add("Movimiento") + If DtDatosCompras.Rows.Count > 0 Then + DtDatosCompras.Rows(0)("Movimiento") = "FACTURA DE ACREEDOR" + End If + + End If + + Mov.Dispose() + GvCxP.DataBind() + UPCompras.Update() + + End Sub + + + Protected Sub GvCxP_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCxP.RowDataBound + + If e.Row.RowType = DataControlRowType.DataRow Then + + 'e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("FnSuma(this,{0},{1});", e.Row.FCTextBox("TxtAbonar").ClientID, e.Row.DBCampo("Saldo"))) + If e.Row.DataKey("CveCompra").ToEntero = 0 Then + e.Row.FCCheckBox("Chk").Visible = False + e.Row.BackColor = Drawing.Color.LightGray + End If + + End If + End Sub + + Protected Sub SaldarCompras() + + Dim ObjConta As New ClsContabilidad + ObjConta.IniciaTransacSQL() + Dim CvePrePoliza As Integer = 0 + Dim MsgError As String = "" + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + + Dim EsContabilizable As Boolean = If(UsuarioActual.CveEmpresa.Contiene(13, 83), False, True) + + CvePrePoliza = ObjConta.AddPrePolizas("Bancos/ProveedoresAbonar/Saldar", 98, 0, 0, 1, TxtFecha.Text.ToDate, TxtConcepto.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + For Each gr As GridViewRow In GvCxP.Rows + If gr.FCCheckBox("Chk").Checked Then + Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal 'gr.DataKey("Saldo").ToDecimal + Dim TCCompra As Decimal = gr.DataKey("TipoCambio").ToDecimal + Dim TCPago As Decimal = GlobalTipoCambio(TxtFecha.Text.ToDate).ToDecimal + Dim CveMoneda As Integer = gr.DataKey("CveMoneda").ToEntero + Dim FechaCompra As Date = gr.DataKey("Fecha").ToDate + Dim CveSubProyecto As Integer = gr.DataKey("CveSubProyecto").ToEntero + + Dim CveConceptoContablePago As Integer = 17 + If gr.DataKey("CveTipoConcepto").ToEntero = 2 Then CveConceptoContablePago = 308 'cuando es acreedor + If CveMoneda <> 1 Then + Select Case CveConceptoContablePago + Case 17 + CveConceptoContablePago = 312 + Case 308 + CveConceptoContablePago = 309 + Case Else + End Select + End If + + Dim CveConceptoContableComplementaria As Integer = 206 + If gr.DataKey("CveTipoConcepto").ToEntero = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor + + Dim ConceptoPartida As String = String.Format("Saldar compra {0}", gr.DataKey("SerieFolio").ToString) + + + If CveMoneda > 1 Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Saldo, Saldo, CveConceptoContablePago, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, TipoCambio:=TCCompra, ImporteME:=If(CveMoneda > 1, Saldo, 0), Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, 0.00D, (Saldo * TCCompra - Saldo).RoundSQL, CveConceptoContableComplementaria, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, ImporteME:=Saldo, TipoCambio:=TCCompra, Contabilizable:=EsContabilizable) Then + MsgError = "No se pudo insertar la póliza" + End If + Else + TCPago = 1 + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Saldo, If(CveMoneda = 1, Saldo, Saldo * TCCompra), CveConceptoContablePago, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, ImporteME:=If(CveMoneda > 1, Saldo, 0), TipoCambio:=TCCompra, Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + Dim PorcentajePago As Decimal = Saldo / gr.DataKey("TotalOriginal").ToDecimal + + If MsgError = "" AndAlso gr.DataKey("IVA").ToDecimal > 0 Then + Dim PorcentajeImpuesto As Decimal = gr.DataKey("PorcentajeIVA").ToDecimal + Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IVA, If(CveMoneda = 1, IVA, IVA * If(FuncionalidadFluctuacionImpuestos, TCPago, TCCompra)), 14, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + Saldo = Saldo - IVA + End If + + If MsgError = "" AndAlso gr.DataKey("IEPS").ToDecimal > 0 Then + + Dim IEPS As Decimal = PorcentajePago * gr.DataKey("IEPS").ToDecimal + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, IEPS, If(CveMoneda = 1, IEPS, IEPS * If(FuncionalidadFluctuacionImpuestos, TCPago, TCCompra)), 25, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + Saldo = Saldo - IEPS + End If + + ' se manda al ot ingresos, los impuestos por acreditar + If MsgError = "" Then + Dim tcvecon As Integer = 78 + Dim tTipoMovto As Boolean = True + If Saldo < 0 Then + tcvecon = 211 + tTipoMovto = False + End If + If MsgError = "" AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovto, Saldo, (Saldo * TCPago).RoundSQL, tcvecon, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, TipoCambio:=TCCompra, TipoCambioPago:=TCPago, CveSubProyecto:=CveSubProyecto, Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + + 'fluctuación. + If CveMoneda > 1 Then + Dim ImporteFluctuacion As Decimal = 0 + ImporteFluctuacion = Saldo * (TCPago - TCCompra) + + If CveSubProyecto <= 0 Then MsgError = "No se pudo obtener el sub proyecto o centro de costo" + + If TCCompra > TCPago Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), Math.Abs(ImporteFluctuacion), 64, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveSubProyecto:=CveSubProyecto, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, TipoCambio:=TCCompra, TipoCambioPago:=TCPago, Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + Else + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), Math.Abs(ImporteFluctuacion), 65, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveSubProyecto:=CveSubProyecto, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CveCompra:=gr.DataKey("CveCompra").ToEntero, TipoCambio:=TCCompra, TipoCambioPago:=TCPago, Contabilizable:=EsContabilizable) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + End If + End If + Next + + If MsgError.Trim.Length = 0 AndAlso CvePrePoliza > 0 Then + If MsgError = "" AndAlso ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, 5) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + MsgError = ObjConta.MensajePolizaDescuadre + " " + ObjConta.ValorDiferencia + GuardaLogAD($"Bancos/ProveedoresAbonar | Error:{ObjConta.MensajePolizaDescuadre} Diferencia:{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + End If + End If + End If + + If MsgError = "" Then + ObjConta.Commit() + CargaDatosCompras() + RegistraScript("$('#ModalSaldarCuentaSinPagar').modal('hide')") + Dim Msg As New StringBuilder + Msg.Append("Los movimientos se saldaron correctamente.
") + + If UsuarioActual.TienePermisoProceso(354) Then 'visualizar la póliza al registros + Msg.AppendFormat("Ver Póliza   ", CvePrePoliza) + End If + Alert(Msg.ToString) + + Else + ObjConta.RollBack() + Alert(MsgError, TipoMensaje.MsgError) + End If + + ObjConta.Dispose() + + End Sub + #End Region - End Class From b5fc0b2f94923fb14d619878f68b73766dd1d443 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 22 Jun 2024 10:20:35 -0700 Subject: [PATCH 18/87] --FIX varios --- Ventas/CatAutorizacionLimites.aspx | 1 - Ventas/FacturacionGlobal.aspx.vb | 1 + Ventas/Ventas.aspx | 1 - Ventas/Ventas.aspx.vb | 26 +++++++++++++++++++++++++- 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Ventas/CatAutorizacionLimites.aspx b/Ventas/CatAutorizacionLimites.aspx index 4936e1d5e..295100756 100644 --- a/Ventas/CatAutorizacionLimites.aspx +++ b/Ventas/CatAutorizacionLimites.aspx @@ -179,7 +179,6 @@
- diff --git a/Ventas/FacturacionGlobal.aspx.vb b/Ventas/FacturacionGlobal.aspx.vb index 794f72424..136e80b0f 100644 --- a/Ventas/FacturacionGlobal.aspx.vb +++ b/Ventas/FacturacionGlobal.aspx.vb @@ -230,6 +230,7 @@ Partial Class Ventas_FacturacionGlobal If Math.Abs(ObjFactura.Total.RoundSQL(2) - DtPagosFacturaGlobal.SUMD("Importe").RoundSQL(2)) > 0.01D Then Alert($"Los pagos no coinciden con el total de la factura [{ObjFactura.Total.RoundSQL(2)}-{ DtPagosFacturaGlobal.SUMD("Importe").RoundSQL(2)}]", TipoMensaje.MsgError) + GuardaLog($"Los pagos no coinciden con el total de la factura [{ObjFactura.Total.RoundSQL(2)}-{ DtPagosFacturaGlobal.SUMD("Importe").RoundSQL(2)}] Remisiones: " + SbRemisiones.ToString()) Exit Sub End If diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 1440d98b4..311924897 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -8588,7 +8588,6 @@
-
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index d4001e38b..9cedf95a1 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -9711,8 +9711,17 @@ Partial Class Ventas End If Me.CveAutorizacion = -1 + Dim PermiteAutorizacion As Boolean = False + + If DdlTipoComprobante.SelectedValue.Contiene("Ing") Then + PermiteAutorizacion = True + End If + If DdlTipoComprobante.SelectedValue.Contiene("Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + PermiteAutorizacion = True + End If + 'SI ES A CREDITO DEBE VERIFICAR SI TIENE AUTORIZACIONES - If UsuarioActual.Empresa.Funcionalidad(595) = "2" AndAlso CveCliente > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing") AndAlso RBLPago.SelectedValue = "1" Then + If UsuarioActual.Empresa.Funcionalidad(595) = "2" AndAlso CveCliente > 0 AndAlso PermiteAutorizacion AndAlso RBLPago.SelectedValue = "1" Then Dim TipoDocumentoAutorizacion As String = "" Dim ImporteAutorizacion As Decimal = 0 Dim TipoAutorizacion As Integer = 0 @@ -31890,6 +31899,11 @@ Partial Class Ventas Exit Sub End If + If Not UsuarioActual.TienePermisoProceso(60) Then + Alert("El usuario no tiene permiso para facturar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + 'MARCA LAS SELECCIONADAS VerificaCotizaciones(DtCotizaciones) @@ -32417,6 +32431,11 @@ Partial Class Ventas Exit Sub End If + If Not UsuarioActual.TienePermisoProceso(60) Then + Alert("El usuario no tiene permiso para facturar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + 'Checa las facturas selecionadas If Not VerificaRemisiones(DTRemisiones) Then Alert("La cantidad/total debe ser mayor que 0", TipoMensaje.MsgAdvertencia) @@ -32994,6 +33013,11 @@ Partial Class Ventas Exit Sub End If + If Not UsuarioActual.TienePermisoProceso(60) Then + Alert("El usuario no tiene permiso para facturar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + 'MARCA LAS SELECCIONADAS VerificaPedidos2(DtPedidos2) Dim DTSeleccionadas As DataTable = DtPedidos2.FiltraParametros("Aplicado = True") From 5b6e0eea44b029b4a1fe8c230037cf6e2f549425 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 22 Jun 2024 10:49:47 -0700 Subject: [PATCH 19/87] =?UTF-8?q?Dep=C3=B3sito=20de=20caja.=20agregar=20la?= =?UTF-8?q?=20impresi=C3=B3n=20de=20la=20p=C3=B3liza=20en=20el=20alert=20f?= =?UTF-8?q?inalizado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bancos/DepositosCaja.aspx.vb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index e94b3853b..9fafa1375 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -416,7 +416,7 @@ Partial Class Bancos_DepositosCaja Next Dim StrEncript As String = Encripta($"OP=DC&CveIE={CveIEOrigen}&CuentaCaja={DdlCajaChica.SelectedItem.Text}&CuentaDepo={DdlCuentaDeposito.SelectedItem.Text}") - documentos += String.Format("Imprimir {1}
", StrEncript, "Depósito Bancario") + documentos += String.Format("Imprimir {1}

", StrEncript, "Depósito Bancario") @@ -430,7 +430,11 @@ Partial Class Bancos_DepositosCaja End If If Not OcurrioError Then - documentos += String.Format("Prepóliza

", NuevaCvePrePoliza) + documentos += String.Format("Prepóliza
", NuevaCvePrePoliza) + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + Dim ParametrosPrePoliza As String = Encripta($"OP=PREPO&CvePrePoliza={NuevaCvePrePoliza}") + documentos += String.Format("Imprimir {1}
", ParametrosPrePoliza, "PrePoliza") + End If End If Catch ex As Exception From ec753bf3dcb32b269eea8d1564887ff10e4e8639 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Sat, 22 Jun 2024 12:07:26 -0700 Subject: [PATCH 20/87] =?UTF-8?q?Saldos=20Menores,=20=20EMD=20-=20impresi?= =?UTF-8?q?=C3=B3n=20de=20presupuestos,=20en=20base=20a=20OC=20autorizadas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 4 ++-- Contratos/RepPresupuestos.aspx.vb | 14 ++++++++++++-- Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc | 6 +++++- General/SaldosMenores.aspx.vb | 6 +++--- OC/OC.aspx.vb | 10 +++++----- 5 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index d945f314e..6b13d5b35 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -17096,7 +17096,7 @@ Partial Class Compras_Compras Dim Total As Decimal = (TxtCantidad.Text.ToDecimal * TxtPrecio.Text.ToDecimal) - TxtDescuentoModal.Text.ToDecimal - 'If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + 'If UsuarioActual.Empresa.Funcionalidad(532).Contiene( "1","2") Then ' Dim ObjCon As New ClsContratos ' Dim CvePresupuesto As Integer = 0 ' Dim Autorizado As Double = 0 @@ -20760,7 +20760,7 @@ Partial Class Compras_Compras Dim respuesta As Boolean = False - If UsuarioActual.Empresa.Funcionalidad(532) = "1" Then + If UsuarioActual.Empresa.Funcionalidad(532).Contiene("1", "2") Then If Opcion = 1 Or OCVinculada Or DdlTipoComprobante.SelectedValue <> "Fac" Then Return True diff --git a/Contratos/RepPresupuestos.aspx.vb b/Contratos/RepPresupuestos.aspx.vb index 7995872cd..88b7becb7 100644 --- a/Contratos/RepPresupuestos.aspx.vb +++ b/Contratos/RepPresupuestos.aspx.vb @@ -602,11 +602,21 @@ Partial Class Contratos_RepPresupuestos params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("AgrupadoPor", $"{FechaIn}{FechaFn}{Agrupador}{Proyecto}{SubProyecto}{Clasificacion}{TipoGasto}")) - params.Add(New ReportParameter("Autorizado", LtlAutorizado.Text.FormatoNumero())) - params.Add(New ReportParameter("Ejercido", LtlEjercido.Text.FormatoNumero())) + params.Add(New ReportParameter("Autorizado", LtlAutorizado.Text.FormatoNumero())) + params.Add(New ReportParameter("PorEjercer", LtlPorEjercer.Text.FormatoNumero())) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) + If UsuarioActual.Empresa.Funcionalidad(532) = "2" Then + Dim DrPresupuesto = DtPresupuestos.FiltroPrimero("Tipo = 0 AND CveAgrupador IS NULL") + Dim Comprometido = DrPresupuesto("Comprometido").ToString.ToDecimal + params.Add(New ReportParameter("Ejercido", Comprometido.ToString.FormatoNumero())) + Else + params.Add(New ReportParameter("Ejercido", LtlEjercido.Text.FormatoNumero())) + End If + + + params.Add(New ReportParameter("PresupuestoRestrictivo", UsuarioActual.Empresa.Funcionalidad(532))) diff --git a/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc b/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc index 446a7587f..210c0ed97 100644 --- a/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc +++ b/Empresas/Grales/Formatos/RepPresupuestoAnual.rdlc @@ -25,6 +25,10 @@ Autorizado System.Double + + Comprometido + System.Double + Ejercido System.Double @@ -245,7 +249,7 @@ - = IIF( Parameters!PresupuestoRestrictivo.Value = "2", IIF(CDec(Fields!Autorizado.Value)=0,"-",Fields!Autorizado.Value),IIF(CDec(Fields!Ejercido.Value)=0,"-",Fields!Ejercido.Value)) + = IIF( Parameters!PresupuestoRestrictivo.Value = "2", iif(CDec(Fields!Comprometido.Value)=0,"-",Fields!Comprometido.Value), iif(CDec(Fields!Ejercido.Value)=0,"-",Fields!Ejercido.Value)) + + + Reporte + + +<%--
  • + Generar PDF +
  • +
  • + Generar Excel +
  • --%> +
  • + Ver Dlls en pesos +
  • +<%-- + +
  • + Ver Grafica +
  • +
    +
    --%> +
    + + + + + +
    + <%-- --%> +
    +
    +
    +
    + + + +
    +
    +
    + + +
    +
    +
    + Proyecto: +
    + +
    + SubProyecto: +
    + + <%-- + + --%> +
    + + +
    + + <%-- + + --%> +
    +
    +
    +
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + diff --git a/Ventas/RepPedidosSTF.aspx.vb b/Ventas/RepPedidosSTF.aspx.vb new file mode 100644 index 000000000..0cc39de45 --- /dev/null +++ b/Ventas/RepPedidosSTF.aspx.vb @@ -0,0 +1,50 @@ +Option Explicit On +Option Strict On + +Imports Extensiones +Partial Class Ventas_RepPedidosSTF + Inherits ClsPaginas + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + CargaCombos() + End If + End Sub + + Private Sub CargaCombos() + + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto) + + 'Vendedor + DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros("VendedorTipo in (1,4)") 'vendedores y vendedores de piso + DdlVendedor.DataBind() + DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) + DdlVendedor.Items.Insert(1, New ListItem("Sin Vendedor", "-2")) + End Sub + + Protected Sub CargaDatos() + + Dim ObjVentas As New ClsVentas + If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + GvDatos.DataSource = ObjVentas.DtResultados + End If + ObjVentas.Dispose() + GvDatos.DataBind() + End Sub + Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + Select Case e.Row.DBCampo("TipoFila") + Case "1" + e.Row.CssClass = "Totales" + Case "2" + e.Row.CssClass = "SubTotales" + Case "3" + e.Row.CssClass = "Texto" + End Select + End If + End Sub + Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) + CargaDatos() + UPDatos.Update() + End Sub +End Class From 1194a1a83d74f0553f063e1a54cea42b9535e0de Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 26 Jun 2024 09:21:40 -0700 Subject: [PATCH 28/87] --devolucion de almacen si tiene permiso --- Ventas/RepCancelacionesPorRespuesta.aspx.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index b4907ecf4..e5d4126d4 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -571,6 +571,10 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas { factura.RealizarDevolucionAlmacen = true; } + if (UsuarioActual.TienePermisoProceso(269) && UsuarioActual.Empresa.Funcionalidad(109) == "1" && factura.TipoDocto == "Ing" && factura.SaldoAlmacen != 0) + { + factura.RealizarDevolucionAlmacen = true; + } retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse); } From da212bbf73d2fc8317e76e6cbf1c5050fb11cf0d Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 26 Jun 2024 11:06:49 -0700 Subject: [PATCH 29/87] =?UTF-8?q?--=20validaci=C3=B3n=20de=20que=20tiene?= =?UTF-8?q?=20sesion=20activa.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ashx/CargaEventos.ashx | 1 + 1 file changed, 1 insertion(+) diff --git a/Ashx/CargaEventos.ashx b/Ashx/CargaEventos.ashx index 23abfb27d..ed78666f4 100644 --- a/Ashx/CargaEventos.ashx +++ b/Ashx/CargaEventos.ashx @@ -16,6 +16,7 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState Dim CveEmpresa As Integer = -1 Dim FI As Date Dim FF As Date + If UsuarioActual(context) Is Nothing Then Exit Sub If context.Request("METODO") IsNot Nothing Then From 65bed579231fdd3a6fad194c4bb9036a1a1aa0b0 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 26 Jun 2024 11:32:59 -0700 Subject: [PATCH 30/87] --Promociones sin clasificacion --FIX permiso para cancelacion con dias anteriores --- Ventas/Promociones.aspx.vb | 25 ++++++++++++++++++------- Ventas/Ventas.aspx.vb | 8 ++++++-- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/Ventas/Promociones.aspx.vb b/Ventas/Promociones.aspx.vb index e622f196e..6aea352cf 100644 --- a/Ventas/Promociones.aspx.vb +++ b/Ventas/Promociones.aspx.vb @@ -128,7 +128,11 @@ Partial Class Ventas_Promociones 'CLASIFICACIONES DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") DdlClasificacion.DataBind() - DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + DdlClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) + Else + DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If 'CARGA PS DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") @@ -373,9 +377,11 @@ Partial Class Ventas_Promociones Protected Sub BtnAgregar_Click(sender As Object, e As EventArgs) - If DdlClasificacion.SelectedValue.ToEntero <= 0 Then - Alert("Debe seleccionar una clasificacion", TipoMensaje.MsgAdvertencia) - Exit Sub + If UsuarioActual.Empresa.Funcionalidad(382) <> "1" Then + If DdlClasificacion.SelectedValue.ToEntero <= 0 Then + Alert("Debe seleccionar una clasificacion", TipoMensaje.MsgAdvertencia) + Exit Sub + End If End If If TxtCantMinima.Text.ToEntero <= 0 Then @@ -397,8 +403,13 @@ Partial Class Ventas_Promociones Dr("CveClasificacion") = DdlClasificacion.SelectedValue Dr("Clasificacion") = DdlClasificacion.SelectedItem.Text Else - Dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("CveClasificacion") - Dr("Clasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("Clasificacion") + If DdlPS.SelectedValue.ToEntero > 0 Then + Dr("CveClasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("CveClasificacion") + Dr("Clasificacion") = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimeroValor("Clasificacion") + Else + Dr("CveClasificacion") = -1 + Dr("Clasificacion") = "Todas" + End If End If Dr("CvePS") = If(DdlPS.SelectedValue = "", "-1", DdlPS.SelectedValue) @@ -481,7 +492,7 @@ Partial Class Ventas_Promociones RegistraScript("$('#DivAgregar').modal('show')") CveConsecutivo = e.CommandArgument.ToString.ToEntero DdlRin.SelectedValueExist(Gvr.DataKey("CveRinTamaño")) - DdlClasificacion.SelectedValue = Gvr.DataKey("CveClasificacion") + DdlClasificacion.SelectedValueExist(Gvr.DataKey("CveClasificacion")) ChangeDdlProducto() If UsuarioActual.Empresa.Funcionalidad(105) = "" Then DdlPS.SelectedValue = Gvr.DataKey("CvePS") diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 9cedf95a1..621243a93 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5079,7 +5079,7 @@ Partial Class Ventas If DbRowVenta("Fecha").ToString.ToDate.ToShortDateString.ToDate < Now.ToShortDateString.ToDate Then If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Egs", "Ant") AndAlso UsuarioActual.TienePermisoProceso(159) Then LkRefacturacion.Visible = True - LbCancelarDocumento.Visible = False + LbCancelarDocumento.Visible = UsuarioActual.TienePermisoProceso(378) Else LbCancelarDocumento.Visible = UsuarioActual.TienePermisoProceso(378) End If @@ -19041,7 +19041,11 @@ Partial Class Ventas If dr Is Nothing Then 'verifica marca, si tiene asignada la promocion - dr = DtPromociones.FiltroPrimero(String.Format("CvePS IS NULL AND CveClasificacion = {0} AND (CveMarca = {1} OR CveMarca IS NULL) AND (CveSubProyecto = {2} OR CveSubProyecto IS NULL) AND (CveRinTamaño = {3} OR CveRinTamaño IS NULL) AND ((TipoPromocion <> 3 AND (CantidadMinima <= {4} OR CantidadMinima IS NULL)) OR (TipoPromocion = 3 AND CantidadMinima <= {4} )) ", CveClasifPS, CveMarcaPS, DdlSubProyectoDatos.SelectedValue, CveRinTamañoPS, Cantidad), Orderby:="CantidadMinima desc") + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + dr = DtPromociones.FiltroPrimero(String.Format("CvePS IS NULL AND (CveClasificacion = {0} OR CveClasificacion IS NULL) AND (CveMarca = {1} OR CveMarca IS NULL) AND (CveSubProyecto = {2} OR CveSubProyecto IS NULL) AND (CveRinTamaño = {3} OR CveRinTamaño IS NULL) AND ((TipoPromocion <> 3 AND (CantidadMinima <= {4} OR CantidadMinima IS NULL)) OR (TipoPromocion = 3 AND CantidadMinima <= {4} )) ", CveClasifPS, CveMarcaPS, DdlSubProyectoDatos.SelectedValue, CveRinTamañoPS, Cantidad), Orderby:="CantidadMinima desc") + Else + dr = DtPromociones.FiltroPrimero(String.Format("CvePS IS NULL AND CveClasificacion = {0} AND (CveMarca = {1} OR CveMarca IS NULL) AND (CveSubProyecto = {2} OR CveSubProyecto IS NULL) AND (CveRinTamaño = {3} OR CveRinTamaño IS NULL) AND ((TipoPromocion <> 3 AND (CantidadMinima <= {4} OR CantidadMinima IS NULL)) OR (TipoPromocion = 3 AND CantidadMinima <= {4} )) ", CveClasifPS, CveMarcaPS, DdlSubProyectoDatos.SelectedValue, CveRinTamañoPS, Cantidad), Orderby:="CantidadMinima desc") + End If End If End If From a3a1ec3dd0161bdc51b42c5c0d1ca3130dccdb1b Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 26 Jun 2024 15:43:06 -0700 Subject: [PATCH 31/87] --fix merge --- Ventas/RepCancelacionesPorRespuesta.aspx.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs index 80134a3fd..fc89d05b1 100644 --- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs +++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs @@ -576,7 +576,11 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas { AplicaCancelacionConPagos = true; } - retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse,AplicaCancelacionConPagos: AplicaCancelacionConPagos); + if (UsuarioActual.TienePermisoProceso(269) && UsuarioActual.Empresa.Funcionalidad(109) == "1" && factura.TipoDocto == "Ing" && factura.SaldoAlmacen != 0) + { + factura.RealizarDevolucionAlmacen = true; + } + retorno = factura.EjecutarCancelacionPendiente(CveEstatus, CancelacionFecha, CancelacionAcuse, AplicaCancelacionConPagos: AplicaCancelacionConPagos); } From e83a767e33122412946ac8c78a32c2057622a38b Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 06:49:50 -0700 Subject: [PATCH 32/87] -- SMS - Avista, que no valide que se entrege completo --- Inventarios/EntregaAlmacen.aspx.vb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index d29e4a631..6b9b7b89c 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -2059,12 +2059,6 @@ Partial Class Inventarios_EntregaAlmacen End If Next - - - 'ValidaSeccion = False - 'ValidaCaducidad = False - 'ValidaLote = False - If ValidaSeccion Then Alert("La sección de almacen no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia) Exit Sub @@ -2081,10 +2075,17 @@ Partial Class Inventarios_EntregaAlmacen If Not Cantidad > 0 Then Alert("No se detecto ningun movimiento por hacer. Por favor verifique e intente nuevamente.", TipoMensaje.MsgAdvertencia) Exit Sub + End If + + If UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso TipoDocto = "Ped" Then + VerificaCancelada = False End If - 'PROCESO , si tiene proceso "176" no lo valida - If Not UsuarioActual.TienePermisoProceso(176) Then + Dim ValidaEntregaCompleto As Boolean = Not UsuarioActual.TienePermisoProceso(176) + If CveTipoVenta = 3 Then ValidaEntregaCompleto = False + + 'PROCESO , si tiene proceso "176" no lo valida + If ValidaEntregaCompleto Then 'Tipoventa diferente a A-vista If Not TipoDocto.Contiene("Dev") Then 'para devoluciones debe de aceptar parcialidades For Each Gvr As GridViewRow In GvDatos.Rows If Gvr.DataKey("CantidadF").ToDecimal <> Gvr.FCTextBox("TbCantidadF").Text.ToDecimal Then From 6c1058181b209eec3a0bb8d9776050cedd25bfac Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 07:55:58 -0700 Subject: [PATCH 33/87] -- mejora --- Inventarios/EntregaAlmacen.aspx.vb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 6b9b7b89c..23437744e 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -781,7 +781,7 @@ Partial Class Inventarios_EntregaAlmacen 'DEVOLUCION REMISION If TipoMovimiento = 2 And TipoDocto.Contiene("Rem", "Ped") And Not CveAlmacenTraspasoDestino > 0 Then - Alert("La remisión que se intenta devolver presenta inconsistencias. Comuniquese con servicio tecnico SIG.", TipoMensaje.MsgError) + Alert("La remisión que se intenta devolver presenta inconsistencias. Comuniquese con servicio técnico SIG.", TipoMensaje.MsgError) BtnGuardar.Visible = False End If @@ -3404,17 +3404,12 @@ Partial Class Inventarios_EntregaAlmacen Msg.AppendFormat("

    Recibir Usado: Ir a Recepción de Usados", CveVentaSurtir) End If - - Alert(Msg.ToString(), TipoMensaje.MsgInformacion) Limpia() CargaPendientes() LimpiaCampos() - CargaBitacora = False - - Else ObjInventario.RollBack() Alert(TextoError.ToString(), TipoMensaje.MsgError) @@ -3540,7 +3535,6 @@ Partial Class Inventarios_EntregaAlmacen Cantidad = Gvr.FCTextBox("TbCantidadF").Text.ToDecimal Exit For End If - Next If ValidaSeccion Then From 0ed2270d5ebb348bfd59b30e2682f5fa6f3eb9e3 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 12:44:01 -0700 Subject: [PATCH 34/87] =?UTF-8?q?-=20mejora=20en=20c=C3=B3digo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/ProductosServicios.aspx.vb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index 917925e4c..2266011ad 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -2028,19 +2028,20 @@ Partial Class ProductosyServicios Dim ObjProductosServicios As New ClsProductosServicios() ObjProductosServicios.IniciaTransacSQL() Dim TieneError As Boolean = False + Dim CodigoAdicional As String = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSAdicional.SelectedValue.ToEntero).FiltroPrimeroValor("Codigo", "") If CvePSAdicional < 0 Then If Not ObjProductosServicios.AddPSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0), Tipo:=RblTipoAdicional.SelectedValue.ToEntero()) Then TieneError = True Else - TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, True) + TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, True, CodigoAdicional) End If Else If Not ObjProductosServicios.UpdatePSAdicionales(CvePS, DdlPSAdicional.SelectedValue.ToEntero, CvePSAdicional, If(TxtCantidadPSAdicional.Visible, TxtCantidadPSAdicional.Text.ToDecimal, 0), Tipo:=RblTipoAdicional.SelectedValue.ToEntero()) Then TieneError = True Else - TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, False, PSAdicionalAnterior) + TieneError = GuardarProductosEquivalenteEnFranquicia(ObjProductosServicios, False, CodigoAdicional, PSAdicionalAnterior) End If End If @@ -3292,14 +3293,14 @@ Partial Class ProductosyServicios Return False End Function - Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, Agregar As Boolean, Optional PSAdicionalAnterior As String = "") As Boolean + Private Function GuardarProductosEquivalenteEnFranquicia(ObjPS As ClsProductosServicios, Agregar As Boolean, CodigoAdicional As String, Optional PSAdicionalAnterior As String = "") As Boolean If UsuarioActual.Empresa.Funcionalidad(563) <> "" Then Dim StrEmpresas As String = UsuarioActual.Empresa.Funcionalidad(563) Dim EmpresasFranquicia As List(Of Integer) = StrEmpresas.Split(","c).ToList().ConvertAll(Function(x) Convert.ToInt32(x)) For Each Franquicia As Integer In EmpresasFranquicia Dim CvePSPagina As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", TxtCodigo.Text.Trim)).ToEntero - Dim CvePSAdicional As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("PS = '{0}'", DdlPSAdicional.txtText.Value)).ToEntero + Dim CvePSAdicional As Integer = GlobalDTPS(Franquicia).FiltroPrimeroValor("CvePS", String.Format("Codigo = '{0}'", CodigoAdicional)).ToEntero If CvePSPagina <= 0 Then Alert(String.Format("El producto de la página no existe en la franquicia: '{0}'", GlobalDTEmpresas(Franquicia).FiltroPrimeroValor("Empresa")), TipoMensaje.MsgAdvertencia) @@ -3323,8 +3324,6 @@ Partial Class ProductosyServicios Return True End If End If - - End If Next End If From 448fca8c7fbff2c80d47452ce8bcc7a8c0c0967c Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 12:45:51 -0700 Subject: [PATCH 35/87] -- mejora en SMS en vista de tipo de venta --- Ventas/Ventas.aspx | 3 --- Ventas/Ventas.aspx.vb | 4 ++-- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 311924897..1285c88c5 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -577,9 +577,6 @@ - - - Médico: diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index f44bbba91..5d9ca90cd 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -6170,7 +6170,7 @@ Partial Class Ventas TrVentasMedicas3.Visible = True - If DbRowVenta("CveMedico").ToString.ToEntero > 0 AndAlso CveTipoVenta.Contiene(1, 2, 3, 5) Then + If DbRowVenta("CveMedico").ToString.ToEntero > 0 AndAlso CveTipoVenta.Contiene(1, 2, 3, 5, 6) Then TrVentasMedicas1.Visible = True DdlMedico.SelectedValueExist(DbRowVenta("CveMedico").ToString) @@ -35169,7 +35169,7 @@ Partial Class Ventas DdlUsoCFDI.Enabled = True End If - If UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso CveTipoVenta.Contiene(1, 3, 5) Then + If UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso CveTipoVenta.Contiene(1, 2, 3, 5, 6) Then TrVentasMedicas1.Visible = True DdlMedico.Enabled = True DdlProcedimiento.Enabled = True From 2b8bfd6aebd4d769e6521f318607c22ba9c1f97d Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 12:46:31 -0700 Subject: [PATCH 36/87] - --- Contabilidad/RegPrePolizaS.aspx.vb | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index b3d2be37d..01919bb95 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -1,8 +1,4 @@ Imports System.Data -Imports System.Runtime.CompilerServices -Imports System.Runtime.Remoting - -'Imports DocumentFormat.OpenXml Imports Extensiones Imports GemBox.Spreadsheet From b29df8e777b79a9d37370506298b9008443baf74 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 12:47:11 -0700 Subject: [PATCH 37/87] =?UTF-8?q?---=20cancelaci=C3=B3n=20de=20remisi?= =?UTF-8?q?=C3=B3n/pedido?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/Modelos.vb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 3634904b3..998390c5c 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -6489,14 +6489,16 @@ Namespace Modelos For Each RowDevolucion As DataRow In DtDevMovs.Rows CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero() + Dim tdtt As DataTable = DtMovRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")} AND CvePS > 0 AND SaldoAlmacen <> 0") - If Not CancelarMovimientosRemision(CveVenta, CveAlmacen, CveAlmacenGeneral, DtMovRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")} AND CvePS > 0"), ObjVentas, ObjInventario, ObjConta) Then - ErrorCancelar = True - MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión." - Exit For + If tdtt IsNot Nothing AndAlso tdtt.Rows.Count > 0 Then + If Not CancelarMovimientosRemision(CveVenta, CveAlmacen, CveAlmacenGeneral, tdtt, ObjVentas, ObjInventario, ObjConta) Then + ErrorCancelar = True + MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión." + Exit For + End If End If Next - End If 'CANCELAR MOVIMIENTOS DE USADOS SI TIENE @@ -6513,7 +6515,6 @@ Namespace Modelos ErrorCancelar = True End If End If - End If 'VERIFICAR MOVIMIENTOS DE APARTADOS @@ -6531,7 +6532,6 @@ Namespace Modelos ErrorCancelar = True End If End If - End If End If From 5209ed2bcfafd36b4e8f41b5807b163dc67a586c Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 14:37:50 -0700 Subject: [PATCH 38/87] =?UTF-8?q?--=20registro=20de=20remisi=C3=B3n=20al?= =?UTF-8?q?=20entregar!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/RepPedidosSTF.aspx | 38 +++++-------- Ventas/RepPedidosSTF.aspx.vb | 105 +++++++++++++++++++++++++++++++---- 2 files changed, 110 insertions(+), 33 deletions(-) diff --git a/Ventas/RepPedidosSTF.aspx b/Ventas/RepPedidosSTF.aspx index c85dd6223..390a8e161 100644 --- a/Ventas/RepPedidosSTF.aspx +++ b/Ventas/RepPedidosSTF.aspx @@ -85,37 +85,29 @@ + CssClass="table table-striped table-advance table-hover Widthall ScrollAD" DataKeyNames="CveCliente,CveVendedor,CveSubProyecto,CvePS,CveUnidadMedida,Cantidad,PU,CveVentaDetalle" data-sort="true" GridLines="None" Width="99%"> - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - + +
    +
    + +
    +
    diff --git a/Ventas/RepPedidosSTF.aspx.vb b/Ventas/RepPedidosSTF.aspx.vb index 0cc39de45..f0548160a 100644 --- a/Ventas/RepPedidosSTF.aspx.vb +++ b/Ventas/RepPedidosSTF.aspx.vb @@ -1,6 +1,7 @@ Option Explicit On Option Strict On +Imports System.Data Imports Extensiones Partial Class Ventas_RepPedidosSTF Inherits ClsPaginas @@ -20,6 +21,8 @@ Partial Class Ventas_RepPedidosSTF DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) DdlVendedor.Items.Insert(1, New ListItem("Sin Vendedor", "-2")) + + If UsuarioActual.CveVendedor > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor) End Sub Protected Sub CargaDatos() @@ -32,19 +35,101 @@ Partial Class Ventas_RepPedidosSTF GvDatos.DataBind() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound - If e.Row.RowType = DataControlRowType.DataRow Then - Select Case e.Row.DBCampo("TipoFila") - Case "1" - e.Row.CssClass = "Totales" - Case "2" - e.Row.CssClass = "SubTotales" - Case "3" - e.Row.CssClass = "Texto" - End Select - End If + 'If e.Row.RowType = DataControlRowType.DataRow Then + ' Select Case e.Row.DBCampo("TipoFila") + ' Case "1" + ' e.Row.CssClass = "Totales" + ' Case "2" + ' e.Row.CssClass = "SubTotales" + ' Case "3" + ' e.Row.CssClass = "Texto" + ' End Select + 'End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos() UPDatos.Update() End Sub + + Protected Sub BtnEntregar_Click(sender As Object, e As EventArgs) + 'validar que están seleccionados + Dim TmpDTRemis As New DataTable + TmpDTRemis.Columns.Add("CveVentaDetalle", GetType(Integer)) + TmpDTRemis.Columns.Add("CveCliente", GetType(Integer)) + TmpDTRemis.Columns.Add("CveSubProyecto", GetType(Integer)) + TmpDTRemis.Columns.Add("CvePS", GetType(Integer)) + TmpDTRemis.Columns.Add("Cantidad", GetType(Integer)) + TmpDTRemis.Columns.Add("CveUnidadMedida", GetType(Integer)) + TmpDTRemis.Columns.Add("PU", GetType(Decimal)) + TmpDTRemis.Columns.Add("CveVendedor", GetType(Decimal)) + 'agruparo por cliente + For Each gvr As GridViewRow In GvDatos.Rows + If gvr.FCCheckBox("chk").Checked Then + Dim drp As DataRow = TmpDTRemis.NewRow + drp("CvePS") = gvr.DataKey("CvePS").ToEntero + drp("Cantidad") = gvr.DataKey("Cantidad").ToEntero + drp("PU") = gvr.DataKey("PU").ToEntero + drp("CveUnidadMedida") = gvr.DataKey("CveUnidadMedida").ToEntero + drp("CveSubProyecto") = gvr.DataKey("CveSubProyecto").ToEntero + drp("CveCliente") = gvr.DataKey("CveCliente").ToEntero + drp("CveVendedor") = gvr.DataKey("CveVendedor").ToEntero + drp("CveVentaDetalle") = gvr.DataKey("CveVentaDetalle").ToEntero + TmpDTRemis.Rows.Add(drp) + End If + Next + + If TmpDTRemis IsNot Nothing AndAlso TmpDTRemis.Rows.Count = 0 Then + Alert("No se ha seleccionado ninguna partida, favor de seleccionar", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim ObjA As New ClsInventarios + ObjA.IniciaTransacSQL() + Dim TieneError As Boolean = False + Dim StrAlerta As New StringBuilder + + For Each drt As DataRow In TmpDTRemis.FiltraParametros("", DistinctColumns:={"CveCliente", "CveSubProyecto", "CveVendedor"}).Rows + + Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, drt("CveSubProyecto").ToString.ToEntero, drt("CveCliente").ToString.ToEntero, 1, "Rem") + ObjFactura.CveVendedor = drt("CveVendedor").ToString.ToEntero + For Each dr As DataRow In TmpDTRemis.FiltraParametros($"CveCliente ={drt("CveCliente")} AND CveVendedor = {drt("CveVendedor")} AND CveSubProyecto = {drt("CveSubProyecto")}").Rows + + If ObjFactura IsNot Nothing Then + If Not ObjFactura.AgregarPS(dr("CvePS").ToString.ToEntero, dr("Cantidad").ToString.ToDecimal, dr("PU").ToString.ToDecimal, 0, "", CveSubProyecto:=dr("CveSubProyecto").ToString.ToEntero, CveVentaDetallePadre:=dr("CveVentaDetalle").ToString.ToEntero) Then + Alert("Error al agregar producto", TipoMensaje.MsgAdvertencia) + TieneError = True + Exit For + Else + If Not ObjA.UpdateEstatusAlmacen(dr("CveVentaDetalle").ToString.ToEntero, 0) Then + TieneError = True + End If + End If + End If + Next + If Not TieneError Then + ObjFactura.CalculaTotales() + Dim Resp As New Modelos.Factura.MMensajeFactura + Resp = ObjFactura.EmitirFactura(False, Transac:=ObjA.IniciaTransacSQL) + + If Resp.CveVenta > 0 Then + Dim a As String = "a" + StrAlerta.AppendFormat("{1}
    ", Resp.CveVenta, Resp.SerieFolio) + 'Respuesta.CveVenta = Resp.CveVenta + 'Respuesta.SerieFolio = Resp.SerieFolio + 'Respuesta.dtdetalle = TmpDTMat + Else + TieneError = True + End If + End If + Next + + If Not TieneError Then + ObjA.Commit() + Alert("Se registraron las siguientes remisiones:
    " & StrAlerta.ToString) + CargaDatos() + Else + ObjA.RollBack() + End If + + End Sub End Class From ca2b2b148cb19552b5424b352ce52a0a00739f11 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 27 Jun 2024 14:40:35 -0700 Subject: [PATCH 39/87] =?UTF-8?q?--=20cuando=20es=20flete/importaci=C3=B3n?= =?UTF-8?q?=20que=20no=20saque=20de=20almacen=20en=20autom=C3=A1tico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 6b13d5b35..69cde82c2 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -3654,15 +3654,15 @@ Partial Class Compras_Compras If UsuarioActual.Empresa.Funcionalidad(560) = "1" Then - If ObjProveedor.GetProveedoresEvaluacionPediente(Me.CveProveedor, UsuarioActual.CveEmpresa) Then - If ObjProveedor.DtResultados.Rows.Count > 0 Then - Me.RequiereEvaluacion = ObjProveedor.DtResultados.Rows(0)("RequiereEvaluacion").ToString() = "1" - Me.CveUsuarioEvaluador = ObjProveedor.DtResultados.Rows(0)("CveUsuarioEvaluador").ToString().ToEntero() - End If - End If + If ObjProveedor.GetProveedoresEvaluacionPediente(Me.CveProveedor, UsuarioActual.CveEmpresa) Then + If ObjProveedor.DtResultados.Rows.Count > 0 Then + Me.RequiereEvaluacion = ObjProveedor.DtResultados.Rows(0)("RequiereEvaluacion").ToString() = "1" + Me.CveUsuarioEvaluador = ObjProveedor.DtResultados.Rows(0)("CveUsuarioEvaluador").ToString().ToEntero() End If + End If + End If - ObjProveedor.Dispose() + ObjProveedor.Dispose() End Sub Private Sub CargaAnticipos(CveProveedor As Integer, Optional FiltroTipo As String = "-1") @@ -4406,7 +4406,7 @@ Partial Class Compras_Compras Exit Sub End If - If UsuarioActual.TienePermisoProceso(121) Then + If UsuarioActual.TienePermisoProceso(121) And Not (CveImportacion > 0 Or CveFlete > 0) Then 'valida que de salida, pero sino es importación o costoindirecto If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then If Not NCDevolucion And Not ChkNCInvNC.Checked Then Alert("Favor de seleccionar un producto en la pestaña de almacen", TipoMensaje.MsgAdvertencia) @@ -13801,10 +13801,10 @@ Partial Class Compras_Compras End If End If Else - ErrorCancelar = True - End If - + ErrorCancelar = True End If + + End If Next End If @@ -18128,11 +18128,13 @@ Partial Class Compras_Compras Dr("CveUM") = DtEquivalencia.FiltroPrimeroValor("CveUM", "UnidadBase = 1") Dr("UM") = DtEquivalencia.FiltroPrimeroValor("UM", "UnidadBase = 1") Dr("Cantidad") = Dr("Cantidad").ToString.ToDouble * Equivalencia + Dr("CantidadF") = Dr("CantidadF").ToString.ToDouble * Equivalencia Dr("PU") = Math.Round(Dr("PU").ToString.ToDouble / Equivalencia, 6) TmpDT.AcceptChanges() GvPS.DataSource = TmpDT GvPS.DataBind() + CargaGvInv() UpPS.Update() Else Alert("La cantidad de equivalencia de la unidad de medida debe ser mayor a 0", TipoMensaje.MsgAdvertencia) From 0aba7c56d247e08007d5c68716f56f5e12464c51 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 27 Jun 2024 15:01:05 -0700 Subject: [PATCH 40/87] --Impresion en reporte de cortes --- Bancos/RepCortes.aspx | 2 +- Bancos/RepCortes.aspx.vb | 4 ++-- Compras/PopUpVerFactura.aspx.vb | 34 ++++++++++++++++++++++++++------- 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Bancos/RepCortes.aspx b/Bancos/RepCortes.aspx index 65f77f716..0f8f26f74 100644 --- a/Bancos/RepCortes.aspx +++ b/Bancos/RepCortes.aspx @@ -131,7 +131,7 @@ - + diff --git a/Bancos/RepCortes.aspx.vb b/Bancos/RepCortes.aspx.vb index 0f791b9dc..b387fecd9 100644 --- a/Bancos/RepCortes.aspx.vb +++ b/Bancos/RepCortes.aspx.vb @@ -269,8 +269,8 @@ Partial Class Bancos_RepCortes If (DtCortesVentasResumen IsNot Nothing AndAlso DtCortesVentasResumen.Rows.Count > 0) Or (DtCortesVentas IsNot Nothing AndAlso DtCortesVentas.Rows.Count > 0) Then HplDownPDF.Visible = True HplDownEXCEL.Visible = True - HplDownPDF.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CORT&CVECORTE={0}&FORMATO={1}&CVESUBPROYECTO={2}", CveCorte, "PDF", DdlSubProyectos.SelectedValue.ToEntero))) - HplDownEXCEL.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CORT&CVECORTE={0}&FORMATO={1}&CVESUBPROYECTO={2}", CveCorte, "EXCEL", DdlSubProyectos.SelectedValue.ToEntero))) + HplDownPDF.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CORT&CVECORTE={0}&FORMATO={1}&CVESUBPROYECTO={2}&FECHA={3}", CveCorte, "PDF", DdlSubProyectos.SelectedValue.ToEntero, FechaConsulta.ToString("yyyy-MM-dd")))) + HplDownEXCEL.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CORT&CVECORTE={0}&FORMATO={1}&CVESUBPROYECTO={2}&FECHA={3}", CveCorte, "EXCEL", DdlSubProyectos.SelectedValue.ToEntero, FechaConsulta.ToString("yyyy-MM-dd")))) Else HplDownPDF.Visible = False HplDownEXCEL.Visible = False diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 5ae8eb43b..ba0dfeefc 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1381,12 +1381,17 @@ Partial Class PopUpVerFactura If UrlParametros("OP").ToString = "CORT" Then - If UrlParametros("CVECORTE") IsNot Nothing AndAlso UrlParametros("CVECORTE").ToString.ToEntero > 0 Then + If (UrlParametros("CVECORTE") IsNot Nothing AndAlso UrlParametros("CVECORTE").ToString.ToEntero > 0) OrElse UsuarioActual.Empresa.Funcionalidad(382) = "1" Then Dim CveSubProyecto As Integer = -1 + Dim FechaConsulta As Date = ModExtensiones.MaxFecha + If UrlParametros("CVESUBPROYECTO") IsNot Nothing Then CveSubProyecto = UrlParametros("CVESUBPROYECTO").ToString.ToEntero End If - ImprimeCorte(UrlParametros("CVECORTE").ToString.ToEntero, UrlParametros("FORMATO").ToString, CveSubProyecto) + If UrlParametros("FECHA") IsNot Nothing Then + FechaConsulta = UrlParametros("FECHA").ToString.ToDate() + End If + ImprimeCorte(UrlParametros("CVECORTE").ToString.ToEntero, UrlParametros("FORMATO").ToString, CveSubProyecto, FechaConsulta) End If End If @@ -1554,7 +1559,7 @@ Partial Class PopUpVerFactura #Region "OP = CORT - IMPRIMIR CORTE" - Private Sub ImprimeCorte(CveCorte As Integer, Formato As String, Optional CveSubProyecto As Integer = -1) + Private Sub ImprimeCorte(CveCorte As Integer, Formato As String, Optional CveSubProyecto As Integer = -1, Optional FechaConsulta As Date = ModExtensiones.MaxFecha) Dim DtCortesVentasResumen As DataTable = Nothing Dim DtCortesVentas As DataTable = Nothing Dim DtReporteCorte As DataTable = Nothing @@ -1565,9 +1570,15 @@ Partial Class PopUpVerFactura Dim OpcionDetallado As Integer = 1 If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then OpcionDetallado = 2 + Dim ConsultaPorSucursal As Boolean = UsuarioActual.Empresa.Funcionalidad(382) = "1" + + If ConsultaPorSucursal Then + CveCorte = -1 + End If + Dim ObjVenta As New ClsVentas - If ObjVenta.GetVta_ReporteCortesDetalle(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa, 2) Then + If ObjVenta.GetVta_ReporteCortesDetalle(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa, 2, ConsultaIVA:=UsuarioActual.CveEmpresa.Contiene(190, 192), FechaConsulta:=FechaConsulta) Then Dim DsDatos = ObjVenta.DataSetResultados.Copy() If DsDatos IsNot Nothing Then DtCortesVentas = DsDatos.Tables(0) @@ -1600,9 +1611,14 @@ Partial Class PopUpVerFactura End If If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then - If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, CveSubProyecto, CveCorte:=CveCorte) Then - DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("CveCorte > 0") - Fecha = DtReporteCorte.FiltroPrimeroValor("FechaInicial", "") + If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, FechaConsulta, FechaConsulta, CveSubProyecto, CveCorte:=CveCorte) Then + If ConsultaPorSucursal Then + DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("FechaInicial IS NOT NULL") + Fecha = FechaConsulta.ToString("dd/MM/yyyy") + Else + DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("CveCorte > 0") + Fecha = DtReporteCorte.FiltroPrimeroValor("FechaInicial", "") + End If End If If ObjVenta.GetVta_MovimientosCajas(CveCorte, -1) Then @@ -1618,6 +1634,10 @@ Partial Class PopUpVerFactura Dim FechaCorte As String = $" Fecha fin {Fecha}" + If ConsultaPorSucursal Then + FechaCorte = $" Fecha: {Fecha}" + End If + Dim Usuario As String = $" Usuario {Nombre}" If DtCortesVentas.Rows.Count > 0 Or DtCortesVentasResumen.Rows.Count > 0 Then Dim lrds As New List(Of ReportDataSource) From 5347e982353a3e06940785087ebf5b712ae899e9 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Fri, 28 Jun 2024 12:15:53 -0700 Subject: [PATCH 41/87] --FIX depositos e impresiones en cortes --- App_Code/ClsVentas.vb | 11 ++++++++--- Bancos/RepCortes.aspx.vb | 4 ++-- Compras/PopUpVerFactura.aspx.vb | 24 +++++++----------------- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 23f442f65..b3b8a15d1 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -3597,13 +3597,15 @@ Public Class ClsVentas ' Return Retorno 'End Function - Public Function GetVta_MovimientosCajas(CveCorte As Integer, TipoMovimiento As Integer) As Boolean + Public Function GetVta_MovimientosCajas(CveCorte As Integer, TipoMovimiento As Integer, Optional CveSubProyecto As Integer = -1, Optional FechaConsulta As Date = ModExtensiones.MaxFecha) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_MovimientosCajasGet") With SqlAdapter.SelectCommand.Parameters .Add("@CveCorte", SqlDbType.Int).Value = CveCorte .Add("@TipoMovimiento", SqlDbType.Int).Value = TipoMovimiento + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@FechaConsulta", SqlDbType.Date).Value = FechaConsulta End With Try @@ -3616,13 +3618,15 @@ Public Class ClsVentas Return Retorno End Function - Public Function GetVta_MovimientosCajasReporte(CveCorte As Integer, TipoMovimiento As Integer) As Boolean + Public Function GetVta_MovimientosCajasReporte(CveCorte As Integer, TipoMovimiento As Integer, Optional CveSubProyecto As Integer = -1, Optional FechaConsulta As Date = ModExtensiones.MaxFecha) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_MovimientosCajasRepGet") With SqlAdapter.SelectCommand.Parameters .Add("@CveCorte", SqlDbType.Int).Value = CveCorte .Add("@TipoMovimiento", SqlDbType.Int).Value = TipoMovimiento + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@FechaConsulta", SqlDbType.Date).Value = FechaConsulta End With Try @@ -3658,7 +3662,7 @@ Public Class ClsVentas ' Return Retorno 'End Function - Public Function GetCortesDetalleDepositosCaja(CveCorte As Integer, CveSubProyecto As Integer, CveEmpresa As Integer) As Boolean + Public Function GetCortesDetalleDepositosCaja(CveCorte As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional FechaConsulta As Date = ModExtensiones.MaxFecha) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_CortesDetalleDepositosCajaGet") @@ -3667,6 +3671,7 @@ Public Class ClsVentas .Add("@CveCorte", SqlDbType.Int).Value = CveCorte .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FechaConsulta", SqlDbType.Date).Value = FechaConsulta End With Try diff --git a/Bancos/RepCortes.aspx.vb b/Bancos/RepCortes.aspx.vb index b387fecd9..86d87a132 100644 --- a/Bancos/RepCortes.aspx.vb +++ b/Bancos/RepCortes.aspx.vb @@ -253,12 +253,12 @@ Partial Class Bancos_RepCortes End If If CveCorte > 0 Then - If ObjVentas.GetVta_MovimientosCajasReporte(CveCorte, -1) Then + If ObjVentas.GetVta_MovimientosCajasReporte(CveCorte, -1, CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero(), FechaConsulta:=FechaConsulta) Then GvIngresosRetiros.DataSource = ObjVentas.DtResultados.Copy() End If End If - If Not UsuarioActual.CveEmpresa.Contiene(140, 141) AndAlso ObjVentas.GetCortesDetalleDepositosCaja(CveCorte, DdlSubProyectos.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + If Not UsuarioActual.CveEmpresa.Contiene(140, 141) AndAlso ObjVentas.GetCortesDetalleDepositosCaja(CveCorte, DdlSubProyectos.SelectedValue.ToEntero(), UsuarioActual.CveEmpresa, FechaConsulta:=FechaConsulta) Then GvDep.DataSource = ObjVentas.DtResultados If ObjVentas.DtResultados.Rows.Count > 0 Then DivDep.Visible = True diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index ba0dfeefc..691ebe226 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1586,19 +1586,7 @@ Partial Class PopUpVerFactura DtCortesVentasResumen = DsDatos.Tables(1) End If End If - ' If ObjVenta.GetCortesDetalleVentasResumen(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa) Then - ' DtCortesVentasResumen = ObjVenta.DtResultados.Copy() - 'End If - 'If ObjPuntoVenta.GetCortesDetalleVentas(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa, OpcionDetallado) Then - ' DtCortesVentas = ObjPuntoVenta.DtResultados.Copy() - ' If DtCortesVentas.Rows.Count > 0 Then - ' Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0") - - ' Fecha = RowInfo("FechaInicial").ToString - ' Nombre = RowInfo("Nombre").ToString - ' End If - 'End If If DtCortesVentas.Rows.Count > 0 Then Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0") @@ -1611,21 +1599,23 @@ Partial Class PopUpVerFactura End If If UsuarioActual.Empresa.Funcionalidad(109) = "1" OrElse UsuarioActual.CveEmpresa = 197 Then - If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, FechaConsulta, FechaConsulta, CveSubProyecto, CveCorte:=CveCorte) Then - If ConsultaPorSucursal Then + If ConsultaPorSucursal Then + If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, FechaConsulta, FechaConsulta, CveSubProyecto) Then DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("FechaInicial IS NOT NULL") Fecha = FechaConsulta.ToString("dd/MM/yyyy") - Else + End If + Else + If ObjVenta.GetVta_ReporteCortes(UsuarioActual.CveEmpresa, MinFecha, MaxFecha, CveSubProyecto, CveCorte:=CveCorte) Then DtReporteCorte = ObjVenta.DtResultados.FiltraParametros("CveCorte > 0") Fecha = DtReporteCorte.FiltroPrimeroValor("FechaInicial", "") End If End If - If ObjVenta.GetVta_MovimientosCajas(CveCorte, -1) Then + If ObjVenta.GetVta_MovimientosCajas(CveCorte, -1, CveSubProyecto:=CveSubProyecto, FechaConsulta:=FechaConsulta) Then DtIngresosRetiros = ObjVenta.DtResultados.Copy() End If - If Not UsuarioActual.CveEmpresa.Contiene(140, 141) AndAlso ObjVenta.GetCortesDetalleDepositosCaja(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa) Then + If Not UsuarioActual.CveEmpresa.Contiene(140, 141) AndAlso ObjVenta.GetCortesDetalleDepositosCaja(CveCorte, CveSubProyecto, UsuarioActual.CveEmpresa, FechaConsulta:=FechaConsulta) Then DtDepositos = ObjVenta.DtResultados.Copy() End If End If From 8424c34e6a280b562d7971d0a96e38e3de81e4a3 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:29:47 -0700 Subject: [PATCH 42/87] =?UTF-8?q?--=20actualizar=20datos=20m=C3=A9dicos=20?= =?UTF-8?q?en=20Ventas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsVentas.vb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 23f442f65..f9a9423f3 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -717,6 +717,34 @@ Public Class ClsVentas Return Retorno End Function + Public Function UpdateDatosMedicosVenta(CveVenta As Integer, CveEmpresa As Integer, + CveMedico As Integer, + CveProcedimiento As Integer, + Paciente As String, + Optional Episodio As String = "-1", + Optional FolioAdicional As String = "-1", + Optional FechaParaSurtir As DateTime = MinFecha) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_VentasDatosMedicosUpdate") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveMedico", SqlDbType.Int).Value = CveMedico + .Add("@CveProcedimiento", SqlDbType.Int).Value = CveProcedimiento + .Add("@FechaParaSurtir", SqlDbType.DateTime).Value = FechaParaSurtir + .Add("@Paciente", SqlDbType.VarChar).Value = Paciente + .Add("@Episodio", SqlDbType.VarChar).Value = Episodio + .Add("@FolioAdicional", SqlDbType.VarChar).Value = FolioAdicional + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar los datos médicos de la venta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + Return Retorno + End Function + Public Function UpdateVentaTC(CveVenta As Integer, CveEmpresa As Integer, TipoCambio As Decimal) As Boolean Dim Retorno As Boolean = False From ccb2ae20bb0d1cce03d5ae645b7e1444d16efc2a Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:29:59 -0700 Subject: [PATCH 43/87] nombrecadena --- Ashx/E141.ashx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx index bd34dbf6f..ebe1a5513 100644 --- a/Ashx/E141.ashx +++ b/Ashx/E141.ashx @@ -62,7 +62,7 @@ Public Class E141 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe #Region "V A L I D A - D A T O S" Private Function ValidaUsuarioSistema(CveUsuario As Integer, CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios + Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:="VentasEcono") If ObjUsuarios.GetUsuarios(CveUsuario) Then If ObjUsuarios.DtResultados.Rows.Count > 0 Then Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() From 259b1982145bb8b385e15348751df37685f5c466 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:30:11 -0700 Subject: [PATCH 44/87] -- mejoras STF --- Ventas/RepPedidosSTF.aspx | 4 +++- Ventas/RepPedidosSTF.aspx.vb | 38 ++++++++++++++++++++++-------------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/Ventas/RepPedidosSTF.aspx b/Ventas/RepPedidosSTF.aspx index 390a8e161..ab70cdf03 100644 --- a/Ventas/RepPedidosSTF.aspx +++ b/Ventas/RepPedidosSTF.aspx @@ -84,8 +84,9 @@
    +
    + CssClass="table table-striped table-advance table-hover Widthall ScrollAD" DataKeyNames="CveCliente,CveVendedor,CveSubProyecto,CvePS,CveUnidadMedida,Cantidad,PU,CveVentaDetalle,GastosEnvio" data-sort="true" GridLines="None" Width="99%"> @@ -103,6 +104,7 @@ +
    diff --git a/Ventas/RepPedidosSTF.aspx.vb b/Ventas/RepPedidosSTF.aspx.vb index f0548160a..30916e0ac 100644 --- a/Ventas/RepPedidosSTF.aspx.vb +++ b/Ventas/RepPedidosSTF.aspx.vb @@ -22,7 +22,10 @@ Partial Class Ventas_RepPedidosSTF DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) DdlVendedor.Items.Insert(1, New ListItem("Sin Vendedor", "-2")) - If UsuarioActual.CveVendedor > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor) + If UsuarioActual.CveVendedor > 0 Then + DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor) + DdlVendedor.Enabled = False + End If End Sub Protected Sub CargaDatos() @@ -35,16 +38,11 @@ Partial Class Ventas_RepPedidosSTF GvDatos.DataBind() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound - 'If e.Row.RowType = DataControlRowType.DataRow Then - ' Select Case e.Row.DBCampo("TipoFila") - ' Case "1" - ' e.Row.CssClass = "Totales" - ' Case "2" - ' e.Row.CssClass = "SubTotales" - ' Case "3" - ' e.Row.CssClass = "Texto" - ' End Select - 'End If + If e.Row.RowType = DataControlRowType.DataRow Then + + If e.Row.DBCampo("CveVendedor") = "" Then e.Row.FCCheckBox("Chk").Visible = False + + End If End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) CargaDatos() @@ -58,22 +56,24 @@ Partial Class Ventas_RepPedidosSTF TmpDTRemis.Columns.Add("CveCliente", GetType(Integer)) TmpDTRemis.Columns.Add("CveSubProyecto", GetType(Integer)) TmpDTRemis.Columns.Add("CvePS", GetType(Integer)) - TmpDTRemis.Columns.Add("Cantidad", GetType(Integer)) + TmpDTRemis.Columns.Add("Cantidad", GetType(Decimal)) TmpDTRemis.Columns.Add("CveUnidadMedida", GetType(Integer)) TmpDTRemis.Columns.Add("PU", GetType(Decimal)) TmpDTRemis.Columns.Add("CveVendedor", GetType(Decimal)) + TmpDTRemis.Columns.Add("GastosEnvio", GetType(Decimal)) 'agruparo por cliente For Each gvr As GridViewRow In GvDatos.Rows If gvr.FCCheckBox("chk").Checked Then Dim drp As DataRow = TmpDTRemis.NewRow drp("CvePS") = gvr.DataKey("CvePS").ToEntero - drp("Cantidad") = gvr.DataKey("Cantidad").ToEntero - drp("PU") = gvr.DataKey("PU").ToEntero + drp("Cantidad") = gvr.DataKey("Cantidad").ToDecimal + drp("PU") = gvr.DataKey("PU").ToDecimal drp("CveUnidadMedida") = gvr.DataKey("CveUnidadMedida").ToEntero drp("CveSubProyecto") = gvr.DataKey("CveSubProyecto").ToEntero drp("CveCliente") = gvr.DataKey("CveCliente").ToEntero drp("CveVendedor") = gvr.DataKey("CveVendedor").ToEntero drp("CveVentaDetalle") = gvr.DataKey("CveVentaDetalle").ToEntero + drp("GastosEnvio") = gvr.DataKey("GastosEnvio").ToDecimal TmpDTRemis.Rows.Add(drp) End If Next @@ -88,7 +88,7 @@ Partial Class Ventas_RepPedidosSTF Dim TieneError As Boolean = False Dim StrAlerta As New StringBuilder - For Each drt As DataRow In TmpDTRemis.FiltraParametros("", DistinctColumns:={"CveCliente", "CveSubProyecto", "CveVendedor"}).Rows + For Each drt As DataRow In TmpDTRemis.FiltraParametros("", DistinctColumns:={"CveCliente", "CveSubProyecto", "CveVendedor", "GastosEnvio"}).Rows Dim ObjFactura As Modelos.Factura = Modelos.Factura.CrearVentaNueva(UsuarioActual, drt("CveSubProyecto").ToString.ToEntero, drt("CveCliente").ToString.ToEntero, 1, "Rem") ObjFactura.CveVendedor = drt("CveVendedor").ToString.ToEntero @@ -106,6 +106,14 @@ Partial Class Ventas_RepPedidosSTF End If End If Next + + If drt("GastosEnvio").ToString.ToDecimal > 0 Then + Dim tCvePSEnvio As Integer = usuarioactual.empresa.Funcionalidad(160).toentero + If Not ObjFactura.AgregarPS(tCvePSEnvio, 1, drt("GastosEnvio").ToString.ToDecimal, 0, "", CveSubProyecto:=drt("CveSubProyecto").ToString.ToEntero) Then + TieneError = True + End If + End If + If Not TieneError Then ObjFactura.CalculaTotales() Dim Resp As New Modelos.Factura.MMensajeFactura From 3438e1d21ba32a263ccd7fec75535db068b8c268 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:30:21 -0700 Subject: [PATCH 45/87] =?UTF-8?q?-activaci=C3=B3n=20gastosenvio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Clientes.aspx | 7 +++++++ Ventas/Clientes.aspx.vb | 17 ++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index cb845c362..ef7407d92 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -1195,6 +1195,13 @@
    +
    +
    +
    +
    + +
    +
    diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 997d09f0c..9fe195a53 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -603,8 +603,6 @@ Partial Class Clientes #End Region - - #Region " A C U M U L A D O R E S" Property CveVentaNota As Integer Get @@ -660,10 +658,6 @@ Partial Class Clientes End Set End Property - - - - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then @@ -1495,7 +1489,7 @@ Partial Class Clientes If ObjClientes.CveSubProyecto > 0 Then DdlSubProyecto.SelectedValueExistInsert(ObjClientes.CveSubProyecto.ToString(), GlobalDTSubProyectos(-1, CveSubProyecto:=ObjClientes.CveSubProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto")) End If - + TxtGastosEnvio.Text = ObjClientes.GastosEnvio.FormatoNumero DdlZonaHoraria.SelectedValueExist(ObjClientes.DtResultados(0)("CveZonaHoraria").ToString()) ChkEstado.Checked = ObjClientes.Estatus EstatusAnteriorCliente = ObjClientes.Estatus @@ -2595,7 +2589,8 @@ Partial Class Clientes CvePais:=DdlPais.SelectedValue.ToEntero(), CveEstado:=DdlEstado.SelectedValue.ToEntero(), CveMunicipio:=DdlMunicipio.SelectedValue.ToEntero(), CveColonia:=DdlColonia.SelectedValue.ToEntero(), CveMotivoTraslado:=IIf(DdlMotivoTraslado.SelectedValue = "-1", "0", DdlMotivoTraslado.SelectedValue).ToString().ToEntero(), NumRegIdTrib:=IIf(TxtNumRegIdTrib.Text = "", "-1", TxtNumRegIdTrib.Text).ToString(), ComExtEstado:=IIf(TxtComExtEstado.Text = "", "-1", TxtComExtEstado.Text).ToString(), ComExtMunicipio:=IIf(TxtComExtMunicipio.Text = "", "-1", TxtComExtMunicipio.Text).ToString(), ComExtColonia:=IIf(TxtComExtColonia.Text = "", "-1", TxtComExtColonia.Text).ToString(), RequiereOC:=ChkRequiereOC.Checked, LT:=LT, LG:=LG, EsDistribuidor:=ChkEsDistribuidor.Checked, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero(), CargoUsado:=ChkCargoUsado.Checked, BonificacionUsado:=ChkBonificacionUsado.Checked, CveTipoRetencion:=DdlTipoRetencion.SelectedValue.ToEntero(), CorreoEntregaCompras:=TxtCorreoEntregaCompras.Text, CorreoEntregaAlmacen:=TxtCorreoEntregaAlmacen.Text, CveSATEstado:=DdlEstadoSAT.SelectedValue.ToEntero(), CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero()), - CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, RepresentanteLegal:=TxtRepresentanteLegal.Text, ComExtCalle:=TxtComExtCalle.Text.Trim(), ComExtNumExt:=TxtComExtNumero.Text.Trim(), ComExtCP:=TxtComExtCP.Text.Trim(), FechaLimiteCredito:=FechaLimiteCredito, Genero:=GeneroCliente, CveAlmacenAsignado:=DdlAlmacenAsignado.SelectedValue.ToEntero, CveAlmacenAlterno:=DdlAlmacenAlterno.SelectedValue.ToEntero, UsaProductoAlterno:=ChkProductoAlterno.Checked, EsFilial:=ChkEsFilial.Checked) Then + CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, RepresentanteLegal:=TxtRepresentanteLegal.Text, ComExtCalle:=TxtComExtCalle.Text.Trim(), ComExtNumExt:=TxtComExtNumero.Text.Trim(), ComExtCP:=TxtComExtCP.Text.Trim(), FechaLimiteCredito:=FechaLimiteCredito, Genero:=GeneroCliente, + CveAlmacenAsignado:=DdlAlmacenAsignado.SelectedValue.ToEntero, CveAlmacenAlterno:=DdlAlmacenAlterno.SelectedValue.ToEntero, UsaProductoAlterno:=ChkProductoAlterno.Checked, EsFilial:=ChkEsFilial.Checked, GastosEnvio:=TxtGastosEnvio.Text.ToDecimal) Then CveClienteNuevo = ObjClientes.CveCliente @@ -2680,7 +2675,7 @@ Partial Class Clientes CveAdminTrayecto:=If(DdlAdminTrayecto.SelectedValue.ToEntero() <= 0, 0, DdlAdminTrayecto.SelectedValue.ToEntero()), NoDesglosaIVA:=Not ChkNoDesglosaIVA.Checked, CveRegimenFiscal:=DdlRegimenFiscal.SelectedValue.ToEntero, RegimenSociedad:=TxtRegimenSociedad.Text, TipoPersona:=TipoPersona, RepresentanteLegal:=TxtRepresentanteLegal.Text, ComExtCalle:=TxtComExtCalle.Text.Trim(), ComExtNumExt:=TxtComExtNumero.Text.Trim(), ComExtCP:=TxtComExtCP.Text.Trim(), FechaLimiteCredito:=FechaLimiteCredito, Genero:=GeneroCliente, CveAlmacenAsignado:=DdlAlmacenAsignado.SelectedValue.ToEntero, CveAlmacenAlterno:=DdlAlmacenAlterno.SelectedValue.ToEntero, UsaProductoAlterno:=ChkProductoAlterno.Checked, - EnQuebranto:=ChkEnQuebranto.Checked, EnDemanda:=ChkEnDemanda.Checked, CreditoRegistroFirmas:=TxtNombreFirmas.Text.Trim, EsFilial:=ChkEsFilial.Checked) Then + EnQuebranto:=ChkEnQuebranto.Checked, EnDemanda:=ChkEnDemanda.Checked, CreditoRegistroFirmas:=TxtNombreFirmas.Text.Trim, EsFilial:=ChkEsFilial.Checked, GastosEnvio:=TxtGastosEnvio.Text.ToDecimal) Then If Not ObjClientes.LimpiaImpuestosLocales(Me.CveCliente) Then ErrorProceso = True @@ -6182,6 +6177,10 @@ Partial Class Clientes DdlSATPais.Items.Add(New ListItem("Guatemala", "GTM")) End If + If UsuarioActual.CveEmpresa.Contiene(194) Then + divGastosEnvio.Visible = True + End If + If UsuarioActual.Empresa.Funcionalidad(713) = "1" Then 'si la empresa deduce ieps divDesgloseImpuestos.Visible = True End If From 07ebb1a7b955dfcac273ba7115e8faa41bde0440 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:30:39 -0700 Subject: [PATCH 46/87] =?UTF-8?q?--divisi=C3=B3n=20BD=20Econo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LogIn.aspx.vb | 4 ++-- Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb | 2 +- Sistemas/PopUpSeleccionarEmpresa.aspx.vb | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/LogIn.aspx.vb b/LogIn.aspx.vb index 44f3d54ac..99fe91a6a 100644 --- a/LogIn.aspx.vb +++ b/LogIn.aspx.vb @@ -211,7 +211,7 @@ Partial Class LogIn If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "Conexion" + If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" @@ -221,7 +221,7 @@ Partial Class LogIn If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" - If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" + If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" : NombreCadena = "ConexionGDiaz" If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) diff --git a/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb b/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb index 289e587a1..0719a98ab 100644 --- a/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb +++ b/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb @@ -97,7 +97,7 @@ Partial Class Sistemas_PopUpCambiaUsuarioEmpresa If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "Conexion" + If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" diff --git a/Sistemas/PopUpSeleccionarEmpresa.aspx.vb b/Sistemas/PopUpSeleccionarEmpresa.aspx.vb index 1271f6e3d..60a333910 100644 --- a/Sistemas/PopUpSeleccionarEmpresa.aspx.vb +++ b/Sistemas/PopUpSeleccionarEmpresa.aspx.vb @@ -65,7 +65,7 @@ Partial Class PopUpSeleccionarEmpresa Dim Usuario As Usuario = Nothing If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "Conexion" + If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" @@ -159,7 +159,7 @@ Partial Class PopUpSeleccionarEmpresa Dim Usuario As Usuario = Nothing If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "Conexion" + If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" From f06107944b25a467eae4af461387bc8319f79f18 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:30:49 -0700 Subject: [PATCH 47/87] -- comentar llamados --- Global.asax | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/Global.asax b/Global.asax index 417ce9fe0..f57c732c7 100644 --- a/Global.asax +++ b/Global.asax @@ -47,21 +47,21 @@ ' If ObjAC.GetMatrizGD Then Application("GlobalDTAC_MatrizEgresos") = ObjAC.DtResultados Else Application("GlobalDTAC_MatrizEgresos") = Nothing 'End Using - GuardaLogAsax(String.Format("Globalasax 6:{0}", DateTime.Now)) - Using Finan As New ClsFinanzas + 'GuardaLogAsax(String.Format("Globalasax 6:{0}", DateTime.Now)) + 'Using Finan As New ClsFinanzas - If Finan.GetRazonesFinancieras(-1) Then Application("GlobalDTFinan_RazonesFinancieras") = Finan.DtResultados + ' If Finan.GetRazonesFinancieras(-1) Then Application("GlobalDTFinan_RazonesFinancieras") = Finan.DtResultados - End Using + 'End Using '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ '------------------------------------------------------------------------------S I S T E M A ---------------------------------------------------------------------------------- '------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 'P A R A M E T R O S - Using ObjParametros As New ClsSisParametros - If ObjParametros.GetParametros Then Application("GlobalDTParametros") = ObjParametros.DtResultados Else Application("GlobalDTParametros") = Nothing - End Using + 'Using ObjParametros As New ClsSisParametros + ' If ObjParametros.GetParametros Then Application("GlobalDTParametros") = ObjParametros.DtResultados Else Application("GlobalDTParametros") = Nothing + 'End Using GuardaLogAsax(String.Format("Globalasax 35:{0}", DateTime.Now)) @@ -71,7 +71,6 @@ 'GuardaLogAsax(String.Format("Globalasax 41:{0}", DateTime.Now)) - BundleConfig.RegistrarBundles(BundleTable.Bundles) BundleTable.EnableOptimizations = True ' System.Web.UI.ValidationSettings.UnobtrusiveValidationMode = UnobtrusiveValidationMode.None @@ -82,8 +81,6 @@ Dim EmpresaNotificacionesGPS As New Empresa With {.SendMail = "ALERTAS@SIGNALSGPS.com", .SendMailPassword = "STJ180705IV42021ad", .SendMailServer = "mail.signalsgps.com", .SendMailPuerto = 587} ClsPaginas.EmpresaNotificacionesGPS = EmpresaNotificacionesGPS - - ''------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ '' R A S T R E O 'Using ObjGPS As New ClsGPS From 60b42d7586ddd6ed8a725aec8a5c980ed2a2aa03 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 07:34:25 -0700 Subject: [PATCH 48/87] -- concepto 237 liga a compras --- Contabilidad/RegPrePolizaS.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index 01919bb95..63da41dd8 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -570,7 +570,7 @@ Partial Class ContabilidadC_RegPrePolizaS Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301, 3, 11) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) - If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288, 370, 371, 372, 373) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) + If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 237, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288, 370, 371, 372, 373) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")) If CveConceptoContable.Contiene(30, 204, 66, 92, 202, 10, 21, 48, 56, 338, 339, 340, 345, 346, 347) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) From 60516e0a0e6fbc7e4e36ebc8f95a042e770ce6e4 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 08:48:28 -0700 Subject: [PATCH 49/87] -- cambios de regprepoliza. a RegPrePolizaS. --- App_Code/ClsPaginas.vb | 1 - Contabilidad/AuxiliarPrePolizas.aspx | 4 ++-- Contabilidad/CatContaEjercicios.aspx | 2 +- Contabilidad/ContabilizacionCompras.aspx | 8 ++++---- Contabilidad/ContabilizacionVentas.aspx | 8 ++++---- Contabilidad/FiltraPolizas.aspx | 2 +- Contabilidad/RegPoliza.aspx.vb | 4 +--- Contabilidad/RegPrePoliza.aspx | 2 +- Contabilidad/RepIVA.aspx | 2 +- Contratos/RepPresupuestosDetalleCompras.aspx.vb | 2 +- General/SaldosIniciales.aspx.vb | 2 +- General/SaldosMenores.aspx.vb | 2 +- Inventarios/EntradasSalidas.aspx.vb | 4 ++-- Nomina/Nomina.aspx.cs | 12 ++++++------ Ventas/ClientesAbonar.aspx.vb | 2 +- 15 files changed, 27 insertions(+), 30 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 01c926212..72e76494a 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -9995,7 +9995,6 @@ Public Class ClsPaginas PaginaDict.Add("/Contabilidad/RepIVADiferencias.aspx".ToUpper(), 127) PaginaDict.Add("/Contabilidad/PolizasImpresion.aspx".ToUpper(), 380) PaginaDict.Add("/Contabilidad/RegPrePolizaS.aspx".ToUpper(), 398) - PaginaDict.Add("/Contabilidad/RegPrePoliza.aspx".ToUpper(), 398) PaginaDict.Add("/Contabilidad/DescargaRespaldos.aspx".ToUpper(), 400) PaginaDict.Add("/Contabilidad/CatEjercicios.aspx".ToUpper(), 570) PaginaDict.Add("/Contabilidad/AnalisisVertical.aspx".ToUpper(), 416) diff --git a/Contabilidad/AuxiliarPrePolizas.aspx b/Contabilidad/AuxiliarPrePolizas.aspx index a21f9287d..1470e953c 100644 --- a/Contabilidad/AuxiliarPrePolizas.aspx +++ b/Contabilidad/AuxiliarPrePolizas.aspx @@ -141,9 +141,9 @@ CssClass="table table-striped table-advance table-hover Widthall ScrollAD" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" data-sort="true" Width="99%" OnRowDataBound="GvDatos_RowDataBound"> - + - + diff --git a/Contabilidad/CatContaEjercicios.aspx b/Contabilidad/CatContaEjercicios.aspx index 60eac9825..3933f8d91 100644 --- a/Contabilidad/CatContaEjercicios.aspx +++ b/Contabilidad/CatContaEjercicios.aspx @@ -74,7 +74,7 @@ - + diff --git a/Contabilidad/ContabilizacionCompras.aspx b/Contabilidad/ContabilizacionCompras.aspx index 74829a207..c3ac00eda 100644 --- a/Contabilidad/ContabilizacionCompras.aspx +++ b/Contabilidad/ContabilizacionCompras.aspx @@ -186,7 +186,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -383,7 +383,7 @@ - + @@ -473,7 +473,7 @@ - + diff --git a/Contabilidad/ContabilizacionVentas.aspx b/Contabilidad/ContabilizacionVentas.aspx index 407c6b052..d1e9551c1 100644 --- a/Contabilidad/ContabilizacionVentas.aspx +++ b/Contabilidad/ContabilizacionVentas.aspx @@ -154,7 +154,7 @@ - + @@ -246,7 +246,7 @@ - + @@ -335,7 +335,7 @@ - + @@ -424,7 +424,7 @@ - + diff --git a/Contabilidad/FiltraPolizas.aspx b/Contabilidad/FiltraPolizas.aspx index 8d4cd1cf5..993ff84f8 100644 --- a/Contabilidad/FiltraPolizas.aspx +++ b/Contabilidad/FiltraPolizas.aspx @@ -183,7 +183,7 @@ - + diff --git a/Contabilidad/RegPoliza.aspx.vb b/Contabilidad/RegPoliza.aspx.vb index d8e1ffc2b..75acec78a 100644 --- a/Contabilidad/RegPoliza.aspx.vb +++ b/Contabilidad/RegPoliza.aspx.vb @@ -152,9 +152,7 @@ Partial Class RegPoliza Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.LoadComplete If Not IsPostBack Then - If UsuarioActual.Empresa.TipoContabilizacion = 1 OrElse UsuarioActual.Empresa.TipoContabilidad = 1 Then - Response.Redirect("/Contabilidad/RegPrePolizaS.aspx") - End If + ViewState("Orden0") = "" ViewState("Orden1") = "" diff --git a/Contabilidad/RegPrePoliza.aspx b/Contabilidad/RegPrePoliza.aspx index 49a629720..d5387a20d 100644 --- a/Contabilidad/RegPrePoliza.aspx +++ b/Contabilidad/RegPrePoliza.aspx @@ -1,4 +1,4 @@ -<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RegPrePoliza.aspx.vb" Inherits="ContabilidadC_RegPrePoliza" EnableEventValidation="false" %> +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RegPrepoliza.aspx.vb" Inherits="ContabilidadC_RegPrePoliza" EnableEventValidation="false" %> diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index 9277a203e..e97c48b7a 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -390,7 +390,7 @@ - + diff --git a/Contratos/RepPresupuestosDetalleCompras.aspx.vb b/Contratos/RepPresupuestosDetalleCompras.aspx.vb index f1dafa0e4..9c7a70963 100644 --- a/Contratos/RepPresupuestosDetalleCompras.aspx.vb +++ b/Contratos/RepPresupuestosDetalleCompras.aspx.vb @@ -160,7 +160,7 @@ Partial Class Contratos_RepPresupuestosDetalleCompras Case 1 Liga = $"/Compras/Compras.aspx?&CveCompra={e.Row.DBCampo("CveCompra")}" Case 2 - Liga = $"/Contabilidad/RegPrePoliza.aspx?&CvePrePoliza={e.Row.DBCampo("CveCompra")}" + Liga = $"/Contabilidad/RegPrepolizaS.aspx?&CvePrePoliza={e.Row.DBCampo("CveCompra")}" Case Else End Select diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 9d6435422..567f194cf 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -2566,7 +2566,7 @@ Partial Class General_SaldosIniciales If Not TieneError Then ObjConta.Commit() - Alert(String.Format("

    Prepóliza: Prepóliza", CvePrePoliza, ObjConta.ContaFolio)) + Alert(String.Format("

    Prepóliza: Prepóliza", CvePrePoliza, ObjConta.ContaFolio)) Alert($"Se agregó la póliza {ObjConta.ContaFolio}") diff --git a/General/SaldosMenores.aspx.vb b/General/SaldosMenores.aspx.vb index 23b0c27fd..d4e14e130 100644 --- a/General/SaldosMenores.aspx.vb +++ b/General/SaldosMenores.aspx.vb @@ -658,7 +658,7 @@ Partial Public Class General_SaldosMenores 'DvSaldar.Visible = False CargaDatosVentas() 'RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") - Alert(String.Format("Los movimientos se saldaron correctamente.
    Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) + Alert(String.Format("Los movimientos se saldaron correctamente.
    Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) 'BtnSaldarCuentasIncobrables.Visible = False Else ObjConta.RollBack() diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 74b6c7b74..8665395c8 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -844,7 +844,7 @@ Partial Class Inventarios_EntradasSalidas If DtMov.Rows(0)("CvePrePoliza").ToString.ToEntero > 0 Then HplPrePoliza.Visible = True - HplPrePoliza.NavigateUrl = String.Format("/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={0}", DtMov.Rows(0)("CvePrePoliza")) + HplPrePoliza.NavigateUrl = String.Format("/Contabilidad/RegPrepolizaS.aspx?CvePrePoliza={0}", DtMov.Rows(0)("CvePrePoliza")) CvePrePoliza = DtMov.Rows(0)("CvePrePoliza").ToString.ToEntero Else If UsuarioActual.CveRol = 1 Then @@ -4066,7 +4066,7 @@ Partial Class Inventarios_EntradasSalidas ObjConta.Dispose() If CvePrePolizaRegistrada > 0 Then - Response.Redirect($"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaRegistrada}", True) + Response.Redirect($"../Contabilidad/RegPrePolizas.aspx?CvePrePoliza={CvePrePolizaRegistrada}", True) End If Else diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index e7bcf46a6..bc55c5c63 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -666,10 +666,10 @@ public partial class Nomina_Nomina2 : ClsPaginas LnkLayoutContable.Visible = (Estatus >= 2); LnkProvisionNomina.Visible = CvePrePolizaProvision > 0; - LnkProvisionNomina.NavigateUrl = $"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaProvision}"; + LnkProvisionNomina.NavigateUrl = $"../Contabilidad/RegPrepolizaS.aspx?CvePrePoliza={CvePrePolizaProvision}"; LnkProvisionNominaAsimilados.Visible = CvePrePolizaProvisionAsimilados > 0; - LnkProvisionNominaAsimilados.NavigateUrl = $"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaProvisionAsimilados}"; - LnkProvisionProrrateo.NavigateUrl = $"../Contabilidad/RegPrePoliza.aspx?CvePrePoliza={CvePrePolizaProrrateo}"; + LnkProvisionNominaAsimilados.NavigateUrl = $"../Contabilidad/RegPrepolizaS.aspx?CvePrePoliza={CvePrePolizaProvisionAsimilados}"; + LnkProvisionProrrateo.NavigateUrl = $"../Contabilidad/RegPrepolizaS.aspx?CvePrePoliza={CvePrePolizaProrrateo}"; LnkProvisionProrrateo.Visible = CvePrePolizaProrrateo > 0; UpAccciones.Update(); } @@ -9017,14 +9017,14 @@ public partial class Nomina_Nomina2 : ClsPaginas CvePrePolizaasmilidos = objnom.DtResultados.Rows[0]["CvePrePolizaAsimilables"].ToString().ToEntero(); CvePrePolizaProrrateo = objnom.DtResultados.Rows[0]["CvePrePolizaProrrateo"].ToString().ToEntero(); } - string mensaje = string.Format("La provisión a sido generada.
    Provisión
    ", CvePrePolizaProvision); + string mensaje = string.Format("La provisión a sido generada.
    Provisión
    ", CvePrePolizaProvision); if (CvePrePolizaasmilidos > 0) { - mensaje = string.Format("{0} Asimilados
    ", mensaje, CvePrePolizaasmilidos); + mensaje = string.Format("{0} Asimilados
    ", mensaje, CvePrePolizaasmilidos); } if (CvePrePolizaProrrateo > 0) { - mensaje = string.Format("{0} Prorrateo
    ", mensaje, CvePrePolizaProrrateo); + mensaje = string.Format("{0} Prorrateo
    ", mensaje, CvePrePolizaProrrateo); } if (CvePrePolizaProvision > 0) { diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 065f12ade..eecbe080e 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -2421,7 +2421,7 @@ Partial Class Ventas_ClientesAbonar ObjConta.Commit() CargaDatos(CveMonedaFiltro) RegistraScript("$('#ModalSaldarCuentaIncobrable').modal('hide')") - Alert(String.Format("Los movimientos se saldaron correctamente.
    Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) + Alert(String.Format("Los movimientos se saldaron correctamente.
    Ver PrePóliza", CvePrePoliza), TipoMensaje.MsgInformacion) BtnSaldarCuentasIncobrables.Visible = False Else ObjConta.RollBack() From 7c97dd25486839aca3b8b84ada705d6d8e7bf6c3 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 08:51:21 -0700 Subject: [PATCH 50/87] - cambio de regPrePoliza a RegPrePolizas --- Bancos/Creditos.aspx.vb | 2 +- Bancos/PagoAcreedor.aspx | 7 +++++-- Bancos/PagoAcreedor.aspx.cs | 25 ++++++++++++++++--------- Bancos/PagoDeudor.aspx.cs | 4 ++-- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/Bancos/Creditos.aspx.vb b/Bancos/Creditos.aspx.vb index 57f66289e..7ae86544c 100644 --- a/Bancos/Creditos.aspx.vb +++ b/Bancos/Creditos.aspx.vb @@ -416,7 +416,7 @@ Partial Class Bancos_Creditos If ObjCreditos.CvePrePoliza > 0 Then UpSaldo.Visible = True LbFacturaFecha.Text = ObjCreditos.FacturaFecha.ToShortDateString - HLSaldoPrePoliza.NavigateUrl = $"/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={ObjCreditos.CvePrePoliza}" + HLSaldoPrePoliza.NavigateUrl = $"/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={ObjCreditos.CvePrePoliza}" LbSaldo.Text = $"Saldo Acreedor " If ObjCreditos.GetBancosIEMovimientos(dr("CveIE").ToString.ToEntero, UsuarioActual.CveEmpresa) AndAlso ObjCreditos.DtResultados.Rows.Count > 0 Then diff --git a/Bancos/PagoAcreedor.aspx b/Bancos/PagoAcreedor.aspx index bff947397..704c2ed38 100644 --- a/Bancos/PagoAcreedor.aspx +++ b/Bancos/PagoAcreedor.aspx @@ -231,7 +231,7 @@
    -
    +
    $ @@ -246,7 +246,7 @@
    -
    +
    @@ -271,6 +271,9 @@ Deudores Diversos
    +
    + +
    diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs index c357c01e4..073e20488 100644 --- a/Bancos/PagoAcreedor.aspx.cs +++ b/Bancos/PagoAcreedor.aspx.cs @@ -441,7 +441,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas // Msg.AppendFormat(@"

    Ver Póliza", IDPoliza); //} - Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); + Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); Msg.AppendFormat($"Imprimir"); } @@ -660,7 +660,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas //{ // Msg.AppendFormat(@"

    Ver Póliza", IDPoliza); //} - Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); + Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); Msg.AppendFormat($"Imprimir"); } @@ -764,21 +764,28 @@ public partial class Bancos_PagoAcreedor : ClsPaginas protected void DdlOtrosPagos_SelectedIndexChanged(object sender, EventArgs e) { - if (DdlOtrosPagos.SelectedValue != "-1") + divDD.Visible = false; + if (DdlOtrosPagos.SelectedValue == "2") { TxtOtrosImportes.Visible = true; TxtTotal.Visible = true; GvMovAcreedor.Columns[8].Visible = true; - } - else - { - TxtOtrosImportes.Visible = false; - TxtTotal.Visible = false; - GvMovAcreedor.Columns[8].Visible = false; TxtOtrosImportes.Text = ""; TxtTotal.Text = ""; RegistraScript($"$get('TxtImporte').value = FormatoNumero(SumaValores({CveMonedaCuentaPago}), 2);"); } + else + { + if (DdlOtrosPagos.SelectedValue == "3") + { + TxtDDImporte.Text = ""; + divDD.Visible = true; + RegistraScript($"$get('TxtImporte').value = FormatoNumero(SumaValores({CveMonedaCuentaPago}), 2);"); + } + TxtOtrosImportes.Visible = false; + TxtTotal.Visible = false; + GvMovAcreedor.Columns[8].Visible = false; + } UpDatos.Update(); UpMovAcreedor.Update(); } diff --git a/Bancos/PagoDeudor.aspx.cs b/Bancos/PagoDeudor.aspx.cs index 5ca8a834f..5ad741ffb 100644 --- a/Bancos/PagoDeudor.aspx.cs +++ b/Bancos/PagoDeudor.aspx.cs @@ -349,7 +349,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas //{ // Msg.AppendFormat(@"

    Ver Póliza", IDPoliza); //} - Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); + Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); Msg.AppendFormat($"Imprimir"); } @@ -723,7 +723,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas //{ // Msg.AppendFormat(@"

    Ver Póliza", IDPoliza); //} - Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); + Msg.AppendFormat(@"Ver Póliza
    ", CvePrePoliza); Msg.AppendFormat($"Imprimir"); } From c8db06ef249b32c1e1e9d2bcd27669c53d84da55 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 09:28:11 -0700 Subject: [PATCH 51/87] - liga de conex --- Ashx/E141.ashx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx index ebe1a5513..428d0d0ea 100644 --- a/Ashx/E141.ashx +++ b/Ashx/E141.ashx @@ -62,7 +62,7 @@ Public Class E141 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe #Region "V A L I D A - D A T O S" Private Function ValidaUsuarioSistema(CveUsuario As Integer, CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:="VentasEcono") + Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:="ConexionEcono") If ObjUsuarios.GetUsuarios(CveUsuario) Then If ObjUsuarios.DtResultados.Rows.Count > 0 Then Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() @@ -1674,7 +1674,7 @@ Public Class E141 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios + Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:="ConexionEcono") If ObjUsuarios.GetUsuarios(100) Then If ObjUsuarios.DtResultados.Rows.Count > 0 Then Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() From 2364d40a9f470be4456743ac59f6e7d2865e4029 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 09:28:19 -0700 Subject: [PATCH 52/87] - --- Bancos/PagoDeudor.aspx.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Bancos/PagoDeudor.aspx.cs b/Bancos/PagoDeudor.aspx.cs index 5ad741ffb..04f6e33d2 100644 --- a/Bancos/PagoDeudor.aspx.cs +++ b/Bancos/PagoDeudor.aspx.cs @@ -186,7 +186,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas int CvePlantillaPoliza = 45; int CvePrePoliza = 0; int FolioFijo = 0; - int IDPoliza = 0; + //int IDPoliza = 0; decimal tipoCambio = (CveMonedaPrestamo == 2) ? TxtTCDolaresPrestamo.Text.ToDecimal() : 1; StringBuilder Msg = new StringBuilder(); @@ -467,7 +467,7 @@ public partial class Bancos_PagoDeudor : ClsPaginas int CvePrePoliza = 0; int CveMoneda = get_GlobalDTBancosCuentas(-1, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero()}").ToEntero(); int FolioFijo = 0; - int IDPoliza = 0; + //int IDPoliza = 0; decimal tipoCambio = (TxtTCDolaresPago.Visible == true) ? TxtTCDolaresPago.Text.ToDecimal() : 1; decimal importeMN = HdnImporteMN.Value.ToDecimal(); StringBuilder Msg = new StringBuilder(); From 023796db589fe36faf0ad55550c265aeaaa7c3f4 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 29 Jun 2024 10:23:56 -0700 Subject: [PATCH 53/87] =?UTF-8?q?--validaci=C3=B3n=20de=20dominio=20y=20ca?= =?UTF-8?q?denaconex?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sistemas/PopUpCambiaUsuario.aspx.vb | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Sistemas/PopUpCambiaUsuario.aspx.vb b/Sistemas/PopUpCambiaUsuario.aspx.vb index 55fa8f59d..0a1931333 100644 --- a/Sistemas/PopUpCambiaUsuario.aspx.vb +++ b/Sistemas/PopUpCambiaUsuario.aspx.vb @@ -95,7 +95,24 @@ Partial Class Sistemas_PopUpCambiaUsuario tContraseña = gvr.DataKey("Contraseña").ToString tCveEmpresa = gvr.DataKey("CveEmpresa").ToString.ToEntero - Dim ObjUsuario As New ClsSisUsuarios + Dim tGrupoEmpresa As String = "" + Dim NombreCadena As String = "Conexion" + If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" + If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" + If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" + If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" + If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" + If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" + If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" + If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" + If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" + If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" + If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" + If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" + If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" + If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" + + Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) Dim Usuario As Usuario 'Dim UsuarioAsignaciones As Usuario From f65ff0d7e3c7fc0c73ece1d327b3e16d50b9af2c Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 29 Jun 2024 15:45:22 -0700 Subject: [PATCH 54/87] =?UTF-8?q?--FIX.=20usuario=20no=20tiene=20permiso?= =?UTF-8?q?=20para=20facturar=20ni=20cotizar,=20ni=20nada,=20pero=20sale?= =?UTF-8?q?=20editar=20remisi=C3=B3n=20y=20facturar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index e4df44d3f..c9e97700d 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -5928,6 +5928,9 @@ Partial Class Ventas 'ACTIVA BOTONERA | DEBE TENER CONCEPTOS PENDIENTES DE FACTURAR If (TmpDT.SUM("CantidadFacturadaRem") < TmpDT.SUM("Cantidad")) AndAlso TieneBloqueoPorCreditoVencimiento = 0 Then BtnsFacturar.Visible = True + If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + BtnsFacturar.Visible = UsuarioActual.TienePermisoProceso(60) + End If 'E119, bloquear la facturación de remisiones que no estén surtidas If UsuarioActual.CveEmpresa = 119 Then From b6f8612c1b0707c8911993ea7cfd1ae95e953f78 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:19:00 -0700 Subject: [PATCH 55/87] =?UTF-8?q?--=20nombreconexi=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsPaginas.vb | 56 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 72e76494a..6e721d930 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -60,6 +60,62 @@ Public Class ClsPaginas End If End Get End Property + Public Shared ReadOnly Property GlobalGrupoEmpresa(Dominio As String) As String + Get + Dim Retorno As String = "" + Dominio = Dominio.ToUpper + If Dominio.Contains("EMD".ToUpper()) Then Retorno = "EMD" + If Dominio.Contains("BDH".ToUpper()) Then Retorno = "BDH" + If Dominio.Contains("ECONOLLANTAS".ToUpper()) Then Retorno = "ECONOLLANTAS" + If Dominio.Contains("JAM".ToUpper()) Then Retorno = "JAM" + If Dominio.Contains("CITRUS".ToUpper()) Then Retorno = "CITRUS" + If Dominio.Contains("KINO".ToUpper()) Then Retorno = "KINO" + If Dominio.Contains("VSH".ToUpper()) Then Retorno = "VSH" + If Dominio.Contains("AJAM".ToUpper()) Then Retorno = "AJAM" + If Dominio.Contains("ALATEL".ToUpper()) Then Retorno = "ALATEL" + If Dominio.Contains("SERVEC".ToUpper()) Then Retorno = "SERVEC" + If Dominio.Contains("SMS".ToUpper()) Then Retorno = "SMS" + If Dominio.Contains("VYA".ToUpper()) Then Retorno = "VYA" + If Dominio.Contains("GRUPODIAZ".ToUpper()) Then Retorno = "GRUPODIAZ" + If Dominio.Contains("FERRETERA".ToUpper()) Then Retorno = "FERRETERA" + Return Retorno + End Get + End Property + + Public Shared ReadOnly Property GlobalNombreCadenaConexionDominio(Dominio As String) As String + Get + Dim Retorno As String = "Conexion" + Dominio = Dominio.ToUpper + 'If Dominio.Contains("EMD".ToUpper()) Then Retorno = "EMD" + 'If Dominio.Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" + If Dominio.Contains("ECONOLLANTAS".ToUpper()) Then Retorno = "ConexionEcono" + 'If Dominio.Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" + 'If Dominio.Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" + 'If Dominio.Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" + 'If Dominio.Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" + 'If Dominio.Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" + 'If Dominio.Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" + 'If Dominio.Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" + 'If Dominio.Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" + 'If Dominio.Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" + 'If Dominio.Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" : NombreCadena = "ConexionGDiaz" + 'If Dominio.Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" + Return Retorno + End Get + End Property + + Public Shared ReadOnly Property GlobalNombreCadenaConexion(CveEmpresa As Integer) As String + Get + Dim Retorno As String = "Conexion" + Select Case CveEmpresa + Case 141, 152, 159, 160, 161, 162, 163, 166 + Retorno = "ConexionEcono" + End Select + + Return Retorno + End Get + End Property + Public Shared ReadOnly Property UrlDirecciones As String Get If IsNothing(System.Configuration.ConfigurationManager.AppSettings("UrlDirecciones")) Then From 487edd186f148fbc6337af0c2d7bc9e2ca278739 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:19:12 -0700 Subject: [PATCH 56/87] -- validar acceso al usuario. --- App_Code/ClsSisEmpresas.vb | 4 +- App_Code/ClsSisNotificaciones.vb | 22 +- App_Code/ClsSisUsuarioAutenticacion.vb | 564 +++++++++++++++++++++++++ App_Code/ClsSisUsuarios.vb | 523 ++--------------------- App_Code/ClsVentas.vb | 29 +- App_Code/WS/WSUSer.vb | 2 +- App_Code/WsSIGWeb.vb | 132 +++--- App_Code/wsSIG.vb | 6 +- Ashx/E119.ashx | 48 +-- Ashx/E141.ashx | 63 ++- Ashx/E48.ashx | 16 +- Ashx/MHRedes.ashx | 13 +- Ashx/SIGFacturacion.ashx | 16 +- Ashx/SIGFacturacionCiclica.ashx | 16 +- Ashx/SIGFreightVerify.ashx | 285 +++++++------ Ashx/SIGPolizaVirtual.ashx | 44 +- Ashx/TareasProgramadas.ashx | 56 +-- 17 files changed, 934 insertions(+), 905 deletions(-) create mode 100644 App_Code/ClsSisUsuarioAutenticacion.vb diff --git a/App_Code/ClsSisEmpresas.vb b/App_Code/ClsSisEmpresas.vb index a417989b0..2d35a0c3d 100644 --- a/App_Code/ClsSisEmpresas.vb +++ b/App_Code/ClsSisEmpresas.vb @@ -204,11 +204,11 @@ Public Class ClsSisEmpresas 'Public Property PwdContPAQi As String #End Region - Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing, Optional NombreCadena As String = "Conexion") + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing, Optional UsuarioActual As Usuario = Nothing) If TransaccionCompartida Is Nothing Then SqlConexion = New SqlConnection - SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString + SqlConexion.ConnectionString = If(UsuarioActual IsNot Nothing, UsuarioActual.RutaDB, ClsPaginas.UsuarioActualRutaDB) Try SqlConexion.Open() Catch ex As Exception diff --git a/App_Code/ClsSisNotificaciones.vb b/App_Code/ClsSisNotificaciones.vb index 91485aa7d..082e9a966 100644 --- a/App_Code/ClsSisNotificaciones.vb +++ b/App_Code/ClsSisNotificaciones.vb @@ -248,18 +248,16 @@ Public Class ClsSisNotificaciones #Region "V A L I D A - U S U A R I O" Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario - Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(100) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, IMEI, CveEmpresa) - UsuarioActual.CveEmpresa = CveEmpresa - CreaObjetoEmpresa(UsuarioActual) - End If - End If - ObjUsuarios.Dispose() + Dim UsuarioActual As Usuario = Nothing + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100) + If UsuarioActual IsNot Nothing Then + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual + CreaObjetoEmpresa(UsuarioActual) + End If + ObjUsuarios.Dispose() + Return UsuarioActual End Function Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) diff --git a/App_Code/ClsSisUsuarioAutenticacion.vb b/App_Code/ClsSisUsuarioAutenticacion.vb new file mode 100644 index 000000000..7491db69c --- /dev/null +++ b/App_Code/ClsSisUsuarioAutenticacion.vb @@ -0,0 +1,564 @@ +Option Explicit On +Option Strict On + +Imports System.Data +Imports System.Data.SqlClient +Imports Extensiones +Public Class ClsSisUsuarioAutenticacion + Implements IDisposable + + +#Region "Campos" + + 'SQL + Private SqlConexion As SqlConnection + Private SqlAdapter As SqlDataAdapter + Private SqlTransacc As SqlTransaction + Private SqlCommand As SqlCommand + Private Data As DataTable + + 'Atributos de la clase + + Private disposedValue As Boolean = False ' Para detectar llamadas redundantes + 'PARA REGISTRAR CONEXION + Private CveConexion As Integer = 0 + Private ConnStr As String = "" + +#End Region + +#Region "Propiedades" + + Public ReadOnly Property DtResultados() As DataTable + Get + DtResultados = Data + End Get + End Property + + + Public Property CveUsuario As Integer + Public Property Usuario As String + Public Property Nombre As String + Public Property CveRol As Integer + Public Property Correo As String + Public Property CveSupervisa As Integer + Public Property CveAutoriza As Integer + Public Property CveEmpresa As Integer + Public Property CveAlmacen As Integer + Public Property CveEmpresaPredeterminada As Integer + Public Property CvePersonal As Integer + Public Property CveVendedor As Integer + Public Property CveTipoDocumento As String + Public Property Estado As Boolean + Public Property Fecha As DateTime + Public Property Registro As Integer + Public Property UsuarioCreo As String + Public Property Contraseña As String + Public Property EsLogIn As Integer + Public Property FechaUltimoAcceso As Date + Public Property FechaUltimoCambioContraseña As Date + Public Property PolCambiarContraseña As Boolean + Public Property TipoControl As Integer + Public Property CveSubProyecto As Integer + Public Property AsignarAutomaticamenteSubProyecto As Boolean + Public Property AsignarAutomaticamenteOC As Boolean + Public Property DescuentoAutorizado As Double +#End Region + + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing, Optional NombreCadena As String = "Conexion") + + If TransaccionCompartida Is Nothing Then + SqlConexion = New SqlConnection + SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString + ConnStr = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString + Try + SqlConexion.Open() + Catch ex As Exception + OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex) + End Try + Else + SqlConexion = TransaccionCompartida.Connection + SqlTransacc = TransaccionCompartida + End If + + SqlCommand = New SqlCommand("", SqlConexion) + SqlAdapter = New SqlDataAdapter("", SqlConexion) + ConexionAdd() + End Sub + Private Sub DataAdapter(StrSQL As String, Optional TipoComando As CommandType = CommandType.StoredProcedure) + With SqlAdapter.SelectCommand + .Parameters.Clear() + .CommandText = StrSQL + .CommandType = TipoComando + End With + If Not SqlTransacc Is Nothing Then SqlAdapter.SelectCommand.Transaction = SqlTransacc + Data = New DataTable + End Sub +#Region "Conexiones" + + Private Sub ConexionAdd() + If ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then + + Try + 'DataAdapter(String.Format("INSERT INTO Sis_Conexiones (Clase,Modulo) VALUES ('ClsRH','{0}')", "RH/CatMotivosBaja"), CommandType.Text) ' pendiente de terminar parra registrar el cveconexion, falta el rarámetro de módulo + DataAdapter("PA_Sis_RegistrarConexion") + With SqlAdapter.SelectCommand.Parameters + .Add("@Clase", SqlDbType.VarChar).Value = Me.GetType().Name + .Add("@Modulo", SqlDbType.VarChar).Value = String.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString, HttpContext.Current.Request.QueryString.ToString) + .Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output + End With + SqlAdapter.Fill(Data) + CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero + Catch ex As Exception + OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + End If + End Sub + + Private Sub ConexionClose() + If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then + + DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text) + Try + SqlAdapter.Fill(Data) + + Catch ex As Exception + OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + CveConexion = 0 + + End If + + End Sub +#End Region + Private Sub DataCommand(pStrSQL As String, Optional TipoComando As CommandType = CommandType.StoredProcedure) + With SqlCommand + .Parameters.Clear() + .CommandText = pStrSQL + .CommandType = TipoComando + End With + + If Not SqlTransacc Is Nothing Then SqlCommand.Transaction = SqlTransacc + + End Sub + Public Function IniciaTransacSQL() As SqlTransaction + If SqlTransacc Is Nothing Then SqlTransacc = SqlConexion.BeginTransaction() + Return SqlTransacc + End Function + Public Sub RollBack() + If SqlTransacc IsNot Nothing Then SqlTransacc.Rollback() + SqlTransacc = Nothing + End Sub + Public Sub Commit() + If SqlTransacc IsNot Nothing Then SqlTransacc.Commit() + SqlTransacc = Nothing + End Sub + + Public Function UsuariosGetTokenXEquipo(CveUsuario As Integer, CveUsuarioAutoriza As Integer, AdsCodex As String) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Sis_UsuariosGetTokenXEquipo") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveUsuarioAutoriza", SqlDbType.Int).Value = CveUsuarioAutoriza + .Add("@AdsCodex", SqlDbType.VarChar).Value = AdsCodex + End With + Try + SqlAdapter.Fill(Data) + 'If Data.Rows.Count > 0 Then + ' = Data.Rows(0)("Token").ToString() + 'End If + Retorno = True + Catch ex As SqlException + OnError("Ocurrio un error al guardar token por equipo.", ex) + Retorno = False + End Try + Return Retorno + End Function + + Public Function GetModulosUsuariosPlataforma(CveUsuario As Integer, CvePlataforma As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("SELECT M.* FROM [dbo].[UsuariosModulos] UM INNER JOIN Modulos M ON M.CveModulo=UM.CveModulo WHERE M.CvePlataforma =@CvePlataforma AND @CveUsuario = UM .CveUsuario AND UM.Permitir =1", CommandType.Text) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CvePlataforma", SqlDbType.Int).Value = CvePlataforma + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As SqlException + OnError("Ocurrio un error al obtener el menu.", ex) + Retorno = False + End Try + Return Retorno + End Function + Public Function ValidaUsuario(Usuario As String, Password As String, Optional CveEmpresa As Integer = -1, Optional GrupoEmpresa As String = "", Optional GenerarMenu As Boolean = True) As Usuario + Dim Retorno As Usuario = Nothing + DataAdapter("PA_Sis_UsuarioValidacionGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@Usuario", SqlDbType.VarChar).Value = Usuario + .Add("@Contraseña", SqlDbType.VarChar).Value = Password + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@GrupoEmpresa", SqlDbType.VarChar).Value = GrupoEmpresa + End With + Try + SqlAdapter.Fill(Data) + + If Data.Rows.Count > 0 Then + Retorno = New Usuario + + Retorno.Acceso = Data.Rows(0)("Acceso").ToString().ToEntero() + Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString().ToEntero() + Retorno.Usuario = Usuario + Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString() + Retorno.Nombre = Data.Rows(0)("Nombre").ToString() + Retorno.CveRol = Data.Rows(0)("CveRol").ToString().ToEntero() + Retorno.Rol = Data.Rows(0)("Rol").ToString() + + If CveEmpresa > 0 Then Retorno.CveEmpresa = CveEmpresa Else Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString().ToEntero() + Retorno.CvePlataforma = Data.Rows(0)("CvePlataforma").ToString().ToEntero() + + Retorno.FechaUltimoAcceso = Data.Rows(0)("FechaUltimoAcceso").ToString().ToDate() + Retorno.FechaUltimoCambioContraseña = Data.Rows(0)("FechaUltimoCambioContraseña").ToString().ToDate() + Retorno.ActCambiarContraseña = If(Data.Rows(0)("ActCambiarContraseña").ToString() = "SI", True, False) + Retorno.TipoControl = Data.Rows(0)("TipoControl").ToString().ToEntero() + '* + Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString().ToEntero() + Retorno.EsSupervisorRH = CBool(Data.Rows(0)("EsSupervisorRH").ToString()) + + Retorno.CveCliente = Data.Rows(0)("CveCliente").ToString().ToEntero() + Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString().ToEntero() + + Retorno.NombreAbreviatura = Data.Rows(0)("NombreAbreviatura").ToString() + Retorno.DescuentoAutorizado = Data.Rows(0)("DescuentoAutorizado").ToString().ToDouble() + + Retorno.PorcentajeMaximoAutorizacion = Data.Rows(0)("PorcentajeMaximoAutorizacion").ToString().ToDecimal() + Retorno.DiasMaximoAutorizacion = Data.Rows(0)("DiasMaximoAutorizacion").ToString().ToEntero() + + Retorno.CodigoAutorizado = Data.Rows(0)("CodigoAutorizado").ToString() + Dim autoip As String = Data.Rows(0)("AutorizadoxIP").ToString().ToUpper() + Retorno.AutorizadoxIP = (autoip = "1" OrElse autoip = "TRUE") + Retorno.RutaDB = ConnStr + + ' Esto es parta el punto de venta + Retorno.CveSucursal = Data.Rows(0)("CveSubProyecto").ToString().ToEntero + + Dim ObjUsr As New ClsSisUsuarios(UsuarioActual:=Retorno) + + 'cargo los modulos del usuario y genero el menú + Dim dttmp As DataTable = ObjUsr.GetUsuariosRolesModulos(Retorno.CveUsuario, Retorno.CveEmpresa) + If GenerarMenu Then GeneraMenu(Retorno.CveUsuario, dttmp, Retorno.CvePlataforma) + + Dim UsuariosModulos As New HybridDictionary + For Each Row As DataRow In dttmp.Rows + UsuariosModulos.Add(Convert.ToInt32(Row("CveModulo")), Row("CveModulo").ToString) + Next + Retorno.Modulos = UsuariosModulos + 'cargo los procesos del usuario + dttmp = ObjUsr.GetUsuariosRolesProcesos(Retorno.CveUsuario) + Dim UsuariosProcesos As New HybridDictionary + For Each Row As DataRow In dttmp.Rows + UsuariosProcesos.Add(Convert.ToInt32(Row("CveProceso")), Row("CveProceso").ToString) + Next + Retorno.Procesos = UsuariosProcesos + + Dim UsuariosIndicadores As New HybridDictionary + Dim dTableIndicadores As DataTable = ObjUsr.getUsuarioIndicadores(Retorno.CveUsuario, Retorno.CveEmpresa, Retorno.CveRol) + + + For Each Row As DataRow In dTableIndicadores.Rows + UsuariosIndicadores.Add(Convert.ToInt32(Row("CveIndicador")), Row("Indicador").ToString) + Next + Retorno.Indicadores = UsuariosIndicadores + + If ObjUsr.GetUsuariosDetalleAsignaciones(Retorno.CveUsuario, If(CveEmpresa = -1, Retorno.CveEmpresa, CveEmpresa)) Then + Dim drt As DataRow = ObjUsr.DtResultados.FiltroPrimero("") + Retorno.CveSubProyecto = drt("CveSucursal").ToString.ToEntero + Retorno.CveVendedor = drt("CveVendedor").ToString.ToEntero + Retorno.CvePersonal = drt("CvePersonal").ToString.ToEntero + Retorno.CveAlmacen = drt("CveAlmacen").ToString.ToEntero + Retorno.CveTipoDocumento = drt("CveTipoDocumento").ToString + Else + Retorno.CveSubProyecto = -1 + Retorno.CveVendedor = -1 + Retorno.CvePersonal = -1 + Retorno.CveAlmacen = -1 + Retorno.CveTipoDocumento = "-1" + End If + + Dim ObjEmpresa As New ClsSisEmpresas(UsuarioActual:=Retorno) + If ObjEmpresa.GetEmpresas(Retorno.CveEmpresa, "-1", "-1", "-1", "-1") Then + If ObjEmpresa.GetEmpresasFuncionalidades(Retorno.CveEmpresa) Then + Dim dttmp2 As Data.DataTable = ObjEmpresa.DtResultados + + Dim EmpresasFuncionalidades As New HybridDictionary + For Each Row As Data.DataRow In dttmp2.Rows + EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + Next + ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + End If + Retorno.Empresa = ObjEmpresa.Empresa + End If + ObjEmpresa.Dispose() + + If ObjUsr.GetUsuariosEmpresas(Retorno.CveUsuario, -1) Then + Dim dt As Data.DataTable = ObjUsr.DtResultados + If dt IsNot Nothing Then + If dt.Rows.Count >= 1 Then + If dt.Rows.Count > 1 Then + Retorno.MultipleEmpresa = True + End If + End If + End If + dt.Dispose() + End If + Retorno.ListaPersonalizacion = ObjUsr.CargaPersonalizacionUsuario(Retorno.CveUsuario) + ObjUsr.Dispose() + End If + + Catch ex As SqlException + OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) + Retorno = Nothing + End Try + + Return Retorno + End Function + + Public Function GetUsuarioDetalle(CveUsuario As Integer, Optional CveEmpresa As Integer = -1) As Usuario + + Dim Retorno As Usuario = Nothing + DataAdapter("PA_Sis_UsuariosGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveRol", SqlDbType.Int).Value = -1 + .Add("@Usuario", SqlDbType.VarChar).Value = "-1" + .Add("@Contraseña", SqlDbType.VarChar).Value = "-1" + .Add("@EsLogIn", SqlDbType.Bit).Value = 0 + End With + + Try + SqlAdapter.Fill(Data) + If Data IsNot Nothing AndAlso Data.Rows.Count > 0 Then + Retorno = New Usuario + + Retorno.Acceso = Data.Rows(0)("Acceso").ToString().ToEntero() + Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString().ToEntero() + Retorno.Usuario = Usuario + Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString() + Retorno.Nombre = Data.Rows(0)("Nombre").ToString() + Retorno.CveRol = Data.Rows(0)("CveRol").ToString().ToEntero() + Retorno.Rol = Data.Rows(0)("Rol").ToString() + + If CveEmpresa > 0 Then Retorno.CveEmpresa = CveEmpresa Else Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString().ToEntero() + Retorno.CvePlataforma = Data.Rows(0)("CvePlataforma").ToString().ToEntero() + + Retorno.FechaUltimoAcceso = Data.Rows(0)("FechaUltimoAcceso").ToString().ToDate() + Retorno.FechaUltimoCambioContraseña = Data.Rows(0)("FechaUltimoCambioContraseña").ToString().ToDate() + Retorno.ActCambiarContraseña = If(Data.Rows(0)("ActCambiarContraseña").ToString() = "SI", True, False) + Retorno.TipoControl = Data.Rows(0)("TipoControl").ToString().ToEntero() + '* + Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString().ToEntero() + Retorno.EsSupervisorRH = CBool(Data.Rows(0)("EsSupervisorRH").ToString()) + + Retorno.CveCliente = Data.Rows(0)("CveCliente").ToString().ToEntero() + Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString().ToEntero() + + Retorno.NombreAbreviatura = Data.Rows(0)("NombreAbreviatura").ToString() + Retorno.DescuentoAutorizado = Data.Rows(0)("DescuentoAutorizado").ToString().ToDouble() + + Retorno.PorcentajeMaximoAutorizacion = Data.Rows(0)("PorcentajeMaximoAutorizacion").ToString().ToDecimal() + Retorno.DiasMaximoAutorizacion = Data.Rows(0)("DiasMaximoAutorizacion").ToString().ToEntero() + + Retorno.CodigoAutorizado = Data.Rows(0)("CodigoAutorizado").ToString() + Dim autoip As String = Data.Rows(0)("AutorizadoxIP").ToString().ToUpper() + Retorno.AutorizadoxIP = (autoip = "1" OrElse autoip = "TRUE") + Retorno.RutaDB = ConnStr + + ' Esto es parta el punto de venta + Retorno.CveSucursal = Data.Rows(0)("CveSubProyecto").ToString().ToEntero + Dim ObjEmpresa As New ClsSisEmpresas(UsuarioActual:=Retorno) + If ObjEmpresa.GetEmpresas(Retorno.CveEmpresa, "-1", "-1", "-1", "-1") Then + If ObjEmpresa.GetEmpresasFuncionalidades(Retorno.CveEmpresa) Then + Dim dttmp2 As Data.DataTable = ObjEmpresa.DtResultados + + Dim EmpresasFuncionalidades As New HybridDictionary + For Each Row As Data.DataRow In dttmp2.Rows + EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + Next + ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + End If + Retorno.Empresa = ObjEmpresa.Empresa + End If + ObjEmpresa.Dispose() + End If + + Return Retorno + + Catch ex As SqlException + OnError("Ocurrio un error al Consultar Usuarios.", ex) + End Try + + Return Retorno + End Function + + 'Public Function ValidaUsuarioAsignacion(CveUsuario As Integer, CveEmpresa As Integer) As Usuario + ' Dim Retorno As Usuario = Nothing + + ' DataAdapter("PA_Sis_UsuariosAsignacionesGet") + + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + + ' End With + + ' Try + ' SqlAdapter.Fill(Data) + ' If Data.Rows.Count > 0 Then + ' Retorno = New Usuario + + ' Try + ' Retorno.CveSubProyecto = Data.Rows(0)("CveSucursal").ToString.ToEntero + ' Catch ex As Exception + ' Retorno.CveSubProyecto = -1 + ' End Try + + ' Retorno.CveVendedor = Data.Rows(0)("CveVendedor").ToString.ToEntero + ' Retorno.CvePersonal = Data.Rows(0)("CvePersonal").ToString.ToEntero + ' Retorno.CveAlmacen = Data.Rows(0)("CveAlmacen").ToString.ToEntero + ' End If + ' Catch ex As SqlException + ' OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) + ' Retorno = Nothing + ' End Try + + ' Return Retorno + 'End Function + + 'Public Function ValidaUsuarioWs(Usuario As String, Password As String, tIMEI As String) As Usuario + ' Dim Retorno As Usuario = Nothing + + ' DataAdapter("PA_Sis_UsuariosGet") + + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveUsuario", SqlDbType.Int).Value = -1 + ' .Add("@CveRol", SqlDbType.Int).Value = -1 + ' .Add("@Usuario", SqlDbType.VarChar).Value = Usuario + ' .Add("@Contraseña", SqlDbType.VarChar).Value = Password + ' .Add("@EsLogIn", SqlDbType.Bit).Value = 1 + ' End With + + ' Try + ' SqlAdapter.Fill(Data) + + ' Catch ex As SqlException + ' OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) + ' Retorno = Nothing + ' End Try + + ' Return Retorno + 'End Function + 'Public Function ValidaUsuarioAppGPS(Usuario As String, Password As String, tIMEI As String) As Usuario + ' Dim Retorno As Usuario = Nothing + + ' DataAdapter("PA_Sis_UsuariosAppGet") + + ' With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveUsuario", SqlDbType.Int).Value = -1 + ' .Add("@CveRol", SqlDbType.Int).Value = -1 + ' .Add("@Usuario", SqlDbType.VarChar).Value = Usuario + ' .Add("@Contraseña", SqlDbType.VarChar).Value = Password + ' .Add("@EsLogIn", SqlDbType.Bit).Value = 1 + ' End With + + ' Try + ' SqlAdapter.Fill(Data) + ' If Data.Rows.Count > 0 Then + ' Retorno = New Usuario + + ' Retorno.Acceso = Data.Rows(0)("Acceso").ToString.ToEntero + ' Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero + ' Retorno.Usuario = Usuario + ' Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString + ' Retorno.Nombre = Data.Rows(0)("Nombre").ToString + ' Retorno.CveRol = Data.Rows(0)("CveRol").ToString.ToEntero + ' Retorno.Rol = Data.Rows(0)("Rol").ToString + ' Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero + ' Try + ' Retorno.CveSubProyecto = Data.Rows(0)("CveSubProyecto").ToString.ToEntero + ' Catch ex As Exception + ' Retorno.CveSubProyecto = -1 + ' End Try + ' Retorno.FechaUltimoAcceso = Data.Rows(0)("FechaUltimoAcceso").ToString.ToDate + ' Retorno.FechaUltimoCambioContraseña = Data.Rows(0)("FechaUltimoCambioContraseña").ToString.ToDate + ' Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString.ToEntero + ' Retorno.CveVendedor = Data.Rows(0)("CveVendedor").ToString.ToEntero + ' Retorno.CveCliente = Data.Rows(0)("CveCliente").ToString.ToEntero + ' Retorno.NombreAbreviatura = Data.Rows(0)("NombreAbreviatura").ToString + ' End If + + ' Catch ex As SqlException + ' OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) + ' Retorno = Nothing + ' End Try + + ' Return Retorno + 'End Function + + + + Private Function GeneraMenu(CveUsuario As Integer, dtMenu As DataTable, Optional CvePlataforma As Integer = 1) As Boolean + Dim Retorno As Boolean = False + dtMenu.TableName = "UsuariosModulos" + + Try + Dim Carpeta As String = "" + + 'GPS + Carpeta = $"{AppDomain.CurrentDomain.BaseDirectory}/Menu/GPS" + Carpeta.DirectoryExistsCreate + dtMenu.FiltraParametros("CvePlataforma = 3").WriteXml($"{Carpeta}/{CveUsuario}.xml", XmlWriteMode.WriteSchema) + + Carpeta = $"{AppDomain.CurrentDomain.BaseDirectory}/Menu/ERP" + Carpeta.DirectoryExistsCreate + Select Case CvePlataforma + Case 6, 7 + dtMenu.FiltraParametros($"CvePlataforma = {CvePlataforma}").WriteXml($"{Carpeta}/{CveUsuario}.xml", XmlWriteMode.WriteSchema) + Case Else + dtMenu.FiltraParametros("CvePlataforma = 1").WriteXml($"{Carpeta}/{CveUsuario}.xml", XmlWriteMode.WriteSchema) + End Select + + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al generar el menú del usuario.", ex) + End Try + + Return Retorno + + End Function + +#Region "IDisposable Support" + Protected Overridable Sub Dispose(disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If + End If + Me.disposedValue = True + End Sub + Public Sub Dispose() Implements IDisposable.Dispose + ConexionClose() + Dispose(True) + GC.SuppressFinalize(Me) + End Sub +#End Region + +End Class + diff --git a/App_Code/ClsSisUsuarios.vb b/App_Code/ClsSisUsuarios.vb index 9c6f804b4..0dd213315 100644 --- a/App_Code/ClsSisUsuarios.vb +++ b/App_Code/ClsSisUsuarios.vb @@ -64,12 +64,14 @@ Public Class ClsSisUsuarios Public Property DescuentoAutorizado As Double #End Region - Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing, Optional NombreCadena As String = "Conexion") + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing, Optional UsuarioActual As Usuario = Nothing) If TransaccionCompartida Is Nothing Then SqlConexion = New SqlConnection - SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString - ConnStr = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString + SqlConexion.ConnectionString = If(UsuarioActual IsNot Nothing, UsuarioActual.RutaDB, ClsPaginas.UsuarioActualRutaDB) + + 'SqlConexion.ConnectionString = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString + 'ConnStr = ConfigurationManager.ConnectionStrings(NombreCadena).ConnectionString Try SqlConexion.Open() Catch ex As Exception @@ -153,7 +155,29 @@ Public Class ClsSisUsuarios If SqlTransacc IsNot Nothing Then SqlTransacc.Commit() SqlTransacc = Nothing End Sub + Public Function ValidaUsuarioCodigoAcceso(CodigoAcceso As String, CveEmpresa As Integer) As Integer + Dim Retorno As Integer = Nothing + DataAdapter("PA_Sis_UsuariosCodigoAccesoGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CodigoAcceso", SqlDbType.VarChar).Value = CodigoAcceso + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + If Data.Rows.Count > 0 Then + Retorno = Data.Rows(0)("CveUsuario").ToString.ToEntero + End If + + Catch ex As SqlException + OnError("Ocurrió un error al obtener el usuario.", ex) + Retorno = Nothing + End Try + + Return Retorno + End Function Public Function UsuariosGetTokenXEquipo(CveUsuario As Integer, CveUsuarioAutoriza As Integer, AdsCodex As String) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Sis_UsuariosGetTokenXEquipo") @@ -191,136 +215,15 @@ Public Class ClsSisUsuarios End Try Return Retorno End Function - Public Function ValidaUsuario(Usuario As String, Password As String, Optional CveEmpresa As Integer = -1, Optional GrupoEmpresa As String = "", Optional GenerarMenu As Boolean = True) As Usuario - Dim Retorno As Usuario = Nothing - DataAdapter("PA_Sis_UsuarioValidacionGet") - With SqlAdapter.SelectCommand.Parameters - .Add("@Usuario", SqlDbType.VarChar).Value = Usuario - .Add("@Contraseña", SqlDbType.VarChar).Value = Password - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@GrupoEmpresa", SqlDbType.VarChar).Value = GrupoEmpresa - End With - Try - SqlAdapter.Fill(Data) - - If Data.Rows.Count > 0 Then - Retorno = New Usuario - - Retorno.Acceso = Data.Rows(0)("Acceso").ToString().ToEntero() - Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString().ToEntero() - Retorno.Usuario = Usuario - Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString() - Retorno.Nombre = Data.Rows(0)("Nombre").ToString() - Retorno.CveRol = Data.Rows(0)("CveRol").ToString().ToEntero() - Retorno.Rol = Data.Rows(0)("Rol").ToString() - - Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString().ToEntero() - Retorno.CvePlataforma = Data.Rows(0)("CvePlataforma").ToString().ToEntero() - - Retorno.FechaUltimoAcceso = Data.Rows(0)("FechaUltimoAcceso").ToString().ToDate() - Retorno.FechaUltimoCambioContraseña = Data.Rows(0)("FechaUltimoCambioContraseña").ToString().ToDate() - Retorno.ActCambiarContraseña = If(Data.Rows(0)("ActCambiarContraseña").ToString() = "SI", True, False) - Retorno.TipoControl = Data.Rows(0)("TipoControl").ToString().ToEntero() - '* - Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString().ToEntero() - Retorno.EsSupervisorRH = CBool(Data.Rows(0)("EsSupervisorRH").ToString()) - - Retorno.CveCliente = Data.Rows(0)("CveCliente").ToString().ToEntero() - Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString().ToEntero() - - Retorno.NombreAbreviatura = Data.Rows(0)("NombreAbreviatura").ToString() - Retorno.DescuentoAutorizado = Data.Rows(0)("DescuentoAutorizado").ToString().ToDouble() - - Retorno.PorcentajeMaximoAutorizacion = Data.Rows(0)("PorcentajeMaximoAutorizacion").ToString().ToDecimal() - Retorno.DiasMaximoAutorizacion = Data.Rows(0)("DiasMaximoAutorizacion").ToString().ToEntero() - - Retorno.CodigoAutorizado = Data.Rows(0)("CodigoAutorizado").ToString() - Dim autoip As String = Data.Rows(0)("AutorizadoxIP").ToString().ToUpper() - Retorno.AutorizadoxIP = (autoip = "1" OrElse autoip = "TRUE") - Retorno.RutaDB = ConnStr - - ' Esto es parta el punto de venta - Retorno.CveSucursal = Data.Rows(0)("CveSubProyecto").ToString().ToEntero - - ''Toma la primer letra de cada nombre - 'Dim sbr As New StringBuilder - 'For Each St As String In Retorno.Nombre.Split(" "c) - ' sbr.AppendFormat("{0}.", St.Substring(0, 1)) - 'Next - 'Retorno.NombreIniciales = sbr.ToString - 'sbr.Clear() - 'Retorno.Liga = Data.Rows(0)("Liga" ).ToString - - 'cargo los modulos del usuario y genero el menú - Dim dttmp As DataTable = GetUsuariosRolesModulos(Retorno.CveUsuario, Retorno.CveEmpresa) - If GenerarMenu Then GeneraMenu(Retorno.CveUsuario, dttmp, Retorno.CvePlataforma) - - Dim UsuariosModulos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosModulos.Add(Convert.ToInt32(Row("CveModulo")), Row("CveModulo").ToString) - Next - Retorno.Modulos = UsuariosModulos - 'cargo los procesos del usuario - dttmp = GetUsuariosRolesProcesos(Retorno.CveUsuario) - Dim UsuariosProcesos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosProcesos.Add(Convert.ToInt32(Row("CveProceso")), Row("CveProceso").ToString) - Next - Retorno.Procesos = UsuariosProcesos - - Dim UsuariosIndicadores As New HybridDictionary - Dim dTableIndicadores As DataTable = getUsuarioIndicadores(Retorno.CveUsuario, Retorno.CveEmpresa, Retorno.CveRol) - - - For Each Row As DataRow In dTableIndicadores.Rows - UsuariosIndicadores.Add(Convert.ToInt32(Row("CveIndicador")), Row("Indicador").ToString) - Next - Retorno.Indicadores = UsuariosIndicadores - - If GetUsuariosDetalleAsignaciones(Retorno.CveUsuario, If(CveEmpresa = -1, Retorno.CveEmpresa, CveEmpresa)) Then - Try - Retorno.CveSubProyecto = Data.Rows(0)("CveSucursal").ToString.ToEntero - Catch ex As Exception - Retorno.CveSubProyecto = -1 - End Try - - Retorno.CveVendedor = Data.Rows(0)("CveVendedor").ToString.ToEntero - Retorno.CvePersonal = Data.Rows(0)("CvePersonal").ToString.ToEntero - Retorno.CveAlmacen = Data.Rows(0)("CveAlmacen").ToString.ToEntero - Retorno.CveTipoDocumento = Data.Rows(0)("CveTipoDocumento").ToString - Else - Retorno.CveSubProyecto = -1 - Retorno.CveVendedor = -1 - Retorno.CvePersonal = -1 - Retorno.CveAlmacen = -1 - Retorno.CveTipoDocumento = "-1" - End If - - Retorno.ListaPersonalizacion = CargaPersonalizacionUsuario(Retorno.CveUsuario) - - End If - - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function Public Function CargaPersonalizacionUsuario(CveUsuarioParamerto As Integer) As Hashtable - Dim Retorno As New Hashtable If GetUsuariosPersonalizaciones(CveUsuarioParamerto) Then - For Each drow As DataRow In Data.Rows Retorno.Add(drow("PersonalizacionNombre").ToString, drow("PersonalizacionValor").ToString) Next - End If - Return Retorno - End Function Public Function ValidaUsuarioAsignacion(CveUsuario As Integer, CveEmpresa As Integer) As Usuario @@ -357,214 +260,6 @@ Public Class ClsSisUsuarios Return Retorno End Function - Public Function ValidaUsuarioWs(Usuario As String, Password As String, tIMEI As String) As Usuario - Dim Retorno As Usuario = Nothing - - DataAdapter("PA_Sis_UsuariosGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveUsuario", SqlDbType.Int).Value = -1 - .Add("@CveRol", SqlDbType.Int).Value = -1 - .Add("@Usuario", SqlDbType.VarChar).Value = Usuario - .Add("@Contraseña", SqlDbType.VarChar).Value = Password - .Add("@EsLogIn", SqlDbType.Bit).Value = 1 - End With - - Try - SqlAdapter.Fill(Data) - - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - Public Function ValidaUsuarioAppGPS(Usuario As String, Password As String, tIMEI As String) As Usuario - Dim Retorno As Usuario = Nothing - - DataAdapter("PA_Sis_UsuariosAppGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveUsuario", SqlDbType.Int).Value = -1 - .Add("@CveRol", SqlDbType.Int).Value = -1 - .Add("@Usuario", SqlDbType.VarChar).Value = Usuario - .Add("@Contraseña", SqlDbType.VarChar).Value = Password - .Add("@EsLogIn", SqlDbType.Bit).Value = 1 - End With - - Try - SqlAdapter.Fill(Data) - If Data.Rows.Count > 0 Then - Retorno = New Usuario - - Retorno.Acceso = Data.Rows(0)("Acceso").ToString.ToEntero - Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero - Retorno.Usuario = Usuario - Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString - Retorno.Nombre = Data.Rows(0)("Nombre").ToString - Retorno.CveRol = Data.Rows(0)("CveRol").ToString.ToEntero - Retorno.Rol = Data.Rows(0)("Rol").ToString - Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero - Try - Retorno.CveSubProyecto = Data.Rows(0)("CveSubProyecto").ToString.ToEntero - Catch ex As Exception - Retorno.CveSubProyecto = -1 - End Try - Retorno.FechaUltimoAcceso = Data.Rows(0)("FechaUltimoAcceso").ToString.ToDate - Retorno.FechaUltimoCambioContraseña = Data.Rows(0)("FechaUltimoCambioContraseña").ToString.ToDate - Retorno.CveProveedor = Data.Rows(0)("CveProveedor").ToString.ToEntero - Retorno.CveVendedor = Data.Rows(0)("CveVendedor").ToString.ToEntero - Retorno.CveCliente = Data.Rows(0)("CveCliente").ToString.ToEntero - Retorno.NombreAbreviatura = Data.Rows(0)("NombreAbreviatura").ToString - End If - - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - - Public Function ValidaUsuarioCodigoAcceso(CodigoAcceso As String, CveEmpresa As Integer) As Integer - Dim Retorno As Integer = Nothing - - DataAdapter("PA_Sis_UsuariosCodigoAccesoGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CodigoAcceso", SqlDbType.VarChar).Value = CodigoAcceso - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - End With - - Try - SqlAdapter.Fill(Data) - If Data.Rows.Count > 0 Then - Retorno = Data.Rows(0)("CveUsuario").ToString.ToEntero - End If - - Catch ex As SqlException - OnError("Ocurrió un error al obtener el usuario.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - Public Function ValidaUsuarioPortalCliente(CveCliente As Integer, Usuario As String, Password As String) As Usuario - Dim Retorno As Usuario = Nothing - - DataAdapter("PA_Sis_UsuariosGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveUsuario", SqlDbType.Int).Value = -1 - .Add("@CveRol", SqlDbType.Int).Value = -1 - .Add("@Usuario", SqlDbType.VarChar).Value = Usuario - .Add("@Contraseña", SqlDbType.VarChar).Value = Password - .Add("@EsLogIn", SqlDbType.Bit).Value = 1 - End With - - Try - SqlAdapter.Fill(Data) - If Data.Rows.Count > 0 Then - Retorno = New Usuario - - Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero - Retorno.Usuario = Usuario - Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString - Retorno.Nombre = Data.Rows(0)("Nombre").ToString - Retorno.CveRol = Data.Rows(0)("CveRol").ToString.ToEntero - Retorno.Rol = Data.Rows(0)("Rol").ToString - 'Retorno.NombreEmpresa = Data.Rows(0)("Empresa").ToString - Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero - Retorno.CveCliente = CveCliente - Retorno.ClienteGPS = False - Retorno.Portal = True - Retorno.Referencia = Data.Rows(0)("Referencia").ToString - Retorno.EsSupervisorRH = If(Data.Rows(0)("EsSupervisorRH").ToString = "1", True, False) - Retorno.RutaDB = ConnStr - 'cargo los modulos del usuario y genero el menú - Dim dttmp As DataTable = GetUsuariosRolesModulos(Retorno.CveUsuario, Retorno.CveCliente) - - Dim UsuariosModulos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosModulos.Add(Convert.ToInt32(Row("CveModulo")), Row("CveModulo").ToString) - Next - Retorno.Modulos = UsuariosModulos - ''cargo los procesos del usuario - dttmp = GetUsuariosRolesProcesos(Retorno.CveUsuario) - Dim UsuariosProcesos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosProcesos.Add(Convert.ToInt32(Row("CveProceso")), Row("CveProceso").ToString) - Next - Retorno.Procesos = UsuariosProcesos - End If - - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - - Public Function ValidaUsuarioPortalProveedor(CveProveedor As Integer, Usuario As String, Password As String) As Usuario - Dim Retorno As Usuario = Nothing - - DataAdapter("PA_Sis_UsuariosGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveUsuario", SqlDbType.Int).Value = -1 - .Add("@CveRol", SqlDbType.Int).Value = -1 - .Add("@Usuario", SqlDbType.VarChar).Value = Usuario - .Add("@Contraseña", SqlDbType.VarChar).Value = Password - .Add("@EsLogIn", SqlDbType.Bit).Value = 1 - End With - - Try - SqlAdapter.Fill(Data) - If Data.Rows.Count > 0 Then - Retorno = New Usuario - - Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero - Retorno.Usuario = Usuario - Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString - Retorno.Nombre = Data.Rows(0)("Nombre").ToString - Retorno.CveRol = Data.Rows(0)("CveRol").ToString.ToEntero - Retorno.Rol = Data.Rows(0)("Rol").ToString - 'Retorno.NombreEmpresa = Data.Rows(0)("Empresa").ToString - Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero - Retorno.CveProveedor = CveProveedor - Retorno.ClienteGPS = False - Retorno.Portal = True - Retorno.Referencia = Data.Rows(0)("Referencia").ToString - Retorno.EsSupervisorRH = If(Data.Rows(0)("EsSupervisorRH").ToString = "1", True, False) - Retorno.RutaDB = ConnStr - 'cargo los modulos del usuario y genero el menú - Dim dttmp As DataTable = GetUsuariosRolesModulos(Retorno.CveUsuario, Retorno.CveProveedor) - - Dim UsuariosModulos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosModulos.Add(Convert.ToInt32(Row("CveModulo")), Row("CveModulo").ToString) - Next - - Retorno.Modulos = UsuariosModulos - ''cargo los procesos del usuario - dttmp = GetUsuariosRolesProcesos(Retorno.CveUsuario) - Dim UsuariosProcesos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosProcesos.Add(Convert.ToInt32(Row("CveProceso")), Row("CveProceso").ToString) - Next - Retorno.Procesos = UsuariosProcesos - End If - - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - #Region "U S U A R I O - I N D I C A D O R E S" Public Function getUsuarioIndicadores(_CveUsuario As Integer, _CveEmpresa As Integer, _CveRol As Integer) As DataTable @@ -2620,170 +2315,6 @@ Public Class ClsSisUsuarios Return Retorno End Function - Public Function ValidaUsuarioGPS2(Clave As String, Usuario As String, Password As String) As Usuario - Dim Retorno As Usuario = Nothing - - DataAdapter("PA_Sis_UsuariosGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@CveUsuario", SqlDbType.Int).Value = -1 - .Add("@CveRol", SqlDbType.Int).Value = -1 - .Add("@Usuario", SqlDbType.VarChar).Value = Usuario - .Add("@Contraseña", SqlDbType.VarChar).Value = Password - .Add("@EsLogIn", SqlDbType.Bit).Value = 1 - End With - - Try - SqlAdapter.Fill(Data) - If Data.Rows.Count > 0 Then - Retorno = New Usuario - - Retorno.CveUsuario = Data.Rows(0)("CveUsuario").ToString.ToEntero - Retorno.Usuario = Usuario - Retorno.Contraseña = Data.Rows(0)("Contraseña").ToString - Retorno.Nombre = Data.Rows(0)("Nombre").ToString - Retorno.CveRol = Data.Rows(0)("CveRol").ToString.ToEntero - Retorno.Rol = Data.Rows(0)("Rol").ToString - 'Retorno.NombreEmpresa = Data.Rows(0)("Empresa").ToString - Retorno.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero - Retorno.CveCliente = Clave.ToEntero - Retorno.ClienteGPS = True - Retorno.Referencia = Data.Rows(0)("Referencia").ToString - Retorno.EsSupervisorRH = If(Data.Rows(0)("EsSupervisorRH").ToString = "1", True, False) - 'Retorno.Liga = Data.Rows(0)("Liga").ToString - 'cargo los modulos del usuario y genero el menú - Dim dttmp As DataTable = GetUsuariosRolesModulos(Retorno.CveUsuario, Retorno.CveCliente) - GeneraMenuGPS(Retorno.CveUsuario, dttmp) - Dim UsuariosModulos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosModulos.Add(Convert.ToInt32(Row("CveModulo")), Row("CveModulo").ToString) - Next - Retorno.Modulos = UsuariosModulos - ''cargo los procesos del usuario - dttmp = GetUsuariosRolesProcesos(Retorno.CveUsuario) - Dim UsuariosProcesos As New HybridDictionary - For Each Row As DataRow In dttmp.Rows - UsuariosProcesos.Add(Convert.ToInt32(Row("CveProceso")), Row("CveProceso").ToString) - Next - Retorno.Procesos = UsuariosProcesos - End If - - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - - Public Function GetUsuarioGPS(Clave As String, Usuario As String, Password As String) As Boolean - Dim Retorno As Boolean = False - DataAdapter("PA_Sis_UsuariosPortalGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@pCveUsuario", SqlDbType.Int).Value = -1 - .Add("@pCveRol", SqlDbType.Int).Value = 1200 - .Add("@pCveClave", SqlDbType.VarChar).Value = Clave - .Add("@pUsuario", SqlDbType.VarChar).Value = Usuario - .Add("@pContraseña", SqlDbType.VarChar).Value = Password - .Add("@pEsLogIn", SqlDbType.Bit).Value = 1 - .Add("@pCveCliente", SqlDbType.Int).Value = -1 - .Add("@pCveProveedor", SqlDbType.Int).Value = -1 - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As SqlException - OnError("Ocurrio un error al Iniciar Acceso a Sitio.", ex) - Retorno = Nothing - End Try - - Return Retorno - End Function - - Public Function GetUsuariosPortalGPS(pCveUsuarioPortal As Integer, pCveCliente As Integer, pCveProveedor As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Sis_UsuariosPortalGet") - - With SqlAdapter.SelectCommand.Parameters - .Add("@pCveUsuario", SqlDbType.Int).Value = pCveUsuarioPortal - .Add("@pCveRol", SqlDbType.Int).Value = -1 - .Add("@pCveClave", SqlDbType.VarChar).Value = -1 - .Add("@pUsuario", SqlDbType.VarChar).Value = "-1" - .Add("@pContraseña", SqlDbType.VarChar).Value = "-1" - .Add("@pEsLogIn", SqlDbType.Bit).Value = 0 - .Add("@pCveCliente", SqlDbType.Int).Value = pCveCliente - .Add("@pCveProveedor", SqlDbType.Int).Value = pCveProveedor - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As SqlException - OnError("Ocurrio un error al Consultar los usuarios.", ex) - End Try - - Return Retorno - End Function - - - - Public Function UpdateUsuarioPortalGPS(Usuario As String, Nombre As String, Correo As String, - pPermiso1 As Boolean, pPermiso2 As Boolean, pPermiso3 As Boolean, pPermiso4 As Boolean, pPermiso5 As Boolean, - pPermiso6 As Boolean, pPermiso7 As Boolean, pPermiso8 As Boolean, pPermiso9 As Boolean, pPermiso10 As Boolean, - Activo As Boolean, pContrasenia As String, pCveCliente As Integer, pCveProveedor As Integer, CveUsuarioPortal As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Sis_UsuariosPortalUpdate") - With SqlAdapter.SelectCommand.Parameters - .Add("@pUsuario", SqlDbType.VarChar).Value = Usuario - .Add("@pNombre", SqlDbType.VarChar).Value = Nombre - .Add("@pCorreo", SqlDbType.VarChar).Value = Correo - .Add("@pPermiso1", SqlDbType.Bit).Value = If(pPermiso1, 1, 0) - .Add("@pPermiso2", SqlDbType.Bit).Value = If(pPermiso2, 1, 0) - .Add("@pPermiso3", SqlDbType.Bit).Value = If(pPermiso3, 1, 0) - .Add("@pPermiso4", SqlDbType.Bit).Value = If(pPermiso4, 1, 0) - .Add("@pPermiso5", SqlDbType.Bit).Value = If(pPermiso5, 1, 0) - .Add("@pPermiso6", SqlDbType.Bit).Value = If(pPermiso6, 1, 0) - .Add("@pPermiso7", SqlDbType.Bit).Value = If(pPermiso7, 1, 0) - .Add("@pPermiso8", SqlDbType.Bit).Value = If(pPermiso8, 1, 0) - .Add("@pPermiso9", SqlDbType.Bit).Value = If(pPermiso9, 1, 0) - .Add("@pPermiso10", SqlDbType.Bit).Value = If(pPermiso10, 1, 0) - .Add("@pEstatus", SqlDbType.Bit).Value = If(Activo, 1, 0) - .Add("@pContrasenia", SqlDbType.VarChar).Value = pContrasenia - .Add("@pCveCliente", SqlDbType.Int).Value = pCveCliente - .Add("@pCveProveedor", SqlDbType.Int).Value = pCveProveedor - .Add("@pCveUsuarioPortal", SqlDbType.Int).Value = CveUsuarioPortal - End With - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al modificar el usuario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - - Public Function RemoveUsuarioPortalGPS(CveUsuario As Integer) As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Sis_UsuariosPortalRemove") - SqlAdapter.SelectCommand.Parameters.Add("@pCveUsuario", SqlDbType.Int).Value = CveUsuario - - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch ex As Exception - OnError("Ocurrió un error al eliminar el usuario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - End Try - - Return Retorno - End Function - Private Function GeneraMenuGPS(CveUsuario As Integer, dtMenu As DataTable) As Boolean Dim Retorno As Boolean = False dtMenu = dtMenu.FiltraParametros("CvePlataforma = 3") diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index ff9eb98e2..c6296441c 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -3723,7 +3723,6 @@ Public Class ClsVentas If CveVentas IsNot Nothing Then Dim ObjVentas As New ClsVentas Dim ObjCancelacion As New Timbrado - Dim ObjUsuario As New ClsSisUsuarios Dim Usuario As Usuario = Nothing Dim ObjEmpresa As New ClsSisEmpresas() @@ -3733,7 +3732,6 @@ Public Class ClsVentas Dim RFCReceptor As String = "-1" Dim Nombre As String = "-1" Dim DbRowVenta As DataRow - Dim CveUsuario As Integer = -1 Dim pCveEmpresa As Integer = -1 Dim Contraseña As String = "-1" @@ -3745,32 +3743,30 @@ Public Class ClsVentas CveEstatus = DbRowVenta("CveEstatusFactura").ToString.ToEntero Total = DbRowVenta("Total").ToString.ToDecimal RFCReceptor = DbRowVenta("ClienteRFC").ToString - CveUsuario = DbRowVenta("CveUsuario").ToString.ToEntero + 'CveUsuario = DbRowVenta("CveUsuario").ToString.ToEntero pCveEmpresa = DbRowVenta("CveEmpresa").ToString.ToEntero Nombre = DbRowVenta("Nombre").ToString - If ObjUsuario.GetUsuarios(CveUsuario, -1, -1) Then - Contraseña = ObjUsuario.DtResultados.Rows(0)("Contraseña").ToString - Else - CveVentasError.Add(PCveVenta.ToEntero) - Continue For - End If - Usuario = ObjUsuario.ValidaUsuario(Nombre, Contraseña) + 'If ObjUsuario.GetUsuarios(CveUsuario, -1, -1) Then + ' Contraseña = ObjUsuario.DtResultados.Rows(0)("Contraseña").ToString + 'Else + ' CveVentasError.Add(PCveVenta.ToEntero) + ' Continue For + 'End If + 'Usuario = ObjUsuario.ValidaUsuario(Nombre, Contraseña) + + If Not ObjEmpresa.GetEmpresas(pCveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresas(pCveEmpresa, "-1", "-1", "-1", "-1") Then - Usuario.Empresa = ObjEmpresa.Empresa - Usuario.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa - Else CveVentasError.Add(PCveVenta.ToEntero) Continue For End If 'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT If CveEstatus = 5 Then - Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC) + Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(ObjEmpresa.Empresa, FolioFiscal, Total, RFCReceptor, ObjEmpresa.Empresa.RFC) If Resp.Verificado Then - If Not ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, ClsPaginas.NowADS(), PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then + If Not ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, ClsPaginas.NowADS(), PCveVenta.ToEntero, -1, CvePAC:=ObjEmpresa.Empresa.CvePAC) Then CveVentasError.Add(PCveVenta.ToEntero) End If Else @@ -3783,7 +3779,6 @@ Public Class ClsVentas Next ObjVentas.Dispose() - ObjUsuario.Dispose() ObjEmpresa.Dispose() Else diff --git a/App_Code/WS/WSUSer.vb b/App_Code/WS/WSUSer.vb index 27213e81a..46ba09be3 100644 --- a/App_Code/WS/WSUSer.vb +++ b/App_Code/WS/WSUSer.vb @@ -43,7 +43,7 @@ Namespace SIG Dim Retorno As List(Of String) = Nothing If continuar Then - Using objuser As New ClsSisUsuarios + Using objuser As New ClsSisUsuarioAutenticacion Dim user As Usuario = objuser.ValidaUsuario(username, Extensiones.ModExtensiones.Encripta(password), CveEmpresa:=CveEmpresastr.ToEntero()) Dim OjEmpresa As Empresa = Nothing diff --git a/App_Code/WsSIGWeb.vb b/App_Code/WsSIGWeb.vb index 0f44f3b13..bdcb4a6a2 100644 --- a/App_Code/WsSIGWeb.vb +++ b/App_Code/WsSIGWeb.vb @@ -23,81 +23,81 @@ Public Class WsSIGWeb End Function -#Region " CANCELAR VENTAS ANTE EL SAT - CANCELADAS EN SISTEMA " - - Public Function CancelarVentasSAT(PCveVenta As Integer) As Boolean - Dim Retorno = False - Dim MensajeError = "" + '#Region " CANCELAR VENTAS ANTE EL SAT - CANCELADAS EN SISTEMA " + ' + ' Public Function CancelarVentasSAT(PCveVenta As Integer) As Boolean + ' Dim Retorno = False + ' Dim MensajeError = "" - If PCveVenta > 0 Then - Dim ObjVentas As New ClsVentas - Dim ObjCancelacion As New Timbrado - Dim ObjUsuario As New ClsSisUsuarios - Dim Usuario As Usuario = Nothing - Dim ObjEmpresa As New ClsSisEmpresas() + ' If PCveVenta > 0 Then + ' Dim ObjVentas As New ClsVentas + ' Dim ObjCancelacion As New Timbrado + ' Dim ObjUsuario As New ClsSisUsuarios + ' Dim Usuario As Usuario = Nothing + ' Dim ObjEmpresa As New ClsSisEmpresas() - Dim FolioFiscal = "-1" - Dim CveEstatus = -1 - Dim Total = 0.0D - Dim RFCReceptor = "-1" - Dim Nombre = "-1" - Dim DbRowVenta As DataRow - Dim CveUsuario = -1 - Dim pCveEmpresa = -1 - Dim Contraseña = "-1" + ' Dim FolioFiscal = "-1" + ' Dim CveEstatus = -1 + ' Dim Total = 0.0D + ' Dim RFCReceptor = "-1" + ' Dim Nombre = "-1" + ' Dim DbRowVenta As DataRow + ' Dim CveUsuario = -1 + ' Dim pCveEmpresa = -1 + ' Dim Contraseña = "-1" - If ObjVentas.GetVenta(PCveVenta.ToEntero, -1) Then - DbRowVenta = ObjVentas.DtResultados.Rows(0) + ' If ObjVentas.GetVenta(PCveVenta.ToEntero, -1) Then + ' DbRowVenta = ObjVentas.DtResultados.Rows(0) - FolioFiscal = DbRowVenta("FolioFiscal").ToString - CveEstatus = DbRowVenta("CveEstatusFactura").ToString.ToEntero - Total = DbRowVenta("Total").ToString.ToDecimal - RFCReceptor = DbRowVenta("ClienteRFC").ToString - CveUsuario = DbRowVenta("CveUsuario").ToString.ToEntero - pCveEmpresa = DbRowVenta("CveEmpresa").ToString.ToEntero - Nombre = DbRowVenta("Nombre").ToString + ' FolioFiscal = DbRowVenta("FolioFiscal").ToString + ' CveEstatus = DbRowVenta("CveEstatusFactura").ToString.ToEntero + ' Total = DbRowVenta("Total").ToString.ToDecimal + ' RFCReceptor = DbRowVenta("ClienteRFC").ToString + ' CveUsuario = DbRowVenta("CveUsuario").ToString.ToEntero + ' pCveEmpresa = DbRowVenta("CveEmpresa").ToString.ToEntero + ' Nombre = DbRowVenta("Nombre").ToString - If ObjUsuario.GetUsuarios(CveUsuario, -1, -1) Then - Contraseña = ObjUsuario.DtResultados.Rows(0)("Contraseña").ToString - Usuario = ObjUsuario.ValidaUsuario(Nombre, Contraseña) + ' If ObjUsuario.GetUsuarios(CveUsuario, -1, -1) Then + ' Contraseña = ObjUsuario.DtResultados.Rows(0)("Contraseña").ToString + ' Usuario = ObjUsuario.ValidaUsuario(Nombre, Contraseña) - If ObjEmpresa.GetEmpresas(pCveEmpresa, "-1", "-1", "-1", "-1") Then - Usuario.Empresa = ObjEmpresa.Empresa - Usuario.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa + ' If ObjEmpresa.GetEmpresas(pCveEmpresa, "-1", "-1", "-1", "-1") Then + ' Usuario.Empresa = ObjEmpresa.Empresa + ' Usuario.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa - 'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT - If CveEstatus = 5 Then - Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC) - If Resp.Verificado Then - If ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Resp.CancelacionFecha, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then - Retorno = True - Else - MensajeError = $"Ocurrió un error al actualizar la cancelación la CveVenta {PCveVenta}" - End If - Else - MensajeError = $"Ocurrió un error al Cancelar ante SAT la CveVenta {PCveVenta}" - End If - Else - MensajeError = $"Ocurrió un error al verificar el estatus de la CveVenta {PCveVenta}" - End If - Else - MensajeError = $"Ocurrió un error al cargar la empresa de la CveVenta {PCveVenta}" - End If - Else - MensajeError = $"Ocurrió un error al cargar el usuario de la CveVenta {PCveVenta}" - End If - Else - MensajeError = $"Ocurrió un error al cargar la CveVenta {PCveVenta}" - End If + ' 'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT + ' If CveEstatus = 5 Then + ' Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC) + ' If Resp.Verificado Then + ' If ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Resp.CancelacionFecha, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then + ' Retorno = True + ' Else + ' MensajeError = $"Ocurrió un error al actualizar la cancelación la CveVenta {PCveVenta}" + ' End If + ' Else + ' MensajeError = $"Ocurrió un error al Cancelar ante SAT la CveVenta {PCveVenta}" + ' End If + ' Else + ' MensajeError = $"Ocurrió un error al verificar el estatus de la CveVenta {PCveVenta}" + ' End If + ' Else + ' MensajeError = $"Ocurrió un error al cargar la empresa de la CveVenta {PCveVenta}" + ' End If + ' Else + ' MensajeError = $"Ocurrió un error al cargar el usuario de la CveVenta {PCveVenta}" + ' End If + ' Else + ' MensajeError = $"Ocurrió un error al cargar la CveVenta {PCveVenta}" + ' End If - ObjVentas.Dispose() - ObjUsuario.Dispose() - ObjEmpresa.Dispose() - End If + ' ObjVentas.Dispose() + ' ObjUsuario.Dispose() + ' ObjEmpresa.Dispose() + ' End If - Return Retorno - End Function -#End Region + ' Return Retorno + ' End Function + '#End Region End Class \ No newline at end of file diff --git a/App_Code/wsSIG.vb b/App_Code/wsSIG.vb index d4d56b6d9..4772d7b8b 100644 --- a/App_Code/wsSIG.vb +++ b/App_Code/wsSIG.vb @@ -40,7 +40,7 @@ Public Class wsSIG If Fecha > ClsPaginas.NowADS().AddSeconds(TiempoValido) Then Dim ttDato As Usuario - Dim tUsuario As New ClsSisUsuarios + Dim tUsuario As New ClsSisUsuarioAutenticacion ttDato = tUsuario.ValidaUsuario(Usuario, Encripta(Contrasenia)) @@ -91,7 +91,7 @@ Public Class wsSIG If Fecha > ClsPaginas.NowADS().AddSeconds(TiempoValido) Then Dim ttDato As Usuario = Nothing - Using tUsuario As New ClsSisUsuarios() + Using tUsuario As New ClsSisUsuarioAutenticacion() ttDato = tUsuario.ValidaUsuario(Usuario, Encripta(Contrasenia), CveEmpresa:=CveEmpresa) End Using If validatesubproyecto Then @@ -691,7 +691,7 @@ Public Class wsSIG Dim ttDato As Usuario - Dim tUsuario As New ClsSisUsuarios + Dim tUsuario As New ClsSisUsuarioAutenticacion ttDato = tUsuario.ValidaUsuario(objuser.Usuario, Encripta(objuser.Contrasenia)) diff --git a/Ashx/E119.ashx b/Ashx/E119.ashx index 9ec4f64ad..4b6dd9817 100644 --- a/Ashx/E119.ashx +++ b/Ashx/E119.ashx @@ -53,38 +53,36 @@ Public Class E119 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe #Region "V A L I D A - D A T O S" Private Function ValidaUsuarioSistema(CveUsuario As Integer, CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:=NombreCadena) - If ObjUsuarios.GetUsuarios(CveUsuario) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia As String = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa, GenerarMenu:=False) - UsuarioActual.CveEmpresa = CveEmpresa - HttpContext.Current.Session("UsuarioSIG") = UsuarioActual - CreaObjetoEmpresa(UsuarioActual) - End If + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100, CveEmpresa) + If UsuarioActual IsNot Nothing Then + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual + 'CreaObjetoEmpresa(UsuarioActual) End If ObjUsuarios.Dispose() + Return UsuarioActual End Function - Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If + 'Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) + ' Dim ObjEmpresa As New ClsSisEmpresas() + ' If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then + ' If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then + ' Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - UsuarioActual.Empresa = ObjEmpresa.Empresa + ' Dim EmpresasFuncionalidades As New HybridDictionary + ' For Each Row As Data.DataRow In dttmp.Rows + ' EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + ' Next + ' ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + ' End If - End If - ObjEmpresa.Dispose() - End Sub + ' UsuarioActual.Empresa = ObjEmpresa.Empresa + + ' End If + ' ObjEmpresa.Dispose() + 'End Sub #End Region Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx index 428d0d0ea..cee2a6026 100644 --- a/Ashx/E141.ashx +++ b/Ashx/E141.ashx @@ -62,38 +62,36 @@ Public Class E141 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe #Region "V A L I D A - D A T O S" Private Function ValidaUsuarioSistema(CveUsuario As Integer, CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:="ConexionEcono") - If ObjUsuarios.GetUsuarios(CveUsuario) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa, GenerarMenu:=False) - UsuarioActual.CveEmpresa = CveEmpresa - HttpContext.Current.Session("UsuarioSIG") = UsuarioActual - CreaObjetoEmpresa(UsuarioActual) - End If + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(141) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100) + If UsuarioActual IsNot Nothing Then + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual + 'CreaObjetoEmpresa(UsuarioActual) End If ObjUsuarios.Dispose() + Return UsuarioActual End Function - Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados + 'Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If + ' Dim ObjEmpresa As New ClsSisEmpresas() + ' If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then + ' If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then + ' Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - UsuarioActual.Empresa = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - End Sub + ' Dim EmpresasFuncionalidades As New HybridDictionary + ' For Each Row As Data.DataRow In dttmp.Rows + ' EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + ' Next + ' ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + ' End If + + ' UsuarioActual.Empresa = ObjEmpresa.Empresa + ' End If + ' ObjEmpresa.Dispose() + 'End Sub #End Region Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest @@ -1672,20 +1670,7 @@ Public Class E141 : Implements IHttpHandler, System.Web.SessionState.IRequiresSe Return JsonConvert.SerializeObject(respuesta) End If - - Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios(NombreCadena:="ConexionEcono") - If ObjUsuarios.GetUsuarios(100) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia As String = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioActual.CveEmpresa = CveEmpresa - HttpContext.Current.Session("UsuarioSIG") = UsuarioActual - CreaObjetoEmpresa(UsuarioActual) - End If - End If - ObjUsuarios.Dispose() + Dim Usuario As Usuario = ValidaUsuarioSistema(100, CveEmpresa) Using ObjPS As New ClsProductosServicios() If ObjPS.GetExistenciasEmpresa(Codigo, CveEmpresa) Then diff --git a/Ashx/E48.ashx b/Ashx/E48.ashx index e5a83564d..a668ebeb0 100644 --- a/Ashx/E48.ashx +++ b/Ashx/E48.ashx @@ -400,17 +400,15 @@ Public Class E48 : Implements IHttpHandler, IRequiresSessionState End Property Private Function ValidaUsuarioSistema(CveUsuario As Integer, CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(CveUsuario) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia As String = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioActual.CveEmpresa = CveEmpresa - CreaObjetoEmpresa(UsuarioActual) - End If + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100) + If UsuarioActual IsNot Nothing Then + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual + 'CreaObjetoEmpresa(UsuarioActual) End If ObjUsuarios.Dispose() + Return UsuarioActual End Function Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) diff --git a/Ashx/MHRedes.ashx b/Ashx/MHRedes.ashx index f34ad59d3..c6aa3f29f 100644 --- a/Ashx/MHRedes.ashx +++ b/Ashx/MHRedes.ashx @@ -44,7 +44,8 @@ Public Class MobileHandler : Implements IHttpHandler Private Sub ValidaUsuario() - Dim ObjUsuario As New ClsSisUsuarios + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(41) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Dim User As Usuario Dim IP As String @@ -58,18 +59,18 @@ Public Class MobileHandler : Implements IHttpHandler Dim Json As New StringBuilder - User = ObjUsuario.ValidaUsuario(Contexto.Request("Usuario"), Contexto.Request("Password")) + User = ObjUsuario.ValidaUsuario(Contexto.Request("Usuario"), Contexto.Request("Password"), 41) If User IsNot Nothing Then Dim Token As String = String.Format("{0}*{1}*{2}", ClsPaginas.NowADS().ToString, IP, User.CveUsuario) Token = Encripta(Token) - json.AppendFormat("{{ ""CveUsuario"" : ""{0}"", ""Nombre"" : ""{1}"", ""Token"" : ""{2}"" }} ", User.CveUsuario, User.Nombre, Token) + Json.AppendFormat("{{ ""CveUsuario"" : ""{0}"", ""Nombre"" : ""{1}"", ""Token"" : ""{2}"" }} ", User.CveUsuario, User.Nombre, Token) Else - json.Append("{ ""CveUsuario"" : ""-1"", ""Nombre"" : ""No valido"" } ") + Json.Append("{ ""CveUsuario"" : ""-1"", ""Nombre"" : ""No valido"" } ") End If - - Contexto.Response.Write(json.ToString) + ObjUsuario.Dispose() + Contexto.Response.Write(Json.ToString) End Sub diff --git a/Ashx/SIGFacturacion.ashx b/Ashx/SIGFacturacion.ashx index 86a5949f7..5e4dedbd0 100644 --- a/Ashx/SIGFacturacion.ashx +++ b/Ashx/SIGFacturacion.ashx @@ -222,15 +222,13 @@ Public Class SIGFacturacion : Implements IHttpHandler, IRequiresSessionState #Region "V A L I D A - D A T O S" Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(100) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioActual.CveEmpresa = CveEmpresa - CreaObjetoEmpresa(UsuarioActual) - End If + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100) + If UsuarioActual IsNot Nothing Then + Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() + Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() + UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) End If ObjUsuarios.Dispose() Return UsuarioActual diff --git a/Ashx/SIGFacturacionCiclica.ashx b/Ashx/SIGFacturacionCiclica.ashx index 1ce3d4f7c..19cd3da04 100644 --- a/Ashx/SIGFacturacionCiclica.ashx +++ b/Ashx/SIGFacturacionCiclica.ashx @@ -58,17 +58,15 @@ Public Class SIGFacturacionCiclica : Implements IHttpHandler, IRequiresSessionSt #Region "V A L I D A - D A T O S" Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(100) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioActual.CveEmpresa = CveEmpresa - CreaObjetoEmpresa(UsuarioActual) - End If + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(119) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100) + If UsuarioActual IsNot Nothing Then + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual + CreaObjetoEmpresa(UsuarioActual) End If ObjUsuarios.Dispose() + Return UsuarioActual End Function Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) diff --git a/Ashx/SIGFreightVerify.ashx b/Ashx/SIGFreightVerify.ashx index 5f35fc289..e4764b8fa 100644 --- a/Ashx/SIGFreightVerify.ashx +++ b/Ashx/SIGFreightVerify.ashx @@ -18,153 +18,152 @@ public class SIGFreightVerify : IHttpHandler, IRequiresSessionState private Usuario ValidaUsuarioSistema(int CveEmpresa) { Usuario UsuarioActual = null; - ClsSisUsuarios ObjUsuarios = new ClsSisUsuarios(); - if (ObjUsuarios.GetUsuarios(1727)) - { - if (ObjUsuarios.DtResultados.Rows.Count > 0) - { + string NombreCadena = ClsPaginas.get_GlobalNombreCadenaConexion(141); + ClsSisUsuarioAutenticacion ObjUsuarios = new ClsSisUsuarioAutenticacion(NombreCadena: NombreCadena); + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(1727); + if (UsuarioActual !=null) + { var Usuario = ObjUsuarios.DtResultados.Rows[0]["Usuario"].ToString(); - var Contrasenia = ObjUsuarios.DtResultados.Rows[0]["Contraseña"].ToString(); - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa: CveEmpresa); + var Contrasenia = ObjUsuarios.DtResultados.Rows[0]["Contraseña"].ToString(); + UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa: CveEmpresa); UsuarioActual.CveEmpresa = CveEmpresa; UsuarioActual.CveCliente = 183798; - CreaObjetoEmpresa(ref UsuarioActual); + //CreaObjetoEmpresa(ref UsuarioActual); CargaZonasHorarias(ref UsuarioActual); - } - } - ObjUsuarios.Dispose(); - return UsuarioActual; +} +ObjUsuarios.Dispose(); +return UsuarioActual; } private void CreaObjetoEmpresa(ref Usuario UsuarioActual) +{ + ClsSisEmpresas ObjEmpresa = new ClsSisEmpresas(); + if (ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1")) { - ClsSisEmpresas ObjEmpresa = new ClsSisEmpresas(); - if (ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1")) + if (ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa)) { - if (ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa)) - { - System.Data.DataTable dttmp = ObjEmpresa.DtResultados; + System.Data.DataTable dttmp = ObjEmpresa.DtResultados; - var EmpresasFuncionalidades = new HybridDictionary(); - foreach (System.Data.DataRow Row in dttmp.Rows) - EmpresasFuncionalidades.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString()); + var EmpresasFuncionalidades = new HybridDictionary(); + foreach (System.Data.DataRow Row in dttmp.Rows) + EmpresasFuncionalidades.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString()); - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades); - } - - UsuarioActual.Empresa = ObjEmpresa.Empresa; + ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades); } - ObjEmpresa.Dispose(); + + UsuarioActual.Empresa = ObjEmpresa.Empresa; } - private void CargaZonasHorarias(ref Usuario UsuarioActual) + ObjEmpresa.Dispose(); +} +private void CargaZonasHorarias(ref Usuario UsuarioActual) +{ + ClsClientes ObjClientes = new ClsClientes(); + try { - ClsClientes ObjClientes = new ClsClientes(); - try + if (ObjClientes.GetClientes(UsuarioActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1, Estatus: 1)) { - if (ObjClientes.GetClientes(UsuarioActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, -1, Estatus: 1)) - { - if (ObjClientes.DtResultados.Rows.Count == 1) - UsuarioActual.UTCOffset = ObjClientes.DtResultados.Rows[0]["UTCOffset"].ToString().ToEntero(); - } - } - catch (Exception ex) - { - ex.ToString().GuardaLog(); - } - finally - { - ObjClientes.Dispose(); + if (ObjClientes.DtResultados.Rows.Count == 1) + UsuarioActual.UTCOffset = ObjClientes.DtResultados.Rows[0]["UTCOffset"].ToString().ToEntero(); } } - - public bool IsReusable => false; - - public void ProcessRequest(HttpContext context) + catch (Exception ex) { - try - { - context.Response.ContentType = "text/plain"; - IniciarTransmision(context); - } - catch (Exception ex) - { - ex.GuardaLog(ex.Message); - } + ex.ToString().GuardaLog(); } - - private void IniciarTransmision(HttpContext context) + finally { - var UsuarioActual = ValidaUsuarioSistema(121); - DataTable dtShipments = null; - var FVCARRIERID = ""; - var SCAC = ""; - var UsuarioFV = ""; - var ContraseniaFV = ""; - var ObjGPS = new ClsGPS(); - try - { - if (ObjGPS.GetShipments(UsuarioActual.CveCliente, -1)) - { - dtShipments = ObjGPS.DtResultados.FiltraParametros("TransmitirTexto = 'Si'"); - } - if (ObjGPS.GetFVConfiguracion(UsuarioActual.CveCliente, -1)) - { - if (ObjGPS.DtResultados.Rows.Count == 1) - { - var row = ObjGPS.DtResultados.Rows[0]; - FVCARRIERID = row["fvCarrierId"].ToString().Trim(); - SCAC = row["scac"].ToString().Trim(); - UsuarioFV = row["Usuario"].ToString().Trim(); - ContraseniaFV = row["Contrasenia"].ToString().Trim(); - } - } - } - catch (Exception ex) - { - this.OnError("Ocurrió un error al obtener la configuración", ex); - } - finally - { - ObjGPS.Dispose(); - var array = new JArray(); - if (dtShipments != null) - { - foreach (DataRow Row in dtShipments.Rows) - { - var datos = GeneraRequestLO(UsuarioActual, Row["CveShipment"].ToString().ToEntero(), FVCARRIERID, SCAC); - if (datos != null) - { - var retorno = EnviarEventoAPI(UsuarioActual, Row["ShipmentID"].ToString(), Row["Customer"].ToString(), FVCARRIERID, UsuarioFV, ContraseniaFV, datos.ToString()); - array.Add(retorno); - } - } - } - context.Response.Write(array); - } + ObjClientes.Dispose(); } - protected JObject GeneraRequestLO(Usuario UsuarioActual, int CveShipment, string FVCARRIERID, string SCAC) - { - var route_id = ""; - var trailer_number = ""; - var trackingAssetId = ""; - double lat = 0; - double lon = 0; +} - var ObjGPS = new ClsGPS(); - if (ObjGPS.GetShipmentDetail(CveShipment)) +public bool IsReusable => false; + +public void ProcessRequest(HttpContext context) +{ + try + { + context.Response.ContentType = "text/plain"; + IniciarTransmision(context); + } + catch (Exception ex) + { + ex.GuardaLog(ex.Message); + } +} + +private void IniciarTransmision(HttpContext context) +{ + var UsuarioActual = ValidaUsuarioSistema(121); + DataTable dtShipments = null; + var FVCARRIERID = ""; + var SCAC = ""; + var UsuarioFV = ""; + var ContraseniaFV = ""; + var ObjGPS = new ClsGPS(); + try + { + if (ObjGPS.GetShipments(UsuarioActual.CveCliente, -1)) + { + dtShipments = ObjGPS.DtResultados.FiltraParametros("TransmitirTexto = 'Si'"); + } + if (ObjGPS.GetFVConfiguracion(UsuarioActual.CveCliente, -1)) { if (ObjGPS.DtResultados.Rows.Count == 1) { var row = ObjGPS.DtResultados.Rows[0]; - lat = row["Lat"].ToString().ToDouble(); - lon = row["Lon"].ToString().ToDouble(); - route_id = row["RouteID"].ToString(); - trailer_number = row["TrailerID"].ToString(); - trackingAssetId = row["AssetID"].ToString(); + FVCARRIERID = row["fvCarrierId"].ToString().Trim(); + SCAC = row["scac"].ToString().Trim(); + UsuarioFV = row["Usuario"].ToString().Trim(); + ContraseniaFV = row["Contrasenia"].ToString().Trim(); } } + } + catch (Exception ex) + { + this.OnError("Ocurrió un error al obtener la configuración", ex); + } + finally + { ObjGPS.Dispose(); + var array = new JArray(); + if (dtShipments != null) + { + foreach (DataRow Row in dtShipments.Rows) + { + var datos = GeneraRequestLO(UsuarioActual, Row["CveShipment"].ToString().ToEntero(), FVCARRIERID, SCAC); + if (datos != null) + { + var retorno = EnviarEventoAPI(UsuarioActual, Row["ShipmentID"].ToString(), Row["Customer"].ToString(), FVCARRIERID, UsuarioFV, ContraseniaFV, datos.ToString()); + array.Add(retorno); + } + } + } + context.Response.Write(array); + } +} +protected JObject GeneraRequestLO(Usuario UsuarioActual, int CveShipment, string FVCARRIERID, string SCAC) +{ + var route_id = ""; + var trailer_number = ""; + var trackingAssetId = ""; + double lat = 0; + double lon = 0; - var json = new JObject() + var ObjGPS = new ClsGPS(); + if (ObjGPS.GetShipmentDetail(CveShipment)) + { + if (ObjGPS.DtResultados.Rows.Count == 1) + { + var row = ObjGPS.DtResultados.Rows[0]; + lat = row["Lat"].ToString().ToDouble(); + lon = row["Lon"].ToString().ToDouble(); + route_id = row["RouteID"].ToString(); + trailer_number = row["TrailerID"].ToString(); + trackingAssetId = row["AssetID"].ToString(); + } + } + ObjGPS.Dispose(); + + var json = new JObject() { new JProperty("carrier", new JObject() { @@ -203,35 +202,35 @@ public class SIGFreightVerify : IHttpHandler, IRequiresSessionState }) }; - return json; - } + return json; +} - private JObject EnviarEventoAPI(Usuario UsuarioActual, string ShipmentID, string Customer, string FVCARRIERID, string UsuarioFV, string ContraseniaFV, string Datos) +private JObject EnviarEventoAPI(Usuario UsuarioActual, string ShipmentID, string Customer, string FVCARRIERID, string UsuarioFV, string ContraseniaFV, string Datos) +{ + var retorno = "[]"; + var token = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(string.Format("{0}:{1}", UsuarioFV, ContraseniaFV))); + string correlationId = GuidGenerator.GenerateTimeBasedGuid(UsuarioActual.FechaActualCliente).ToString(); + HttpClient wc = new HttpClient(); + try { - var retorno = "[]"; - var token = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(string.Format("{0}:{1}", UsuarioFV, ContraseniaFV))); - string correlationId = GuidGenerator.GenerateTimeBasedGuid(UsuarioActual.FechaActualCliente).ToString(); - HttpClient wc = new HttpClient(); - try - { - var fvShipmentId = $"{FVCARRIERID}|{Customer}|{ShipmentID}"; + var fvShipmentId = $"{FVCARRIERID}|{Customer}|{ShipmentID}"; - var Url = new Uri("https://api.freightverify.com/ws/rest/v2/tl/shipment/event"); - var content = new StringContent(Datos, Encoding.UTF8, "application/json"); - wc.DefaultRequestHeaders.Add("Authorization", $"Basic {token}"); - wc.DefaultRequestHeaders.Add("WSS-correlationId", correlationId); - wc.DefaultRequestHeaders.Add("X-WSS-fvShipmentId", fvShipmentId); - var response = wc.PostAsync(Url, content).Result; - retorno = response.Content.ReadAsStringAsync().Result; - } - catch (Exception ex) - { - Console.WriteLine(ex); - } - wc.Dispose(); - - return JObject.Parse(retorno); + var Url = new Uri("https://api.freightverify.com/ws/rest/v2/tl/shipment/event"); + var content = new StringContent(Datos, Encoding.UTF8, "application/json"); + wc.DefaultRequestHeaders.Add("Authorization", $"Basic {token}"); + wc.DefaultRequestHeaders.Add("WSS-correlationId", correlationId); + wc.DefaultRequestHeaders.Add("X-WSS-fvShipmentId", fvShipmentId); + var response = wc.PostAsync(Url, content).Result; + retorno = response.Content.ReadAsStringAsync().Result; } + catch (Exception ex) + { + Console.WriteLine(ex); + } + wc.Dispose(); + + return JObject.Parse(retorno); +} } namespace FluentGenerator { diff --git a/Ashx/SIGPolizaVirtual.ashx b/Ashx/SIGPolizaVirtual.ashx index 73c700dde..c20162667 100644 --- a/Ashx/SIGPolizaVirtual.ashx +++ b/Ashx/SIGPolizaVirtual.ashx @@ -25,38 +25,22 @@ Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState Private Function ValidaUsuarioSistema(CveEmpresa As Integer, Optional CveUsuario As Integer = 100) As Usuario - Dim UsuarioToken As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(CveUsuario) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioToken = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioToken.CveEmpresa = CveEmpresa - CreaObjetoEmpresa(UsuarioToken) - End If - End If + Dim UsuarioToken As Usuario = Nothing + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + + If ObjUsuarios.DtResultados.Rows.Count > 0 Then + Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() + Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() + UsuarioToken = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) + UsuarioToken.CveEmpresa = CveEmpresa + + End If + ObjUsuarios.Dispose() Return UsuarioToken - End Function - Private Sub CreaObjetoEmpresa(ByRef UsuarioToken As Usuario) - - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioToken.CveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioToken.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If - - UsuarioToken.Empresa = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - End Sub + End Function + #End Region Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest diff --git a/Ashx/TareasProgramadas.ashx b/Ashx/TareasProgramadas.ashx index 706130f8d..11eaff1b9 100644 --- a/Ashx/TareasProgramadas.ashx +++ b/Ashx/TareasProgramadas.ashx @@ -117,8 +117,9 @@ Public Class TareasProgramadas : Implements IHttpHandler If GlobalDTUsuarios.Rows.Count > 0 Then - Dim dtrow As DataRow = GlobalDTUsuarios.Rows(0) - Dim ObjUsuario As New ClsSisUsuarios + Dim dtrow As DataRow = GlobalDTUsuarios.Rows(0) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(cveEmpresa) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) usuario = ObjUsuario.ValidaUsuario(dtrow("Usuario").ToString, dtrow("Contraseña").ToString, CveEmpresa:=cveEmpresa) ObjUsuario.Dispose() @@ -225,8 +226,9 @@ Public Class TareasProgramadas : Implements IHttpHandler End If #End Region #Region "obtengo el usuario con el username y la pass" - - Using ObjUsuario As New ClsSisUsuarios() + 'Dim tGrupoEmpresa As String = ClsPaginas.GlobalGrupoEmpresa(Request.Url.Host.ToUpper()) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Using ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) usuario = ObjUsuario.ValidaUsuario(username, pass, CveEmpresa:=CveEmpresa) End Using #End Region @@ -345,41 +347,19 @@ Public Class TareasProgramadas : Implements IHttpHandler End Sub - Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario - Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(100) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia As String = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioActual.CveEmpresa = CveEmpresa - HttpContext.Current.Session("UsuarioSIG") = UsuarioActual - CreaObjetoEmpresa(UsuarioActual) - End If - End If - ObjUsuarios.Dispose() - Return UsuarioActual - End Function - Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario) - - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If - - UsuarioActual.Empresa = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - End Sub + Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario + Dim UsuarioActual As Usuario = Nothing + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(100) + If UsuarioActual IsNot Nothing Then + HttpContext.Current.Session("UsuarioSIG") = UsuarioActual + 'CreaObjetoEmpresa(UsuarioActual) + End If + ObjUsuarios.Dispose() + Return UsuarioActual + End Function Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, FechaEnvio As DateTime, FechaActual As DateTime, Optional pCveCliente As Integer = -1) As JObject Dim ClientesSinEnviar As New JArray() From e7eb6ee1992d945b68a13d447e0e099279744ceb Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:19:20 -0700 Subject: [PATCH 57/87] - --- Bancos/PagoAcreedor.aspx.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Bancos/PagoAcreedor.aspx.cs b/Bancos/PagoAcreedor.aspx.cs index 073e20488..d72929c9c 100644 --- a/Bancos/PagoAcreedor.aspx.cs +++ b/Bancos/PagoAcreedor.aspx.cs @@ -197,7 +197,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas int CvePrePoliza = 0; int CveMonedaPago = get_GlobalDTBancosCuentas(-1, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuenta.SelectedValue.ToEntero()}").ToEntero(); int FolioFijo = 0; - int IDPoliza = 0; + //int IDPoliza = 0; StringBuilder Msg = new StringBuilder(); @@ -521,7 +521,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas int CvePrePoliza = 0; int CveMoneda = get_GlobalDTBancosCuentas(-1, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda", $"CveEmpresa = {UsuarioActual.CveEmpresa} AND CveCuenta = {DdlCuentaPrestamo.SelectedValue.ToEntero()}").ToEntero(); int FolioFijo = 0; - int IDPoliza = 0; + //int IDPoliza = 0; StringBuilder Msg = new StringBuilder(); //OBTIENE COMPROBANTE !! From aa158b198c45a9fcb25e77ea271552cb89a2ce10 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:20:27 -0700 Subject: [PATCH 58/87] =?UTF-8?q?--=20cambio=20de=20clase=20de=20validaci?= =?UTF-8?q?=C3=B3n=20de=20usuario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sistemas/PopUpCambiaUsuario.aspx.vb | 47 +--- Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb | 22 +- Sistemas/PopUpSeleccionarEmpresa.aspx.vb | 240 ++++++++++----------- Sistemas/Usuarios.aspx.vb | 88 ++++---- asmx/WSApp.asmx | 19 +- asmx/WSCGame.asmx | 2 +- asmx/WSGPSApp.asmx | 172 +++++++-------- asmx/WSSIGApp.asmx | 28 +-- asmx/WS_PuntoVenta.asmx | 2 +- 9 files changed, 279 insertions(+), 341 deletions(-) diff --git a/Sistemas/PopUpCambiaUsuario.aspx.vb b/Sistemas/PopUpCambiaUsuario.aspx.vb index 0a1931333..fcf77c1d4 100644 --- a/Sistemas/PopUpCambiaUsuario.aspx.vb +++ b/Sistemas/PopUpCambiaUsuario.aspx.vb @@ -95,24 +95,10 @@ Partial Class Sistemas_PopUpCambiaUsuario tContraseña = gvr.DataKey("Contraseña").ToString tCveEmpresa = gvr.DataKey("CveEmpresa").ToString.ToEntero - Dim tGrupoEmpresa As String = "" - Dim NombreCadena As String = "Conexion" - If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" - If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" - If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" - If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" - If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" - If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" - If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" - If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" - If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" - If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" - If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" - If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" - If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" + Dim tGrupoEmpresa As String = ClsPaginas.GlobalGrupoEmpresa(Request.Url.Host.ToUpper()) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexionDominio(Request.Url.Host.ToUpper()) - Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Dim Usuario As Usuario 'Dim UsuarioAsignaciones As Usuario @@ -127,8 +113,6 @@ Partial Class Sistemas_PopUpCambiaUsuario ADSSessionConfig.sessionUser.CvePlataforma = 3 End If ADSSessionConfig.sessionDpage = False - - ADSSessionConfig.sessionUser.ModoSimulacion = True If dt IsNot Nothing Then @@ -137,36 +121,15 @@ Partial Class Sistemas_PopUpCambiaUsuario End If End If dt.Dispose() + ADSSessionConfig.sessionUser.CveEmpresa = Usuario.Empresa.CveEmpresa + ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, Usuario.Empresa.CveEmpresa) - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(tCveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(tCveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - - End If - - UsuarioActual.Empresa = ObjEmpresa.Empresa - ADSSessionConfig.sessionUser.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa - - ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, ObjEmpresa.Empresa.CveEmpresa) - Else - End If - ObjEmpresa.Dispose() If UsuarioActual.CveCliente > 0 Then CargaZonasHorarias(UsuarioActual) End If End If - RegistraScript("gotourl();") - End If - End If End Sub Private Sub CargaZonasHorarias(ByRef UsuarioActual As Usuario) diff --git a/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb b/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb index 0719a98ab..ad903f0d1 100644 --- a/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb +++ b/Sistemas/PopUpCambiaUsuarioEmpresa.aspx.vb @@ -92,25 +92,11 @@ Partial Class Sistemas_PopUpCambiaUsuarioEmpresa tUsuario = gvr.DataKey("Usuario").ToString tContraseña = gvr.DataKey("Contraseña").ToString tCveEmpresa = gvr.DataKey("CveEmpresa").ToString.ToEntero - Dim tGrupoEmpresa As String = "" - Dim NombreCadena As String = "Conexion" - If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" - If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" - If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" - If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" - If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" - If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" - If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" - If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" - If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" - If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" - If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" - If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" - If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" + Dim tGrupoEmpresa As String = ClsPaginas.GlobalGrupoEmpresa(Request.Url.Host.ToUpper()) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexionDominio(Request.Url.Host.ToUpper()) - Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Dim Usuario As Usuario 'Dim UsuarioAsignaciones As Usuario @@ -130,7 +116,7 @@ Partial Class Sistemas_PopUpCambiaUsuarioEmpresa ADSSessionConfig.sessionUser.ModoSimulacion = False ADSSessionConfig.sessionUser.ModoSimulacionXEmpresa = True - UsuarioActual.Empresa = objempresa + UsuarioActual.Empresa = Usuario.Empresa dt.Dispose() If UsuarioActual.CveCliente > 0 Then diff --git a/Sistemas/PopUpSeleccionarEmpresa.aspx.vb b/Sistemas/PopUpSeleccionarEmpresa.aspx.vb index 60a333910..9e58fef47 100644 --- a/Sistemas/PopUpSeleccionarEmpresa.aspx.vb +++ b/Sistemas/PopUpSeleccionarEmpresa.aspx.vb @@ -60,150 +60,136 @@ Partial Class PopUpSeleccionarEmpresa Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) If gvr IsNot Nothing Then - Dim tGrupoEmpresa As String = "" - Dim NombreCadena As String = "Conexion" - Dim Usuario As Usuario = Nothing - If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" - If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" - If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" - If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" - If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" - If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" - If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" - If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" - If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" - If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" - If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" - If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" - If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" - Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) + Dim Usuario As Usuario = Nothing + Dim tGrupoEmpresa As String = ClsPaginas.GlobalGrupoEmpresa(Request.Url.Host.ToUpper()) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexionDominio(Request.Url.Host.ToUpper()) + + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Usuario = ObjUsuario.ValidaUsuario(gvr.DataKey("Usuario"), gvr.DataKey("Contraseña"), CveEmpresa:=gvr.DataKey("CveEmpresa").ToEntero) ObjUsuario.Dispose() If Usuario IsNot Nothing Then - Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) + 'Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) Dim ModoSimulacion As Boolean = ADSSession.ADSSessionConfig.sessionUser.ModoSimulacion Usuario.ModoSimulacion = ModoSimulacion ADSSession.ADSSessionConfig.sessionUser = Usuario ADSSession.ADSSessionConfig.sessionDpage = False - - If dt IsNot Nothing Then - If dt.Rows.Count >= 1 Then - Dim CveEmpresa = e.CommandArgument.ToString().ToEntero() - If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True - Usuario.CvePlataforma = 1 - Usuario.CveEmpresa = CveEmpresa - ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, CveEmpresa) - CreaObjetoEmpresa(Usuario) - RegistraScript("Ir3();") - End If - End If - dt.Dispose() - - - End If - - End If - End If - - End Sub - Protected Sub GvPortalCliente_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GvPortalCliente.RowCommand - If e.CommandName = "Cambia" Then - Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) - - If gvr IsNot Nothing Then - - Dim ObjUsuario As New ClsSisUsuarios - Dim Usuario As Usuario = Nothing - Usuario = ObjUsuario.ValidaUsuarioPortalCliente(gvr.DataKey("CveCliente").ToEntero(), gvr.DataKey("Usuario"), gvr.DataKey("Contraseña")) - - ObjUsuario.Dispose() - - If Usuario IsNot Nothing Then - Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) - - Dim ModoSimulacion As Boolean = ADSSession.ADSSessionConfig.sessionUser.ModoSimulacion - Usuario.ModoSimulacion = ModoSimulacion - ADSSession.ADSSessionConfig.sessionUser = Usuario - ADSSession.ADSSessionConfig.sessionDpage = False - - If dt IsNot Nothing Then - If dt.Rows.Count >= 1 Then - If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True - Usuario.CvePlataforma = 6 - UsuarioActual.CveEmpresa = gvr.DataKey("CveEmpresa").ToEntero() - ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, UsuarioActual.CveEmpresa) - CreaObjetoEmpresa(Usuario) - 'si la contraseña es la prederminada, pide la nueva contraseña - 'FormsAuthentication.RedirectFromLoginPage(Encripta(Usuario.CveUsuario.ToString), False) - RegistraScript("Ir4();") - End If - End If - dt.Dispose() + Usuario.MultipleEmpresa = True + ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, e.CommandArgument.ToString().ToEntero()) + RegistraScript("Ir3();") + 'If dt IsNot Nothing Then + ' If dt.Rows.Count >= 1 Then + ' Dim CveEmpresa = e.CommandArgument.ToString().ToEntero() + ' If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True + ' Usuario.CvePlataforma = 1 + ' Usuario.CveEmpresa = CveEmpresa + ' ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, CveEmpresa) + ' CreaObjetoEmpresa(Usuario) + ' RegistraScript("Ir3();") + ' End If + 'End If + 'dt.Dispose() End If - End If - End If + End Sub - Protected Sub GvPortalProveedor_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GvPortalProveedor.RowCommand - If e.CommandName = "Cambia" Then - Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) - - If gvr IsNot Nothing Then - Dim tGrupoEmpresa As String = "" - Dim NombreCadena As String = "Conexion" - Dim Usuario As Usuario = Nothing - If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" - If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" - If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" - If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" - If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" - If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" - If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" - If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" - If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" - If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" - If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" - If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" - If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" + 'Protected Sub GvPortalCliente_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GvPortalCliente.RowCommand + ' If e.CommandName = "Cambia" Then + ' Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) - Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) - Usuario = ObjUsuario.ValidaUsuarioPortalProveedor(gvr.DataKey("CveProveedor").ToEntero(), gvr.DataKey("Usuario"), gvr.DataKey("Contraseña")) + ' If gvr IsNot Nothing Then - ObjUsuario.Dispose() - - If Usuario IsNot Nothing Then - Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) + ' Dim ObjUsuario As New ClsSisUsuarios + ' Dim Usuario As Usuario = Nothing + ' Usuario = ObjUsuario.ValidaUsuarioPortalCliente(gvr.DataKey("CveCliente").ToEntero(), gvr.DataKey("Usuario"), gvr.DataKey("Contraseña")) - Dim ModoSimulacion As Boolean = ADSSession.ADSSessionConfig.sessionUser.ModoSimulacion - Usuario.ModoSimulacion = ModoSimulacion - ADSSession.ADSSessionConfig.sessionUser = Usuario - ADSSession.ADSSessionConfig.sessionDpage = False - - If dt IsNot Nothing Then - If dt.Rows.Count >= 1 Then - If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True - Usuario.CvePlataforma = 7 - UsuarioActual.CveEmpresa = gvr.DataKey("CveEmpresa").ToEntero() - ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, UsuarioActual.CveEmpresa) - CreaObjetoEmpresa(Usuario) - 'si la contraseña es la prederminada, pide la nueva contraseña - 'FormsAuthentication.RedirectFromLoginPage(Encripta(Usuario.CveUsuario.ToString), False) - RegistraScript("Ir5();") - End If - End If - dt.Dispose() - End If - - End If - - End If - End Sub + ' ObjUsuario.Dispose() + + ' If Usuario IsNot Nothing Then + ' Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) + + ' Dim ModoSimulacion As Boolean = ADSSession.ADSSessionConfig.sessionUser.ModoSimulacion + ' Usuario.ModoSimulacion = ModoSimulacion + ' ADSSession.ADSSessionConfig.sessionUser = Usuario + ' ADSSession.ADSSessionConfig.sessionDpage = False + + ' If dt IsNot Nothing Then + ' If dt.Rows.Count >= 1 Then + ' If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True + ' Usuario.CvePlataforma = 6 + ' UsuarioActual.CveEmpresa = gvr.DataKey("CveEmpresa").ToEntero() + ' ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, UsuarioActual.CveEmpresa) + ' CreaObjetoEmpresa(Usuario) + ' 'si la contraseña es la prederminada, pide la nueva contraseña + ' 'FormsAuthentication.RedirectFromLoginPage(Encripta(Usuario.CveUsuario.ToString), False) + ' RegistraScript("Ir4();") + ' End If + ' End If + ' dt.Dispose() + ' End If + + ' End If + + ' End If + 'End Sub + 'Protected Sub GvPortalProveedor_RowCommand(ByVal sender As Object, ByVal e As GridViewCommandEventArgs) Handles GvPortalProveedor.RowCommand + ' If e.CommandName = "Cambia" Then + ' Dim gvr As GridViewRow = DirectCast(DirectCast(e.CommandSource, LinkButton).BindingContainer, GridViewRow) + + ' If gvr IsNot Nothing Then + ' Dim tGrupoEmpresa As String = "" + ' Dim NombreCadena As String = "Conexion" + ' Dim Usuario As Usuario = Nothing + ' If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" + ' If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" + ' If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" + ' If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" + ' If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" + ' If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" + ' If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" + ' If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" + ' If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" + ' If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" + ' If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" + ' If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" + ' If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" + ' If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" + + ' Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) + ' Usuario = ObjUsuario.ValidaUsuarioPortalProveedor(gvr.DataKey("CveProveedor").ToEntero(), gvr.DataKey("Usuario"), gvr.DataKey("Contraseña")) + + ' ObjUsuario.Dispose() + + ' If Usuario IsNot Nothing Then + ' Dim dt As Data.DataTable = GlobalDTUsuarios(Usuario.CveUsuario) + + ' Dim ModoSimulacion As Boolean = ADSSession.ADSSessionConfig.sessionUser.ModoSimulacion + ' Usuario.ModoSimulacion = ModoSimulacion + ' ADSSession.ADSSessionConfig.sessionUser = Usuario + ' ADSSession.ADSSessionConfig.sessionDpage = False + + ' If dt IsNot Nothing Then + ' If dt.Rows.Count >= 1 Then + ' If dt.Rows.Count > 1 Then Usuario.MultipleEmpresa = True + ' Usuario.CvePlataforma = 7 + ' UsuarioActual.CveEmpresa = gvr.DataKey("CveEmpresa").ToEntero() + ' ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, UsuarioActual.CveEmpresa) + ' CreaObjetoEmpresa(Usuario) + ' 'si la contraseña es la prederminada, pide la nueva contraseña + ' 'FormsAuthentication.RedirectFromLoginPage(Encripta(Usuario.CveUsuario.ToString), False) + ' RegistraScript("Ir5();") + ' End If + ' End If + ' dt.Dispose() + ' End If + + ' End If + + ' End If + 'End Sub #Region "F U N C I O N E S" Protected Sub BtnSetWindows_Click(sender As Object, e As System.EventArgs) Handles BtnSetWindows.Click diff --git a/Sistemas/Usuarios.aspx.vb b/Sistemas/Usuarios.aspx.vb index e6578379b..becc265ce 100644 --- a/Sistemas/Usuarios.aspx.vb +++ b/Sistemas/Usuarios.aspx.vb @@ -21,45 +21,45 @@ Partial Class Sistemas_Usuarios End Property #Region "Permisos" - Private Property PermisoEditar As Boolean - Get - Return CType(ViewState("PermisoEditar"), Boolean) - End Get - Set(value As Boolean) - ViewState("PermisoEditar") = value - End Set - End Property + Private Property PermisoEditar As Boolean + Get + Return CType(ViewState("PermisoEditar"), Boolean) + End Get + Set(value As Boolean) + ViewState("PermisoEditar") = value + End Set + End Property - Private Property PermisoModulos As Boolean - Get - Return CType(ViewState("PermisoModulos"), Boolean) - End Get - Set(value As Boolean) - ViewState("PermisoModulos") = value - End Set - End Property + Private Property PermisoModulos As Boolean + Get + Return CType(ViewState("PermisoModulos"), Boolean) + End Get + Set(value As Boolean) + ViewState("PermisoModulos") = value + End Set + End Property - Private Property PermisoProcesos As Boolean - Get - Return CType(ViewState("PermisoProcesos"), Boolean) - End Get - Set(value As Boolean) - ViewState("PermisoProcesos") = value - End Set - End Property + Private Property PermisoProcesos As Boolean + Get + Return CType(ViewState("PermisoProcesos"), Boolean) + End Get + Set(value As Boolean) + ViewState("PermisoProcesos") = value + End Set + End Property - Private Property PermisoRestablecerContraseña As Boolean - Get - Return CType(ViewState("PermisoProcesos"), Boolean) - End Get - Set(value As Boolean) - ViewState("PermisoProcesos") = value - End Set - End Property + Private Property PermisoRestablecerContraseña As Boolean + Get + Return CType(ViewState("PermisoProcesos"), Boolean) + End Get + Set(value As Boolean) + ViewState("PermisoProcesos") = value + End Set + End Property #End Region - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load - If Not Page.IsPostBack Then + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not Page.IsPostBack Then @@ -67,12 +67,12 @@ Partial Class Sistemas_Usuarios ViewState("CveRol") = -1 CargarEmpresa() CargaDatos() - End If - End Sub + End If + End Sub - Public Sub CargaDatos() + Public Sub CargaDatos() - Dim Usuario As New ClsSisUsuarios + Dim Usuario As New ClsSisUsuarios If Usuario.GetUsuarios(-1, -1, Estatus:=DdlEsatus.SelectedValue.ToEntero) Then If UsuarioActual.CveRol <> 1 Then DtUsuarios = Usuario.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0} AND CveRol <> 1", DdlEmpresa.SelectedValue)) @@ -84,13 +84,13 @@ Partial Class Sistemas_Usuarios GvDatos.DataSource = Nothing End If - Usuario.Dispose() + Usuario.Dispose() - If ViewState("Orden").ToString() <> String.Empty Then - CargaGrid(ViewState("Orden").ToString()) - Else - CargaGrid("") - End If + If ViewState("Orden").ToString() <> String.Empty Then + CargaGrid(ViewState("Orden").ToString()) + Else + CargaGrid("") + End If End Sub Protected Sub consultar_Click(sender As Object, e As EventArgs) diff --git a/asmx/WSApp.asmx b/asmx/WSApp.asmx index d58e8eef0..ded6ff040 100644 --- a/asmx/WSApp.asmx +++ b/asmx/WSApp.asmx @@ -70,15 +70,14 @@ Public Class WSApp #Region "M E T O D O S - S E R V I C I O" Public Function ValidaUsuario(CveUsuario As Integer) As Usuario Dim UsuarioActual As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(CveUsuario) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia) - CreaObjetoEmpresa(UsuarioActual) - End If - End If + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(CveUsuario) + 'If UsuarioActual IsNot Nothing Then + ' Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() + ' Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() + ' UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia) + + 'End If ObjUsuarios.Dispose() Return UsuarioActual End Function @@ -87,7 +86,7 @@ Public Class WSApp Dim retorno As String = "" Dim Salida As WSUSER = Nothing - Dim ObjUsuarios As New ClsSisUsuarios + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion Dim ObjClientes As New ClsClientes Try Dim UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Encripta(Contrasenia)) diff --git a/asmx/WSCGame.asmx b/asmx/WSCGame.asmx index b373a9a0f..01135af51 100644 --- a/asmx/WSCGame.asmx +++ b/asmx/WSCGame.asmx @@ -42,7 +42,7 @@ Public Class WSCGame Dim Entrada = JsonConvert.DeserializeAnonymousType(decripParams, Estructura) If Not IsNothing(Entrada) Then - Dim tUsuario As New ClsSisUsuarios + Dim tUsuario As New ClsSisUsuarioAutenticacion Dim UsuarioActual = tUsuario.ValidaUsuario(Entrada.Usuario, Encripta(Entrada.Contrasenia)) tUsuario.Dispose() diff --git a/asmx/WSGPSApp.asmx b/asmx/WSGPSApp.asmx index 98b29f8c0..4e1373d87 100644 --- a/asmx/WSGPSApp.asmx +++ b/asmx/WSGPSApp.asmx @@ -115,7 +115,7 @@ Public Class WSGPSApp Public Function Login(params As String) As String Dim Retorno As String = "" - Dim ObjUsuarios As New ClsSisUsuarios + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion Try Dim json = Decripta(params, "AES") Dim Datos As MWSLogin2 = JsonConvert.DeserializeObject(Of MWSLogin2)(json) @@ -137,8 +137,8 @@ Public Class WSGPSApp Dim UsuariosModulos As New List(Of WsModulos) Dim Empresas As New List(Of WsEmpresa) Dim Clientes As New List(Of WsClientePortalGPS) - - If ObjUsuarios.GetUsuariosModulos(UsuarioRetorno.CveUsuario, -1) Then + Dim objUsr As New ClsSisUsuarios(UsuarioActual:=UsuarioActual) + If objUsr.GetUsuariosModulos(UsuarioRetorno.CveUsuario, -1) Then Dim DtModulos As DataTable = ObjUsuarios.DtResultados.FiltraParametros("CvePlataforma = 5 AND Permitir = 1") For Each Row As DataRow In DtModulos.Rows UsuariosModulos.Add(New WsModulos With {.CveModulo = Row("CveModulo").ToString.ToEntero, .CvePadre = Row("CvePadre").ToString.ToEntero, .CvePlataforma = 5, .Estilo = Row("Estilo").ToString, .Liga = Row("Liga").ToString, .Modulo = Row("Modulo").ToString, .Parametros = Row("Parametros").ToString}) @@ -146,6 +146,7 @@ Public Class WSGPSApp DtModulos.Dispose() DtModulos = Nothing End If + objUsr.Dispose() UsuarioRetorno.Modulos = UsuariosModulos Dim DtClientes As DataTable = GlobalDTUsuarios(UsuarioActual.CveUsuario).FiltraParametros("CvePlataforma = 3 AND CveCliente IS NOT NULL", "Empresa") If DtClientes IsNot Nothing Then @@ -185,96 +186,97 @@ Public Class WSGPSApp End Function ' - - Public Function Login2(params As String) As String - Dim Retorno As String = "" - Dim ObjUsuarios As New ClsSisUsuarios - Try - Dim json = Decripta(params, "AES") - Dim Datos As MWSLogin2 = JsonConvert.DeserializeObject(Of MWSLogin2)(json) - Dim UsuarioActual = ObjUsuarios.ValidaUsuario(Decripta(Datos.Usuario, "AES"), Encripta(Decripta(Datos.Contraseña, "AES"))) + ' + 'Public Function Login2(params As String) As String + ' Dim Retorno As String = "" + ' Dim ObjUsuarios As New ClsSisUsuarioAutenticacion + ' Try + ' Dim json = Decripta(params, "AES") + ' Dim Datos As MWSLogin2 = JsonConvert.DeserializeObject(Of MWSLogin2)(json) + ' Dim UsuarioActual = ObjUsuarios.ValidaUsuario(Decripta(Datos.Usuario, "AES"), Encripta(Decripta(Datos.Contraseña, "AES"))) - If UsuarioActual IsNot Nothing Then - Dim UsuarioRetorno As New WSUSER2 - UsuarioRetorno.CveUsuario = UsuarioActual.CveUsuario - UsuarioRetorno.CveEmpresa = UsuarioActual.CveEmpresa - UsuarioRetorno.CveCliente = UsuarioActual.CveCliente - UsuarioRetorno.Usuario = UsuarioActual.Usuario - UsuarioRetorno.Nombre = UsuarioActual.Nombre - UsuarioRetorno.CveRol = UsuarioActual.CveRol - UsuarioRetorno.Rol = UsuarioActual.Rol - UsuarioRetorno.Contrasenia = UsuarioActual.Contraseña - UsuarioRetorno.CveSubProyecto = UsuarioActual.CveSubProyecto - UsuarioRetorno.Procesos = UsuarioActual.Procesos.Values.Cast(Of String).ToList() + ' If UsuarioActual IsNot Nothing Then + ' Dim UsuarioRetorno As New WSUSER2 + ' UsuarioRetorno.CveUsuario = UsuarioActual.CveUsuario + ' UsuarioRetorno.CveEmpresa = UsuarioActual.CveEmpresa + ' UsuarioRetorno.CveCliente = UsuarioActual.CveCliente + ' UsuarioRetorno.Usuario = UsuarioActual.Usuario + ' UsuarioRetorno.Nombre = UsuarioActual.Nombre + ' UsuarioRetorno.CveRol = UsuarioActual.CveRol + ' UsuarioRetorno.Rol = UsuarioActual.Rol + ' UsuarioRetorno.Contrasenia = UsuarioActual.Contraseña + ' UsuarioRetorno.CveSubProyecto = UsuarioActual.CveSubProyecto + ' UsuarioRetorno.Procesos = UsuarioActual.Procesos.Values.Cast(Of String).ToList() - Dim UsuariosModulos As New List(Of WsModulos) - Dim Empresas As New List(Of WsEmpresa) - Dim Clientes As New List(Of WsClientePortalGPS) + ' Dim UsuariosModulos As New List(Of WsModulos) + ' Dim Empresas As New List(Of WsEmpresa) + ' Dim Clientes As New List(Of WsClientePortalGPS) - If ObjUsuarios.GetUsuariosModulos(UsuarioRetorno.CveUsuario, -1) Then - Dim DtModulos As DataTable = ObjUsuarios.DtResultados.FiltraParametros("CvePlataforma = 5 AND Permitir = 1") - For Each Row As DataRow In DtModulos.Rows - UsuariosModulos.Add(New WsModulos With {.CveModulo = Row("CveModulo").ToString.ToEntero, .CvePadre = Row("CvePadre").ToString.ToEntero, .CvePlataforma = 5, .Estilo = Row("Estilo").ToString, .Liga = Row("Liga").ToString, .Modulo = Row("Modulo").ToString, .Parametros = Row("Parametros").ToString}) - Next - DtModulos.Dispose() - DtModulos = Nothing - End If + ' Dim objUsr As New ClsSisUsuarios(UsuarioActual:=UsuarioActual) + ' If objUsr.GetUsuariosModulos(UsuarioRetorno.CveUsuario, -1) Then + ' Dim DtModulos As DataTable = ObjUsuarios.DtResultados.FiltraParametros("CvePlataforma = 5 AND Permitir = 1") + ' For Each Row As DataRow In DtModulos.Rows + ' UsuariosModulos.Add(New WsModulos With {.CveModulo = Row("CveModulo").ToString.ToEntero, .CvePadre = Row("CvePadre").ToString.ToEntero, .CvePlataforma = 5, .Estilo = Row("Estilo").ToString, .Liga = Row("Liga").ToString, .Modulo = Row("Modulo").ToString, .Parametros = Row("Parametros").ToString}) + ' Next + ' DtModulos.Dispose() + ' DtModulos = Nothing + ' End If + ' objUsr.Dispose() + ' UsuarioRetorno.Modulos = UsuariosModulos + ' Dim DtClientes As DataTable = GlobalDTUsuarios(UsuarioActual.CveUsuario).FiltraParametros("CvePlataforma = 3 AND CveCliente > 0", "Empresa") + ' If DtClientes IsNot Nothing Then + ' If DtClientes.Rows.Count > 0 Then + ' For Each Row As DataRow In DtClientes.Rows + ' Clientes.Add(New WsClientePortalGPS With {.CveCliente = Row("CveCliente").ToString.ToEntero, .Cliente = Row("Cliente").ToString}) + ' Next + ' If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then + ' UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente + ' If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then + ' UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente + ' If UsuarioRetorno.CveCliente > 0 Then + ' CreaObjetoEmpresa(UsuarioActual) + ' If UsuarioActual.Empresa.Funcionalidad(704).Contiene(UsuarioRetorno.CveCliente.ToString()) OrElse UsuarioActual.CveUsuario = 3612 Then + ' UsuarioRetorno.RastreoSoloInicio = True + ' End If + ' End If + ' End If + ' End If + ' End If + ' End If - UsuarioRetorno.Modulos = UsuariosModulos - Dim DtClientes As DataTable = GlobalDTUsuarios(UsuarioActual.CveUsuario).FiltraParametros("CvePlataforma = 3 AND CveCliente > 0", "Empresa") - If DtClientes IsNot Nothing Then - If DtClientes.Rows.Count > 0 Then - For Each Row As DataRow In DtClientes.Rows - Clientes.Add(New WsClientePortalGPS With {.CveCliente = Row("CveCliente").ToString.ToEntero, .Cliente = Row("Cliente").ToString}) - Next - If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then - UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente - If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then - UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente - If UsuarioRetorno.CveCliente > 0 Then - CreaObjetoEmpresa(UsuarioActual) - If UsuarioActual.Empresa.Funcionalidad(704).Contiene(UsuarioRetorno.CveCliente.ToString()) OrElse UsuarioActual.CveUsuario = 3612 Then - UsuarioRetorno.RastreoSoloInicio = True - End If - End If - End If - End If - End If - End If + ' 'MARCA PARA EL RASTREO SOLO INICIO + ' If UsuarioRetorno.CveUsuario = 3612 Then + ' UsuarioRetorno.RastreoSoloInicio = True + ' End If - 'MARCA PARA EL RASTREO SOLO INICIO - If UsuarioRetorno.CveUsuario = 3612 Then - UsuarioRetorno.RastreoSoloInicio = True - End If + ' UsuarioRetorno.Clientes = Clientes + ' DtClientes.Dispose() + ' DtClientes = Nothing + ' Retorno = Encripta(JsonConvert.SerializeObject(UsuarioRetorno), "AES") + ' Else + ' Dim UsuarioError As New WSUSER2 + ' UsuarioError.CveUsuario = -2 + ' UsuarioError.CveEmpresa = -1 + ' UsuarioError.CveCliente = -1 + ' UsuarioError.Usuario = "" + ' UsuarioError.Nombre = "" + ' UsuarioError.CveRol = -1 + ' UsuarioError.Rol = "" + ' UsuarioError.Contrasenia = "" + ' UsuarioError.CveSubProyecto = -1 - UsuarioRetorno.Clientes = Clientes - DtClientes.Dispose() - DtClientes = Nothing - Retorno = Encripta(JsonConvert.SerializeObject(UsuarioRetorno), "AES") - Else - Dim UsuarioError As New WSUSER2 - UsuarioError.CveUsuario = -2 - UsuarioError.CveEmpresa = -1 - UsuarioError.CveCliente = -1 - UsuarioError.Usuario = "" - UsuarioError.Nombre = "" - UsuarioError.CveRol = -1 - UsuarioError.Rol = "" - UsuarioError.Contrasenia = "" - UsuarioError.CveSubProyecto = -1 + ' Retorno = Encripta(JsonConvert.SerializeObject(UsuarioError), "AES") + ' End If - Retorno = Encripta(JsonConvert.SerializeObject(UsuarioError), "AES") - End If + ' Catch ex As Exception + ' Retorno = "" + ' OnError("Ocurrio un error al iniciar sesion.", ex) + ' Finally + ' ObjUsuarios.Dispose() + ' End Try + ' Return Retorno - Catch ex As Exception - Retorno = "" - OnError("Ocurrio un error al iniciar sesion.", ex) - Finally - ObjUsuarios.Dispose() - End Try - Return Retorno - - End Function + 'End Function Public Function GetPosicionesEquipos(strParams As String) As String Dim json = "[]" diff --git a/asmx/WSSIGApp.asmx b/asmx/WSSIGApp.asmx index a26fc9374..f4cfd7090 100644 --- a/asmx/WSSIGApp.asmx +++ b/asmx/WSSIGApp.asmx @@ -474,7 +474,7 @@ Public Class WSSIGApp If Not IsNothing(Entrada) Then If IsCurrentDate(Entrada.Ticks) Then - Dim ObjUsuarios As New ClsSisUsuarios + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion Dim UsuarioActual = ObjUsuarios.ValidaUsuario(Entrada.Usuario, Encripta(Entrada.Contrasenia), IMEI) If UsuarioActual IsNot Nothing Then @@ -491,8 +491,8 @@ Public Class WSSIGApp Dim UsuariosModulos As New List(Of WsModulos) Dim Empresas As New List(Of WsEmpresa) - - If ObjUsuarios.GetUsuariosModulos(Salida.CveUsuario, Salida.CveEmpresa) Then + Dim objUsr As New ClsSisUsuarios(UsuarioActual:=UsuarioActual) + If objUsr.GetUsuariosModulos(Salida.CveUsuario, Salida.CveEmpresa) Then Dim dttmp As DataTable = ObjUsuarios.DtResultados.FiltraParametros("CvePlataforma = 4") For Each Row As DataRow In dttmp.Rows UsuariosModulos.Add(New WsModulos With {.CveModulo = Row("CveModulo").ToString.ToEntero, .CvePadre = Row("CvePadre").ToString.ToEntero, .CvePlataforma = 4, .Estilo = Row("Estilo").ToString, .Liga = Row("Liga").ToString, .Modulo = Row("Modulo").ToString}) @@ -511,7 +511,7 @@ Public Class WSSIGApp ' End If 'End If - If ObjUsuarios.GetUsuariosEmpresas(Salida.CveUsuario, Salida.CveEmpresa) Then + If objUsr.GetUsuariosEmpresas(Salida.CveUsuario, Salida.CveEmpresa) Then For Each Row As DataRow In ObjUsuarios.DtResultados.FiltraParametros("", "", {"CveEmpresa", "CveEncuestaCRM", "Empresa", "Tipo_CentroCosto"}).Rows Empresas.Add(New WsEmpresa With { .CveEmpresa = Row("CveEmpresa").ToString.ToEntero(), @@ -523,7 +523,7 @@ Public Class WSSIGApp Salida.Empresas = Empresas ObjUsuarios.Dispose() - + objUsr.Dispose() retorno = Encripta(JsonConvert.SerializeObject(Salida), "AES") End If End If @@ -548,7 +548,7 @@ Public Class WSSIGApp Dim Salida As WSUSER = Nothing Try - Dim tUsuario As New ClsSisUsuarios + Dim tUsuario As New ClsSisUsuarioAutenticacion Dim UsuarioActual = tUsuario.ValidaUsuario(Usuario, Encripta(Contrasenia), IMEI) If UsuarioActual IsNot Nothing Then @@ -565,18 +565,20 @@ Public Class WSSIGApp Dim UsuariosModulos As New List(Of WsModulos) Dim Empresas As New List(Of WsEmpresa) - If tUsuario.GetUsuariosModulos(Salida.CveUsuario, Salida.CveEmpresa) Then + Dim objUsr As New ClsSisUsuarios(UsuarioActual:=UsuarioActual) + If objUsr.GetUsuariosModulos(Salida.CveUsuario, Salida.CveEmpresa) Then Dim dttmp As DataTable = tUsuario.DtResultados.FiltraParametros("CvePlataforma = 4") For Each Row As DataRow In dttmp.Rows UsuariosModulos.Add(New WsModulos With {.CveModulo = Row("CveModulo").ToString.ToEntero, .CvePadre = Row("CvePadre").ToString.ToEntero, .CvePlataforma = 4, .Estilo = Row("Estilo").ToString, .Liga = Row("Liga").ToString, .Modulo = Row("Modulo").ToString}) Next End If Salida.Modulos = UsuariosModulos - If tUsuario.GetUsuariosEmpresas(Salida.CveUsuario, Salida.CveEmpresa) Then + If objUsr.GetUsuariosEmpresas(Salida.CveUsuario, Salida.CveEmpresa) Then For Each Row As DataRow In tUsuario.DtResultados.Rows Empresas.Add(New WsEmpresa With {.CveEmpresa = Row("CveEmpresa").ToString.ToEntero, .Empresa = Row("Empresa").ToString}) Next End If + objUsr.Dispose() Salida.Empresas = Empresas retorno = JsonConvert.SerializeObject(Salida) End If @@ -603,7 +605,7 @@ Public Class WSSIGApp Dim Ent = JsonConvert.DeserializeAnonymousType(decripParams, Estructura) If IsCurrentDate(Ent.Ticks) Then - Dim tUsuario As New ClsSisUsuarios + Dim tUsuario As New ClsSisUsuarioAutenticacion Dim UsuarioActual = tUsuario.ValidaUsuario(Ent.Usuario, Ent.Contrasenia, IMEI) tUsuario.Dispose() @@ -1784,15 +1786,15 @@ Public Class WSSIGApp Public Function AddVentas(TipoDocto As String, CveCliente As Integer, CveSubProyecto As Integer, CveUsuario As Integer, SubTotal As Decimal, IVA As Decimal, CveMoneda As Integer, Observaciones As String, Productos As String) As String Dim Retorno = New Modelos.Factura.MMensajeFactura() Try - Dim ObjUsuarios As New ClsSisUsuarios() - Dim UsuarioActual As Usuario = Nothing - If ObjUsuarios.GetUsuarios(CveUsuario) Then + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion + Dim UsuarioActual As Usuario = ObjUsuarios.GetUsuarioDetalle(CveUsuario) + If UsuarioActual IsNot Nothing Then Dim Usuario = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() Dim Contrasenia = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() If ObjUsuarios.DtResultados.Rows.Count = 1 Then UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, IMEI) - CreaObjetoEmpresa(UsuarioActual) + ' CreaObjetoEmpresa(UsuarioActual) End If End If ObjUsuarios.Dispose() diff --git a/asmx/WS_PuntoVenta.asmx b/asmx/WS_PuntoVenta.asmx index 04adb10b2..7aa4f7908 100644 --- a/asmx/WS_PuntoVenta.asmx +++ b/asmx/WS_PuntoVenta.asmx @@ -739,7 +739,7 @@ Public Class WS_PuntoVenta Public Function GetUsuariosRolesProcesos(Usuario As String, Contraseña As String, CveProceso As Integer) As Integer Dim CveUsuario As Integer = -1 - Dim objUsuarios As New ClsSisUsuarios + Dim objUsuarios As New ClsSisUsuarioAutenticacion Dim objUsuario As New Usuario objUsuario = objUsuarios.ValidaUsuario(Usuario, Encripta(Contraseña)) From 89f9bf8781feed41275db64af61dc98cc737b836 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:20:36 -0700 Subject: [PATCH 59/87] - --- Inventarios/RepNotasSinAlmacen.aspx.vb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Inventarios/RepNotasSinAlmacen.aspx.vb b/Inventarios/RepNotasSinAlmacen.aspx.vb index 1ee22d54b..bf204bdb0 100644 --- a/Inventarios/RepNotasSinAlmacen.aspx.vb +++ b/Inventarios/RepNotasSinAlmacen.aspx.vb @@ -141,9 +141,7 @@ Partial Class RepNotasSinAlmacen Dim Reporte As New ClsInventarios If Reporte.RepNotasSinAlmacen(Opcion, CveClienteProveedor, FechaInicial, FechaFinal, TipoDocumento, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.Empresa.CveEmpresa) Then Dim dtt As DataTable = Reporte.DtResultados - If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then ' es empresa hospitalaria - dtt = dtt.fit - End If + GvVentas.DataSource = Reporte.DtResultados DtNotasSinAlmacenVentas = Reporte.DtResultados Else From 1aedcd972bc564db2121827ddafa777bae6104ea Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:20:51 -0700 Subject: [PATCH 60/87] =?UTF-8?q?=20cambio=20de=20clase=20de=20validaci?= =?UTF-8?q?=C3=B3n=20de=20usuario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LogIn.aspx.vb | 77 ++++++++++++++------------------------------------- 1 file changed, 21 insertions(+), 56 deletions(-) diff --git a/LogIn.aspx.vb b/LogIn.aspx.vb index 99fe91a6a..23402497a 100644 --- a/LogIn.aspx.vb +++ b/LogIn.aspx.vb @@ -115,7 +115,6 @@ Partial Class LogIn Dim elapsedSpan As New TimeSpan(elapsedTicks) PnlLogin.Visible = False - If elapsedSpan.Days < 3 Then Dim Usr As New ClsSisUsuarios @@ -144,18 +143,12 @@ Partial Class LogIn Else Alert("El Usuario no existe", TipoMensaje.MsgError) End If - End If - Usr.Dispose() Else Alert("La Activación expiró", TipoMensaje.MsgError) End If - - 'TxtContraseña.Text = UrlParametros("CLAVE").ToString.Trim - End If - End If End If Else @@ -206,25 +199,10 @@ Partial Class LogIn End If If BtnLogIn_Clickenter = 0 Then 'esta variable se recicla con cada postaback BtnLogIn_Clickenter = 1 - Dim tGrupoEmpresa As String = "" - Dim NombreCadena As String = "Conexion" + Dim tGrupoEmpresa As String = ClsPaginas.GlobalGrupoEmpresa(Request.Url.Host.ToUpper()) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexionDominio(Request.Url.Host.ToUpper()) - If Request.Url.Host.ToUpper().Contains("EMD".ToUpper()) Then tGrupoEmpresa = "EMD" - If Request.Url.Host.ToUpper().Contains("BDH".ToUpper()) Then tGrupoEmpresa = "BDH" - If Request.Url.Host.ToUpper().Contains("ECONOLLANTAS".ToUpper()) Then tGrupoEmpresa = "ECONOLLANTAS" : NombreCadena = "ConexionEcono" - If Request.Url.Host.ToUpper().Contains("JAM".ToUpper()) Then tGrupoEmpresa = "JAM" - If Request.Url.Host.ToUpper().Contains("CITRUS".ToUpper()) Then tGrupoEmpresa = "CITRUS" - If Request.Url.Host.ToUpper().Contains("KINO".ToUpper()) Then tGrupoEmpresa = "KINO" - If Request.Url.Host.ToUpper().Contains("VSH".ToUpper()) Then tGrupoEmpresa = "VSH" - If Request.Url.Host.ToUpper().Contains("AJAM".ToUpper()) Then tGrupoEmpresa = "AJAM" - If Request.Url.Host.ToUpper().Contains("ALATEL".ToUpper()) Then tGrupoEmpresa = "ALATEL" - If Request.Url.Host.ToUpper().Contains("SERVEC".ToUpper()) Then tGrupoEmpresa = "SERVEC" - If Request.Url.Host.ToUpper().Contains("SMS".ToUpper()) Then tGrupoEmpresa = "SMS" - If Request.Url.Host.ToUpper().Contains("VYA".ToUpper()) Then tGrupoEmpresa = "VYA" - If Request.Url.Host.ToUpper().Contains("GRUPODIAZ".ToUpper()) Then tGrupoEmpresa = "GRUPODIAZ" : NombreCadena = "ConexionGDiaz" - If Request.Url.Host.ToUpper().Contains("FERRETERA".ToUpper()) Then tGrupoEmpresa = "FERRETERA" - - Dim ObjUsuario As New ClsSisUsuarios(NombreCadena:=NombreCadena) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Dim Usuario As Usuario = Nothing Dim isgps As Boolean = Request.Url.Host.ToUpper().Contains("SIGNALSGPS".ToUpper()) @@ -240,7 +218,7 @@ Partial Class LogIn If Usuario IsNot Nothing Then If Not Usuario.AutorizadoxIP OrElse (HddAdsCodex.Text.Length > 0 AndAlso Usuario.CodigoAutorizado = HddAdsCodex.Text) Then - CreaObjetoEmpresa(Usuario, NombreCadena) + 'CreaObjetoEmpresa(Usuario, NombreCadena) ADSSessionConfig.sessionUser.MultipleEmpresa = True Dim x As New ADSSessionObj(Usuario.CveUsuario, Usuario.CveEmpresa) @@ -268,20 +246,7 @@ Partial Class LogIn Else 'PLATAFORMA SIG CType(Session("UsuarioSIG"), Usuario).CvePlataforma = 1 - Using ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuariosEmpresas(Usuario.CveUsuario, Usuario.CveEmpresa) Then - Dim dt As Data.DataTable = ObjUsuarios.DtResultados - If dt IsNot Nothing Then - If dt.Rows.Count >= 1 Then - If dt.Rows.Count > 1 Then - Usuario.MultipleEmpresa = True - End If - 'FormsAuthentication.RedirectFromLoginPage(Encripta(Usuario.CveUsuario), False) - End If - End If - dt.Dispose() - End If - End Using + End If Dim cookie As HttpCookie = FormsAuthentication.GetAuthCookie(Usuario.CveUsuario.ToString, False) @@ -343,25 +308,25 @@ Partial Class LogIn End If End Function - Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario, Optional NombreCadena As String = "Conexion") + 'Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario, Optional NombreCadena As String = "Conexion") - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados + ' Dim ObjEmpresa As New ClsSisEmpresas(UsuarioActual:=UsuarioActual) + ' If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then + ' If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then + ' Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If + ' Dim EmpresasFuncionalidades As New HybridDictionary + ' For Each Row As Data.DataRow In dttmp.Rows + ' EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + ' Next + ' ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + ' End If - UsuarioActual.Empresa = ObjEmpresa.Empresa - Else - End If - ObjEmpresa.Dispose() - End Sub + ' UsuarioActual.Empresa = ObjEmpresa.Empresa + ' Else + ' End If + ' ObjEmpresa.Dispose() + 'End Sub Dim BtnGuardar_Clickenter As Integer = 0 Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) If BtnGuardar_Clickenter = 0 Then 'esta variable se recicla con cada postaback From da8683d2e1cfbf6592604250292d1c07827b280b Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:21:19 -0700 Subject: [PATCH 61/87] =?UTF-8?q?--=20cambio=20de=20clase=20de=20validaci?= =?UTF-8?q?=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/PopUpVerFactura.aspx.vb | 48 +++++++++++---------------------- 1 file changed, 16 insertions(+), 32 deletions(-) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 691ebe226..0fcf524a0 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -94,15 +94,15 @@ Partial Class PopUpVerFactura Dim UserParams As Hashtable = Parametros(Decripta((Request.Headers("ADSToken").ToString))) Dim CveEmpresaToken As Integer = UserParams("CVEEMPRESA").ToString().ToEntero() Dim CveUsuario As Integer = IfNull(UserParams("CVEUSUARIO"), 100, UserParams("CVEUSUARIO").ToString().ToEntero()).ToString().ToEntero() + If CveEmpresaToken > 0 AndAlso CveUsuario > 0 Then + Dim UsuarioToken As Usuario = ValidaUsuarioSistema(CveEmpresaToken, CveUsuario) - Dim UsuarioToken As Usuario = ValidaUsuarioSistema(CveEmpresaToken, CveUsuario) - - If UsuarioToken IsNot Nothing AndAlso Context.Session("UsuarioSIG") Is Nothing Then - Context.Session("UsuarioSIG") = UsuarioToken + If UsuarioToken IsNot Nothing AndAlso Context.Session("UsuarioSIG") Is Nothing Then + Context.Session("UsuarioSIG") = UsuarioToken + End If End If End If - If Request("CVETIMBRE") IsNot Nothing AndAlso Request("CVETIMBRE") IsNot Nothing Then ImprimeFormatoCartaPorteTimbrado(Request("CVETIMBRE").ToString.ToEntero) End If @@ -1154,40 +1154,24 @@ Partial Class PopUpVerFactura End Sub #Region "U S U A R I O - T O K E N" - Private Function ValidaUsuarioSistema(CveEmpresa As Integer, Optional CveUsuario As Integer = 100) As Usuario + Private Function ValidaUsuarioSistema(CveEmpresa As Integer, CveUsuario As Integer) As Usuario Dim UsuarioToken As Usuario = Nothing - Dim ObjUsuarios As New ClsSisUsuarios - If ObjUsuarios.GetUsuarios(CveUsuario) Then - If ObjUsuarios.DtResultados.Rows.Count > 0 Then - Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() - Dim Contrasenia As String = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() - UsuarioToken = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) - UsuarioToken.CveEmpresa = CveEmpresa - CreaObjetoEmpresa(UsuarioToken) - End If + 'Dim tGrupoEmpresa As String = ClsPaginas.GlobalGrupoEmpresa(Request.Url.Host.ToUpper()) + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa) + + Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) + UsuarioToken = ObjUsuarios.GetUsuarioDetalle(CveUsuario, CveEmpresa) + If UsuarioToken IsNot Nothing Then + Dim Usuario As String = ObjUsuarios.DtResultados.Rows(0)("Usuario").ToString() + Dim Contrasenia As String = ObjUsuarios.DtResultados.Rows(0)("Contraseña").ToString() + UsuarioToken = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa:=CveEmpresa) + UsuarioToken.CveEmpresa = CveEmpresa End If ObjUsuarios.Dispose() Return UsuarioToken End Function - Private Sub CreaObjetoEmpresa(ByRef UsuarioToken As Usuario) - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(UsuarioToken.CveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioToken.CveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If - - UsuarioToken.Empresa = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - End Sub #End Region Private Sub SeleccionaReporte(UrlParametros As Hashtable) From 3cb056ac9557f29638d3ddf4cf21ea23810eb909 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:21:37 -0700 Subject: [PATCH 62/87] =?UTF-8?q?--=20cambio=20en=20clase=20de=20validaci?= =?UTF-8?q?=C3=B3n=20de=20usuario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx | 4 +-- Ventas/Ventas.aspx.vb | 63 ++++++++++++++++--------------------------- 2 files changed, 25 insertions(+), 42 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 1285c88c5..b48a74e8c 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -1671,7 +1671,7 @@ Amort. Ant.: -   +   @@ -3682,7 +3682,7 @@ Referencia - + diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index e4df44d3f..3d7dca82c 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -3658,8 +3658,8 @@ Partial Class Ventas tUsuario = DrUsuario("Usuario").ToString tContraseña = DrUsuario("Contraseña").ToString tCveEmpresa = DrUsuario("CveEmpresa").ToString.ToEntero - - Dim ObjUsuario As New ClsSisUsuarios + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexionDominio(Request.Url.Host.ToUpper()) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) Dim Usuario As Usuario Usuario = ObjUsuario.ValidaUsuario(tUsuario, tContraseña, CveEmpresa:=tCveEmpresa) @@ -3680,25 +3680,25 @@ Partial Class Ventas End If dt.Dispose() - Dim ObjEmpresa As New ClsSisEmpresas() - If ObjEmpresa.GetEmpresas(tCveEmpresa, "-1", "-1", "-1", "-1") Then - If ObjEmpresa.GetEmpresasFuncionalidades(tCveEmpresa) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados + 'Dim ObjEmpresa As New ClsSisEmpresas() + 'If ObjEmpresa.GetEmpresas(tCveEmpresa, "-1", "-1", "-1", "-1") Then + ' If ObjEmpresa.GetEmpresasFuncionalidades(tCveEmpresa) Then + ' Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + ' Dim EmpresasFuncionalidades As New HybridDictionary + ' For Each Row As Data.DataRow In dttmp.Rows + ' EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + ' Next + ' ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If + ' End If - Usuario.Empresa = ObjEmpresa.Empresa - ADSSession.ADSSessionConfig.sessionUser.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa + ' Usuario.Empresa = ObjEmpresa.Empresa + ' ADSSession.ADSSessionConfig.sessionUser.CveEmpresa = ObjEmpresa.Empresa.CveEmpresa - ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, ObjEmpresa.Empresa.CveEmpresa) - End If - ObjEmpresa.Dispose() + ' ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarEmpresa, Nothing, ObjEmpresa.Empresa.CveEmpresa) + 'End If + 'ObjEmpresa.Dispose() End If @@ -16723,7 +16723,7 @@ Partial Class Ventas If ObjMovtos.DtResultados.SUM("Saldo", "Saldo > 0 AND SaldoSubtotal > 0 AND Tipo = 'Ant'") > 0 Then HdnTieneAnticipos.Value = "1" End If - + If DtMovtos.Rows.Count > 0 Then ImgAntiPend.Visible = True If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso DtMovtos IsNot Nothing AndAlso DtMovtos.Rows.Count = 0 Then ImgAntiPend.Visible = False End If @@ -31463,11 +31463,13 @@ Partial Class Ventas divAmortizacionTipoRelacion.Visible = False GVAnticipos.DataSource = DtMovtos GVAnticipos.DataBind() + If DtMovtos.Rows.Count > 0 Then ImgAntiPend.Visible = True Else Dim DtMovtos As DataTable = Me.TmpDTAnticiposNCIxCCliente.FiltraParametros($"Saldo > 0 AND SaldoSubtotal > 0 {If(CveVenta < 0, $"AND Tipo = 'Ant' ", "")} {If(DdlTipoComprobante.SelectedValue = "Ant", "AND Tipo = 'NC'", "")}") divAmortizacionTipoRelacion.Visible = True If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then DtMovtos = DtMovtos.FiltraParametros($"{If(CveVenta < 0, $"Tipo = 'Ant'{If(DdlTipoComprobante.SelectedValue = "Ing", $" AND CveMoneda ={DdlMoneda.SelectedValue.ToEntero()}", "")} ", "")}") + If DtMovtos.Rows.Count > 0 Then ImgAntiPend.Visible = True End If End If End If @@ -31477,7 +31479,6 @@ Partial Class Ventas 'cuando es amortización por descuento, debe tener seleccionado descuentos previamente registrados If DdlTipoAmortizacionAnticipo.SelectedValue = "1" AndAlso LblDescuentos.Text.ToDecimal <= 0 Then divAnticipoMsg.Visible = True - End If If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then @@ -37415,25 +37416,8 @@ Partial Class Ventas End Sub Public Sub CargaDdlAF() - Dim strAF = UsuarioActual.Empresa.Funcionalidad(380) - Dim CvePSAF As Integer = -1 - If String.IsNullOrEmpty(strAF) Then - Dim RowFuncionalidad380 As DataRow = Nothing - - Using ObjEmpresas As New ClsSisEmpresas - If ObjEmpresas.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then - RowFuncionalidad380 = ObjEmpresas.DtResultados.FiltroPrimero("CveFuncionalidad = 380") - End If - End Using - - If RowFuncionalidad380 IsNot Nothing Then - CvePSAF = RowFuncionalidad380("Valor").ToString().ToEntero() - End If - - Else - CvePSAF = strAF.ToEntero() - End If + Dim CvePSAF As Integer = UsuarioActual.Empresa.Funcionalidad(380).ToEntero If CvePSAF > 0 Then Dim dtt = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSAF, AplicaParaVenta:=1) ', SATClavePS:=CveSATNC @@ -38293,13 +38277,12 @@ Partial Class Ventas Protected Sub BtnAutorizarDescuento_Click(sender As Object, e As EventArgs) Dim UsuarioAutorizar As Usuario = Nothing - - Using ObjUsuario As New ClsSisUsuarios + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexionDominio(Request.Url.Host.ToUpper()) + Using ObjUsuario As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena) If RblTipoAutorizacionDesc.SelectedValue = "1" Then UsuarioAutorizar = ObjUsuario.ValidaUsuario(txtUserDesc.Text.Trim, Encripta(txtPassDesc.Text), CveEmpresa:=UsuarioActual.CveEmpresa) Else Dim CveUsuarioNuevo As Integer = -1 - Using ObjUsuarios As New ClsSisUsuarios CveUsuarioNuevo = ObjUsuarios.ValidaUsuarioCodigoAcceso(TxtCodAccDesc.Text.Trim, UsuarioActual.CveEmpresa) End Using From 4d4d8f1269d02bec2958831a1aaeeb5deda2909d Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:21:47 -0700 Subject: [PATCH 63/87] - --- Default2.aspx | 20 -------------------- Default2.aspx.cs | 14 -------------- 2 files changed, 34 deletions(-) delete mode 100644 Default2.aspx delete mode 100644 Default2.aspx.cs diff --git a/Default2.aspx b/Default2.aspx deleted file mode 100644 index 622c9e37e..000000000 --- a/Default2.aspx +++ /dev/null @@ -1,20 +0,0 @@ -<%@ Page Title="" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %> - - - - - - - - - - - - - - - - - - - diff --git a/Default2.aspx.cs b/Default2.aspx.cs deleted file mode 100644 index 030cb567b..000000000 --- a/Default2.aspx.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; - -public partial class Default2 : System.Web.UI.Page -{ - protected void Page_Load(object sender, EventArgs e) - { - - } -} \ No newline at end of file From 159049f6513e97bb4ad0a977a0a00e73d24b7d2a Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 30 Jun 2024 23:22:03 -0700 Subject: [PATCH 64/87] - liga prepolizasdetalle --- Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb b/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb index 42d35bd3f..fc69f2a4f 100644 --- a/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb +++ b/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb @@ -126,7 +126,7 @@ Partial Class RepCuadreContaAdmonDetalle End If If e.Row.DataKey("CvePrePoliza").ToEntero > 0 Then - Dim LigaPrePoliza As String = $"/Contabilidad/RegPrePoliza.aspx?CvePrePoliza={e.Row.DataKey("CvePrePoliza")}&Tipo=1" + Dim LigaPrePoliza As String = $"/Contabilidad/RegPrepolizaS.aspx?CvePrePoliza={e.Row.DataKey("CvePrePoliza")}&Tipo=1" e.Row.FCLiteral("LtlCargoAdmon").Text = " " & e.Row.FCLiteral("LtlCargoAdmon").Text & " " e.Row.FCLiteral("LtlAbonoAdmon").Text = " " & e.Row.FCLiteral("LtlAbonoAdmon").Text & " " End If From 370c128d6139652f50674b5e5083b944135a7171 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Jul 2024 08:46:40 -0700 Subject: [PATCH 65/87] =?UTF-8?q?--=20cambio=20de=20clase=20de=20validaci?= =?UTF-8?q?=C3=B3n=20de=20usuario?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TareasProgramadas/Tareas119.ashx | 32 ++++++++++++------------------- TareasProgramadas/TareasJam.ashx | 33 ++++++++++++++++++++++++++++++++ Ventas/PV.aspx.vb | 4 ++-- 3 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 TareasProgramadas/TareasJam.ashx diff --git a/TareasProgramadas/Tareas119.ashx b/TareasProgramadas/Tareas119.ashx index 998b74230..f3f2b056b 100644 --- a/TareasProgramadas/Tareas119.ashx +++ b/TareasProgramadas/Tareas119.ashx @@ -340,8 +340,8 @@ public class TareasJam : IHttpHandler wsClientes.Cell(count, 5).Value = DRow["address.countryId"].ToString(); wsClientes.Cell(count, 6).Value = DRow["address.stateId"].ToString(); wsClientes.Cell(count, 7).Value = DRow["address.city"].ToString(); - - wsClientes.Cell(count, 8).Value = DRow["address.street1"].ToString(); + + wsClientes.Cell(count, 8).Value = DRow["address.street1"].ToString(); wsClientes.Cell(count, 9).Value = DRow["address.street2"].ToString(); wsClientes.Cell(count, 10).Value = "'" + DRow["address.postalCode"].ToString(); wsClientes.Cell(count, 11).Value = DRow["phone.intCode"].ToString(); @@ -642,27 +642,19 @@ public class TareasJam : IHttpHandler private Usuario ValidaUsuarioSistema(int CveUsuario, int CveEmpresa) { Usuario UsuarioActual = null/* TODO Change to default(_) if this is not a reference type */; - ClsSisUsuarios ObjUsuarios = new ClsSisUsuarios(); + + string NombreCadena = ClsPaginas.get_GlobalNombreCadenaConexion(CveEmpresa); + ClsSisUsuarioAutenticacion ObjUsuarios = new ClsSisUsuarioAutenticacion(NombreCadena:NombreCadena); + UsuarioActual = ObjUsuarios.GetUsuarioDetalle(CveUsuario); - if (ObjUsuarios.GetUsuarios(CveUsuario)) - { - if (ObjUsuarios.DtResultados.Rows.Count > 0) + if (UsuarioActual != null) + { + if( HttpContext.Current.Session == null) { - string Usuario = ObjUsuarios.DtResultados.Rows[0]["Usuario"].ToString(); - string Contrasenia = ObjUsuarios.DtResultados.Rows[0]["Contraseña"].ToString(); - UsuarioActual = ObjUsuarios.ValidaUsuario(Usuario, Contrasenia, CveEmpresa: CveEmpresa); - UsuarioActual.CveEmpresa = CveEmpresa; - - if( HttpContext.Current.Session == null) - { - // CrearHttpContextArtificial(); - CrearHttpContextConSession(); - - - } - - HttpContext.Current.Session["UsuarioSIG"] = UsuarioActual; + // CrearHttpContextArtificial(); + CrearHttpContextConSession(); } + HttpContext.Current.Session["UsuarioSIG"] = UsuarioActual; } ObjUsuarios.Dispose(); diff --git a/TareasProgramadas/TareasJam.ashx b/TareasProgramadas/TareasJam.ashx new file mode 100644 index 000000000..6ca3744ad --- /dev/null +++ b/TareasProgramadas/TareasJam.ashx @@ -0,0 +1,33 @@ +<%@ WebHandler Language="C#" Class="TareasJam" %> + +using System; +using System.Web; +using Extensiones; + +public class TareasJam : IHttpHandler +{ + + public void ProcessRequest(HttpContext context) + { + context.Response.ContentType = "text/plain"; + //context.Response.Write("Hello World"); + string Metodo = context.Request["Metodo"] ==null?"": context.Request["Metodo"]; + string CveEmpresa =context.Request["CveEmpresa"] ==null?"": context.Request["CveEmpresa"]; + string cveTareaProgramada =context.Request["cveTareaProgramada"] ==null?"": context.Request["cveTareaProgramada"]; + string CveTareaProgramadaHistorial =context.Request["CveTareaProgramadaHistorial"] ==null?"": context.Request["CveTareaProgramadaHistorial"]; + switch (Metodo) + { + case "Alamo": + break; + default: + break; + } + ModExtensiones.GuardaLogAD(string.Format("{3} CveEmpresa={0} cveTareaProgramada={1} CveTareaProgramadaHistorial={2}", CveEmpresa, cveTareaProgramada, CveTareaProgramadaHistorial, Metodo), "Tareas Programadas"); + } + + public bool IsReusable + { + get { return false; } + } + +} \ No newline at end of file diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 7fff04748..1dd7fefbf 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -8361,8 +8361,8 @@ Partial Class PV tUsuario = DrUsuario("Usuario").ToString tContraseña = DrUsuario("Contraseña").ToString tCveEmpresa = DrUsuario("CveEmpresa").ToString.ToEntero - - Dim ObjUsuario As New ClsSisUsuarios + Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(tCveEmpresa) + Dim ObjUsuario As New ClsSisUsuarioAutenticacion Dim Usuario As Usuario Usuario = ObjUsuario.ValidaUsuario(tUsuario, tContraseña, CveEmpresa:=tCveEmpresa) From 0b29a2e57f2d602f7172c348b4a4baff787ff161 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Jul 2024 12:05:39 -0700 Subject: [PATCH 66/87] =?UTF-8?q?--=20mejora=20al=20agregar=20partidas=20d?= =?UTF-8?q?e=20uja=20cotizaci=C3=B3n=20ya=20registrada?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 7d910641f..5284b0677 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -9333,7 +9333,8 @@ Partial Class Ventas e.Row.CssClass = "SubTotales" End If Else - e.Row.FCLiteral("LtlPS").Text = String.Format(" {4}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveAlmacen"), e.Row.DBCampo("Fecha").ToDate.AddDays(-7).ToShortDateString, e.Row.DBCampo("Fecha").ToDate.AddDays(7).ToShortDateString, e.Row.DBCampo("PS")) + Dim tFecha As Date = If(e.Row.DBCampo("Fecha") <> "", e.Row.DBCampo("Fecha").ToDate, NowADS()) + e.Row.FCLiteral("LtlPS").Text = String.Format(" {4}", e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveAlmacen"), tFecha.AddDays(-7).ToShortDateString, tFecha.AddDays(7).ToShortDateString, e.Row.DBCampo("PS")) e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left e.Row.FCCheckBox("cbInv").Visible = True From 8c3bd8c289906c270c324f8931b579a8a468e275 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Jul 2024 17:28:23 -0700 Subject: [PATCH 67/87] -- mejora en saldar --- Ventas/ClientesAbonar.aspx.vb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index eecbe080e..5e3d9e961 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -2309,6 +2309,7 @@ Partial Class Ventas_ClientesAbonar If gr.FCCheckBox("Chk").Checked Then Dim PorcentajePago As Decimal = gr.DataKey("Saldo").ToDecimal / gr.DataKey("Original").ToDecimal Dim Saldo As Decimal = gr.DataKey("Saldo").ToDecimal + Dim SaldoMN As Decimal = gr.DataKey("Saldo").ToDecimal Dim RETIVA As Decimal = gr.DataKey("RetIVA").ToDecimal Dim SubTotal As Decimal = PorcentajePago * (gr.DataKey("SubTotal").ToDecimal.RoundSQL - gr.DataKey("Descuento").ToDecimal.RoundSQL).RoundSQL Dim IVA As Decimal = PorcentajePago * gr.DataKey("IVA").ToDecimal.RoundSQL @@ -2339,9 +2340,9 @@ Partial Class Ventas_ClientesAbonar 'If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero 'If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero - If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) Then + If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122, 145) Then - ClienteMovto = False : Saldo = Saldo * -1 + ClienteMovto = False : SaldoMN = Saldo : Saldo = Saldo * -1 ImpuestosMovto = True : IVA = IVA * -1 RETIVA = ((SubTotal * RETIVA / gr.DataKey("SubTotal").ToDecimal.RoundSQL) * -1).RoundSQL(2) CveConceptoCliente = 1 @@ -2356,7 +2357,7 @@ Partial Class Ventas_ClientesAbonar If MsgError = "" Then Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, True, 1) 'normal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, Saldo, ConPreP.CveConcepto, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, SaldoMN, Saldo, ConPreP.CveConcepto, gr.DataKey("SerieFolio").ToString, ConceptoPartida, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then MsgError = "Ocurrio un error al saldar el movimiento" End If From 5e788afd3e7f7ddec39f139df06c62f8ee4519b1 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 1 Jul 2024 19:20:41 -0700 Subject: [PATCH 68/87] Ventas.aspx: --En acciones para el rol de mostrador, Quitar de acciones --Billetito no debe de salir Promociones.aspx: --Si tiene clasificacion, excluya el ps, Si tiene ps. que excluya la clasificacion. --- Ventas/Promociones.aspx.vb | 11 +++++++++-- Ventas/Ventas.aspx | 9 ++++++--- Ventas/Ventas.aspx.vb | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/Ventas/Promociones.aspx.vb b/Ventas/Promociones.aspx.vb index 6aea352cf..73170657e 100644 --- a/Ventas/Promociones.aspx.vb +++ b/Ventas/Promociones.aspx.vb @@ -377,9 +377,16 @@ Partial Class Ventas_Promociones Protected Sub BtnAgregar_Click(sender As Object, e As EventArgs) - If UsuarioActual.Empresa.Funcionalidad(382) <> "1" Then + If DdlClasificacion.SelectedValue.ToEntero <= 0 Then + If DdlPS.SelectedValue.ToEntero <= 0 Then + Alert("Debe seleccionar una clasificacion o un producto y/o servicio", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + + If DdlPS.SelectedValue.ToEntero <= 0 Then If DdlClasificacion.SelectedValue.ToEntero <= 0 Then - Alert("Debe seleccionar una clasificacion", TipoMensaje.MsgAdvertencia) + Alert("Debe seleccionar una clasificacion o un producto y/o servicio", TipoMensaje.MsgAdvertencia) Exit Sub End If End If diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index b48a74e8c..981d27d71 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -10561,12 +10561,16 @@ function FnCambiaAnt(chk, txt, saldo) { - debugger; - var Total = ToDouble($get('TxtSubTotal').value); + let Total = ToDouble($get('TxtSubTotal').value); + let TipoAnticipo = $('#<%= DdlTipoAmortizacionAnticipo.ClientID %>').val(); let importeTxt = parseFloat(txt.value.replace(/,/g, '')); + if (TipoAnticipo == '4') { + Total = ToDouble($get('TxtTotal').value); + } + if (isNaN(importeTxt)) { importeTxt = 0; } else { @@ -10580,7 +10584,6 @@ saldo = (importeTxt > saldo) ? saldo : importeTxt; - var SaldoCompra = (Total - FnSumaValoresAnt() + ToDouble(txt.value)).toFixed(2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnVentaSaldo').value).toFixed(2)); if (SaldoCompra < 0) txt.value = SaldoCompra - txt.value; //minimo entre saldocompra y el saldoanticipo diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 7d910641f..ea5dbd214 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -7047,6 +7047,12 @@ Partial Class Ventas End If If Not EsModuloCotizacion Then LnkRemisiones.Visible = If(UsuarioActual.TienePermisoProceso(199), True, False) : LnkOCs.Visible = True : LnkCotizaciones.Visible = True : LnkPedido2SinFacturar.Visible = True : InicializaAplicarNCMasiva() + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(60) Then + LnkCotizaciones.Visible = False + LnkPedido2SinFacturar.Visible = False + LnkRemisiones.Visible = False + LnkOCs.Visible = False + End If End If End If @@ -8237,6 +8243,13 @@ Partial Class Ventas End If If Not EsModuloCotizacion Then LnkRemisiones.Visible = If(UsuarioActual.TienePermisoProceso(199), True, False) : LnkOCs.Visible = True : LnkCotizaciones.Visible = True : LnkPedido2SinFacturar.Visible = True : InicializaAplicarNCMasiva() + + If UsuarioActual.Empresa.Funcionalidad(382) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(60) Then + LnkCotizaciones.Visible = False + LnkPedido2SinFacturar.Visible = False + LnkRemisiones.Visible = False + LnkOCs.Visible = False + End If End If End If @@ -16759,6 +16772,7 @@ Partial Class Ventas GVAnticipos.DataBind() End If UpAnticipos.Update() + UpPS.Update() End Sub Protected Sub GVAnticipos_RowCreated(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GVAnticipos.RowCreated @@ -18265,6 +18279,15 @@ Partial Class Ventas ImgAntiPend.Visible = True End If + If ImgAntiPend.Visible Then + If Me.TmpDTAnticiposNCIxCCliente IsNot Nothing Then + Dim DtMovtos As DataTable = Me.TmpDTAnticiposNCIxCCliente.FiltraParametros($"Saldo > 0 And SaldoSubtotal > 0 {If(CveVenta < 0, $"AND Tipo IN('NC','RNC','IxC') ", "")}") + If DtMovtos.Rows.Count = 0 Then + ImgAntiPend.Visible = False + End If + End If + End If + TxtFechaPago.Text = NowADS().AddDays(PlazoCobranza).ToShortDateString @@ -18300,6 +18323,15 @@ Partial Class Ventas ImgAntiPend.Visible = True End If + If ImgAntiPend.Visible Then + If Me.TmpDTAnticiposNCIxCCliente IsNot Nothing Then + Dim DtMovtos As DataTable = Me.TmpDTAnticiposNCIxCCliente.FiltraParametros($"Saldo > 0 And SaldoSubtotal > 0 {If(CveVenta < 0, $"AND Tipo IN('NC','RNC','IxC') ", "")}") + If DtMovtos.Rows.Count = 0 Then + ImgAntiPend.Visible = False + End If + End If + End If + MostrarOpcionesPaqueteria() TrAtencionA.Visible = True From 1ec803786e91dd05ab75fee6580abb7813c2c285 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Mon, 1 Jul 2024 19:30:03 -0700 Subject: [PATCH 69/87] Ventas Correcion sucursales - Almacenes, auxiliar correciones UI --- Contabilidad/PopUpAuxiliar.aspx | 205 +++++++++++++++-------------- Contabilidad/PopUpAuxiliar.aspx.vb | 3 +- Ventas/Ventas.aspx.vb | 46 ++++++- 3 files changed, 150 insertions(+), 104 deletions(-) diff --git a/Contabilidad/PopUpAuxiliar.aspx b/Contabilidad/PopUpAuxiliar.aspx index 9b3616a1b..c93a408c6 100644 --- a/Contabilidad/PopUpAuxiliar.aspx +++ b/Contabilidad/PopUpAuxiliar.aspx @@ -79,99 +79,109 @@ - - - - - - Fecha - - - - - - Concepto - - - - - - Cargo - - - - - - Abono - - - - - - Folio (Ref.) - -   - - - - Contabilizado - - - - - - Póliza - - - - - - Fecha Conta. - - - - - - Referencia - - - - - - Usuario - - - - - - + + + + + <%--0--%> + + Fecha + + + + + <%--1--%> + + Concepto + + + + + <%--2--%> + + Cargo + + + + + <%--3--%> + + Abono + + + + + <%--4--%> + + Folio (Ref.) + +   + + + <%--5--%> + + Contabilizado + + + + + <%--6--%> + + Póliza + + + + + <%--7--%> + + Fecha Conta. + + + + + <%--8--%> + + Referencia + + + + + <%--9--%> + + Usuario + + + + + + + <%--10--%> + + + + + + + <%--11--%> + + + + + + <%--12--%> + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + @@ -201,10 +211,11 @@
    - F.F.: + F.Fin.:
    From 7e075d40153327628183614916300dccc91e41ab Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Jul 2024 22:08:32 -0700 Subject: [PATCH 71/87] -nuevo global --- App_Code/ClsPaginas.vb | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 6e721d930..4ebbbfb54 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -2344,6 +2344,31 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property + + Public Shared Property GlobalDTClientesTodosSucursales(CveEmpresa As Integer, Optional CveCliente As Integer = -1) As DataTable + Get + Dim AppNombre As String = $"GlobalDTClientesTodosSucursales-{CveEmpresa}" + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjClientes As New ClsClientes + If ObjClientes.GetClienteSucursales(-1, CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjClientes.DtResultados.Copy() + ObjClientes.Dispose() + End If + Dim filtros As New List(Of String) + + If CveCliente >= 0 Then filtros.Add($"CveCliente = {CveCliente}") + If filtros.Count > 0 Then + Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows) + GlobalDTClientesTodosSucursales = Dv.ToTable + Dv.Dispose() + Else + GlobalDTClientesTodosSucursales = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) + End If + End Get + Set(value As DataTable) + Dim AppNombre As String = $"GlobalDTClientesTodosSucursales-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value + End Set + End Property Public Shared Property GlobalDTEstatusOrdenServicios(CveEmpresa As Integer) As DataTable Get Dim AppNombre As String = $"GlobalDTEstatusOrdenServicios-{CveEmpresa}" From 4f662737a8cf885989b45edf5b33b21538824c8e Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Jul 2024 22:08:56 -0700 Subject: [PATCH 72/87] -uso nuevo globaldt --- Ventas/Ventas.aspx.vb | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 5284b0677..ba5f658a8 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -37628,32 +37628,27 @@ Partial Class Ventas End Sub - Private Sub CargaDdlClientesSucursal() - DdlClienteSucursal.DataSource = GlobalDTClientesSucursales(UsuarioActual.CveEmpresa) + DdlClienteSucursal.DataSource = GlobalDTClientesTodosSucursales(UsuarioActual.CveEmpresa) DdlClienteSucursal.DataBind() DdlClienteSucursal.Items.Insert(0, New ListItem("Seleccione uno", "-1")) Dim EsWS As Boolean = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) If EsWS Then DdlClientesModal.setEsWebService(True) - Else DdlClientesModal.setEsWebService(False) DdlClientesModal.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) DdlClientesModal.DataBind() DdlClientesModal.ddl.Items.Insert(0, New ListItem("Seleccione Uno", "-1")) End If - End Sub Protected Sub ChkRequiereTecnico_CheckedChanged(sender As Object, e As EventArgs) - TdFechaOS1.Visible = ChkRequiereTecnico.Checked - UpCliente.Update() End Sub @@ -37669,7 +37664,6 @@ Partial Class Ventas ChkRequiereTecnicoModal.Checked = True ChkRequiereTecnicoModal.Enabled = True DvModalRequiereOSFecha.Visible = True - 'If CveCliente > 0 Then ' CargaSucursalesModal(CveCliente) 'End If From f93a5d2ffd11ad03e6895df94342f3425c7e8bac Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 1 Jul 2024 22:22:49 -0700 Subject: [PATCH 73/87] Revert "Ventas Correcion sucursales - Almacenes, auxiliar correciones UI" This reverts commit 1ec803786e91dd05ab75fee6580abb7813c2c285. --- Contabilidad/PopUpAuxiliar.aspx | 205 ++++++++++++++--------------- Contabilidad/PopUpAuxiliar.aspx.vb | 3 +- Ventas/Ventas.aspx.vb | 35 +---- 3 files changed, 102 insertions(+), 141 deletions(-) diff --git a/Contabilidad/PopUpAuxiliar.aspx b/Contabilidad/PopUpAuxiliar.aspx index c93a408c6..9b3616a1b 100644 --- a/Contabilidad/PopUpAuxiliar.aspx +++ b/Contabilidad/PopUpAuxiliar.aspx @@ -79,109 +79,99 @@ - - - - - <%--0--%> - - Fecha - - - - - <%--1--%> - - Concepto - - - - - <%--2--%> - - Cargo - - - - - <%--3--%> - - Abono - - - - - <%--4--%> - - Folio (Ref.) - -   - - - <%--5--%> - - Contabilizado - - - - - <%--6--%> - - Póliza - - - - - <%--7--%> - - Fecha Conta. - - - - - <%--8--%> - - Referencia - - - - - <%--9--%> - - Usuario - - - - - - - <%--10--%> - - - - - - - <%--11--%> - - - - - - <%--12--%> - - - - - + + + + + + Fecha + + + + + + Concepto + + + + + + Cargo + + + + + + Abono + + + + + + Folio (Ref.) + +   + + + + Contabilizado + + + + + + Póliza + + + + + + Fecha Conta. + + + + + + Referencia + + + + + + Usuario + + + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -211,11 +201,10 @@
    +
    +
    + +
    +