From 8faee1bbfdc9d9adb882a840400bf08349ec943f Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 1 Oct 2024 09:01:34 -0700 Subject: [PATCH 1/5] -- mejora para registro de facturas con 2 IVAs diferentes --- App_Code/ClsPaginas.vb | 36 ++++++++++++++++++++++++++-- Bancos/ProveedoresAbonar.aspx | 2 +- Bancos/ProveedoresAbonar.aspx.vb | 2 ++ Compras/Compras.aspx.vb | 41 ++++++++++---------------------- 4 files changed, 50 insertions(+), 31 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 580051849..578f763ff 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -8893,11 +8893,39 @@ Public Class ClsPaginas If Pago.AplicaAcreditable Then 'si tiene iva y su proporcion If Not ErrorMovtos AndAlso CompraActual.IVA <> 0 Then - ImporteMovimiento = (PorcentajePago * CompraActual.IVA).RoundSQL + Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaIVA + + '' condición para hacer registro del pago del % al 08, si la factura tiene de ambos IVAs + If CompraActual.PorcentajeIVA = 0.16 AndAlso (CompraActual.IVADeducible08 > 0 OrElse CompraActual.IVANoDeducible08 > 0) Then + ImporteMovimiento = (PorcentajePago * (CompraActual.IVADeducible08 + CompraActual.IVANoDeducible08)).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + 'IVA por acreditar + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=0.08D, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=TCValuacionPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If Not ErrorMovtos AndAlso CompraActual.IVADeducible08 > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IVADeducible08).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento.RoundSQL * TCValuacionPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=0.08D, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=TCValuacionPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + If Not ErrorMovtos AndAlso CompraActual.IVANoDeducible08 > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IVANoDeducible08).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim tConceptoIVA As Integer = If(CompraActual.CompraNoDeducible = 1, 280, 380) '280. iva no deducible en su totalidad + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, tConceptoIVA, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=0.08D, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=TCValuacionPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + CompraActual.IVADeducible -= CompraActual.IVADeducible08 + CompraActual.IVANoDeducible -= CompraActual.IVANoDeducible08 + End If + + ImporteMovimiento = (PorcentajePago * (CompraActual.IVADeducible + CompraActual.IVANoDeducible)).RoundSQL ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaIVA + 'IVA por acreditar If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=TCValuacionPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + 'IVA ACreditable If Not ErrorMovtos AndAlso CompraActual.IVADeducible > 0 Then ImporteMovimiento = (PorcentajePago * CompraActual.IVADeducible).RoundSQL ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL @@ -8912,6 +8940,8 @@ Public Class ClsPaginas Dim tConceptoIVA As Integer = If(CompraActual.CompraNoDeducible = 1, 280, 380) '280. iva no deducible en su totalidad If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, tConceptoIVA, CompraActual.SerieFolio, Concepto, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=TCValuacionPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True End If + + End If 'si tiene RET IVA y su proporcion If Not ErrorMovtos AndAlso CompraActual.RetIVA > 0 Then @@ -9104,6 +9134,8 @@ Public Class ClsPaginas Public Property IVA As Decimal Public Property IVADeducible As Decimal Public Property IVANoDeducible As Decimal = 0 + Public Property IVADeducible08 As Decimal + Public Property IVANoDeducible08 As Decimal = 0 Public Property IEPS As Decimal Public Property RetIVA As Decimal Public Property RetISR As Decimal diff --git a/Bancos/ProveedoresAbonar.aspx b/Bancos/ProveedoresAbonar.aspx index f431d8275..65340f9a0 100644 --- a/Bancos/ProveedoresAbonar.aspx +++ b/Bancos/ProveedoresAbonar.aspx @@ -364,7 +364,7 @@ <%-- 0 --%> diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 784cf9acf..1227b7197 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -792,6 +792,8 @@ Partial Class Bancos_ProveedoresAbonar CompraActual.IVA = gvr.DataKey("IVA").ToDecimal CompraActual.IVADeducible = gvr.DataKey("IVADeducible").ToDecimal CompraActual.IVANoDeducible = gvr.DataKey("IVANoDeducible").ToDecimal + CompraActual.IVADeducible08 = gvr.DataKey("IVADeducible08").ToDecimal + CompraActual.IVANoDeducible08 = gvr.DataKey("IVANoDeducible08").ToDecimal CompraActual.CompraNoDeducible = gvr.DataKey("NoDeducible").ToEntero CompraActual.IEPS = gvr.DataKey("IEPS").ToDecimal CompraActual.RetIVA = gvr.DataKey("RetIVA").ToDecimal diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 81eb592ba..8f621996d 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6246,6 +6246,19 @@ Partial Class Compras_Compras Case 14 'IVA X Acreditar importeMovimiento = CompraActual.IVA + Dim tMinPorcentajeIVA As Decimal = TmpDT.MIN("IVAPorcentaje").ToDecimal + + 'SI LA FACTURA TRAE 2 TIPOS DE IVA (8,16) + If PorcentajeIVA <> tMinPorcentajeIVA AndAlso tMinPorcentajeIVA > 0 Then + Dim tImporte As Decimal = TmpDT.SUM("IVA", "IVAPorcentaje = " & tMinPorcentajeIVA) + tImporte = (tImporte * tipoCambioActual * Multiplicador).RoundSQL + If tImporte <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, tImporte, tImporte, 14, Concepto, Concepto, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, PorcentajeImpuesto:=tMinPorcentajeIVA, CveSubProyecto:=CveSubProyectoInsertar, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + importeMovimiento -= tImporte + End If importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" PorcentajeImpuesto = PorcentajeIVA @@ -6335,34 +6348,6 @@ Partial Class Compras_Compras End If End If - 'Case 64 'Ganancia - - ' 'CveSubProyectoInsertar = CveSubProyecto - ' If CveSubProyectoInsertar <= 0 Then - ' ErrorPrepoliza = True - ' Alert("Concepto ganancia cambiaria sin sub proyecto", TipoMensaje.MsgAdvertencia) - ' End If - - ' If TCPago > 0 AndAlso TCPago <> 1 AndAlso TxtFechaPago.Text <> TxtFecha.Text Then - - ' If TipoCambioCompra > TCPago Then - ' ConceptoContable = 64 - ' TipoMovimiento = True - ' Else - ' ConceptoContable = 65 - ' TipoMovimiento = False - ' End If - ' If TCPago <> TipoCambioCompra Then - ' importeMovimiento = Math.Abs(TCPago - TipoCambioCompra) * importePagoProv - ' importeMovimiento -= Math.Abs(TCPago - TipoCambioCompra) * importeIVAAcreditable - ' importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetIVAAcreditable - ' importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetISRAcreditable - ' importeMN = importeMovimiento - ' End If - ' Else - ' importeMovimiento = 0 - ' End If - Case 6 'Compra Dim AgregaMercanciaInventario As Boolean = UsuarioActual.Empresa.UsaInventarios From 9c7886119be9566ccde48ed29a50b337266b1d2b Mon Sep 17 00:00:00 2001 From: rrene Date: Tue, 1 Oct 2024 09:02:23 -0700 Subject: [PATCH 2/5] -- mostrar ps sino tiene existencia --- Inventarios/EntradasSalidas.aspx.vb | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 269552acb..520133019 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -1603,9 +1603,8 @@ Partial Class Inventarios_EntradasSalidas If RowPS Is Nothing Then Exit Sub Dim CveMetodoInventario As Integer = RowPS("Inv_CveMetodoInventario").ToString().ToEntero() - Dim FechaCaducidadVal As Date = If(RowPS("AplicaCaducidad").ToString = "True", FechaCaducidad, MinFecha) - + PS = RowPS("CodigoPS").ToString If RowPS("AplicaSerie").ToString = "True" And (String.IsNullOrEmpty(Serie.Trim()) OrElse Serie = "-1") Then 'SI NO ES USADO O GARANTIA O SALIDA APOYO LOGISTICO @@ -1631,8 +1630,6 @@ Partial Class Inventarios_EntradasSalidas Serie = "" End If End If - - 'salida If Valido AndAlso DdlConcepto.SelectedValue.Contiene({"3", "5", "7", "8", "11", "12", "13", "15", "16", "17", "20", "21", "30", "31"}) Then ' salida de almacen @@ -1640,11 +1637,11 @@ Partial Class Inventarios_EntradasSalidas ' LbAgregar.ToolTip = Existencia.ToString If Existencia - Cantidad - DtMovimientos.SUM("Cantidad", $"CvePS = {CvePS} AND CveUM = {CveUM} {If(Serie <> "", $" AND Serie = '{Serie}'", "")}") < 0 Then If Existencia <= 0 Then - Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia) + Alert("No hay existencia del producto: " & PS, TipoMensaje.MsgAdvertencia) RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") Valido = False Else - Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgAdvertencia) + Alert(String.Format("Solo hay en existencia: {0} - {1}", Existencia, PS), TipoMensaje.MsgAdvertencia) RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") If Not UsuarioActual.TienePermisoProceso(114) Then Cantidad = Existencia @@ -1655,13 +1652,11 @@ Partial Class Inventarios_EntradasSalidas End If If IndexEspecidico >= 0 Then - Dim CveClasificacion As Integer 'Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS") If RowPS IsNot Nothing Then CveClasificacion = RowPS("CveClasificacion").ToString.ToEntero If Valido Then - DtMovimientos.Rows(IndexEspecidico)("Cantidad") = Cantidad DtMovimientos.Rows(IndexEspecidico)("CveUM") = CveUM DtMovimientos.Rows(IndexEspecidico)("UnidadMedida") = UM @@ -5134,7 +5129,6 @@ Partial Class Inventarios_EntradasSalidas Dim CvePS As Integer = 0 Dim CveUM As Integer = 0 Dim DataTemp As DataTable - NumRow = NumRow + 1 Dim CveSeccionAlmacen As Integer = -1 From b2af8c23c128c0c4454fcbbb277730a524386f28 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 2 Oct 2024 08:32:45 -0700 Subject: [PATCH 3/5] - --- Ventas/Promociones.aspx.vb | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/Ventas/Promociones.aspx.vb b/Ventas/Promociones.aspx.vb index e615c3279..05c21d7f5 100644 --- a/Ventas/Promociones.aspx.vb +++ b/Ventas/Promociones.aspx.vb @@ -347,11 +347,6 @@ Partial Class Ventas_Promociones '380 AplicaDomingo '381 IncluyeImpuestos - - - - - End Sub Private Sub CargaDTUltimoCosto() @@ -530,7 +525,7 @@ Partial Class Ventas_Promociones If UsuarioActual.Empresa.Funcionalidad(382) = "1" Then Dim tuc As Decimal = LblUltimoCosto.Text.ToDecimal Dim tpu As Decimal = TxtPromocionConcepto.Text.ToDecimal - If (tpu - tuc) / tuc < UsuarioActual.Empresa.Funcionalidad(129).ToDecimal / 100 Then + If tuc <= 0 OrElse (tpu - tuc) / tuc < UsuarioActual.Empresa.Funcionalidad(129).ToDecimal / 100 Then Alert("El producto está debajo de la utilidad permitida, la promoción requerirá autorización.", TipoMensaje.MsgAdvertencia.ToastAdventencia) End If End If From 3cf3748c881597a3bd3d642efedc82b81cad8f08 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 2 Oct 2024 08:32:56 -0700 Subject: [PATCH 4/5] -- activar cargar imagenes --- Ventas/ProductosServicios.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index d9849191d..034d1b9b0 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -997,7 +997,7 @@ Partial Class ProductosyServicios hplImagen.Attributes.Add("href", String.Format("/ashx/SIGWeb.ashx?Metodo=GetImg&r={0}", Extensiones.Encripta(Me.Imagen))) End If - If UsuarioActual.CveRol = 1 Then DivImagen.Visible = True + DivImagen.Visible = True upGaleria.Update() RegistraScript("clickgaleria();", "CG") From 2a1270f2a91c0f75a8ec1b38c9ca0ce70ca45126 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 2 Oct 2024 08:40:35 -0700 Subject: [PATCH 5/5] Promociones si no tiene ultimo costo bloquea --- Compras/Compras.aspx.vb | 13 +++++++++++++ Ventas/Promociones.aspx.vb | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 8f621996d..170fc058f 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -8693,6 +8693,10 @@ Partial Class Compras_Compras Next + 'If Not validaNumeroReembolso() Then + ' Exit Sub + 'End If + Dim ObjCompra As New ClsCompras Dim ObjProveedores As New ClsCompProveedores(ObjCompra.IniciaTransacSQL()) Dim ObjInventario As New ClsInventarios(ObjCompra.IniciaTransacSQL) @@ -9285,6 +9289,15 @@ Partial Class Compras_Compras End Sub + + Private Function validaNumeroReembolso() As Boolean + + If NumeroReembolsoOriginal <> TxtNumeroReembolso.Text Then + + End If + + End Function + Private Sub MandaCorreoActualizacionDetalle() diff --git a/Ventas/Promociones.aspx.vb b/Ventas/Promociones.aspx.vb index e615c3279..533adcf8c 100644 --- a/Ventas/Promociones.aspx.vb +++ b/Ventas/Promociones.aspx.vb @@ -712,7 +712,8 @@ Partial Class Ventas_Promociones End If End If - + Else + BloqueadoPromocionPorcentaje = True End If Next