From 907793665cf0ae67dbb9c2ffa3c16ae9f1f1996f Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 9 Aug 2021 15:35:25 -0700 Subject: [PATCH 01/52] Correciones en bonificaciones --- Ventas/Ventas.aspx.vb | 96 ++++++++++++++++++++++++++++--------------- 1 file changed, 64 insertions(+), 32 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 5dadb0640..4790a1252 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -25055,6 +25055,14 @@ Partial Class Ventas End Sub Protected Sub RblRNCTipo_SelectedIndexChanged(sender As Object, e As EventArgs) + ChkMostarProductosRNC.Checked = False + DivRNCCargosDetalle.Visible = False + DivRNCCargos.Visible = True + + ChkMostarProductosRNCBon.Checked = False + DivRNCBonificacionesDetalle.Visible = False + DivRNCBonificaciones.Visible = True + Select Case RblRNCTipo.SelectedValue Case "1" 'CARGOS LtlCargos.Text = "CARGOS" @@ -25130,7 +25138,7 @@ Partial Class Ventas If ChkMostarProductosRNC.Checked Then DivRNCCargos.Visible = False DivRNCCargosDetalle.Visible = True - CargaRNCDetalle(DdlVentaUsado.SelectedValue.ToEntero()) + CargaRNCDetalle(DdlVentaUsado.SelectedValue.ToEntero(), CargaSoloGarantias:=RblRNCTipo.SelectedValue = "3") Else DivRNCCargos.Visible = True DivRNCCargosDetalle.Visible = False @@ -25271,7 +25279,7 @@ Partial Class Ventas UpDescNC.Update() End Sub - Private Sub CargaRNCDetalle(Optional CveVentaUsado As Integer = -1) + Private Sub CargaRNCDetalle(Optional CveVentaUsado As Integer = -1, Optional CargaSoloGarantias As Boolean = False) Dim DtNC As DataTable = Nothing Dim ObjMovtos As New ClsMovimientos() @@ -25280,6 +25288,12 @@ Partial Class Ventas End If ObjMovtos.Dispose() + If CargaSoloGarantias Then + TmpDTRNCDetalle = TmpDTRNCDetalle.FiltraParametros("EsGarantia = True") + Else + TmpDTRNCDetalle = TmpDTRNCDetalle.FiltraParametros("EsGarantia = False") + End If + Me.TmpDTRNCDetalle.Columns.Add(New DataColumn("CveVentaDetalleNCGenerada", GetType(Integer))) Me.TmpDTRNCDetalleSelecciondas = Nothing @@ -25344,9 +25358,9 @@ Partial Class Ventas Me.TmpDTRNCDetalleSelecciondas.Clear() If CargarSoloGarantias Then - GvDescNCCargosDetalle.DataSource = TmpDTRNCDetalle.FiltraParametros("TipoRNC = 1") + GvDescNCCargosDetalle.DataSource = TmpDTRNCDetalle.FiltraParametros("TipoRNC = 1 AND EsGarantia = True") Else - GvDescNCCargosDetalle.DataSource = TmpDTRNCDetalle.FiltraParametros("TipoRNC = 1") + GvDescNCCargosDetalle.DataSource = TmpDTRNCDetalle.FiltraParametros("TipoRNC = 1 AND EsGarantia = False") End If GvDescNCCargosDetalle.DataBind() @@ -25394,28 +25408,31 @@ Partial Class Ventas GvRemisionesNCBonDetalle.DataSource = TmpDTRNCDetalle.FiltraParametros("TipoRNC = 2") GvRemisionesNCBonDetalle.DataBind() - Dim ObjAcum As New ClsAcumuladores - If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(5) - DivSMU.Visible = True - HdnSMUBon.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMUBon.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + If DdlVentaUsado.SelectedValue.ToEntero() > 0 Then + Dim DtDetalleFactura As DataTable = Nothing + Using ObjVentas As New ClsVentas + If ObjVentas.GetVentaDetalle(DdlVentaUsado.SelectedValue.ToEntero()) Then + DtDetalleFactura = ObjVentas.DtResultados.FiltraParametros("EsCargo = True") + End If + End Using + Dim ImporteBon As Decimal = DtDetalleFactura.SUMD("PUBonificacion") * (1 + DtDetalleFactura.MAX("PorcentajeIVA").ToDecimal()) + + LtlSMUBon.Text = String.Format("{0:N2}", ImporteBon) + HdnSMUBon.Value = ImporteBon.ToString() + + DtDetalleFactura.Dispose() Else - 'DivSMU.Visible = False - HdnSMUBon.Value = "0" - LtlSMUBon.Text = "0" + Dim ObjAcum2 As New ClsAcumuladores + If ObjAcum2.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then + Dim RowUsadosNC As DataRow = ObjAcum2.DtResultados.Rows(6) + HdnSMUBon.Value = RowUsadosNC("ValorConImpuestos").ToString() + LtlSMUBon.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + Else + HdnSMUBon.Value = "0" + LtlSMUBon.Text = "0" + End If + ObjAcum2.Dispose() End If - ObjAcum.Dispose() - - 'Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal() - - 'If SaldoMaximoUsados > 0 Then - ' HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() - ' LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados) - 'Else - ' HdnSaldoMaximoUsados.Value = "0" - ' LblSaldoMaximoUsados.Text = "0" - 'End If UpModalRemisionesNC.Update() End Sub @@ -25528,17 +25545,32 @@ Partial Class Ventas 'LtlSMUBon.Text = String.Format("{0:N2}", SMUBon) 'HdnSMUBon.Value = SMUBon.ToString() + If DdlVentaUsado.SelectedValue.ToEntero() > 0 Then + Dim DtDetalleFactura As DataTable = Nothing + Using ObjVentas As New ClsVentas + If ObjVentas.GetVentaDetalle(DdlVentaUsado.SelectedValue.ToEntero()) Then + DtDetalleFactura = ObjVentas.DtResultados.FiltraParametros("EsCargo = True") + End If + End Using + Dim ImporteBon As Decimal = DtDetalleFactura.SUMD("PUBonificacion") * (1 + DtDetalleFactura.MAX("PorcentajeIVA").ToDecimal()) - Dim ObjAcum2 As New ClsAcumuladores - If ObjAcum2.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum2.DtResultados.Rows(5) - HdnSMUBon.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMUBon.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + LtlSMUBon.Text = String.Format("{0:N2}", ImporteBon) + HdnSMUBon.Value = ImporteBon.ToString() + + DtDetalleFactura.Dispose() Else - HdnSMUBon.Value = "0" - LtlSMUBon.Text = "0" + Dim ObjAcum2 As New ClsAcumuladores + If ObjAcum2.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then + Dim RowUsadosNC As DataRow = ObjAcum2.DtResultados.Rows(6) + HdnSMUBon.Value = RowUsadosNC("ValorConImpuestos").ToString() + LtlSMUBon.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + Else + HdnSMUBon.Value = "0" + LtlSMUBon.Text = "0" + End If + ObjAcum2.Dispose() End If - ObjAcum2.Dispose() + UpModalRemisionesNC.Update() End If From d0a06d1330d1d8c58909ee394f04d9d4f415f383 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 10 Aug 2021 19:58:44 -0700 Subject: [PATCH 02/52] Correcion de pago en dolares --- Bancos/ProveedoresAbonar.aspx.vb | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 7e9093f82..b7cb72360 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -1966,6 +1966,40 @@ Partial Class Bancos_ProveedoresAbonar End If End If + + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES + 'fluctuación. + Dim TCPago = TxtTCDolares.Text.ToDecimal + + Dim ImporteFluctuacion As Decimal = 0 '((ImporteSeleccionado / TCPago) - TxtImporte.Text.ToDecimal) + + Dim DtPrePoliza As DataTable = Nothing + If ObjMov.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then + DtPrePoliza = ObjMov.DtResultados.Copy + End If + + Dim PagoProveedoresME = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 312 AND TipoMovto = 0") + Dim Bancos = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 30 AND TipoMovto = 1") + Dim BancosComplementaria = DtPrePoliza.SUMD("ImporteMN", "CveConceptoContable = 204 AND TipoMovto = 1") + + DtPrePoliza.Dispose() + + ImporteFluctuacion = PagoProveedoresME - (Bancos + BancosComplementaria) + + If ImporteFluctuacion.RoundSQL() <> 0 Then + 'SI EL PAGO DE PROVEEDORES ME ES MAYOR QUE BANCOS METER EL CONCEPTO DE GANANCIA + If ImporteFluctuacion > 0 Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, Math.Abs(ImporteFluctuacion), Referencia, 64, ConceptoMovimiento, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaGananciaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveSubProyecto:=CveSubProyecto, CveProveedor:=Me.CveProveedor, CveCompra:=-1, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TipoCambio, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + ElseIf ImporteFluctuacion < 0 Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, Math.Abs(ImporteFluctuacion), Referencia, 65, ConceptoMovimiento, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=UsuarioActual.Empresa.IdCuentaPerdidaCambiaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveSubProyecto:=CveSubProyecto, CveProveedor:=Me.CveProveedor, CveCompra:=-1, ImporteMX:=Math.Abs(ImporteFluctuacion), TipoCambio:=TipoCambio, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If + End If + End If + End If + Else If CveMoneda = 2 AndAlso CveMonedaFiltro = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES TipoCambioPago = TxtTCDolares.Text.ToDecimal From 573254bc6358f9c05b5d01302439215ad19c8958 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 10 Aug 2021 19:58:55 -0700 Subject: [PATCH 03/52] Correciones de usados --- Ventas/Ventas.aspx.vb | 108 ++++++++++++++++++++++++++---------------- 1 file changed, 68 insertions(+), 40 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 4790a1252..2028dc369 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -25210,26 +25210,38 @@ Partial Class Ventas HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() LtlSMU.Text = String.Format("{0:N2}", SaldoMaximoUsados) Else - Dim ObjAcum As New ClsAcumuladores - If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2) - DivSMU.Visible = True - - Dim SaldoMaximo As Decimal = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal() + If CargarSoloGarantias Then + Dim SaldoMaximo As Decimal = DtNC.SUMD("Saldo", "TipoRNC = 1 AND EsGarantia = True") If SaldoMaximo > 0 Then - HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + HdnSaldoMaximoUsados.Value = SaldoMaximo.ToString() + LtlSMU.Text = SaldoMaximo.FormatoNumero(2) Else HdnSaldoMaximoUsados.Value = "0" LtlSMU.Text = "0" End If - Else - 'DivSMU.Visible = False - HdnSaldoMaximoUsados.Value = "0" - LtlSMU.Text = "0" + Dim ObjAcum As New ClsAcumuladores + If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then + Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2) + DivSMU.Visible = True + + Dim SaldoMaximo As Decimal = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal() + If SaldoMaximo > 0 Then + HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString() + LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + Else + HdnSaldoMaximoUsados.Value = "0" + LtlSMU.Text = "0" + End If + + Else + 'DivSMU.Visible = False + HdnSaldoMaximoUsados.Value = "0" + LtlSMU.Text = "0" + End If + ObjAcum.Dispose() End If - ObjAcum.Dispose() + End If Else HdnSaldoMaximoUsados.Value = "0" @@ -25325,18 +25337,30 @@ Partial Class Ventas End If Else - Dim ObjAcum As New ClsAcumuladores - If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2) - DivSMU.Visible = True - HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + If CargaSoloGarantias Then + Dim SaldoMaximo As Decimal = TmpDTRNCDetalle.SUMD("Total", "TipoRNC = 1") + If SaldoMaximo > 0 Then + HdnSaldoMaximoUsados.Value = SaldoMaximo.ToString() + LtlSMU.Text = SaldoMaximo.FormatoNumero(2) + Else + HdnSaldoMaximoUsados.Value = "0" + LtlSMU.Text = "0" + End If Else - 'DivSMU.Visible = False - HdnSaldoMaximoUsados.Value = "0" - LtlSMU.Text = "0" + Dim ObjAcum As New ClsAcumuladores + If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then + Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2) + DivSMU.Visible = True + HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString() + LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + Else + 'DivSMU.Visible = False + HdnSaldoMaximoUsados.Value = "0" + LtlSMU.Text = "0" + End If + ObjAcum.Dispose() End If - ObjAcum.Dispose() + End If UpModalRemisionesNC.Update() @@ -25422,16 +25446,16 @@ Partial Class Ventas DtDetalleFactura.Dispose() Else - Dim ObjAcum2 As New ClsAcumuladores - If ObjAcum2.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum2.DtResultados.Rows(6) - HdnSMUBon.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMUBon.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) - Else - HdnSMUBon.Value = "0" - LtlSMUBon.Text = "0" + If TmpDTRNCBonificacionesSeleccionadas IsNot Nothing Then + Dim SaldoMaximo As Decimal = TmpDTRNCBonificacionesSeleccionadas.SUMD("Saldo") + If SaldoMaximo > 0 Then + HdnSMUBon.Value = SaldoMaximo.ToString() + LtlSMUBon.Text = SaldoMaximo.FormatoNumero(2) + Else + HdnSMUBon.Value = "0" + LtlSMUBon.Text = "0" + End If End If - ObjAcum2.Dispose() End If UpModalRemisionesNC.Update() @@ -25559,16 +25583,14 @@ Partial Class Ventas DtDetalleFactura.Dispose() Else - Dim ObjAcum2 As New ClsAcumuladores - If ObjAcum2.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum2.DtResultados.Rows(6) - HdnSMUBon.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMUBon.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + Dim SaldoMaximo As Decimal = TmpDTRNCBonificacionesSeleccionadas.SUMD("Saldo") + If SaldoMaximo > 0 Then + HdnSMUBon.Value = SaldoMaximo.ToString() + LtlSMUBon.Text = SaldoMaximo.FormatoNumero(2) Else HdnSMUBon.Value = "0" LtlSMUBon.Text = "0" End If - ObjAcum2.Dispose() End If @@ -26333,8 +26355,14 @@ Partial Class Ventas 'SI ES ACUMULADOR LAS OBSERVACIOENS DEBEN SER EL NOMBRE DEL ACUMULADOR If GlobalDTAcumTamaños().FiltroPrimero($"CvePSCargo = {CvePSCargo}") IsNot Nothing Then Obs = RowUsado("CodigoPS").ToString() - 'Else - ' Obs = RowUsado("Obs").ToString() + End If + 'SI TIENE BCI EN LAS OBSERVACIONES AGREGARLO A LA FACTURA + If Not String.IsNullOrEmpty(RowUsado("Observaciones").ToString()) Then + If String.IsNullOrEmpty(Obs) Then + Obs = RowUsado("Observaciones").ToString() + Else + Obs = String.Format("{0} - {1}", Obs, RowUsado("Observaciones").ToString()) + End If End If If Not String.IsNullOrEmpty(TxtNCObservaciones.Text.Trim()) Then From 3a93cb4a8799c15d8a346d172d042db13212e2b1 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 14 Aug 2021 13:33:28 -0700 Subject: [PATCH 04/52] Correcion en descuentos manuales --- Ventas/Ventas.aspx.vb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 2028dc369..cfa7a9372 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -6968,7 +6968,10 @@ Partial Class Ventas Dim CuentaPredial As String Cantidad = GvPS.Rows(e.RowIndex).FCTextBox("TxtCantidad").Text.ToDecimal PU = (GvPS.Rows(e.RowIndex).FCTextBox("TxtPrecio").Text.ToDecimal).RoundSQL(6) - ObjDescuento.ImporteDescuento = (GvPS.Rows(e.RowIndex).FCTextBox("TxtDescuento").Text.ToDecimal).RoundSQL(NumeroDecimales) + + Dim DescuentoManual As Decimal = (GvPS.Rows(e.RowIndex).FCTextBox("TxtDescuento").Text.ToDecimal).RoundSQL(NumeroDecimales) + + ObjDescuento.ImporteDescuento = DescuentoManual CuentaPredial = GvPS.Rows(e.RowIndex).FCTextBox("TxtPredial").Text.Trim If PU <= 0 AndAlso UsuarioActual.Empresa.Funcionalidad(558) = "1" Then @@ -6980,6 +6983,11 @@ Partial Class Ventas ObjDescuento = CalcularDescuentos(TmpDT.Rows(e.RowIndex)("CvePS").ToString().ToEntero(), Cantidad, PU) End If + 'SI ESTA HABILITADO LA OPCION DE DESCUENTO, SE AGREGO UN DESCUENTO MANUAL Y NO TIENE PROMOCION + If GvPS.Rows(e.RowIndex).FCTextBox("TxtDescuento").Enabled AndAlso (ObjDescuento.CvePromocionDetalle <= 0 AndAlso ObjDescuento.ImporteDescuento <= 0) AndAlso DescuentoManual > 0 Then + ObjDescuento.ImporteDescuento = DescuentoManual + End If + Dim CantidadOriginal As Decimal = GvPS.Rows(e.RowIndex).DataKey("Cantidad").ToDecimal() Dim DatarowPS As DataRow = Nothing From 7507057a040441355065e0116da715ac01793054 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 14 Aug 2021 13:35:23 -0700 Subject: [PATCH 05/52] GPS - Administracion de Trayectos por otros clientes --- App_Code/ClsClientes.vb | 8 +++-- App_Code/ClsGPS.vb | 38 +++++++++++++++++++- GPS/Trayectos.aspx | 6 ++-- GPS/Trayectos.aspx.vb | 14 ++++++-- Ventas/Clientes.aspx | 76 +++++++++++++++++++++++++++++++++++----- Ventas/Clientes.aspx.vb | 77 +++++++++++++++++++++++++++++++++-------- 6 files changed, 187 insertions(+), 32 deletions(-) diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index 154097b80..5b4bd4c6b 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -567,7 +567,7 @@ Public Class ClsClientes Optional AplicaComercioExterior As Boolean = False, Optional CveTipoOperacion As Integer = -1, Optional CvePedimento As Integer = -1, Optional CveIncoterm As Integer = -1, Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveColonia As Integer = -1, Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional RequiereOC As Boolean = False, Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, - Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1) As Boolean + Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -707,6 +707,8 @@ Public Class ClsClientes .Add("@CorreoEntregaAlmacen", SqlDbType.VarChar).Value = CorreoEntregaAlmacen .Add("@CveSATEstado", SqlDbType.Int).Value = CveSATEstado + .Add("@CveAdminTrayecto", SqlDbType.TinyInt).Value = CveAdminTrayecto + End With Try @@ -755,7 +757,7 @@ Public Class ClsClientes Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "-1", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional ApellidoPaternoPF As String = "-1", Optional ApellidoMaternoPF As String = "-1", Optional NombresPF As String = "-1", Optional RequiereOC As Boolean = False, Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", - Optional CveSATEstado As Integer = -1) As Boolean + Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -910,7 +912,7 @@ Public Class ClsClientes .Add("@CorreoEntregaAlmacen", SqlDbType.VarChar).Value = CorreoEntregaAlmacen .Add("@CveSATEstado", SqlDbType.Int).Value = CveSATEstado - + .Add("@CveAdminTrayecto", SqlDbType.TinyInt).Value = CveAdminTrayecto End With Try diff --git a/App_Code/ClsGPS.vb b/App_Code/ClsGPS.vb index 568713257..a16f069eb 100644 --- a/App_Code/ClsGPS.vb +++ b/App_Code/ClsGPS.vb @@ -3231,7 +3231,7 @@ Public Class ClsGPS Return retorno End Function - Public Function DispositivosUsuariosGet(CveDispositivo As Integer, CveEstatus As Integer, CveCliente As Integer, Optional CveEmpresa As Integer = -1, Optional CveUsuario As Integer = -1) As Boolean + Public Function DispositivosUsuariosGet(CveDispositivo As Integer, CveEstatus As Integer, CveCliente As Integer, Optional CveEmpresa As Integer = -1, Optional CveUsuario As Integer = -1, Optional ConcatenarDispuestos As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_GPS_DispositivosUsuariosGet") With SqlAdapter.SelectCommand.Parameters @@ -3240,6 +3240,7 @@ Public Class ClsGPS .Add("@CveCliente", SqlDbType.Int).Value = CveCliente .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@ConcatenarDispuestos", SqlDbType.Bit).Value = ConcatenarDispuestos End With Try SqlAdapter.Fill(Data) @@ -5105,6 +5106,41 @@ Public Class ClsGPS Return retorno End Function + Public Function UpdateUnidadesDispuestas(CveDispositivo As Integer, Dispuesta As Boolean) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_GPS_UnidadesDispuestasUpdate", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveDispositivo", SqlDbType.Int).Value = CveDispositivo + .Add("@Dispuesta", SqlDbType.Bit).Value = Dispuesta + End With + + Try + SqlAdapter.Fill(Data) + retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar las unidades dispuestas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + + Public Function GetUnidadesDispuestas(CveDispositivo As Integer, CveCliente As Integer, CveEmpresa As Integer) As Boolean + Dim retorno As Boolean = False + DataAdapter("PA_GPS_UnidadesDispuestasGet", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@CveDispositivo", SqlDbType.Int).Value = CveDispositivo + .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener las unidades dispuestas.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function + #End Region #Region "G A S T O S" diff --git a/GPS/Trayectos.aspx b/GPS/Trayectos.aspx index c07974719..5f12e5d13 100644 --- a/GPS/Trayectos.aspx +++ b/GPS/Trayectos.aspx @@ -104,7 +104,7 @@
  • Vehículo: - +
  • Estatus: @@ -209,7 +209,7 @@
    - +
    @@ -318,7 +318,7 @@
    - +
    diff --git a/GPS/Trayectos.aspx.vb b/GPS/Trayectos.aspx.vb index e473a0319..bc8ed7985 100644 --- a/GPS/Trayectos.aspx.vb +++ b/GPS/Trayectos.aspx.vb @@ -56,16 +56,24 @@ Partial Class GPS_Trayectos CargaTrayectos() End Sub Public Sub CargaDispositivos() - DdlDispositivo.DataSource = GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) + Dim DtDispositivos As DataTable = Nothing + + Using ObjGPS As New ClsGPS + If ObjGPS.DispositivosUsuariosGet(-1, 1, UsuarioActual.CveCliente, CveUsuario:=UsuarioActual.CveUsuario, ConcatenarDispuestos:=True) Then + DtDispositivos = ObjGPS.DtResultados.Copy + End If + End Using + + DdlDispositivo.DataSource = DtDispositivos 'GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) DdlDispositivo.DataBind() DdlDispositivo.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlDispositivoNuevo.DataSource = GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) + DdlDispositivoNuevo.DataSource = DtDispositivos 'GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) DdlDispositivoNuevo.DataBind() DdlDispositivoNuevo.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlDispositivoFiltro.DataSource = GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) + DdlDispositivoFiltro.DataSource = DtDispositivos 'GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) DdlDispositivoFiltro.DataBind() DdlDispositivoFiltro.Items.Insert(0, New ListItem("Seleccione", "-1")) diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx index 80259f113..4362af25c 100644 --- a/Ventas/Clientes.aspx +++ b/Ventas/Clientes.aspx @@ -173,10 +173,9 @@ } - .orange{ - color:orange; - background-color:orange; - + .orange { + color: orange; + background-color: orange; } @@ -879,6 +878,56 @@
    +
    +
    +
    + + CONFIGURACIÓN DE TRAYECTOS: +
    +
    +
    +
    +
    + + +
    + + + + + + + + +
    +
    +
    +
    +
    +
    + + UNIDADES DISPONIBLES: +
    +
    + +
    +
    +
    + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    @@ -3222,8 +3271,8 @@ --%> -
    - <%=GvDatosGPS.Rows.Count %> dispositivos +
    + <%=GvDatosGPS.Rows.Count %> dispositivos " style="display: inline-block; margin-right: -20px; width: 150px;" /> " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info">
    @@ -3233,7 +3282,7 @@ - @@ -3255,6 +3304,17 @@ + <%-- + + + + --%> + + + + + + @@ -3960,7 +4020,7 @@ - + diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 83de68f2e..7f3ac85e9 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -715,7 +715,7 @@ Partial Class Clientes TdBusqueda.Visible = True HyperLink7.Visible = False ChkSist.Visible = False - + DivTrayectos.Visible = True CargaEmpresasUsuario(UsuarioActual.CveEmpresa) End If @@ -1633,14 +1633,15 @@ Partial Class Clientes End If DdlMotivoTraslado.SelectedValueExist(ObjClientes.CveMotivoTraslado) - TxtNumRegIdTrib.Text = ObjClientes.NumRegIdTrib - - - 'If ObjClientes.CveUsoCFDI > 0 Then DdlUsoCFDI.Items.RemoveAt(0) - 'If ObjClientes.CveMetodoPago33 > 0 Then DdlMetodoPago33.Items.RemoveAt(0) - 'If ObjClientes.CveFormaPago33 > 0 Then DdlFormaPago33.Items.RemoveAt(0) - - 'DIAS DE PAGO + TxtNumRegIdTrib.Text = ObjClientes.NumRegIdTrib + + DdlAdminTrayecto.SelectedValueExist(ObjClientes.DtResultados(0)("CveAdminTrayecto").ToString()) + DdlAdminTrayecto_SelectedIndexChanged(DdlAdminTrayecto, EventArgs.Empty) + 'If ObjClientes.CveUsoCFDI > 0 Then DdlUsoCFDI.Items.RemoveAt(0) + 'If ObjClientes.CveMetodoPago33 > 0 Then DdlMetodoPago33.Items.RemoveAt(0) + 'If ObjClientes.CveFormaPago33 > 0 Then DdlFormaPago33.Items.RemoveAt(0) + + 'DIAS DE PAGO If ObjClientes.RecepcionPagos <> "" AndAlso ObjClientes.RecepcionPagos.Length = 11 Then Dim array As String() = ObjClientes.RecepcionPagos.Split(New Char() {"-"c}) If array(0) = "1" Then ChkLunes.Checked = True @@ -2573,7 +2574,7 @@ Partial Class Clientes CveFormaPago33:=DdlFormaPago33.SelectedValue.ToEntero(), CveMetodoPago33:=DdlMetodoPago33.SelectedValue.ToEntero(), DesglosaIEPS:=ChkDesglosarIEPS.Checked, AplicaComercioExterior:=ChkAplicaComercioExterior.Checked, CveTipoOperacion:=DdlTipoOperacion.SelectedValue.ToEntero(), CvePedimento:=DdlClavePedimento.SelectedValue.ToEntero(), CveIncoterm:=DdlIncoterm.SelectedValue.ToEntero(), 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()) Then + 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:=DdlAdminTrayecto.SelectedValue.ToEntero()) Then ViewState("CveCliente") = ObjClientes.CveCliente @@ -2668,7 +2669,7 @@ Partial Class Clientes 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(), ApellidoPaternoPF:=IIf(TxtApellidoPaterno.Text = "", "-1", TxtApellidoPaterno.Text).ToString(), ApellidoMaternoPF:=IIf(TxtApellidoMaterno.Text = "", "-1", TxtApellidoMaterno.Text).ToString(), NombresPF:=IIf(TxtNombres.Text = "", "-1", TxtNombres.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()) Then + 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:=DdlAdminTrayecto.SelectedValue.ToEntero()) Then ObjClientes.LimpiaImpuestosLocales(CveCliente) @@ -5124,7 +5125,11 @@ Partial Class Clientes GvDatosGPS.DataSource = Nothing End If ObjGPS.Dispose() - GvDatosGPS.DataBind() + GvDatosGPS.DataBind() + + GvDatosGPS.Columns(9).Visible = DdlAdminTrayecto.SelectedValue = "2" + 'GvDatosGPS.Columns(10).Visible = DdlAdminTrayecto.SelectedValue = "2" + UpDispositivos.Update() End Sub Private Sub CargaGlobalDispositos() @@ -5153,8 +5158,22 @@ Partial Class Clientes e.Row.FCLabel("LblEstatus").Text = "Inactivo" e.Row.FCLabel("LblEstatus").CssClass = "label label-danger" e.Row.FindControl("imgD").Visible = False + End If + + If CBool(e.Row.DBCampo("Dispuesto")) Then + e.Row.FCLabel("LblDisponible").Text = "Si" + e.Row.FCLabel("LblDisponible").CssClass = "label label-success" + + e.Row.FCLinkButton("imgDisponer").CssClass = "btn btn-circle btn-sm red" + e.Row.FCLinkButton("imgDisponer").Text = "" + Else + e.Row.FCLabel("LblDisponible").Text = "No" + e.Row.FCLabel("LblDisponible").CssClass = "label label-default" + + e.Row.FCLinkButton("imgDisponer").CssClass = "btn btn-circle btn-sm blue" + e.Row.FCLinkButton("imgDisponer").Text = "" + End If - End If e.Row.FCLinkButton("imgE").Attributes.Add("onclick", $"javascript:AbrirVentana('/GPS/WizardDispositivos.aspx?CveDispositivo={e.Row.DBCampo("CveDispositivo").ToString()}&CveCliente={CveCliente}&EsPopup=1', 801, 701);") End If End Sub @@ -10577,6 +10596,36 @@ Partial Class Clientes End Using Return retorno - End Function + End Function + Protected Sub DdlAdminTrayecto_SelectedIndexChanged(sender As Object, e As EventArgs) + DivUnidadesDisponibles.Visible = DdlAdminTrayecto.SelectedValue = "1" + + GvDatosGPS.Columns(9).Visible = DdlAdminTrayecto.SelectedValue = "2" + + If DivUnidadesDisponibles.Visible AndAlso Me.CveCliente > 0 Then + Using ObjGPS As New ClsGPS + If ObjGPS.GetUnidadesDispuestas(-1, -1, UsuarioActual.CveEmpresa) Then + GvUnidadesDisponibles.DataSource = ObjGPS.DtResultados + End If + End Using + GvUnidadesDisponibles.DataBind() + End If + + UpTrayectos.Update() + UpDispositivos.Update() + End Sub + Protected Sub imgDisponer_Click(sender As Object, e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim CveDispositivo As Integer = GvRow.DataKey("CveDispositivo").ToEntero() + Dim ValorDisposicion As Boolean = CBool(GvRow.DataKey("Dispuesto")) + + Using ObjGPS As New ClsGPS + If ObjGPS.UpdateUnidadesDispuestas(CveDispositivo, Not ValorDisposicion) Then + Alert("Se cambió el estatus de disposición") + End If + End Using + + CargaDispositivos(DdlEstatusDispositivos.SelectedValue.ToEntero()) + End Sub End Class From 735da2cf29ecb4a5b83a7b8cfdafb650c06c1b16 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 14 Aug 2021 13:39:36 -0700 Subject: [PATCH 06/52] Correcion en metodo de pago al generar RNC --- Inventarios/RecepcionUsados.aspx.vb | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index 7d4de7d44..51caa9b03 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -2272,12 +2272,24 @@ Partial Class Inventarios_RecepcionUsados Me.ObjRemisionNC.CveMetodoPago = ObjCliente.CveMetodoPago33 - If GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33)).Rows.Count > 0 Then - Me.ObjRemisionNC.MetodoPago = GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33)).Rows(0)("MetodoPago").ToString - Else - Me.ObjRemisionNC.CveMetodoPago = 1 - Me.ObjRemisionNC.MetodoPago = "Efectivo" + If GlobalDTMetodosPago IsNot Nothing Then + Dim DtMetodoPago = GlobalDTMetodosPago.FiltraParametros(String.Format("CveMetodoPago = {0}", ObjCliente.CveMetodoPago33)) + + If DtMetodoPago IsNot Nothing Then + + If DtMetodoPago.Rows.Count > 0 Then + Me.ObjRemisionNC.MetodoPago = DtMetodoPago.Rows(0)("MetodoPago").ToString + Else + Me.ObjRemisionNC.CveMetodoPago = 1 + Me.ObjRemisionNC.MetodoPago = "Efectivo" + End If + + DtMetodoPago.Dispose() + DtMetodoPago = Nothing + End If + End If + End If End If From 9d6573b360248b2196cd9c358d997601ae2da168 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Mon, 16 Aug 2021 12:22:39 -0700 Subject: [PATCH 07/52] Rep IE, cambio de titulo --- Bancos/RepIE.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/RepIE.aspx b/Bancos/RepIE.aspx index c1a7bb7be..ae5d9e704 100644 --- a/Bancos/RepIE.aspx +++ b/Bancos/RepIE.aspx @@ -69,7 +69,7 @@
  • - + From 3ca9d53df3577d4ecd27111a73ebbe507b36b646 Mon Sep 17 00:00:00 2001 From: Hector Javier Rodriguez Flores Date: Mon, 16 Aug 2021 13:05:30 -0700 Subject: [PATCH 08/52] Reporte Existencia Lote --- App_Code/ClsInventarios.vb | 28 ++ App_Code/ClsPaginas.vb | 1 + Inventarios/RepExistenciaLote.aspx | 164 ++++++++ Inventarios/RepExistenciaLote.aspx.vb | 514 ++++++++++++++++++++++++++ 4 files changed, 707 insertions(+) create mode 100644 Inventarios/RepExistenciaLote.aspx create mode 100644 Inventarios/RepExistenciaLote.aspx.vb diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index e72bfba0e..11949c8fb 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1,6 +1,7 @@ Option Explicit On Option Strict On +Imports System Imports System.Data Imports System.Data.SqlClient Imports Extensiones @@ -1753,6 +1754,33 @@ Public Class ClsInventarios Return Retorno End Function + Public Function RepExistenciasLote(CveEmpresa As Integer, FechaI As Date, FechaF As Date, CveProveedor As Integer, Almacenes As String, + CvePS As Integer, CveClasificacion As Integer, Optional CveMarca As Integer = -1, Optional CveTipoAlmacen As String = "-1") As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Inv_RepExistenciaLote") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@Almacenes", SqlDbType.VarChar).Value = Almacenes + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion + .Add("@CveMarca", SqlDbType.Int).Value = CveMarca + .Add("@CveTipoAlmacen", SqlDbType.VarChar).Value = CveTipoAlmacen + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener la lista de movimientos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function 'Nuevo R: 19/10/2017 Public Function RepMovimientosGen(CveEmpresa As Integer, FechaI As String, FechaF As String, CveProveedor As Integer, CveAlmacen As Integer, CvePS As Integer, CveClasificacion As Integer, Agrupador As Integer, Optional CveClasificacion2 As Integer = -1) As Boolean diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 24d24e0cd..0813cc12b 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -4716,6 +4716,7 @@ Public Class ClsPaginas PaginaDict.Add("/Inventarios/CatAlmacenClasificacionSecciones.aspx".ToUpper(), 764) PaginaDict.Add("/Inventarios/ReconstruirCostos.aspx".ToUpper(), 764) PaginaDict.Add("/Inventarios/RecepcionDevolucion.aspx".ToUpper(), 696) + PaginaDict.Add("/Inventarios/RepExistenciaLote.aspx".ToUpper(), 109) #End Region diff --git a/Inventarios/RepExistenciaLote.aspx b/Inventarios/RepExistenciaLote.aspx new file mode 100644 index 000000000..7967e6e56 --- /dev/null +++ b/Inventarios/RepExistenciaLote.aspx @@ -0,0 +1,164 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepExistenciaLote.aspx.vb" Inherits="Inventarios_RepExistenciaLote" %> + + +
  • + Generar PDF +
  • +
  • + Generar Excel +
  • + + +
    + + + + + Reporte de Existencia Lote + + + + <%--Tabla con los campos para filtrar--%> + + +
    +
    +
    + + "> + +
    +
    +
    +
    Almacén
    +
    + +
    +
    Fecha Inicio
    +
    +
    + + + + +
    + + + + + + + + +
    + +
    Fecha Fin
    +
    +
    + + + + +
    + + + + + + +
    +
    + +
    +
    +
    > + +
    +
    Proveedor
    +
    + +
    +
    Clasificación
    +
    + +
    +
    PS
    +
    + + <%----%> +
    +
    +
    Marca
    +
    + +
    +
    +
    +
    + +
    Personal
    +
    + +
    + +
    Tipo Almacén:
    +
    + +
    + + + +
    +
    +
    +
    +
    + +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    +
    +
    + +
    +
    + + + + + + + + + + + + + +
    +
    +
    + + + + + diff --git a/Inventarios/RepExistenciaLote.aspx.vb b/Inventarios/RepExistenciaLote.aspx.vb new file mode 100644 index 000000000..685490a6f --- /dev/null +++ b/Inventarios/RepExistenciaLote.aspx.vb @@ -0,0 +1,514 @@ +Imports System.Data +Imports Extensiones +Imports Microsoft.Reporting.WebForms +Imports System.IO + +Partial Class Inventarios_RepExistenciaLote + Inherits ClsPaginas +#Region "propiedades" + 'Private ReadOnly Property reporteador As Microsoft.Reporting.WebForms.ReportViewer + ' Get + ' Return CType(Master.FindControl("ReportMaster"), Microsoft.Reporting.WebForms.ReportViewer) + ' End Get + 'End Property + Private Property dt As DataTable + Get + Try + dt = DirectCast(ViewState("dt"), DataTable) + Return DirectCast(ViewState("dt"), DataTable) + Catch ex As Exception + Return Nothing + End Try + End Get + Set(value As DataTable) + ViewState("dt") = value + End Set + End Property + Public Property DtEquivalencias() As DataTable + Get + Return CType(ViewState("dtReporte"), DataTable) + End Get + Set(value As DataTable) + ViewState("dtReporte") = value + End Set + End Property + Public Property FechaInicial As String + Get + Return ViewState("FechaInicial").ToString + End Get + Set(value As String) + ViewState("FechaInicial") = value + End Set + End Property + Public Property FechaFinal As String + Get + Return ViewState("FechaFinal").ToString + End Get + Set(value As String) + ViewState("FechaFinal") = value + End Set + End Property + + Private ReadOnly Property PermiteClasificacion2 As Boolean + Get + Return (UsuarioActual.CveEmpresa.Contiene(72, 80)) + End Get + End Property +#End Region + + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not IsPostBack Then + + TxtFechaI.Text = Now.AddMonths(-1).ToShortDateString + TxtFechaF.Text = Now + FechaInicial = "-1" + FechaFinal = "-1" + + CargaCombos() + + GvM.DataBind() + If Not IsNothing(Request("CveAlmacen")) Then + DdlAlmacen.SelectedValue = Request("CveAlmacen").ToString() + TxtFechaI.Text = "01/01/2000" + If Not IsNothing(Request("FechaCorte")) Then + TxtFechaF.Text = Request("FechaCorte") + End If + + If Not IsNothing(Request("FechaInicio")) And IsDate(Request("FechaInicio")) Then + TxtFechaI.Text = Request("FechaInicio") + End If + + btConsultar_Click(Nothing, Nothing) + End If + End If + End Sub + + + Private Sub CargaCombos() + + + DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) + DdlAlmacen.DataBind() + DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) + If Not IsNothing(Request("CveAlmacen")) Then + If DdlAlmacen.Items.FindByValue(Request("CveAlmacen").ToString) Is Nothing Then + Dim CveAlmacen = Request("CveAlmacen").ToString + Dim Almacen As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Almacen", $"CveAlmacen = {Request("CveAlmacen").ToString}") + DdlAlmacen.Items.Insert(0, New ListItem(Almacen, CveAlmacen)) + End If + Else + DdlAlmacen.SelectedValuesIfExistM("-1") + End If + + 'Llenar dropdownlist de proveedores + DdlProveedor.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) + DdlProveedor.DataBind() + DdlProveedor.Items.Insert(0, New ListItem("Todos", "-1")) + + 'CARGA CLASIFICACIONES + Dim ObjClasificaciones As New ClsClasificaciones + If ObjClasificaciones.GetClasificacionesExistencias(UsuarioActual.CveEmpresa) Then + DdlClasificacion.DataSource = ObjClasificaciones.DtResultados + End If + ObjClasificaciones.Dispose() + DdlClasificacion.DataBind() + DdlClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) + + + + + 'Carga Productos + DdlPS.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) + DdlPS.SelectedText = "" + DdlPS.SelectedValue = "-1" + Else + DdlPS.ddl.Items.Clear() + DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) + DdlPS.ddl.DataBind() + DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) + End If + + + 'Llenar dropdownlist de personal + DdlPersonal.DataSource = GlobalDTRHPersonal(UsuarioActual.CveEmpresa) + DdlPersonal.DataBind() + DdlPersonal.Items.Insert(0, New ListItem("Todos", "-1")) + + CargarMarcas() + + DdlTipoAlmacen.DataSource = GlobalDTTipoAlmacen(1) + DdlTipoAlmacen.DataBind() + DdlTipoAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) + + End Sub + + Protected Sub btConsultar_Click(sender As Object, e As EventArgs) Handles btConsultar.Click + CargaDatos() + End Sub + + Private Sub CargaDatos() + Dim Reporte As New ClsInventarios + Dim rpt As DataTable = Nothing + Dim CveMarca As Integer = -1 + + 'Dim fechaI As String = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1") + 'Dim fechaF As String = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1") + FechaInicial = If(TxtFechaI.Text.Trim <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text, "-1") + FechaFinal = If(TxtFechaF.Text.Trim <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text, "-1") + Dim TipoAlmacen As String = If(DdlTipoAlmacen.GetSelectedValuesM = "", "-1", DdlTipoAlmacen.GetSelectedValuesM) + Dim Almacenes As String = If(DdlAlmacen.GetSelectedValuesM = "", "-1", DdlAlmacen.GetSelectedValuesM) + + If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then + CveMarca = DdlMarca.SelectedValue.ToEntero + End If + + If Reporte.RepExistenciasLote(UsuarioActual.CveEmpresa, FechaInicial.ToDate, FechaFinal.ToDate, DdlProveedor.SelectedValue.ToEntero, Almacenes, DdlPS.SelectedValue.ToEntero, + DdlClasificacion.SelectedValue.ToEntero, CveMarca, TipoAlmacen) Then + If Reporte.DtResultados.Rows.Count > 0 Then + GvM.DataSource = Reporte.DtResultados + GvM.DataBind() + ViewState("dtReporte") = Reporte.DtResultados + dt = Reporte.DtResultados + + End If + + + End If + Reporte.Dispose() + UPPMov.Update() + End Sub + + Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlPS.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) + DdlPS.SelectedText = "" + DdlPS.SelectedValue = "-1" + Else + DdlPS.ddl.Items.Clear() + DdlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) + DdlPS.ddl.DataBind() + DdlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1")) + End If + End Sub + + Protected Sub GvM_RowCreated(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowCreated + + 'If e.Row.RowType = DataControlRowType.Header Then + ' 'GENERO ENCABEZADO + ' Dim FC As New SortedList + ' FC.Add(0, "Código,1,2,Titulos") + + ' If ChkCodigoAlterno.Checked Then + ' FC.Add(1, "Código Alterno,1,2,Titulos") + ' End If + + ' FC.Add(10, "Descripción,1,2,Titulos") + ' FC.Add(20, "CANTIDAD,4,1,Titulos") + ' FC.Add(30, "IMPORTE,4,1,Titulos") + + ' Dim FC2 As New SortedList + ' FC2.Add(0, "Exist. inicial,1,1,Titulos") + ' FC2.Add(1, "Entradas,1,1S,Titulos") + ' FC2.Add(2, "Salidas,1,1,Titulos") + ' FC2.Add(3, "Exist. final,1,1,Titulos") + ' FC2.Add(4, "Saldo inicial,1,1,Titulos") + ' FC2.Add(5, "Entradas,1,1,Titulos") + ' FC2.Add(6, "Salidas,1,1,Titulos") + ' FC2.Add(7, "Saldo final,1,1,Titulos") + + ' GetMultiRowHeader(DirectCast(sender, GridView), e, FC2, "Titulosfijos") + ' GetMultiRowHeader(DirectCast(sender, GridView), e, FC, "Titulosfijos") + + ''End If + + End Sub + + Protected Sub gvMovimientos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + + + End If + End Sub + + +#Region "MARCA" + Protected Sub CargarMarcas() + + If UsuarioActual.Empresa.Funcionalidad(130) = "1" Then + DivMarca.Visible = True + + Dim ObjMarcas As New ClsProductosServicios + ObjMarcas.GetMarcas(UsuarioActual.CveEmpresa) + DdlMarca.DataSource = ObjMarcas.DtResultados + ObjMarcas.Dispose() + DdlMarca.DataBind() + End If + + DdlMarca.Items.Insert(0, New ListItem(" Todas ", "-1")) + End Sub +#End Region + + +#Region " EXPORTAR - PDF - EXCEL " + Private Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click + ' GvM.ExportToExcel("Reporte de Entradas y Salidas") + ImprimiReporte("EXCEL") + End Sub + Private Sub LnkImprimir_Click(sender As Object, e As EventArgs) Handles LnkImprimir.Click + ImprimiReporte() + End Sub + + Protected Sub ImprimiReporte(Optional Formato As String = "PDF", Optional FormatoInventario As Boolean = False) + + Dim RutaPDF As String + Dim NombreArchivoDescarga = "ReporteExistenciaLotes" + + RutaPDF = "Empresas/Grales/Formatos/RepExistenciaLotes.rdlc" + + + Dim params As New List(Of ReportParameter) + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("LogoPath", New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Logo.png", UsuarioActual.CveEmpresa))).AbsoluteUri)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) + + ImprimirPDF(RutaPDF, dt, params, NombreArchivoDescarga, Formato) + + End Sub + +#End Region + + + Protected Sub Lnkcompuxlsinventarios_Click(sender As Object, e As EventArgs) + Dim continuar = True + Try + + Dim wb As New ClosedXML.Excel.XLWorkbook() + Dim libro As ClosedXML.Excel.IXLWorksheet = wb.AddWorksheet("Reporte de inventarios") + + + + Dim Fila As Integer = 0 + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 7)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242)) + libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 7)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80)) + libro.Cell(Fila + 3, 5).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)) + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 7)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 7)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin + libro.Column(1).Width = 34.43 + libro.Cell(Fila + 1, 1).Value = "TIPO DO REGISTRO" + libro.Cell(Fila + 2, 1).Value = "RECORD Type" + libro.Cell(Fila + 3, 1).Value = "OBLIGATORIO" + + libro.Column(2).Width = 24 + libro.Cell(Fila + 1, 2).Value = "Codigo del Partner" + libro.Cell(Fila + 2, 2).Value = "Reporter_id " + libro.Cell(Fila + 3, 2).Value = "OBLIGATORIO" + + libro.Column(3).Width = 28.71 + libro.Cell(Fila + 1, 3).Value = "Nombre de la Empresa" + libro.Cell(Fila + 2, 3).Value = "Reporter Company Name" + libro.Cell(Fila + 3, 3).Value = "OBLIGATORIO" + + libro.Column(4).Width = 23.57 + libro.Cell(Fila + 1, 4).Value = "CÓDIGO DEL PAÍS" + libro.Cell(Fila + 2, 4).Value = "COUNTRY CD" + libro.Cell(Fila + 3, 4).Value = "OBLIGATORIO" + + libro.Column(5).Width = 17.57 + libro.Cell(Fila + 1, 5).Value = "Ubicación" + libro.Cell(Fila + 2, 5).Value = "LOCATION" + libro.Cell(Fila + 3, 5).Value = "OPCIONAL" + + libro.Column(6).Width = 35.29 + libro.Cell(Fila + 1, 6).Value = "FECHA DEL INVENTARIO" + libro.Cell(Fila + 2, 6).Value = "Period End Date" + libro.Cell(Fila + 3, 6).Value = "OBLIGATORIO" + + libro.Column(7).Width = 23.43 + libro.Cell(Fila + 1, 7).Value = "REENVIO" + libro.Cell(Fila + 2, 7).Value = "RESUBMIT" + libro.Cell(Fila + 3, 7).Value = "OBLIGATORIO" + + libro.Column(8).Width = 29.29 + libro.Column(9).Width = 25 + libro.Column(10).Width = 18.14 + libro.Column(11).Width = 32.71 + libro.Column(12).Width = 13.57 + libro.Column(13).Width = 13 + libro.Column(14).Width = 32 + libro.Column(15).Width = 12.71 + libro.Column(16).Width = 13 + + + + Fila = Fila + 3 + + libro.Cell(Fila + 1, 1).Value = "IH" + libro.Cell(Fila + 1, 2).Value = "10245068" + libro.Cell(Fila + 1, 3).Value = "COMPUPROVEEDORES SA DE CV" + libro.Cell(Fila + 1, 4).Value = "MX" + libro.Cell(Fila + 1, 5).Value = "" + libro.Cell(Fila + 1, 6).Value = String.Format("{0:yyyyMMdd}", TxtFechaF.Text.ToDate()) + libro.Cell(Fila + 1, 7).Value = "N" + + + Fila = Fila + 1 + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 16)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242)) + libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 16)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80)) + libro.Range(libro.Cell(Fila + 3, 3), libro.Cell(Fila + 3, 15)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(166, 166, 166)) + libro.Cell(Fila + 3, 7).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80)) + libro.Cell(Fila + 3, 10).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80)) + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 16)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 16)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin + libro.Cell(Fila + 1, 1).Value = "TIPO DO REGISTRO" + libro.Cell(Fila + 1, 2).Value = "NÚMERO DEL PRODUCTO" + libro.Cell(Fila + 1, 3).Value = "OPCION DEL PRODUCTO" + libro.Cell(Fila + 1, 4).Value = "UPC" + libro.Cell(Fila + 1, 5).Value = "CODIGO SKU" + libro.Cell(Fila + 1, 6).Value = "ORDENES DE COMPRAS EN ABIERTO " + libro.Cell(Fila + 1, 7).Value = "INVENTARIO DISPONIBLE" + libro.Cell(Fila + 1, 8).Value = "DEVOLUCIONES" + libro.Cell(Fila + 1, 9).Value = "INVENTARIO RESERVADO" + libro.Cell(Fila + 1, 10).Value = "INVENTARIO TOTAL" + libro.Cell(Fila + 1, 11).Value = "EN TRANSITO" + libro.Cell(Fila + 1, 12).Value = "VALOR UNITARIO DEL PRODUCTO HP" + libro.Cell(Fila + 1, 13).Value = "VALOR TOTAL DEL INVENTARIO" + libro.Cell(Fila + 1, 14).Value = "NOMBRE DE LA TIENDA" + libro.Cell(Fila + 1, 15).Value = "Codigo de la tienda" + libro.Cell(Fila + 1, 16).Value = "MONEDA" + + Fila = Fila + 1 + libro.Cell(Fila + 1, 1).Value = "RECORD TYPE " + libro.Cell(Fila + 1, 2).Value = "Partner Reported Product ID" + libro.Cell(Fila + 1, 3).Value = "PROD_OPTION" + libro.Cell(Fila + 1, 4).Value = "UPC" + libro.Cell(Fila + 1, 5).Value = "Reseller product number " + libro.Cell(Fila + 1, 6).Value = "Quantity on Order" + libro.Cell(Fila + 1, 7).Value = "Quantity on Hand" + libro.Cell(Fila + 1, 8).Value = "Quantity in stock allocated to be returned to supplier" + libro.Cell(Fila + 1, 9).Value = "Reserved Inventory" + libro.Cell(Fila + 1, 10).Value = "Quantity avail. for sale" + libro.Cell(Fila + 1, 11).Value = "Quantity in float (In transit between partner warehouses)" + libro.Cell(Fila + 1, 12).Value = "INVENTORY UNIT VALUE" + libro.Cell(Fila + 1, 13).Value = "INVENTORY VALUATION" + libro.Cell(Fila + 1, 14).Value = "Sell from name (For retailers, ""Store Name / Site Name"")" + libro.Cell(Fila + 1, 15).Value = "Sell From Location ID" + libro.Cell(Fila + 1, 16).Value = "CURRENCY" + + Fila = Fila + 1 + libro.Cell(Fila + 1, 1).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 2).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 3).Value = "OPCIONAL" + libro.Cell(Fila + 1, 4).Value = "OPCIONAL" + libro.Cell(Fila + 1, 5).Value = "OPCIONAL" + libro.Cell(Fila + 1, 6).Value = "OPCIONAL" + libro.Cell(Fila + 1, 7).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 8).Value = "OPCIONAL" + libro.Cell(Fila + 1, 9).Value = "OPCIONAL" + libro.Cell(Fila + 1, 10).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 11).Value = "OPCIONAL" + libro.Cell(Fila + 1, 12).Value = "OPCIONAL" + libro.Cell(Fila + 1, 13).Value = "OPCIONAL" + libro.Cell(Fila + 1, 14).Value = "OPCIONAL" + libro.Cell(Fila + 1, 15).Value = "OPCIONAL" + libro.Cell(Fila + 1, 16).Value = "OBLIGATORIO" + + + If Not IsNothing(dt) AndAlso dt.Rows.Count > 0 Then + + For Each row As DataRow In dt.Select("CvePS>0 AND SaldoFCant >0") + + Fila = Fila + 1 + libro.Cell(Fila + 1, 1).Value = "ID" ' "TIPO DO REGISTRO" + libro.Cell(Fila + 1, 2).Value = String.Format("'{0}", row("Codigo")) ' "NÚMERO DEL PRODUCTO" + libro.Cell(Fila + 1, 3).Value = "" ' "OPCION DEL PRODUCTO" + libro.Cell(Fila + 1, 4).Value = "" ' "UPC" + libro.Cell(Fila + 1, 5).Value = "" ' "CODIGO SKU" + libro.Cell(Fila + 1, 6).Value = "" ' "ORDENES DE COMPRAS EN ABIERTO " + libro.Cell(Fila + 1, 7).Value = String.Format("{0}", row("SaldoFCant")) ' "INVENTARIO DISPONIBLE" + 'libro.Cell(Fila + 1, 7).Style.NumberFormat.Format = "N2" + libro.Cell(Fila + 1, 8).Value = "" ' "DEVOLUCIONES" + libro.Cell(Fila + 1, 9).Value = "" ' "INVENTARIO RESERVADO" + libro.Cell(Fila + 1, 10).Value = String.Format("{0}", row("SaldoFCant")) ' "INVENTARIO TOTAL" + 'libro.Cell(Fila + 1, 10).Style.NumberFormat.Format = "$ #,##0.00" + libro.Cell(Fila + 1, 11).Value = "" ' "EN TRANSITO" + libro.Cell(Fila + 1, 12).Value = "" ' "VALOR UNITARIO DEL PRODUCTO HP" + libro.Cell(Fila + 1, 13).Value = "" ' "VALOR TOTAL DEL INVENTARIO" + libro.Cell(Fila + 1, 14).Value = "" ' "NOMBRE DE LA TIENDA" + libro.Cell(Fila + 1, 15).Value = "" ' "Codigo de la tienda" + libro.Cell(Fila + 1, 16).Value = "MXN" ' "MONEDA" + Next + End If + + Fila = Fila + 1 + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 2, 4)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(217, 225, 242)) + libro.Range(libro.Cell(Fila + 3, 1), libro.Cell(Fila + 3, 4)).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(0, 176, 80)) + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 4)).Style.Border.InsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin + libro.Range(libro.Cell(Fila + 1, 1), libro.Cell(Fila + 3, 4)).Style.Border.OutsideBorder = ClosedXML.Excel.XLBorderStyleValues.Thin + libro.Cell(Fila + 1, 1).Value = "TIPO DEL REGISTRO" + libro.Cell(Fila + 1, 2).Value = "TOTAL DE REGISTROS" + libro.Cell(Fila + 1, 3).Value = "Suma del Inventario Disponible" + libro.Cell(Fila + 1, 4).Value = "Suma del Inventario Total" + + Fila = Fila + 1 + libro.Cell(Fila + 1, 1).Value = "RECORD TYPE" + libro.Cell(Fila + 1, 2).Value = "COUNT OF RECORDS" + libro.Cell(Fila + 1, 3).Value = "SUM OF “"On Hand”"" + libro.Cell(Fila + 1, 4).Value = "SUM OF “"Total Inventory"”" + + + Fila = Fila + 1 + libro.Cell(Fila + 1, 1).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 2).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 3).Value = "OBLIGATORIO" + libro.Cell(Fila + 1, 4).Value = "OBLIGATORIO" + + Dim Codigo As Double = 0 + Dim SaldoFCant As Double = 0 + Dim SaldoFImp As Double = 0 + If Not IsNothing(dt) AndAlso dt.Rows.Count > 0 Then + Codigo = dt.COUNT("Codigo", "CvePS>0") + SaldoFCant = dt.SUM("SaldoFCant", "CvePS>0") + SaldoFImp = dt.SUM("SaldoFImp", "CvePS>0") + End If + Fila = Fila + 1 + libro.Cell(Fila + 1, 1).Value = "IT" + libro.Cell(Fila + 1, 2).Value = String.Format("{0}", Codigo) + 'libro.Cell(Fila + 1, 2).Style.NumberFormat.Format = "N2" + libro.Cell(Fila + 1, 3).Value = String.Format("{0}", SaldoFCant) + 'libro.Cell(Fila + 1, 3).Style.NumberFormat.Format = "N2" + libro.Cell(Fila + 1, 4).Value = String.Format("{0}", SaldoFCant) + 'libro.Cell(Fila + 1, 4).Style.NumberFormat.Format = "$ #,##0.00" + + + ''Guarda streem y descarga + Dim fs As Stream = New MemoryStream() + wb.SaveAs(fs) + fs.Position = 0 + Dim memoryStream As New MemoryStream() + Using input As Stream = fs + input.CopyTo(memoryStream) + End Using + memoryStream.Position = 0 + + Response.Clear() + Response.Buffer = True + + Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" + Response.AddHeader("content-disposition", String.Format("attachment;filename={0}.xlsx", "Reporte de Inventarios HP")) + Response.BinaryWrite(memoryStream.ToArray()) + Response.End() + + ''endGuarda streem y descarga + Catch + + continuar = False + End Try + If Not continuar Then + Alert("Ocurrió un error al gener el excel", TipoMensaje.MsgAdvertencia) + End If + End Sub +End Class From ea6ed954e6ed5e048897c5015e05cbcf9136374b Mon Sep 17 00:00:00 2001 From: Hector Date: Tue, 17 Aug 2021 01:21:08 -0700 Subject: [PATCH 09/52] Nombre columnas por funcionalidad --- Inventarios/Kardex.aspx.vb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Inventarios/Kardex.aspx.vb b/Inventarios/Kardex.aspx.vb index 64b3c1c10..9dffa4eec 100644 --- a/Inventarios/Kardex.aspx.vb +++ b/Inventarios/Kardex.aspx.vb @@ -220,6 +220,8 @@ Partial Class Inventarios_Kardex If AplicaSerie Then GvM.Columns(9).Visible = True If AplicaLote Then GvM.Columns(10).Visible = True If AplicaCaducidad Then GvM.Columns(11).Visible = True + If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then GvM.Columns(11).HeaderText = UsuarioActual.Empresa.Funcionalidad(147) + Dim Drp As datarow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") Dim AuxAplicaSerie As Boolean @@ -232,6 +234,7 @@ Partial Class Inventarios_Kardex LnkSeries.Visible = AuxAplicaSerie LnkCaducidad.Visible = AuxAplicaCad 'CARGA INDICADORES + If UsuarioActual.TienePermisoProceso(201) Then DivIndicadores.Visible = True @@ -363,7 +366,9 @@ Partial Class Inventarios_Kardex GvProductoCaducidad.DataSource = ObjInventarios.DtResultados GvProductoCaducidad.columns(2).visible = ObjInventarios.DtResultados.max("Serie") <> "" GvProductoCaducidad.columns(3).visible = ObjInventarios.DtResultados.max("Lote") <> "" - GvProductoCaducidad.columns(4).visible = ObjInventarios.DtResultados.max("FechaCaducidad").todate > minfecha + GvProductoCaducidad.Columns(4).Visible = ObjInventarios.DtResultados.MAX("FechaCaducidad").ToDate > MinFecha + If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then GvProductoCaducidad.Columns(4).HeaderText = UsuarioActual.Empresa.Funcionalidad(147) + End If ObjInventarios.Dispose() GvProductoCaducidad.DataBind() From 06f75d49279d7ea785adf7b9402c177865f3cdc1 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 20:52:50 -0700 Subject: [PATCH 10/52] -- Resguardos que tome la columna de saldo y no la de cantidad --- RH/Personal.aspx | 4 ++-- RH/Personal.aspx.vb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/RH/Personal.aspx b/RH/Personal.aspx index f4d11b79a..7a362665f 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -954,7 +954,7 @@ - @@ -979,7 +979,7 @@ > --%> - + diff --git a/RH/Personal.aspx.vb b/RH/Personal.aspx.vb index 7c3ca2caf..01c715847 100644 --- a/RH/Personal.aspx.vb +++ b/RH/Personal.aspx.vb @@ -5285,7 +5285,7 @@ Partial Class RH_Personal CvePS = row.DataKey("CvePS").ToString().ToEntero CveMovimientoUniforme = row.DataKey("CveMovimiento").ToString().ToEntero CveMovimientoDetalleUniforme = row.DataKey("CveMovimientoDetalle").ToString().ToEntero - Dim Cantidad As Integer = row.DataKey("Cantidad").ToString().ToEntero + Dim Cantidad As Integer = row.DataKey("Saldo").ToString().ToEntero TxtCantidadResguardo.Text = Cantidad.ToString RvTxtCantidadResguardo.MaximumValue = Cantidad.ToString If row.DataKey("AplicaSeccion").ToString = "True" Then From 653a1bc0691ba131c68c712c5f4d77fd9950b826 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 20:53:29 -0700 Subject: [PATCH 11/52] columna --- Contabilidad/RepIVA.aspx | 2 +- Contabilidad/RepIVA.aspx.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Contabilidad/RepIVA.aspx b/Contabilidad/RepIVA.aspx index b5e938280..0a1cc36c0 100644 --- a/Contabilidad/RepIVA.aspx +++ b/Contabilidad/RepIVA.aspx @@ -316,7 +316,7 @@ - + diff --git a/Contabilidad/RepIVA.aspx.cs b/Contabilidad/RepIVA.aspx.cs index 4652cbd29..075d299bf 100644 --- a/Contabilidad/RepIVA.aspx.cs +++ b/Contabilidad/RepIVA.aspx.cs @@ -104,7 +104,7 @@ public partial class Contabilidad_RepIVA : ClsPaginas LblMsgAcreditable.Text = "La información presenta importes en negativo, estos no se incluirán en el archivo generado para DIOT"; } - GvA.Columns[11].Visible = DtIVAAcreditable.SUM("IvaExentoImpo") > 0; // sino tiene valor la columna de importación de oculta + GvA.Columns[10].Visible = DtIVAAcreditable.SUM("IvaExentoImpo") > 0; // sino tiene valor la columna de importación de oculta if (ObjCont.GetRepIVAAcumulado(txtFechaI.Text.ToDate(), txtFechaF.Text.ToDate(), Conciliado, 3, DdlCuenta.SelectedValue.ToEntero(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) From 99155f449fed0d7a1b8f010a5a77c4bdc946e4cf Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 20:54:50 -0700 Subject: [PATCH 12/52] =?UTF-8?q?que=20facturas,=20tome=20-4=20a=C3=B1os?= =?UTF-8?q?=20en=20lugar=20de=20-3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 4d99c642e..bd9d482df 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1649,7 +1649,7 @@ Partial Class Compras_Compras Private Function CargaFactura(CveFactura As Integer) As String Dim ObjeFacturas As New ClsCompras Dim RFC As String = "" - If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-3), Now, "-1", "-1", -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa) AndAlso ObjeFacturas.DtResultados.Rows.Count > 0 Then + If ObjeFacturas.GetFacturas(CveFactura, "-1", Now.AddYears(-4), Now, "-1", "-1", -1, -1, -1, -1, "-1", UsuarioActual.CveEmpresa) AndAlso ObjeFacturas.DtResultados.Rows.Count > 0 Then Dim dr As DataRow = ObjeFacturas.DtResultados.Rows(0) ' no toma la cero, porque es el totalizador Dim XMLDoc As New XmlDocument From 95f3a1754560b0f62ba187df8b409a678f5c37f1 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 20:55:22 -0700 Subject: [PATCH 13/52] registro de productos, el iva que tome el de lasucursal, enlugar de cero --- Contratos/ContratoObra.aspx.vb | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/Contratos/ContratoObra.aspx.vb b/Contratos/ContratoObra.aspx.vb index 18d959c83..8e7140752 100644 --- a/Contratos/ContratoObra.aspx.vb +++ b/Contratos/ContratoObra.aspx.vb @@ -4580,7 +4580,7 @@ Partial Class Contratos_ContratoObra CveUnidadMedida = GlobalDTUnidadesMedida(CveEmpresa:=UsuarioActual.CveEmpresa).Rows(0)("CveUnidadMedida").ToString.ToEntero End If - If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, DrowPS("Codigo").ToString.Trim, "", "", DrowPS("Producto").ToString, DrowPS("PU").ToString.ToDouble, 0, 0, False, 0, False, If(TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas, True, False), + If ObjPS.AddPS(CveClasificacion, 1, CveUnidadMedida, DrowPS("Codigo").ToString.Trim, "", "", DrowPS("Producto").ToString, DrowPS("PU").ToString.ToDouble, -1, 0, False, 0, False, If(TipoCargaPresupuesto = EnumTipoCargaPresupuesto.Ventas, True, False), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, 1, CveTipoPS:=2, CveSATPS:=-1, CveMarca:=-1, CveTamaño:=-1, CveMedida:=-1, CveRinTamaño:=-1, CveModelo:=-1, Litraje:=-1, IEPSPorcentaje:=-1, CveClasificacion2:=-1, CveClasificacionDetalle:=-1) > 0 Then CvePS = ObjPS.CvePS Else @@ -4656,17 +4656,12 @@ Partial Class Contratos_ContratoObra End If - - If Not DTCargaPresupuestoManoObra Is Nothing And Not ErrorProceso Then - - For Each DrowPS As DataRow In DTCargaPresupuestoManoObra.Rows Dim CveActividad As Integer = 0 Dim Actividad As String - If DrowPS("Actividad").ToString.Trim.Length > 0 Then GlobalDTRHActividades(UsuarioActual.CveEmpresa) = Nothing CveActividad = GlobalDTRHActividades(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveActividad", $" Actividad = '{ DrowPS("Actividad").ToString.Trim }'").ToEntero @@ -4691,14 +4686,11 @@ Partial Class Contratos_ContratoObra End If ObjRH.Dispose() - End If - If CveActividad > 0 And DrowPS("Cantidad").ToString.ToDouble > 0 And Not ErrorProceso Then Actividad = GlobalDTRHActividades(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Actividad", $" CveActividad = {CveActividad}") - Dim Row As DataRow = DTPS.NewRow() Row("Cantidad") = DrowPS("Cantidad").ToString.ToDouble Row("CantidadContratada") = DrowPS("Cantidad").ToString.ToDouble @@ -4717,7 +4709,6 @@ Partial Class Contratos_ContratoObra Row("CveActividad") = CveActividad Row("CveSubTipoActivoFijo") = -1 Row("Dias") = DrowPS("Dias").ToString.ToEntero - Row("NoIdentificacion") = "" Row("OCInterna") = "" Row("LimitarCantidad") = 0 @@ -4905,7 +4896,6 @@ Partial Class Contratos_ContratoObra Dim NrowTmpDT As DataRow = TmpDT.NewRow - NrowTmpDT("Cantidad") = Row("Cantidad") NrowTmpDT("CantidadContratada") = Row("CantidadContratada") NrowTmpDT("CveUM") = Row("CveUM") @@ -4933,7 +4923,6 @@ Partial Class Contratos_ContratoObra NrowTmpDT("SubTipoActivoFijo") = Row("SubTipoActivoFijo") NrowTmpDT("Dias") = Row("Dias") - NrowTmpDT("CveContratoDetalle") = ObjContratos.DtResultados.Rows(0)("CveContratoDetalle") TmpDT.Rows.Add(NrowTmpDT) @@ -4946,7 +4935,6 @@ Partial Class Contratos_ContratoObra End If Next - If ErrorProceso Then ObjContratos.RollBack() Alert("Se presento un error al cargar el presupuesto.", TipoMensaje.MsgError) From 7eb6209b19651ab0f4a4ceb87a00943f88ae2123 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 20:56:11 -0700 Subject: [PATCH 14/52] -- que se visualice todos en lugar de seleccione --- Ventas/PopUpBuscarClientes.aspx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/PopUpBuscarClientes.aspx b/Ventas/PopUpBuscarClientes.aspx index 31c0e8406..11b583660 100644 --- a/Ventas/PopUpBuscarClientes.aspx +++ b/Ventas/PopUpBuscarClientes.aspx @@ -61,7 +61,7 @@ Sucursal: - + Estatus: From 180886251fafce7e9e85aa913dda60a7d0a5255c Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 20:56:51 -0700 Subject: [PATCH 15/52] - que se coloree , titulos y subtitulos --- Contabilidad2/RepBalanzaComprobacion.aspx.vb | 42 ++------------------ 1 file changed, 3 insertions(+), 39 deletions(-) diff --git a/Contabilidad2/RepBalanzaComprobacion.aspx.vb b/Contabilidad2/RepBalanzaComprobacion.aspx.vb index 525bea3b5..fae21caf0 100644 --- a/Contabilidad2/RepBalanzaComprobacion.aspx.vb +++ b/Contabilidad2/RepBalanzaComprobacion.aspx.vb @@ -133,15 +133,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion Protected Sub GvIngresos_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then - 'If e.Row.DBCampo("Id").ToEntero = IdCuenta Then - ' e.Row.ControlStyle.Font.Bold = True - ' 'e.Row.ControlStyle.Font.Size = 9 - ' 'e.Row.ControlStyle.Height = 30 - 'Else - ' e.Row.ControlStyle.Font.Bold = False - 'End If - - If e.Row.DBCampo("CtaMayor") = "1" Or e.Row.DBCampo("CtaMayor") = "1" Then + If e.Row.DBCampo("CtaMayor") = "1" OrElse e.Row.DBCampo("CtaMayor") = "3" OrElse e.Row.DBCampo("CtaMayor") = "4" Then e.Row.ControlStyle.Font.Bold = True End If @@ -167,8 +159,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion 'Total general If e.Row.DBCampo("Id") = "" Then - 'e.Row.Cells(2).HorizontalAlign = HorizontalAlign.NotSet - 'Dim TotSaldoID, TotSaldoIA As Double + e.Row.ControlStyle.Font.Bold = True e.Row.ControlStyle.Font.Size = 9 e.Row.ControlStyle.Height = 30 @@ -192,33 +183,6 @@ Partial Class Contabilidad2_RepBalanzaComprobacion ImprimirReporte() - 'Using sw As New StringWriter() - ' Using hw As New HtmlTextWriter(sw) - - ' Dim style As StringBuilder = New StringBuilder() - ' style.Append(" ") - ' 'To Export all pages - ' 'Gv.AllowPaging = False - ' 'Gv.DataBind() - ' Tbl.RenderControl(hw) - ' Dim sr As New StringReader(sw.ToString()) - ' Dim pdfDoc As New Document(PageSize.A2, 10.0F, 10.0F, 10.0F, 0.0F) - ' Dim htmlparser As New HTMLWorker(pdfDoc) - ' PdfWriter.GetInstance(pdfDoc, Response.OutputStream) - ' pdfDoc.Open() - ' htmlparser.Parse(sr) - ' pdfDoc.Close() - - ' Response.ContentType = "application/pdf" - ' Response.AddHeader("content-disposition", "attachment;filename=BalanzaComprobacion.pdf") - ' Response.Cache.SetCacheability(HttpCacheability.NoCache) - ' Response.Write(style.ToString) - ' Response.Write(pdfDoc) - ' Response.[End]() - ' End Using - 'End Using End Sub 'No quitar porque no funciona el exporta PDF @@ -228,7 +192,7 @@ Partial Class Contabilidad2_RepBalanzaComprobacion Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click - 'GvDatos.ExportToExcel("BalanzaComprobacion") + ImprimirReporte("Excel") End Sub From 9a485ed6d2c8bdc6622cabfbbb7341dc0347ffb8 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 21:00:03 -0700 Subject: [PATCH 16/52] ortografia --- OC/CatEstatus.aspx.vb | 2 +- OC/OC.aspx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/OC/CatEstatus.aspx.vb b/OC/CatEstatus.aspx.vb index 724daf754..856492b95 100644 --- a/OC/CatEstatus.aspx.vb +++ b/OC/CatEstatus.aspx.vb @@ -99,7 +99,7 @@ Partial Class OC_CatEstatus Dim ObjEstatus As New ClsOC If ObjEstatus.GetEstatus() Then ViewState("DTOCEstatus") = ObjEstatus.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) - GlobalDTOCEstatus(-1) = ObjEstatus.DtResultados + GlobalDTOCEstatus(UsuarioActual.CveEmpresa) = ObjEstatus.DtResultados Else GvDatos.DataSource = Nothing End If diff --git a/OC/OC.aspx b/OC/OC.aspx index 113ef0fa1..54eed75cc 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -1102,7 +1102,7 @@
    <%----%> - Cotizaciones Rapidas + Cotizaciones Rápidas
    From c5235d9858c78814b30a7ba93599a95b0ce4a555 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 21:00:49 -0700 Subject: [PATCH 17/52] -- cambio en el manejo de virtual en concepto 40 --- Ventas/Ventas.aspx.vb | 68 ++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index ef0190b68..ef9d548fd 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -18788,7 +18788,8 @@ Partial Class Ventas If ConSalida AndAlso Not OcurrioError Then If Not OcurrioError Then - GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenParaSalida, CveConceptoSalidaAlmacen, CveMoneda, ObjFactura.CveVenta, AplicaMovimientoDetalleEntrada:=AplicaMovimientoDetalleEntrada, MovimientoPrePoliza:=True, ObjConta:=ObjConta) > 0 + Dim CveMovimientoSalidaAlmacen As Integer = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenParaSalida, CveConceptoSalidaAlmacen, CveMoneda, ObjFactura.CveVenta, AplicaMovimientoDetalleEntrada:=AplicaMovimientoDetalleEntrada, MovimientoPrePoliza:=True, ObjConta:=ObjConta) + GeneroMovimientoAlmacen = CveMovimientoSalidaAlmacen > 0 If Not GeneroMovimientoAlmacen Then OcurrioError = True @@ -18796,7 +18797,7 @@ Partial Class Ventas End If If Not OcurrioError AndAlso UsuarioActual.Empresa.Funcionalidad(573) = "1" Then - OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveRemision, ObjInventario, ObjFactura, ObjConta:=ObjConta) + OcurrioError = Not GenerarMovimientoAlmacenVirtual(CveMovimientoSalidaAlmacen, CveAlmacenParaSalida, ObjInventario, ObjConta:=ObjConta) End If End If @@ -19162,7 +19163,7 @@ Partial Class Ventas Return Not OcurrioError End Function - Private Function GenerarMovimientoAlmacenVirtual(CveRemision As Integer, ByRef ObjInventario As ClsInventarios, ObjFactura As Modelos.Factura, Optional ByRef ObjConta As ClsContabilidad = Nothing) As Boolean + Private Function GenerarMovimientoAlmacenVirtual(CveMovimientoSalidaAlmacen As Integer, CveAlmacen As Integer, ByRef ObjInventario As ClsInventarios, Optional ByRef ObjConta As ClsContabilidad = Nothing) As Boolean Dim OcurrioError As Boolean = False Try @@ -19170,46 +19171,47 @@ Partial Class Ventas Dim CveAlmacenVirtual As Integer = -1 Dim CveConceptoMovimientoVirtual As Integer = 37 Dim DtPSVirtual As DataTable = Nothing - Dim DtTamanios As DataTable = Nothing - Dim CveMovimientoReferencia As Integer = -1 + 'Dim DtTamanios As DataTable = Nothing + ' Dim CveMovimientoReferencia As Integer = -1 - 'SI LA REMISION SE SURTIO CON USADOS UTILIZAR ESTE MOVIMIENTO - If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then - Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND (CveTipoAlmacen = 1 AND CveConcepto IN (3,8)) AND CveVenta > 0") + ''SI LA REMISION SE SURTIO CON USADOS UTILIZAR ESTE MOVIMIENTO + 'If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then + ' Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND (CveTipoAlmacen = 1 AND CveConcepto IN (3,8)) AND CveVenta > 0") - If RowMovimiento IsNot Nothing Then - CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero() - Dim tCveAlmacen = RowMovimiento("CveAlmacen").ToString().ToEntero() - CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=tCveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero() - End If + ' If RowMovimiento IsNot Nothing Then + ' CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero() + ' Dim tCveAlmacen = RowMovimiento("CveAlmacen").ToString().ToEntero() + ' CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=tCveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero() + ' End If - Else - OcurrioError = True - End If + 'Else + ' OcurrioError = True + 'End If - 'SI NO SE SURTIO LA REMSION CON USADOS, UTILIZAR EL MOVIMIENTO DE SALIDA DEL INGRESO - If CveMovimientoReferencia <= 0 Then - If ObjInventario.GetInv_Mov(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then - Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND ( (CveTipoAlmacen = 1 AND CveConcepto IN (3,8)) OR (CveTipoAlmacen = 10 AND CveConcepto = 40) ) AND CveVenta > 0") + ''SI NO SE SURTIO LA REMSION CON USADOS, UTILIZAR EL MOVIMIENTO DE SALIDA DEL INGRESO + 'If CveMovimientoReferencia <= 0 Then + ' If ObjInventario.GetInv_Mov(ObjFactura.CveVenta, UsuarioActual.CveEmpresa) Then + ' Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND ( (CveTipoAlmacen = 1 AND CveConcepto IN (3,8)) OR (CveTipoAlmacen = 10 AND CveConcepto = 40) ) AND CveVenta > 0") - If RowMovimiento IsNot Nothing Then - CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero() - Dim tCveAlmacen = RowMovimiento("CveAlmacen").ToString().ToEntero() - CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=tCveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero() + ' If RowMovimiento IsNot Nothing Then + ' CveMovimientoReferencia = RowMovimiento("CveMovimiento").ToString().ToEntero() + ' Dim tCveAlmacen = RowMovimiento("CveAlmacen").ToString().ToEntero() + ' CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=tCveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero() - Else - OcurrioError = True - End If + ' Else + ' OcurrioError = True + ' End If - Else - OcurrioError = True - End If - End If + ' Else + ' OcurrioError = True + ' End If + 'End If + CveAlmacenVirtual = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveAlmacenVirtual").ToEntero() 'SI TIENE ALMACEN VIRTUAL ASIGNADO GENERA EL MOVIMIENTO VIRTUAL If CveAlmacenVirtual > 0 Then - If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoReferencia, UsuarioActual.CveEmpresa) Then + If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalidaAlmacen, UsuarioActual.CveEmpresa) Then DtPSVirtual = ObjInventario.DtResultados.Copy() Else OcurrioError = True @@ -19217,7 +19219,7 @@ Partial Class Ventas If Not OcurrioError AndAlso DtPSVirtual.Rows.Count > 0 Then - CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/VV", CveMovimientoRelacionado:=CveMovimientoReferencia) + CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, ObjFactura.CveVenta, -1, -1, Modulo:="Vta/VV", CveMovimientoRelacionado:=CveMovimientoSalidaAlmacen) If CveMovimientoVirtual > 0 Then For Each RowUsado As DataRow In DtPSVirtual.Rows From db8315514d7c421252c775ea5909a56c672735b8 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 21:02:31 -0700 Subject: [PATCH 18/52] =?UTF-8?q?-=20validaci=C3=B3n=20de=20existencia,=20?= =?UTF-8?q?cuando=20tiene=20pendiente=20por=20surtir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/TraspasoAlmacen.aspx.vb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 21c7931e4..03c961d25 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -615,7 +615,7 @@ Partial Class Inventarios_TraspasoAlmacen End If 'Existencia= Inv.GetExistenciasPS(CvePS, CveUnidadMedida, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), PendientePorSurtir:=1) - If Existencia > Cantidad Then + If Existencia >= Cantidad Then 'la primera vez valida, que la existencia global, cumpla, considerando lo pendiente por surtir 'las segunda consulta, que tenga existencia, ya con los parametros especificos If (FechaCaducidad > MinFecha OrElse Not Serie.Contiene("", "-1") OrElse Not Lote.Contiene("", "-1")) Then @@ -647,6 +647,7 @@ Partial Class Inventarios_TraspasoAlmacen Else Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia) RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')") + Retorno = False End If Inv.Dispose() @@ -863,7 +864,7 @@ Partial Class Inventarios_TraspasoAlmacen 'las segunda consulta, que tenga existencia, ya con los parametros especificos If FechaCaducidad > MinFecha OrElse (Lote <> "-1" AndAlso Lote <> "") Then If ObjInventario.GetExistenciasProducto(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, Caducidad:=FechaCaducidad) Then - ExistenciaEspecificada = ObjInventario.DtResultados.FiltroPrimeroValor("ExistenciaFinal", String.Format("CVeAlmacen = {0}", DdlAlmacenOrigen.SelectedValue)).ToDecimal + ExistenciaEspecificada = ObjInventario.DtResultados.FiltroPrimeroValor("Existencia", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue)).ToDecimal End If 'ExistenciaEspecificada = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Serie, Lote:=Lote, FechaCaducidad:=FechaCaducidad, PendientePorSurtir:=-1) From d96e513f1ded353990eced13970edaa5413cb1bd Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 21:03:42 -0700 Subject: [PATCH 19/52] - cuenta de impuestos. tipomvto contrario --- Bancos/IE.aspx.vb | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 7bde7a0bc..1ad24c658 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -3222,10 +3222,8 @@ Partial Class Bancos_IE IVADev = Math.Round(IVADev * PorcentajeDevolucion, 2) IEPSDev = Math.Round(IEPSDev * PorcentajeDevolucion, 2) - Dim CveCuentaDevolucionIMPUESTOS As Integer = -1 Dim IdCtaIVADevolucionIMPUESTOS As Integer = -1 - If DdlMoneda.SelectedValue.ToEntero > 1 Then IVADevMN = IVADev IEPSDevMN = IEPSDev @@ -3239,15 +3237,13 @@ Partial Class Bancos_IE If IVADev > 0 Then - CveCuentaDevolucionIMPUESTOS = CveCuentaIVAxAcreditarDevDinC IdCtaIVADevolucionIMPUESTOS = IdCtaIVAXAcreditarDevDinC - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then - CveCuentaDevolucionIMPUESTOS = CveCuentaIVAAcreditableDevDinC IdCtaIVADevolucionIMPUESTOS = IdCtaIVAAcreditableDevDinC - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución" ErrorDevolucionImpuestos = True End If @@ -3263,22 +3259,19 @@ Partial Class Bancos_IE 'Dim ObjContabilidad As New ClsContabilidad If ObjMov.GetRetCuenta(25, UsuarioActual.CveEmpresa) Then Try - CveCuentaDevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditarSIG").ToString.ToEntero IdCtaIVADevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IEPSDev, ReferenciaAplicar, 25, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IEPSDev, ReferenciaAplicar, 25, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev) Then If ObjMov.GetRetCuenta(26, UsuarioActual.CveEmpresa) Then Try - CveCuentaDevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditableSIG").ToString.ToEntero IdCtaIVADevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IEPSDev, ReferenciaAplicar, 26, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IEPSDev, ReferenciaAplicar, 26, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev) Then MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución" ErrorDevolucionImpuestos = True End If - Catch ex As Exception Alert("Se presento un error al obtener las cuentas de IEPS acreditable.") ErrorDevolucionImpuestos = True @@ -3456,7 +3449,6 @@ Partial Class Bancos_IE IVADev = Math.Round(IVADev * PorcentajeDevolucion, 2) IEPSDev = Math.Round(IEPSDev * PorcentajeDevolucion, 2) - Dim CveCuentaDevolucionIMPUESTOS As Integer = -1 Dim IdCtaIVADevolucionIMPUESTOS As Integer = -1 @@ -3473,15 +3465,13 @@ Partial Class Bancos_IE If IVADev > 0 Then - CveCuentaDevolucionIMPUESTOS = CveCuentaIVAxAcreditarDevDinC IdCtaIVADevolucionIMPUESTOS = IdCtaIVAXAcreditarDevDinC - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IVADev, ReferenciaAplicar, 14, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then - CveCuentaDevolucionIMPUESTOS = CveCuentaIVAAcreditableDevDinC IdCtaIVADevolucionIMPUESTOS = IdCtaIVAAcreditableDevDinC - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IVADev, ReferenciaAplicar, 19, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IVADevMN, ImporteME:=-IVADev) Then MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución" ErrorDevolucionImpuestos = True End If @@ -3497,17 +3487,15 @@ Partial Class Bancos_IE 'Dim ObjContabilidad As New ClsContabilidad If ObjMov.GetRetCuenta(25, UsuarioActual.CveEmpresa) Then Try - CveCuentaDevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditarSIG").ToString.ToEntero IdCtaIVADevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IEPSDev, ReferenciaAplicar, 25, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, -IEPSDev, ReferenciaAplicar, 25, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev) Then If ObjMov.GetRetCuenta(26, UsuarioActual.CveEmpresa) Then Try - CveCuentaDevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditableSIG").ToString.ToEntero IdCtaIVADevolucionIMPUESTOS = ObjMov.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IEPSDev, ReferenciaAplicar, 26, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev, CveCuenta:=CveCuentaDevolucionIMPUESTOS) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, -IEPSDev, ReferenciaAplicar, 26, ConceptoAplicar, Now, IdCtaIVADevolucionIMPUESTOS, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=-IEPSDevMN, ImporteME:=-IEPSDev) Then MsgError = "Ocurrió un error al registrar el asiento de impuestos de devolución " ErrorDevolucionImpuestos = True End If @@ -6476,10 +6464,10 @@ Partial Class Bancos_IE Protected Sub LnkCancelarComplemetno_Click(sender As Object, e As EventArgs) - If ChkConciliado.Checked Then - Alert("El documento se encuentra conciliado, no se puede cancelar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + 'If ChkConciliado.Checked Then + ' Alert("El documento se encuentra conciliado, no se puede cancelar.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).BindingContainer, GridViewRow) From 5ad155ae382589cf0ff6c1e4877630dc94fbeac2 Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 17 Aug 2021 21:08:15 -0700 Subject: [PATCH 20/52] -- parametro de cveusuario en RecepcionAlmacen --- App_Code/ClsInventarios.vb | 3 ++- Compras/PopUpVerFactura.aspx.vb | 8 ++++---- Inventarios/RecepcionAlmacen.aspx.vb | 11 ++++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index e72bfba0e..b859736dc 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -3061,7 +3061,7 @@ Public Class ClsInventarios #Region " INVENTARIOS - COMPRAS " - Public Function RecepcionAlmacenGet(CveCompra As Integer, TipoRecepcion As Integer, CveEmpresa As Integer, Optional CveProveedor As Integer = -1) As Boolean + Public Function RecepcionAlmacenGet(CveCompra As Integer, TipoRecepcion As Integer, CveProveedor As Integer, CveEmpresa As Integer, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_RecepcionAlmacenGet") With SqlAdapter.SelectCommand.Parameters @@ -3069,6 +3069,7 @@ Public Class ClsInventarios .Add("@TipoRecepcion", SqlDbType.Int).Value = TipoRecepcion .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario End With Try SqlAdapter.Fill(Data) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 8241e8aee..60ea263b0 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -1441,7 +1441,7 @@ Partial Class PopUpVerFactura End If If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCompra > 0 Then - If ObjInventarios.RecepcionAlmacenGet(CveCompra, -1, UsuarioActual.CveEmpresa) AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then + If ObjInventarios.RecepcionAlmacenGet(CveCompra, -1, -1, UsuarioActual.CveEmpresa, -1) AndAlso ObjInventarios.DtResultados.Rows.Count > 0 Then Dim DtFaltante As DataTable = ObjInventarios.DtResultados.FiltraParametros("CantidadF > 0") If DtFaltante.Rows.Count > 0 Then Dim SbPendientes As New StringBuilder @@ -2922,9 +2922,9 @@ Partial Class PopUpVerFactura Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim params As New List(Of ReportParameter) - Dim ArchivoRuta As New System.IO.FileInfo(String.Format("{0}Formatos/Entradas.rdlc", UsuarioActual.Empresa.Ruta)) - Dim Archivo As String = $"Empresas/{UsuarioActual.CveEmpresa}/Formatos/EntradaSalidaUniforme.rdlc" - + Dim ArchivoRuta As New System.IO.FileInfo(String.Format("{0}Formatos/EntradaSalidaUniforme.rdlc", UsuarioActual.Empresa.Ruta)) + Dim Archivo As String = String.Format("{0}Formatos/EntradaSalidaUniforme.rdlc", UsuarioActual.Empresa.Ruta) + If Not ArchivoRuta.Exists Then Archivo = "Empresas/Grales/Formatos/EntradaSalidaUniforme.rdlc" End If diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index 3c2820087..d80260672 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -991,7 +991,7 @@ Partial Class Inventarios_RecepcionAlmacen Dim CargaSoloUsados As Boolean = False - If ObjInventario.RecepcionAlmacenGet(pCveCompra, BuscaEntregaDirecta, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + If ObjInventario.RecepcionAlmacenGet(pCveCompra, BuscaEntregaDirecta, -1, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then Dim DtRecepcion As DataTable = ObjInventario.DtResultados.Copy() Dim NumUsados = ObjInventario.DtResultados.COUNT("EsUsado", "EsUsado = True").ToEntero() Dim NumProductos = ObjInventario.DtResultados.COUNT("EsUsado", "EsUsado = False").ToEntero() @@ -2112,7 +2112,7 @@ Partial Class Inventarios_RecepcionAlmacen Dim VariableCampo = If(TipoMovimiento.Contiene(1, 3), "CantidadF", "CantidadS") Dim ObjComprasDif As New ClsInventarios Dim DtDatosCompra As New DataTable - If ObjComprasDif.RecepcionAlmacenGet(CveCompraSurtir, BuscaEntregaDirecta, UsuarioActual.CveEmpresa) Then + If ObjComprasDif.RecepcionAlmacenGet(CveCompraSurtir, BuscaEntregaDirecta, -1, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then DtDatosCompra = ObjComprasDif.DtResultados End If Dim CantidadGV = GvInv.Rows.Cast(Of GridViewRow)().Sum(Function(gvr) gvr.DataKey("CantidadF").ToDecimal) @@ -2863,7 +2863,8 @@ Partial Class Inventarios_RecepcionAlmacen 'VERIFICA SI TIENE ALMACEN VIRTUAL If CveAlmacenVirtual > 0 Then - If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveCompra:=CveCompraSurtir, ValidaUsadosCompra:=ValidarRecepcionUsados) Then + ValidarRecepcionUsados = RecibidaCompleta + If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveCompra:=CveCompraSurtir, ValidaUsadosCompra:=ValidarRecepcionUsados) Then 'ValidarRecepcionUsados DtPSVirtual = ObjInventario.DtResultados End If @@ -3130,7 +3131,7 @@ Partial Class Inventarios_RecepcionAlmacen 'VERIFICA SI TIENE PENDIENTE POR SURTIR If UsuarioActual.CveEmpresa = 140 AndAlso TipoMovimiento = 3 Then - If ObjInventario.RecepcionAlmacenGet(CveCompraSurtir, -1, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + If ObjInventario.RecepcionAlmacenGet(CveCompraSurtir, -1, -1, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then Dim DtFaltante As DataTable = ObjInventario.DtResultados.FiltraParametros("CantidadF > 0") If DtFaltante.Rows.Count = 0 Then If Not ObjCompras.UpdateEstatusAlmacen(CveCompraSurtir, 2, UsuarioActual.CveUsuario) Then @@ -3647,7 +3648,7 @@ Partial Class Inventarios_RecepcionAlmacen Alert(Msg.ToString, TipoMensaje.MsgInformacion) - If ObjInventario.RecepcionAlmacenGet(CveCompraSurtir, -1, UsuarioActual.CveEmpresa) Then + If ObjInventario.RecepcionAlmacenGet(CveCompraSurtir, -1, -1, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then CreaDTInv(ObjInventario.DtResultados) CargaGVInv() BtnGuardar.Visible = True From 9d705a520b7ba5fbd6a33c637b45bf54fba2360e Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 18 Aug 2021 07:16:55 -0700 Subject: [PATCH 21/52] - aliias flexible --- App_Code/ClsProductosServicios.vb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 6242b9d0e..93d62aea8 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -1342,7 +1342,7 @@ Public Class ClsProductosServicios Return Retorno End Function - Public Function AddPSAlias(PS As String, CvePS As Integer, Optional CveUsuarioModifico As Integer = -1) As Boolean + Public Function AddPSAlias(PS As String, CvePS As Integer, Optional CveUsuarioModifico As Integer = -1, Optional Flexible As Boolean = False) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_ProductosServiciosAliasAdd") @@ -1350,6 +1350,7 @@ Public Class ClsProductosServicios .Add("@PSAlias", SqlDbType.VarChar).Value = If(PS.Length > 845, PS.Substring(0, 845), PS) .Add("@CvePS", SqlDbType.Int).Value = CvePS .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico + .Add("@Flexible", SqlDbType.Bit).Value = If(Flexible, 1, 0) End With Try From 4f86169b8904b6c6db6eb22754fd430c3523b01d Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 18 Aug 2021 07:17:30 -0700 Subject: [PATCH 22/52] =?UTF-8?q?--=20condici=C3=B3n=20e=20almacenes=20usa?= =?UTF-8?q?dos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/RecepcionAlmacen.aspx.vb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index d80260672..1508fa1f5 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -1010,7 +1010,11 @@ Partial Class Inventarios_RecepcionAlmacen ValidarRecepcionUsados = True DtRecepcion = ObjInventario.DtResultados.Copy() - CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra) + If TipoMovimiento = 3 Then + CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "21", CveTipoCompra) + Else + CargaAlmacenes(DtRecepcion.Rows(0)("CveSubProyecto").ToString.ToEntero, "22", CveTipoCompra) + End If Else DtRecepcion = ObjInventario.DtResultados.Copy() From 08dae1d863cf6c326b8817f58fe1cc6c986cc2f1 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 18 Aug 2021 11:38:10 -0700 Subject: [PATCH 23/52] Aplicacion de NC multiples con aplicacion de IEPS e IVA --- Ventas/Ventas.aspx.vb | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 6213df069..4adede1bd 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -6950,7 +6950,8 @@ Partial Class Ventas GvPS.Rows(e.NewEditIndex).FCDropDownList("DdlClasificacion").Enabled = False End If - If GvPS.Rows(e.NewEditIndex).DataKey("CvePromocionDetalle").ToString().ToEntero() > 0 Then + 'SI ES LLANTERA NO DEBE BLOQUEAR EL TEXTBOX + If GvPS.Rows(e.NewEditIndex).DataKey("CvePromocionDetalle").ToString().ToEntero() > 0 AndAlso (Not UsuarioActual.Empresa.Funcionalidad(558) = "1") Then GvPS.Rows(e.NewEditIndex).FCTextBox("TxtDescuento").Enabled = False GvPS.Rows(e.NewEditIndex).FCTextBox("TxtDescuento").ToolTip = "No se puede editar el descuento porque viene de una promoción" End If @@ -26062,7 +26063,7 @@ Partial Class Ventas Select ImportePU = x.Sum(Function(s) s("ImportePU").ToString().ToDecimal), ImporteTotal = x.Sum(Function(s) s("ImporteTotal").ToString().ToDecimal), ImporteIVA = x.Sum(Function(s) (s("ImporteIVA").ToString().ToDecimal)).RoundSQL(2), ' Math.Round(s("ImporteIVA").ToString().ToDecimal, 2)) * (1 + PorcentajeIEPS) * PorcentajeIVA, - ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA, +ImporteRetIVA = x.Sum(Function(s) Math.Round(s("ImporteRetIVA").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetIVA, ImporteRetISR = x.Sum(Function(s) Math.Round(s("ImporteRetISR").ToString().ToDecimal, 2)),' Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeRetISR, ImporteIEPS = x.Sum(Function(s) Math.Round(s("ImporteIEPS").ToString().ToDecimal, 2)), 'Math.Round(s("ImportePU").ToString().ToDecimal, 2)) * PorcentajeIEPS, PorcentajeIVA = PorcentajeIVA, @@ -26800,12 +26801,14 @@ Partial Class Ventas TmpDT.Columns.Add("TieneProntoPago", GetType(String)) TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal)) End If + Dim FechaFactura As DateTime = Now If AplicaNCMasiva OrElse AplicaNCUsado Then If ObjVentas.GetVenta(CveVentaNC, UsuarioActual.CveEmpresa) Then If ObjVentas.DtResultados.Rows.Count > 0 Then Total = ObjVentas.DtResultados()(0)("Total").ToString().ToDecimal SubTotal = ObjVentas.DtResultados()(0)("SubTotal").ToString().ToDecimal + FechaFactura = ObjVentas.DtResultados()(0)("Fecha").ToString().ToDateTime() End If End If Else @@ -26845,12 +26848,16 @@ Partial Class Ventas End If Dr("ImporteTotal") = importePuTemp.RoundSQL(2) - - - Dim TotalCalculableImpuestosIVA As Decimal = importePuTemp * (1 + Dr("PorcentajeIEPS").ToString().ToDecimal) - Dr("ImporteIEPS") = (importePuTemp * Dr("PorcentajeIEPS").ToString().ToDecimal()).RoundSQL(2) - Dr("ImporteIVA") = ((TotalCalculableImpuestosIVA) * Dr("PorcentajeIVA").ToString().ToDecimal) + + 'A PARTIR DEL 2020 SE CAMBIO EL CALCULO PARA EL IVA CONSIDERANDO EL IEPS + If FechaFactura.Year <= 2019 Then + Dr("ImporteIVA") = (importePuTemp * Dr("PorcentajeIVA").ToString().ToDecimal()).RoundSQL(2) + Else + Dim TotalCalculableImpuestosIVA As Decimal = importePuTemp * (1 + Dr("PorcentajeIEPS").ToString().ToDecimal) + Dr("ImporteIVA") = ((TotalCalculableImpuestosIVA) * Dr("PorcentajeIVA").ToString().ToDecimal) + End If + Dr("ImporteRetIVA") = (importePuTemp * Dr("PorcentajeRetIVA").ToString().ToDecimal()).RoundSQL(2) Dr("ImporteRetISR") = (importePuTemp * Dr("PorcentajeRetISR").ToString().ToDecimal()).RoundSQL(2) From 5f3c483f6d38c71b34c8e09647e98087e4df123a Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 18 Aug 2021 11:38:40 -0700 Subject: [PATCH 24/52] Seleccionar todos los estatus de REQ/OC al asignar --- Sistemas/UsuarioDetalle.aspx | 479 ++++++++++++++++++++++++-------- Sistemas/UsuarioDetalle.aspx.vb | 30 +- 2 files changed, 391 insertions(+), 118 deletions(-) diff --git a/Sistemas/UsuarioDetalle.aspx b/Sistemas/UsuarioDetalle.aspx index 182c8df96..74d23f2d8 100644 --- a/Sistemas/UsuarioDetalle.aspx +++ b/Sistemas/UsuarioDetalle.aspx @@ -112,20 +112,20 @@ -   +   - - vpn_lock + + vpn_lock - - lock + + lock - - email + + email - <%----%> + <%----%> @@ -162,27 +162,27 @@ - <%-- - Supervisa: - - - - - - - - - - - Autoriza: - - - - - - - - + <%-- + Supervisa: + + + + + + + + + + + Autoriza: + + + + + + + + --%> Empresa: @@ -212,8 +212,8 @@ - - lock + + lock @@ -369,7 +369,7 @@ -   +   @@ -455,7 +455,7 @@ -   +   @@ -501,6 +501,18 @@ + + + + + + +
    + + + +
    +
    @@ -522,6 +534,18 @@ + +
    + + + + +
    + + + +
    + @@ -543,6 +567,18 @@ + +
    + + + + +
    + + + +
    + @@ -564,6 +600,18 @@ + +
    + + + + +
    + + + +
    + @@ -585,6 +633,18 @@ + +
    + + + + +
    + + + +
    + @@ -606,6 +666,18 @@ + +
    + + + + +
    + + + +
    + @@ -627,6 +699,18 @@ + +
    + + + + +
    + + + +
    + @@ -648,6 +732,18 @@ + +
    + + + + +
    + + + +
    + @@ -669,6 +765,18 @@ + +
    + + + + +
    + + + +
    + @@ -690,6 +798,18 @@ + +
    + + + + +
    + + + +
    + @@ -723,6 +843,18 @@ + +
    + + + + +
    + + + +
    + @@ -744,6 +876,18 @@ + +
    + + + + +
    + + + +
    + @@ -765,6 +909,18 @@ + +
    + + + + +
    + + + +
    + @@ -786,6 +942,18 @@ + +
    + + + + +
    + + + +
    + @@ -807,6 +975,18 @@ + +
    + + + + +
    + + + +
    + @@ -828,6 +1008,18 @@ + +
    + + + + +
    + + + +
    + @@ -849,6 +1041,18 @@ + +
    + + + + +
    + + + +
    + @@ -870,6 +1074,18 @@ + +
    + + + + +
    + + + +
    + @@ -891,6 +1107,18 @@ + +
    + + + + +
    + + + +
    + @@ -912,6 +1140,18 @@ + +
    + + + + +
    + + + +
    + @@ -1626,7 +1866,7 @@
    - Empresa: + Empresa:
    @@ -2054,7 +2294,7 @@ -   +   @@ -2415,7 +2655,7 @@ diff --git a/Ventas/RepVentasUtilidad.aspx.vb b/Ventas/RepVentasUtilidad.aspx.vb index cfd0678b8..3368636b7 100644 --- a/Ventas/RepVentasUtilidad.aspx.vb +++ b/Ventas/RepVentasUtilidad.aspx.vb @@ -81,6 +81,10 @@ Partial Class Ventas_RepVentasUtilidad DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If + DdlMarcas.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) + DdlMarcas.DataBind() + DdlMarcas.Items.Insert(0, New ListItem("Todas", "-1")) + Dim CveSubProyecto = If(Request("CveSubProyecto") IsNot Nothing, Request("CveSubProyecto").ToString, "-1").ToString Dim CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor") <> "", Request("CveVendedor"), "-1").ToString Dim CveCliente = If(Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente") <> "", Request("CveCliente"), "-1").ToString @@ -90,6 +94,7 @@ Partial Class Ventas_RepVentasUtilidad Dim FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString Dim CveClasificacion = If(Request("CveClasificacion") IsNot Nothing AndAlso Request("CveClasificacion") <> "", Request("CveClasificacion"), "-1").ToString Dim CvePS = If(Request("CvePS") IsNot Nothing AndAlso Request("CvePS") <> "", Request("CvePS"), "-1").ToString + Dim CveMarca = If(Request("CveMarca") IsNot Nothing AndAlso Request("CveMarca") <> "", Request("CveMarca"), "-1").ToString DdlSubProyecto.SelectedValuesIfExistM(CveSubProyecto) DdlVendedor.SelectedValuesIfExistM(CveVendedor) @@ -105,6 +110,8 @@ Partial Class Ventas_RepVentasUtilidad DdlPS.SelectedText = "Todos" End If + DdlMarcas.SelectedValueExist(CveMarca) + txtFechaI.Text = FechaI txtFechaF.Text = FechaF @@ -144,7 +151,7 @@ Partial Class Ventas_RepVentasUtilidad Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString - If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then + If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero,) Then DtVentas = ObjVentas.DtResultados GvDatos.DataSource = ObjVentas.DtResultados GvDatos.DataBind() diff --git a/Ventas/RepVentasUtilidadPadre.aspx b/Ventas/RepVentasUtilidadPadre.aspx index 35a9fc4e5..63723e3ea 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx +++ b/Ventas/RepVentasUtilidadPadre.aspx @@ -90,6 +90,7 @@ +
    @@ -165,6 +166,12 @@
    +
    + Marca: +
    +
    + +
    @@ -207,7 +214,7 @@ - + diff --git a/Ventas/RepVentasUtilidadPadre.aspx.vb b/Ventas/RepVentasUtilidadPadre.aspx.vb index b4d764d2a..1efac4dcc 100644 --- a/Ventas/RepVentasUtilidadPadre.aspx.vb +++ b/Ventas/RepVentasUtilidadPadre.aspx.vb @@ -86,6 +86,10 @@ Partial Class Ventas_RepVentasUtilidadPadre DdlPS.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If + DdlMarcas.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa) + DdlMarcas.DataBind() + DdlMarcas.Items.Insert(0, New ListItem("Todas", "-1")) + LblNeto.Text = "0" LblPorNeto.Text = "0" End Sub @@ -110,7 +114,8 @@ Partial Class Ventas_RepVentasUtilidadPadre Dim ObjVentas As New ClsVentas If ObjVentas.GetReportePadreVentasUtilidad(If(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM), DdlClientesWS.SelectedValue.ToEntero, If(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM), txtFechaI.Text.ToDate, txtFechaF.Text.ToDate, - UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then + UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, + DdlMarcas.SelectedValue.ToEntero) Then GvDatos.DataSource = ObjVentas.DtResultados DtDatos = ObjVentas.DtResultados End If @@ -225,10 +230,10 @@ Partial Class Ventas_RepVentasUtilidadPadre e.Row.CssClass = "Totales" e.Row.Cells(0).Text = "Total" Dim Css As String = "Texto" - Dim Liga As String = String.Format("/Ventas/RepVentasUtilidad.aspx?FechaI={0}&FechaF={1}&CveSubProyecto={2}&CveCliente={3}&CveVendedor={4}&Gpo={5}&CveGpo={6}&CvePS={7}&CveClasificacion={8}", + Dim Liga As String = String.Format("/Ventas/RepVentasUtilidad.aspx?FechaI={0}&FechaF={1}&CveSubProyecto={2}&CveCliente={3}&CveVendedor={4}&Gpo={5}&CveGpo={6}&CvePS={7}&CveClasificacion={8}&CveMarca={9}", e.Row.DBCampo("FechaI"), e.Row.DBCampo("FechaF"), e.Row.DBCampo("CveSubProyecto"), e.Row.DBCampo("CveCliente"), e.Row.DBCampo("CveVendedor"), - e.Row.DBCampo("Grupo"), e.Row.DBCampo("GPO"), e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveClasificacion")) - e.Row.Cells(0).Text = "" & e.Row.Cells(0).Text & "" + e.Row.DBCampo("Grupo"), e.Row.DBCampo("GPO"), e.Row.DBCampo("CvePS"), e.Row.DBCampo("CveClasificacion"), e.Row.DBCampo("CveMarca")) + e.Row.Cells(0).Text = String.Format("{2}", Css, Liga, e.Row.Cells(0).Text) Else e.Row.Cells(9).BackColor = Drawing.Color.LightGray End If @@ -261,6 +266,7 @@ Partial Class Ventas_RepVentasUtilidadPadre If DdlClasificacion.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Clasificación: {0}", DdlClasificacion.SelectedItem.Text) If DdlClientesWS.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Cliente: {0}", DdlClientesWS.SelectedText) If DdlVendedor.GetSelectedText <> "" Then StrFiltro.AppendFormat(" Vendedor: {0}", DdlVendedor.GetSelectedText) + If DdlMarcas.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Marcas: {0}", DdlMarcas.SelectedItem.Text) Dim params As List(Of ReportParameter) = New List(Of ReportParameter)() Dim Imagen As System.IO.FileInfo = New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) From 054a1c93b690a61636b595f4c5d94d3f528cc136 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 22 Aug 2021 13:41:11 -0700 Subject: [PATCH 36/52] -- filtro y grupo por marca --- Ventas/RepVentasUtilidad.aspx.vb | 5 +++-- Ventas/RepVentasUtilidadDetalle.aspx | 6 ++++++ Ventas/RepVentasUtilidadDetalle.aspx.vb | 7 ++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Ventas/RepVentasUtilidad.aspx.vb b/Ventas/RepVentasUtilidad.aspx.vb index 3368636b7..966302f92 100644 --- a/Ventas/RepVentasUtilidad.aspx.vb +++ b/Ventas/RepVentasUtilidad.aspx.vb @@ -151,7 +151,7 @@ Partial Class Ventas_RepVentasUtilidad Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString - If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero,) Then + If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero) Then DtVentas = ObjVentas.DtResultados GvDatos.DataSource = ObjVentas.DtResultados GvDatos.DataBind() @@ -289,6 +289,7 @@ Partial Class Ventas_RepVentasUtilidad Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") + Dim Marca = If(DdlMarcas.SelectedValue = "-1", "", $" Marcas: {DdlMarcas.SelectedItem.Text}") ' Dim Grupo = DdlGrupo.SelectedItem.Text Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" @@ -301,7 +302,7 @@ Partial Class Ventas_RepVentasUtilidad Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString - If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then + If ObjVentas.GetReporteVentasUtilidad(Vendedores, DdlClientes.SelectedValue.ToEntero, Sucursales, FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero) Then Dim FechaInicio As String = txtFechaI.Text Dim FechaFin As String = txtFechaF.Text diff --git a/Ventas/RepVentasUtilidadDetalle.aspx b/Ventas/RepVentasUtilidadDetalle.aspx index cdaae3089..056168369 100644 --- a/Ventas/RepVentasUtilidadDetalle.aspx +++ b/Ventas/RepVentasUtilidadDetalle.aspx @@ -210,6 +210,12 @@
    +
    + Marca: +
    +
    + +
    diff --git a/Ventas/RepVentasUtilidadDetalle.aspx.vb b/Ventas/RepVentasUtilidadDetalle.aspx.vb index 0b72e1c81..e09ed1d94 100644 --- a/Ventas/RepVentasUtilidadDetalle.aspx.vb +++ b/Ventas/RepVentasUtilidadDetalle.aspx.vb @@ -174,7 +174,7 @@ Partial Class Ventas_RepVentasUtilidadDetalle Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString If ObjVentas.GetReporteVentasUtilidadDetalle(Vendedores, If(CveVenta = -1, Orden, CveVenta), DdlClientes.SelectedValue.ToEntero, Sucursales, - FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then + FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero) Then DtVentas = ObjVentas.DtResultados GvDatos.DataSource = ObjVentas.DtResultados GvDatos.DataBind() @@ -286,6 +286,7 @@ Partial Class Ventas_RepVentasUtilidadDetalle Dim Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") Dim PS = If(DdlPS.SelectedValue = "-1", "", $" P.S.: {DdlPS.SelectedText}") Dim Clasificacion = If(DdlClasificacion.SelectedValue = "-1", "", $" Clasificacion: {DdlClasificacion.SelectedItem.Text}") + Dim Marcas = If(DdlMarcas.SelectedValue = "-1", "", $" Marcas: {DdlMarcas.SelectedItem.Text}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" @@ -294,7 +295,7 @@ Partial Class Ventas_RepVentasUtilidadDetalle Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString If ObjVentas.GetReporteVentasUtilidadDetalle(Vendedores, CveVenta, DdlClientes.SelectedValue.ToEntero, Sucursales, - FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then + FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, ddlmarcas.selectedvalue.toentero) Then Dim FechaInicio As String = txtFechaI.Text Dim FechaFin As String = txtFechaF.Text @@ -356,7 +357,7 @@ Partial Class Ventas_RepVentasUtilidadDetalle Dim Sucursales As String = IIf(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM).ToString Dim Vendedores As String = IIf(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM).ToString If ObjVentas.GetReporteVentasUtilidadDetalle(Vendedores, CveVenta, DdlClientes.SelectedValue.ToEntero, Sucursales, - FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero) Then + FechaI, FechaF, UsuarioActual.CveEmpresa, DdlPS.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlMarcas.SelectedValue.ToEntero) Then Dim FechaInicio As String = txtFechaI.Text Dim FechaFin As String = txtFechaF.Text From c0456f0f9ebaf7264fdf379ea2f5862fc08be30d Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 22 Aug 2021 13:41:19 -0700 Subject: [PATCH 37/52] globaldtmarcas --- General/CatMarcas.aspx.vb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/General/CatMarcas.aspx.vb b/General/CatMarcas.aspx.vb index 8bdf09f8e..1042c6b7a 100644 --- a/General/CatMarcas.aspx.vb +++ b/General/CatMarcas.aspx.vb @@ -68,12 +68,14 @@ Partial Class General_CatMarcas RegistraScript("$('#DModalMarca').modal('hide')") Alert("La Marca se agregó correctamente.", TipoMensaje.MsgInformacion) CargaDatos() + GlobalDTGralMarcas(UsuarioActual.CveEmpresa) = Nothing End If ElseIf Modalidad = "U" Then If ObjPS.UpdateMarca(TxtMarca.Text, CveMarca, ChkEstatus.Checked) Then RegistraScript("$('#DModalMarca').modal('hide')") Alert("La Marca se actualizo correctamente.", TipoMensaje.MsgInformacion) CargaDatos() + GlobalDTGralMarcas(UsuarioActual.CveEmpresa) = Nothing End If End If ObjPS.Dispose() From 1e626a3c567b4e9649d46c0d941e61e0ca1d6e28 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 22 Aug 2021 13:41:53 -0700 Subject: [PATCH 38/52] =?UTF-8?q?cancelaci=C3=B3n=20de=20traspaso.=20agreg?= =?UTF-8?q?ar=20el=20movimiento=20transitorio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/TraspasoAlmacen.aspx.vb | 38 +++++++++++++++++++---------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 03c961d25..6ee6e3b93 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -1722,12 +1722,6 @@ Partial Class Inventarios_TraspasoAlmacen End If - - - - - - 'FUNCIONALIDAD PISTOLA DE CODIGOS If UsuarioActual.Empresa.Funcionalidad(132) = "1" And e.Row.DBCampo("CodigoBarras").Trim <> "" Then e.Row.FCTextBox("TxtCantidad").Enabled = False @@ -1748,6 +1742,7 @@ Partial Class Inventarios_TraspasoAlmacen Dim TextoError As String = "" Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate Dim CveMovimientoVirtualEntrada As Integer = 0 + Dim CveMovimientoSalidaTransitorio As Integer = 0 Dim FolioVirtualEntrada As Integer = 0 Dim ObjInventario As New ClsInventarios @@ -1762,6 +1757,13 @@ Partial Class Inventarios_TraspasoAlmacen ErrorMovInv = True End If + + 'AGREGAMOS LA SALIDA + CveMovimientoSalidaTransitorio = ObjInventario.AddMovimiento(CveAlmacenTransitorio, 8, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, + Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, + CveMovimientoRelacionado:=CveMovimientoEntrada, Modulo:="TA/G12") + + Dim CvePrePoliza As Integer = -1 Dim Concepto As String = TxtObservacionesRecepcion.Text If Concepto = "" Then Concepto = "Cancelación Traspaso" @@ -1797,11 +1799,21 @@ Partial Class Inventarios_TraspasoAlmacen Exit For End If - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, GvRow.DataKey("CveUM").ToEntero, CvePS, PrecioUnitario, GvRow.DataKey("CveAF").ToEntero, -1, Serie:=GvRow.DataKey("Serie").ToString, Lote:=GvRow.DataKey("Lote"), FechaCaducidad:=GvRow.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleSalida) Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Cantidad, GvRow.DataKey("CveUM").ToEntero, CvePS, PrecioUnitario, -1, -1, Serie:=GvRow.DataKey("Serie").ToString, Lote:=GvRow.DataKey("Lote"), FechaCaducidad:=GvRow.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleSalida) Then ErrorMovInv = True TextoError = "Ocurrió un error al guardar los movimientos de entrada" Exit For End If + 'MOV, Alm, Transito + If GvRow.DataKey("CveMovimientoDetalleTransitorio").ToString.ToEntero > 0 Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaTransitorio, Cantidad, GvRow.DataKey("CveUM").ToString.ToEntero, CvePS, PrecioUnitario, CveSeccionAlmacen:=-3, Serie:=GvRow.DataKey("Serie").ToString, Lote:=GvRow.DataKey("Lote").ToString, FechaCaducidad:=GvRow.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=GvRow.DataKey("CveMovimientoDetalleTransitorio").ToString.ToEntero) Then + ErrorMovInv = True + TextoError = "Ocurrió un error al guardar los movimientos de salida" + Exit For + End If + Else + CveMovimientoSalidaTransitorio = 0 + End If importe += Cantidad * PrecioUnitario End If End If @@ -1861,16 +1873,16 @@ Partial Class Inventarios_TraspasoAlmacen Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorioRecepcion.SelectedValue.ToEntero)).ToEntero If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, - CveMovimientoAlmacen:=CveMovimientoEntrada, ImporteMX:=ImporteDecimal) Then + CveMovimientoAlmacen:=CveMovimientoEntrada, ImporteMX:=ImporteDecimal, Contabilizable:=False) Then ErrorMovInv = True TextoError = "Ocurrió un error al cancelar el traspaso" End If - 'If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, - ' CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=ImporteDecimal) Then - ' ErrorMovInv = True - ' TextoError = "Ocurrió un erro al cancelar el traspaso" - 'End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteDecimal, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, + CveMovimientoAlmacen:=CveMovimientoSalidaTransitorio, ImporteMX:=ImporteDecimal, Contabilizable:=False) Then + ErrorMovInv = True + TextoError = "Ocurrió un erro al cancelar el traspaso" + End If End If End If From c723f3c0b6b61f91a498f18eaac1c7ca865805b4 Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 22 Aug 2021 13:42:07 -0700 Subject: [PATCH 39/52] que restringa los almacenes. para la E119 --- Inventarios/PopUpExistenciasAlmacen.aspx.vb | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Inventarios/PopUpExistenciasAlmacen.aspx.vb b/Inventarios/PopUpExistenciasAlmacen.aspx.vb index d00f0f716..01f56bb74 100644 --- a/Inventarios/PopUpExistenciasAlmacen.aspx.vb +++ b/Inventarios/PopUpExistenciasAlmacen.aspx.vb @@ -98,9 +98,15 @@ Partial Class Inventarios_Default Private Sub CargaDatos(CvePS As Integer, Tipo As Integer) If ValidarFiltrosSeleccionados() OrElse CvePS > 0 Then + Dim RestringirAlmacenes As Integer = -1 + If UsuarioActual.CveEmpresa = 119 Then + RestringirAlmacenes = 1 'restringue los almacenes:Consignación,Productos Financieros Asignados,,roductos Financieros,Consumo Interno,Activo Fijo,Merma,Consignación de Contrato,Devolucion proveedor, + End If + Dim ObjInventarios As New ClsInventarios() If ObjInventarios.GetExistenciasProducto(CvePS, -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), - ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, ExcluyeTransitorios:=1, TopSelect:=100) Then + ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero, + ExcluyeTransitorios:=1, RestringirAlmacenes:=RestringirAlmacenes, TopSelect:=100) Then Dim dr As Data.DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") If dr IsNot Nothing Then From dc9f40bd62567ef4d350281399cb5877ce28becb Mon Sep 17 00:00:00 2001 From: rrene Date: Sun, 22 Aug 2021 13:42:29 -0700 Subject: [PATCH 40/52] cambio de letra --- Inventarios/EntradasSalidas.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 9a71020a2..f63a300ea 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -3856,7 +3856,7 @@ Partial Class Inventarios_EntradasSalidas Dim Lote As String = If(TxtLoteSalida.Text = "", "", TxtLoteSalida.Text) Dim FechaCaducidad As Date = If(TxtCaducidadSalida.Text = "", MinFecha.ToShortDateString, TxtCaducidadSalida.Text).ToDate - If ObjInventario.GetExistenciasPS(DdlPSSalida.SelectedValue.ToEntero, CveUM, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero, PendientePorSurtir:=1, Lote:=lote, FechaCaducidad:=FechaCaducidad) >= TxtCantidadSalidaInv.Text.ToDouble Then + If ObjInventario.GetExistenciasPS(DdlPSSalida.SelectedValue.ToEntero, CveUM, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero, PendientePorSurtir:=1, Lote:=Lote, FechaCaducidad:=FechaCaducidad) >= TxtCantidadSalidaInv.Text.ToDouble Then If Not DdlPSSalida.SelectedValue.ToEntero > 0 Then RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") Alert("Es necesario especificar el producto.", TipoMensaje.MsgAdvertencia) From 50d93e6548221ab8cb6cfc19111ba0bf86152d25 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Mon, 23 Aug 2021 11:00:35 -0700 Subject: [PATCH 41/52] Logotipo emrpesa 72 Invitacion curso --- Empresas/72/Formatos/CursoInvitacion.docx | Bin 19006 -> 25300 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Empresas/72/Formatos/CursoInvitacion.docx b/Empresas/72/Formatos/CursoInvitacion.docx index 272b365c880297b1afaaff2d4c2c511ba531d7a7..7c26b33c07606271eeccf75d357f4ee1c09df7a8 100644 GIT binary patch delta 19994 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 NAXi|-YB2sm`41-mOIiQ` delta 13815 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 pq7nt4YhwPdEdLr5o9}ad{ax(*{&MTTIb?Bg Date: Mon, 23 Aug 2021 11:55:07 -0700 Subject: [PATCH 42/52] Agregar Alias, parametros, mensaje de error al retorno al insertar. --- App_Code/ClsProductosServicios.vb | 11 ++++++++--- Compras/Compras.aspx.vb | 4 ++-- Ventas/ProductosServicios.aspx.vb | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 93d62aea8..4af16b530 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -1342,15 +1342,15 @@ Public Class ClsProductosServicios Return Retorno End Function - Public Function AddPSAlias(PS As String, CvePS As Integer, Optional CveUsuarioModifico As Integer = -1, Optional Flexible As Boolean = False) As Boolean + Public Function AddPSAlias(PS As String, CvePS As Integer, Flexible As Boolean, CveUsuarioModifico As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_ProductosServiciosAliasAdd") With SqlAdapter.SelectCommand.Parameters .Add("@PSAlias", SqlDbType.VarChar).Value = If(PS.Length > 845, PS.Substring(0, 845), PS) .Add("@CvePS", SqlDbType.Int).Value = CvePS - .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico .Add("@Flexible", SqlDbType.Bit).Value = If(Flexible, 1, 0) + .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico End With Try @@ -1361,7 +1361,12 @@ Public Class ClsProductosServicios If Ex1.Message.Contains("Número: 2627;") Then OnError("El Nuevo Producto o Servicio no se guardo debido a que actualmente se encuentra registrado", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) Else - Me.OnError("Ocurrió un error al guardar el nuevo Producto o Servicio.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + If Ex1.Message.Contains("Número: 5555;") Then + Dim Str As String = Ex1.Message.Substring(14) 'toma el valor posterior + OnError("No se puede registrar un alias porque ya existe la siguiente:" + Str, Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Else + Me.OnError("Ocurrió un error al guardar el nuevo Producto o Servicio.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End If End If Catch ex As Exception OnError("Ocurrió un error al guardar el nuevo Producto o Servicio.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 106f36421..8f680c62e 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1618,7 +1618,7 @@ Partial Class Compras_Compras DdlTipoGastoAsignar.DataBind() UpParametros.Update() - If UsuarioActual.CveRol = 1 Then + If UsuarioActual.CveRol = 1 OrElse UsuarioActual.CveEmpresa = 119 Then ChkAliasFlexible.Visible = True End If @@ -18679,7 +18679,7 @@ Partial Class Compras_Compras End If Dim PS As New ClsProductosServicios - If PS.AddPSAlias(System.Web.HttpUtility.HtmlDecode(TxtPSAlias.Text.Trim), CvePS, UsuarioActual.CveUsuario, ChkAliasFlexible.Checked) Then + If PS.AddPSAlias(System.Web.HttpUtility.HtmlDecode(TxtPSAlias.Text.Trim), CvePS, ChkAliasFlexible.Checked, UsuarioActual.CveUsuario) Then GlobalDTProductosServiciosAlias(UsuarioActual.CveEmpresa) = PS.DtResultados TmpDT.Rows(HdnAliasInd.Value.ToEntero)("CvePS") = CvePS diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index b6aa92a44..db1b20474 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -1455,7 +1455,7 @@ Partial Class ProductosyServicios Dim ObjAliasAdd As New ClsProductosServicios Dim TieneError = False - If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, UsuarioActual.CveUsuario) Then + If ObjAliasAdd.AddPSAlias(TxtAlias.Text.ToString, CvePS, False, UsuarioActual.CveUsuario) Then CargarAlias() UPGVAlias.Update() Alert("Alias " + TxtAlias.Text + " agregado.", TipoMensaje.MsgInformacion) From 13b62b7bda007af3615f19fddf2ff79b1fce2263 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 23 Aug 2021 11:55:19 -0700 Subject: [PATCH 43/52] - columna de costo promedio. solo visible E153 --- Ventas/ActualizarPrecios.aspx | 7 ++++--- Ventas/ActualizarPrecios.aspx.vb | 5 ++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Ventas/ActualizarPrecios.aspx b/Ventas/ActualizarPrecios.aspx index c3a985ea4..d24a76714 100644 --- a/Ventas/ActualizarPrecios.aspx +++ b/Ventas/ActualizarPrecios.aspx @@ -154,7 +154,7 @@ " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> + CssClass="table table-striped table-advance table-hover Widthall ScrollAD" AutoGenerateColumns="False" data-sort="true" EmptyDataText="No se encontraron registros" > @@ -188,8 +188,9 @@ - + + @@ -238,7 +239,7 @@ Aplicar - diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb index eee8c3a09..f7565db1e 100644 --- a/Ventas/ActualizarPrecios.aspx.vb +++ b/Ventas/ActualizarPrecios.aspx.vb @@ -179,9 +179,12 @@ Partial Class Ventas_ActualizarPrecios If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores GVPrecios.Columns(2).Visible = True + End If + + If UsuarioActual.CveEmpresa = 153 Then 'Empresa servec + GVPrecios.Columns(11).Visible = True End If - dvDatos.Visible = True GVPrecios.DataBind() From bbb5c15de7684ac91643819dcb09658d672e111d Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:25:17 -0700 Subject: [PATCH 44/52] Correccion en carga de precios por excel --- Ventas/ActualizarPrecios.aspx.vb | 51 ++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/Ventas/ActualizarPrecios.aspx.vb b/Ventas/ActualizarPrecios.aspx.vb index eee8c3a09..9a97f8bf5 100644 --- a/Ventas/ActualizarPrecios.aspx.vb +++ b/Ventas/ActualizarPrecios.aspx.vb @@ -400,28 +400,37 @@ Partial Class Ventas_ActualizarPrecios Alert("Debe Seleccionar la lista de precios a cargar. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If + + 'LA PRIMERA COLUMNA SIEMRPE ES CODIGO If Not dt.Columns(0).ColumnName = "Código" Then Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub + End If + + Dim IndiceActualColExcel As Integer = 1 + Dim StrColPos As String() = {"primera", "segunda", "tecera", "cuarta"} + + 'SI ES EMPRESA DE ACUMULADORES SE AGREGA LA COLUMNA "Código CPK" + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + If Not dt.Columns(IndiceActualColExcel).ColumnName = "Código CPK" Then + Alert("El nombre de la segunda columna debe ser 'Precio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + IndiceActualColExcel += 1 + End If + + If Not dt.Columns(IndiceActualColExcel).ColumnName = "Producto / Servicio" Then + Alert($"El nombre de la {StrColPos(IndiceActualColExcel)} columna debe ser 'Producto / Servicio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + IndiceActualColExcel += 1 + + If Not dt.Columns(IndiceActualColExcel).ColumnName = "Precio" Then + Alert($"El nombre de la {StrColPos(IndiceActualColExcel)} columna debe ser 'Precio'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub End If - If Not dt.Columns(1).ColumnName = "Producto / Servicio" Then - Alert("El nombre de la segunda columna debe ser 'Producto / Servicio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'Empresa Acumuladores - If Not dt.Columns(3).ColumnName = "Precio" Then - Alert("El nombre de la cuarta columna debe ser 'Precio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - Else - If Not dt.Columns(2).ColumnName = "Precio" Then - Alert("El nombre de la tercera columna debe ser 'Precio'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - End If - - dt.TableName = "Datos" @@ -483,11 +492,7 @@ Partial Class Ventas_ActualizarPrecios ObjPS.Dispose() End Try - 'If RowNoEncontrados.Length > 0 Then - ' Alert("Los siguientes Productos o Servicios no se encontraron en la Base de Datos.<\BR>" & RowNoEncontrados, TipoMensaje.MsgAdvertencia) - 'Else - ' Alert("Se Cargaron " & NumRow & " Productos o Servicios correctamente.") - 'End If + End If End Sub From 886a7fc9438b5ffc46fbe420f6356e9b3332c84d Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:31:40 -0700 Subject: [PATCH 45/52] Cambios BDH, estatus de folios de garantia, numero de cantidad --- Acumuladores/CatFoliosGarantia.aspx | 20 ++++++++++++++------ Acumuladores/CatFoliosGarantia.aspx.vb | 17 +++++++++-------- App_Code/ClsAcumuladores.vb | 4 ++-- Empresas/140/Formatos/Cotizacion.rdlc | 1 + Empresas/140/Formatos/Factura.rdlc | 1 + Empresas/140/Formatos/Remision.rdlc | 1 + 6 files changed, 28 insertions(+), 16 deletions(-) diff --git a/Acumuladores/CatFoliosGarantia.aspx b/Acumuladores/CatFoliosGarantia.aspx index dac5e3565..8974fb697 100644 --- a/Acumuladores/CatFoliosGarantia.aspx +++ b/Acumuladores/CatFoliosGarantia.aspx @@ -93,6 +93,12 @@ + + + + +
    +
    @@ -118,7 +124,7 @@ --%>
    -
    - - - - + + + + + + +
    diff --git a/Acumuladores/CatFoliosGarantia.aspx.vb b/Acumuladores/CatFoliosGarantia.aspx.vb index 6d76cfee3..c367fba25 100644 --- a/Acumuladores/CatFoliosGarantia.aspx.vb +++ b/Acumuladores/CatFoliosGarantia.aspx.vb @@ -47,7 +47,8 @@ Partial Class Acumuladores_CatFoliosGarantia #Region "Folios Garantía" Private Sub CargaSubProyectos() - CargarCentrosDeCosto(Nothing, DdlSubProyectos, Nothing, lblSubProyecto) + CargarCentrosDeCosto(Nothing, DdlSubProyectos, Nothing, lblSubProyecto) + CargarCentrosDeCosto(Nothing, DdlSubProyectoFiltro, Nothing, lblSubProyecto) GvFolioGarantia.Columns(3).HeaderText = lblSubProyecto.Text End Sub @@ -55,7 +56,7 @@ Partial Class Acumuladores_CatFoliosGarantia Dim objAcum As New ClsAcumuladores - If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=EstatusValor, TipoFolio:=tipoFolioValor, Area:=-1) Then + If objAcum.FoliosGarantiaGet(-1, UsuarioActual.Empresa.CveEmpresa, Estatus:=EstatusValor, TipoFolio:=tipoFolioValor, Area:=-1, CveSubProyecto:=DdlSubProyectoFiltro.SelectedValue.ToEntero()) Then GvFolioGarantia.DataSource = objAcum.DtResultados Else GvFolioGarantia.DataSource = Nothing @@ -92,7 +93,7 @@ Partial Class Acumuladores_CatFoliosGarantia BtnAgregarFolioGarantiaModal.Text = "Agregar" TxtFolioGarantia.Text = "" - ChkEstatus.Checked = True + DdlEstatusEditar.SelectedValueExist("1") DdlSubProyectos.SelectedValueExist("-1") Actualizar = False @@ -114,10 +115,10 @@ Partial Class Acumuladores_CatFoliosGarantia If Not Actualizar Then - If ObjAcum.FoliosGarantiaAdd(TxtFolioGarantia.Text, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlSubProyectos.SelectedValue.ToEntero, DdlTipoFolioModal.SelectedValue, TxtLimite.Text.ToEntero, DdlArea.SelectedValue.ToEntero) Then + If ObjAcum.FoliosGarantiaAdd(TxtFolioGarantia.Text, DdlEstatusEditar.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlSubProyectos.SelectedValue.ToEntero, DdlTipoFolioModal.SelectedValue, TxtLimite.Text.ToEntero, DdlArea.SelectedValue.ToEntero) Then TxtFolioGarantia.Text = "" - ChkEstatus.Checked = True + DdlEstatusEditar.SelectedValueExist("1") 'TxtCargo.Text = "" 'TxtBonificacion.Text = "" 'TxtCompra.Text = "" @@ -133,11 +134,11 @@ Partial Class Acumuladores_CatFoliosGarantia Alert("Ocurrió un error al guardar el Folio de Garantía", TipoMensaje.MsgError) End If Else - If ObjAcum.FoliosGarantiaUpdate(CveFolioGarantia, TxtFolioGarantia.Text, If(ChkEstatus.Checked = True, 1, 0), UsuarioActual.CveUsuario, DdlSubProyectos.SelectedValue.ToEntero, + If ObjAcum.FoliosGarantiaUpdate(CveFolioGarantia, TxtFolioGarantia.Text, DdlEstatusEditar.SelectedValue.ToEntero, UsuarioActual.CveUsuario, DdlSubProyectos.SelectedValue.ToEntero, DdlTipoFolioModal.SelectedValue, TxtLimite.Text.ToEntero) Then TxtFolioGarantia.Text = "" - ChkEstatus.Checked = True + DdlEstatusEditar.SelectedValueExist("1") 'TxtCargo.Text = "" 'TxtBonificacion.Text = "" 'TxtCompra.Text = "" @@ -191,7 +192,7 @@ Partial Class Acumuladores_CatFoliosGarantia CveFolioGarantia = GvRow.DataKey("CveFolioGarantia") TxtFolioGarantia.Text = GvRow.DataKey("FolioGarantia") - ChkEstatus.Checked = If(GvRow.DataKey("Estatus") = "Activo", True, False) + DdlEstatusEditar.SelectedValueExist(GvRow.DataKey("CveEstatus")) TxtLimite.Text = GvRow.DataKey("Limite") DdlTipoFolioModal.SelectedValue = GvRow.DataKey("tipoFolio") 'TxtCargo.Text = GvRow.DataKey("Cargo").ToDecimal.ToString("###,###,###.00") diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb index 365c14035..7f01aa20f 100644 --- a/App_Code/ClsAcumuladores.vb +++ b/App_Code/ClsAcumuladores.vb @@ -521,7 +521,7 @@ Public Class ClsAcumuladores With SqlAdapter.SelectCommand.Parameters .Add("@FolioGarantia", SqlDbType.VarChar).Value = FolioGarantia - .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@Estatus", SqlDbType.Int).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto @@ -553,7 +553,7 @@ Public Class ClsAcumuladores .Add("@CveFolioGarantia", SqlDbType.Int).Value = CveFolioGarantia .Add("@FolioGarantia", SqlDbType.VarChar).Value = FolioGarantia - .Add("@Estatus", SqlDbType.Bit).Value = Estatus + .Add("@Estatus", SqlDbType.Int).Value = Estatus .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@TipoFolio", SqlDbType.VarChar).Value = TipoFolio diff --git a/Empresas/140/Formatos/Cotizacion.rdlc b/Empresas/140/Formatos/Cotizacion.rdlc index 8daf9c681..d94b32714 100644 --- a/Empresas/140/Formatos/Cotizacion.rdlc +++ b/Empresas/140/Formatos/Cotizacion.rdlc @@ -944,6 +944,7 @@ Myriad Pro 9pt Normal + n2 diff --git a/Empresas/140/Formatos/Factura.rdlc b/Empresas/140/Formatos/Factura.rdlc index c2e5f7e8d..d8d7cf6c7 100644 --- a/Empresas/140/Formatos/Factura.rdlc +++ b/Empresas/140/Formatos/Factura.rdlc @@ -1963,6 +1963,7 @@ Myriad Pro 7.5pt Normal + n2 diff --git a/Empresas/140/Formatos/Remision.rdlc b/Empresas/140/Formatos/Remision.rdlc index e68ef4c45..3001212dd 100644 --- a/Empresas/140/Formatos/Remision.rdlc +++ b/Empresas/140/Formatos/Remision.rdlc @@ -771,6 +771,7 @@ Myriad Pro 9.64pt Normal + n2 From f76f4e7daf6b2176d98e4f4dfdccada738988dc8 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:32:37 -0700 Subject: [PATCH 46/52] BDH. Direccion en PDF de Ajuste --- Compras/PopUpVerFactura.aspx.vb | 198 +++++++++++++++++++++++++++++++- 1 file changed, 196 insertions(+), 2 deletions(-) diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb index 60ea263b0..8ebb9c854 100644 --- a/Compras/PopUpVerFactura.aspx.vb +++ b/Compras/PopUpVerFactura.aspx.vb @@ -915,12 +915,206 @@ Partial Class PopUpVerFactura HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) HttpContext.Current.Response.TransmitFile(Path) 'HttpContext.Current.Response.Flush() - HttpContext.Current.Response.End() + HttpContext.Current.Response.End() + Else + End If Archivo = Nothing End If End Sub + 'Protected Sub LnkGenerarPDF_Click(sender As Object, e As EventArgs) + ' GeneraPDFFactura() + 'End Sub + 'Private Sub GeneraPDFFactura() + ' Try + ' Dim objFactura = CreaObjetosVenta() + ' PdfFactura(objFactura) + ' objFactura.Dispose() + ' Catch ex As Exception + ' OnError("Ocurrió un error al generar el PDF", ex) + ' End Try + 'End Sub + + 'Private Function CreaObjetosTraslado() As Modelos.Factura + ' Dim ObjFactura = New Modelos.Factura + ' ObjFactura.Version = "3.3" + ' ObjFactura.CveUsuario = UsuarioActual.CveUsuario + ' ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa + ' ObjFactura.TipoCambio = 0 + ' ObjFactura.ConvertirPesos = False + ' ObjFactura.TipoCambio = 0 + ' ObjFactura.CveMoneda = 1 + ' ObjFactura.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjFactura.CveMoneda} ") + ' ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", "CveMoneda = 1") + ' ObjFactura.MonedaAbreviatura = GlobalDTMonedas.FiltroPrimeroValor("Abreviatura", $"CveMoneda = {ObjFactura.CveMoneda} ") + ' ObjFactura.TipoDocto = "Tra" + ' ObjFactura.RefDocto = "" + ' ObjFactura.Folio = Folio.ToEntero + ' ObjFactura.Serie = "Tra" + ' ObjFactura.CveMesa = -1 + ' ObjFactura.Fecha = Now + ' ObjFactura.CvePrePoliza = -1 + ' ObjFactura.FechaPago = Now + ' ObjFactura.MotivoDescuento = "" + ' ObjFactura.Observaciones = "" + ' ObjFactura.FechaEjecucion = Now + ' ObjFactura.UsuarioCreo = UsuarioActual.Usuario + ' ObjFactura.CveCondicionEntrega = -1 + ' ObjFactura.CondicionEntrega = "" + ' ObjFactura.NumeroCuenta = "" + ' ObjFactura.CondicionesPago = 0 + ' ObjFactura.FormaPago = 0 + ' ObjFactura.PedidoContrato = "" + ' ObjFactura.OrdenCompra = "" + ' ObjFactura.NumeroContrato = "" + ' ObjFactura.NumeroDescripcionContrato = "" + ' ObjFactura.DescripcionContrato = "" + ' ObjFactura.CveCorte = -1 + ' ObjFactura.TipoDocumento = "Traspaso" + ' ObjFactura.Alfa1 = "" + ' ObjFactura.Alfa2 = "" + ' ObjFactura.Alfa3 = "" + ' ObjFactura.Descuento = 0 + ' ObjFactura.Amortizacion = 0 + ' ObjFactura.CveContrato = 0 + ' ObjFactura.CveVendedor = 0 + ' ObjFactura.FechaVencimiento = Now + ' ObjFactura.TipoEstatus = 0 + ' ObjFactura.Det_OrdenCompra = "" + ' ObjFactura.Inv_CveEstatusEntrega = 0 + ' ObjFactura.FormaPago33 = "" + ' ObjFactura.MetodoPago33 = "" + ' ObjFactura.UsoCFDI = "" + ' ObjFactura.CveClienteSucursal = 0 + ' Dim CveSubProyecto As Integer = -1 + ' If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows.Count > 0 Then + ' CveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows(0)("CveSubProyecto").ToString.ToEntero + ' End If + ' ObjFactura.CveSubProyecto = CveSubProyecto + ' ObjFactura.CveSubProyectoCobranza = CveSubProyecto + ' ObjFactura.CveSubProyectoEjecucion = CveSubProyecto + + ' ObjFactura.SubTotal = 0 + ' ObjFactura.Descuento = 0 + ' ObjFactura.Amortizacion = 0 + ' ObjFactura.IVA = 0 + ' ObjFactura.RetIVA = 0 + ' ObjFactura.RetISR = 0 + ' ObjFactura.IEPS = 0 + ' ObjFactura.Total = 0 + ' ObjFactura.RFCReceptor = "XAXX010101000" + + ' Dim dt As DataTable = DtMovimientos.Copy + + ' dt.Columns.Add("TotalImporte", Type.GetType("System.Double")) + ' dt.Columns.Add("Descuento", Type.GetType("System.Double")) + ' dt.Columns.Add("UM") + ' dt.Columns.Add("SATClaveUM") + ' dt.Columns.Add("SATClaveProdServ") + ' dt.Columns.Add("Noidentificacion") + ' dt.Columns.Add("CuentaPredial") + ' dt.Columns.Add("Obs") + ' dt.Columns.Add("ImporteIVA", Type.GetType("System.Double")) + ' dt.Columns.Add("PorcentajeIVA", Type.GetType("System.Double")) + + + ' For Each Row As DataRow In dt.Rows + ' Row("TotalImporte") = Row("Total") + ' Row("Descuento") = 0 + ' Row("UM") = Row("UnidadMedida") + ' Row("SATClaveUM") = Row("SATClaveUnidadMedida") + ' Row("SATClaveProdServ") = Row("SATClavePS") + ' Row("Noidentificacion") = Row("Codigo") + ' Row("CuentaPredial") = "" + ' Row("Obs") = Row("Observaciones") + ' Row("ImporteIVA") = 0 + ' Row("PorcentajeIVA") = 0 + ' Next + + ' 'DETALLES + ' ObjFactura.DtDetalle = dt + + ' 'SUBPROYECTO + ' ObjFactura.SetSubProyectoMatriz(Me) + ' ObjFactura.SetSubProyecto(Me) + + ' ObjFactura.Inv_CveMovimiento = Me.CveMovimiento + + ' ObjFactura.Timbre = PreParaTimbreTraslado(ObjFactura) + + ' Return ObjFactura + 'End Function + 'Private Function PreParaTimbreTraslado(Obj As Modelos.Factura) As CFDITimbre + ' Dim Timbre As New CFDITimbre + ' Timbre.Comprobante.TipoComprobante = "T" + ' Timbre.Comprobante.Folio = Obj.Folio.ToString + ' Timbre.Comprobante.Serie = Obj.Serie + ' Timbre.Comprobante.Fecha = Obj.Fecha + ' Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 + ' Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33 + ' Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT + ' Timbre.Comprobante.Subtotal = Obj.SubTotal + ' Timbre.Comprobante.Descuentos = Obj.Descuento + ' Timbre.Comprobante.Moneda = Obj.MonedaSAT + ' Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString) + ' Timbre.Comprobante.Total = Obj.Total + + ' Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP + ' Timbre.Comprobante.Confirmacion = "" + + ' Timbre.Receptor.RFC = "XAXX010101000" + ' Timbre.Receptor.Nombre = UsuarioActual.Empresa.Empresa + ' Timbre.Receptor.UsoCFDI = "P01" + + ' Dim totSubTotal As Decimal = Obj.SubTotal + ' Dim totIVA As Decimal = Obj.IVA + ' Dim totRetIVA As Decimal = Obj.RetIVA + ' Dim totRetISR As Decimal = Obj.RetISR + ' Dim i As Integer = 1 + + ' 'DETALLES + ' Dim tPS As String = "" + + ' For Each drr As DataRow In Obj.DtDetalle.Rows + ' If drr("PS").ToString.Length = 1 Then + ' tPS = drr("Obs").ToString + ' Else + ' If drr("PS").ToString.Length = 0 Then + ' tPS = "" + ' Else + ' tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) + ' End If + ' End If + + ' 'CONDICIONANTE, ESPECIAL + ' If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" 'LES COMENTAN QUE NO DEBE IR LA ETIQUETA DE LA UNIDAD EN EL PRODUCTO + + ' Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal, + ' .Descripcion = tPS, + ' .ValorUnitario = drr("PU").ToString.ToDecimal, + ' .Importe = drr("TotalImporte").ToString.ToDecimal, + ' .Descuento = drr("Descuento").ToString.ToDecimal, + ' .Unidad = drr("UM").ToString, + ' .ClaveUnidad = drr("SATClaveUM").ToString, + ' .ClaveProdServ = drr("SATClaveProdServ").ToString, + ' .Noidentificacion = drr("Noidentificacion").ToString, + ' .CuentaPredial = drr("CuentaPredial").ToString} + ' 'VERIFICA SUMA SUBTOTALES + ' If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES + ' concepto.Importe = totSubTotalW + ' End If + ' totSubTotal = totSubTotal - concepto.Importe + + ' 'SIEMPRE ESTAMOS AGREGANDO EL IVA + ' 'concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal}) + + ' Timbre.Conceptos.Add(concepto) + ' i += 1 + ' Next + ' Return Timbre + 'End Function + #End Region #Region " OP = 'Vta,Fact' - IMPRIME PDF VENTAS" @@ -4841,7 +5035,7 @@ Partial Class PopUpVerFactura Nombre = DatosClienteSeleccionado("Nombre").ToString Ciudad = DatosClienteSeleccionado("Ciudad").ToString Estado = DatosClienteSeleccionado("Estado").ToString - Direccion = DatosClienteSeleccionado("Direccion").ToString + Direccion = String.Format("{0} {1}{2} COL. {3}", DatosClienteSeleccionado("Direccion"), DatosClienteSeleccionado("NoInt"), DatosClienteSeleccionado("NoExt"), DatosClienteSeleccionado("Colonia")) Telefono = DatosClienteSeleccionado("Telefono").ToString End If From a11a96c04d871c4952b534b21b4f0700eabcde7e Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:33:02 -0700 Subject: [PATCH 47/52] GPS. Ultimo Evento --- GPS/Trayectos.aspx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/GPS/Trayectos.aspx b/GPS/Trayectos.aspx index 5f12e5d13..b7e70ad7d 100644 --- a/GPS/Trayectos.aspx +++ b/GPS/Trayectos.aspx @@ -161,13 +161,14 @@ - - + + + From 27d56bfb2d6569e82569d6580925463384da8ec4 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:33:29 -0700 Subject: [PATCH 48/52] Correcion de generacion PDF Traspaso --- Inventarios/TraspasoAlmacen.aspx.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 03c961d25..8dc5c0256 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -2633,6 +2633,7 @@ Partial Class Inventarios_TraspasoAlmacen ObjFactura.RetISR = 0 ObjFactura.IEPS = 0 ObjFactura.Total = 0 + ObjFactura.RFCReceptor = "XAXX010101000" 'DETALLES ObjFactura.DtDetalle = DtMovimientos From de3e9a098a1819fe1940a361b216bfa45027a853 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:34:07 -0700 Subject: [PATCH 49/52] Generacion de PDF Traslado a movimiento existente --- Inventarios/EntradasSalidas.aspx | 4 + Inventarios/EntradasSalidas.aspx.vb | 199 ++++++++++++++++++++++++++++ 2 files changed, 203 insertions(+) diff --git a/Inventarios/EntradasSalidas.aspx b/Inventarios/EntradasSalidas.aspx index f71da7eea..5cd3ac542 100644 --- a/Inventarios/EntradasSalidas.aspx +++ b/Inventarios/EntradasSalidas.aspx @@ -104,6 +104,10 @@ +
  • + +
  • diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 9a71020a2..634427249 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -780,6 +780,11 @@ Partial Class Inventarios_EntradasSalidas HplDescargaPdf.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=DesPdfTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", CveMovimiento, "PDF", $"Tra-{Folio}", "Tra"))) HplCartaPorte.Visible = True HplCartaPorte.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CARPO&CVEMOV={0}", CveMovimiento))) + + If UsuarioActual.CveRol = 1 Then + LnkGenerarPDF.Visible = True + End If + End If @@ -5092,4 +5097,198 @@ Partial Class Inventarios_EntradasSalidas End If End Sub + + + Protected Sub LnkGenerarPDF_Click(sender As Object, e As EventArgs) + GeneraPDFFactura() + End Sub + Private Sub GeneraPDFFactura() + Try + Dim objFactura = CreaObjetosVenta() + PdfFactura(objFactura) + objFactura.Dispose() + Catch ex As Exception + OnError("Ocurrió un error al generar el PDF", ex) + End Try + End Sub + + Private Function CreaObjetosVenta() As Modelos.Factura + Dim ObjFactura = New Modelos.Factura + ObjFactura.Version = "3.3" + ObjFactura.CveUsuario = UsuarioActual.CveUsuario + ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa + ObjFactura.TipoCambio = 0 + ObjFactura.ConvertirPesos = False + ObjFactura.TipoCambio = 0 + ObjFactura.CveMoneda = 1 + ObjFactura.Moneda = GlobalDTMonedas.FiltroPrimeroValor("Moneda", $"CveMoneda = {ObjFactura.CveMoneda} ") + ObjFactura.MonedaSAT = GlobalDTMonedas.FiltroPrimeroValor("AbreviaturaSAT", "CveMoneda = 1") + ObjFactura.MonedaAbreviatura = GlobalDTMonedas.FiltroPrimeroValor("Abreviatura", $"CveMoneda = {ObjFactura.CveMoneda} ") + ObjFactura.TipoDocto = "Tra" + ObjFactura.RefDocto = "" + ObjFactura.Folio = Folio.ToEntero + ObjFactura.Serie = "Tra" + ObjFactura.CveMesa = -1 + ObjFactura.Fecha = Now + ObjFactura.CvePrePoliza = -1 + ObjFactura.FechaPago = Now + ObjFactura.MotivoDescuento = "" + ObjFactura.Observaciones = "" + ObjFactura.FechaEjecucion = Now + ObjFactura.UsuarioCreo = UsuarioActual.Usuario + ObjFactura.CveCondicionEntrega = -1 + ObjFactura.CondicionEntrega = "" + ObjFactura.NumeroCuenta = "" + ObjFactura.CondicionesPago = 0 + ObjFactura.FormaPago = 0 + ObjFactura.PedidoContrato = "" + ObjFactura.OrdenCompra = "" + ObjFactura.NumeroContrato = "" + ObjFactura.NumeroDescripcionContrato = "" + ObjFactura.DescripcionContrato = "" + ObjFactura.CveCorte = -1 + ObjFactura.TipoDocumento = "Traspaso" + ObjFactura.Alfa1 = "" + ObjFactura.Alfa2 = "" + ObjFactura.Alfa3 = "" + ObjFactura.Descuento = 0 + ObjFactura.Amortizacion = 0 + ObjFactura.CveContrato = 0 + ObjFactura.CveVendedor = 0 + ObjFactura.FechaVencimiento = Now + ObjFactura.TipoEstatus = 0 + ObjFactura.Det_OrdenCompra = "" + ObjFactura.Inv_CveEstatusEntrega = 0 + ObjFactura.FormaPago33 = "" + ObjFactura.MetodoPago33 = "" + ObjFactura.UsoCFDI = "" + ObjFactura.CveClienteSucursal = 0 + Dim CveSubProyecto As Integer = -1 + If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows.Count > 0 Then + CveSubProyecto = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros($"CveAlmacen = {DdlAlmacen.SelectedValue}").Rows(0)("CveSubProyecto").ToString.ToEntero + End If + ObjFactura.CveSubProyecto = CveSubProyecto + ObjFactura.CveSubProyectoCobranza = CveSubProyecto + ObjFactura.CveSubProyectoEjecucion = CveSubProyecto + + ObjFactura.SubTotal = 0 + ObjFactura.Descuento = 0 + ObjFactura.Amortizacion = 0 + ObjFactura.IVA = 0 + ObjFactura.RetIVA = 0 + ObjFactura.RetISR = 0 + ObjFactura.IEPS = 0 + ObjFactura.Total = 0 + ObjFactura.RFCReceptor = "XAXX010101000" + + Dim dt As DataTable = DtMovimientos.Copy + + dt.Columns.Add("TotalImporte", Type.GetType("System.Double")) + dt.Columns.Add("Descuento", Type.GetType("System.Double")) + dt.Columns.Add("UM") + dt.Columns.Add("SATClaveUM") + dt.Columns.Add("SATClaveProdServ") + dt.Columns.Add("Noidentificacion") + dt.Columns.Add("CuentaPredial") + dt.Columns.Add("Obs") + dt.Columns.Add("ImporteIVA", Type.GetType("System.Double")) + dt.Columns.Add("PorcentajeIVA", Type.GetType("System.Double")) + + + For Each Row As DataRow In dt.Rows + Row("TotalImporte") = Row("Total") + Row("Descuento") = 0 + Row("UM") = Row("UnidadMedida") + Row("SATClaveUM") = Row("SATClaveUnidadMedida") + Row("SATClaveProdServ") = Row("SATClavePS") + Row("Noidentificacion") = Row("Codigo") + Row("CuentaPredial") = "" + Row("Obs") = Row("Observaciones") + Row("ImporteIVA") = 0 + Row("PorcentajeIVA") = 0 + Next + + 'DETALLES + ObjFactura.DtDetalle = dt + + 'SUBPROYECTO + ObjFactura.SetSubProyectoMatriz(Me) + ObjFactura.SetSubProyecto(Me) + + ObjFactura.Inv_CveMovimiento = Me.CveMovimiento + + ObjFactura.Timbre = PreParaTimbre(ObjFactura) + + Return ObjFactura + End Function + Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre + Dim Timbre As New CFDITimbre + Timbre.Comprobante.TipoComprobante = "T" + Timbre.Comprobante.Folio = Obj.Folio.ToString + Timbre.Comprobante.Serie = Obj.Serie + Timbre.Comprobante.Fecha = Obj.Fecha + Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 + Timbre.Comprobante.CondicionesdePago = Obj.FormaPago33 + Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT + Timbre.Comprobante.Subtotal = Obj.SubTotal + Timbre.Comprobante.Descuentos = Obj.Descuento + Timbre.Comprobante.Moneda = Obj.MonedaSAT + Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString) + Timbre.Comprobante.Total = Obj.Total + + Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP + Timbre.Comprobante.Confirmacion = "" + + Timbre.Receptor.RFC = "XAXX010101000" + Timbre.Receptor.Nombre = UsuarioActual.Empresa.Empresa + Timbre.Receptor.UsoCFDI = "P01" + + Dim totSubTotal As Decimal = Obj.SubTotal + Dim totIVA As Decimal = Obj.IVA + Dim totRetIVA As Decimal = Obj.RetIVA + Dim totRetISR As Decimal = Obj.RetISR + Dim i As Integer = 1 + + 'DETALLES + Dim tPS As String = "" + + For Each drr As DataRow In Obj.DtDetalle.Rows + If drr("PS").ToString.Length = 1 Then + tPS = drr("Obs").ToString + Else + If drr("PS").ToString.Length = 0 Then + tPS = "" + Else + tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) + End If + End If + + 'CONDICIONANTE, ESPECIAL + If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" 'LES COMENTAN QUE NO DEBE IR LA ETIQUETA DE LA UNIDAD EN EL PRODUCTO + + Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal, + .Descripcion = tPS, + .ValorUnitario = drr("PU").ToString.ToDecimal, + .Importe = drr("TotalImporte").ToString.ToDecimal, + .Descuento = drr("Descuento").ToString.ToDecimal, + .Unidad = drr("UM").ToString, + .ClaveUnidad = drr("SATClaveUM").ToString, + .ClaveProdServ = drr("SATClaveProdServ").ToString, + .Noidentificacion = drr("Noidentificacion").ToString, + .CuentaPredial = drr("CuentaPredial").ToString} + 'VERIFICA SUMA SUBTOTALES + If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES + concepto.Importe = totSubTotal + End If + totSubTotal = totSubTotal - concepto.Importe + + 'SIEMPRE ESTAMOS AGREGANDO EL IVA + 'concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal}) + + Timbre.Conceptos.Add(concepto) + i += 1 + Next + Return Timbre + End Function + End Class From 0ceafda5acf2ec583431aebb622a716d62dfb113 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:35:07 -0700 Subject: [PATCH 50/52] Descargar manual de SIG --- Site.master | 1 + Site.master.vb | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/Site.master b/Site.master index 6c399c64c..24da7ea86 100644 --- a/Site.master +++ b/Site.master @@ -274,6 +274,7 @@
  • Mi Perfil
  • +
  • Cambiar Contraseña
  • Configuración Empresa
  • Cerrar Sesión
  • diff --git a/Site.master.vb b/Site.master.vb index a6f63e6b8..cca4daef4 100644 --- a/Site.master.vb +++ b/Site.master.vb @@ -77,6 +77,7 @@ Partial Class Site If UsuarioActual.Empresa.CvePlataforma = 3 Then lnkFavicon.Href = "/Imagenes/favicongps.ico" tTitulo.Text = "SIGNALS GPS" + LnkDescargarManual.Visible = False Else lnkFavicon.Href = "/Imagenes/favicon.ico" End If @@ -571,6 +572,34 @@ Partial Class Site UpNotificacionesFoliosSAT.Update() RegistraScript(String.Format("$('#{0}').modal();", pnlNotificacionSAT.ClientID)) End Sub + Protected Sub LnkDescargarManual_Click(sender As Object, e As EventArgs) + Dim ruta As String = $"{ModExtensiones.DirectorioEmpresas}Grales\ManualSIG.pdf" + + Dim Archivo As New System.IO.FileInfo(ruta) + + Try + If Archivo IsNot Nothing Then + If Archivo.Exists Then + + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = "application/octet-stream" + HttpContext.Current.Response.AppendHeader("Content-disposition", String.Format("attachment; filename={0}", "Manual Plataforma SIG 2021.pdf")) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(ruta) + Response.Flush() ' send it to the client to download + HttpContext.Current.Response.SuppressContent = True + HttpContext.Current.ApplicationInstance.CompleteRequest() + Response.End() + + Else + Alert("El archivo no existe", TipoMensaje.MsgAdvertencia) + End If + + End If + Catch ex As Exception + End Try + End Sub End Class Public Class TipoCambioActual Public Fecha As Date From 1a835e29a67e0c709a9aa0164de4b715c7d3e765 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:35:59 -0700 Subject: [PATCH 51/52] BDH. al hacer un ajuste el distribuidor es requerido --- Ventas/PV.aspx.vb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 96dfaf3ed..39a95f414 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -4889,6 +4889,12 @@ Partial Class PV End If If ChkAjuste.Checked Then + + If DdlDistribuidor.SelectedValue.ToEntero() <= 0 Then + Alert("Debe seleccionar un distribuidor", TipoMensaje.MsgAdvertencia) + Return False + End If + If TxtFechaAjuste.Text.ToDate > Now Then Alert("La fecha de compra no puede ser mayor a la de hoy.", TipoMensaje.MsgAdvertencia) Return False @@ -7590,6 +7596,11 @@ Partial Class PV 'params.Add(New ReportParameter("Comprobante", TxtComprobante.Text)) 'params.Add(New ReportParameter("CodigoTD", TxtCodigoTD.Text)) + If DdlDistribuidor.SelectedValue.ToEntero() <= 0 Then + Alert("Debe seleccionar un distribuidor", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Dim URLDescarga As New StringBuilder URLDescarga.Append($"OP=AJUSTE&CVEPSAJUSTE={DdlPSAjuste.SelectedValue.ToEntero}&CVECLIENTE={CveCliente}&CVECLIENTEDISTRIBUIDOR={DdlDistribuidor.SelectedValue.ToEntero()}&CONSEC={TxtConsecutivoAjuste.Text.Trim}") From 0e03f786e734f35def60d9691b7a3fd2691c47b4 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 23 Aug 2021 12:39:43 -0700 Subject: [PATCH 52/52] Correcion en aplicacion masiva de NC --- Ventas/Ventas.aspx | 78 ++++++++++++++++++++++++---- Ventas/Ventas.aspx.vb | 116 ++++++++++++++++++++++++++++-------------- 2 files changed, 144 insertions(+), 50 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index d6a5cec27..e23bef826 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -6437,6 +6437,9 @@ DataKeyNames="CveVenta,CveMetodoPago33,CveFormaPago33" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None"> + + + @@ -7654,6 +7657,12 @@