diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 6cc217de6..85c08caee 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -10077,12 +10077,96 @@ Partial Class Ventas Exit For End If End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 251, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteMN251, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then - ErrorPrepoliza = True - Exit For + + ' Traslado de impuestos cuando es amortizacion de NC + If EsNCAmortizacion Then + '' aqui no se registra el pago como NC, se deja para el registro de la aplicaion del anticipo + '' esto para trasladar los impuestos. + If DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero = 2 AndAlso ObjFactura.TipoDocto.Contiene("Egs") Then + + For Each row2 As GridViewRow In GVAnticipos.Rows + If row2.DataKey("CveConceptoContable").ToString().ToEntero = 3 Then + If row2.FCCheckBox("Chk" & row2.RowIndex).Checked Then + CveIEAnticipo = row2.DataKey("CveIE").ToString.ToEntero + importeMovimiento = row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal '- ((row2.FCTextBox("TxtAnticipo" & row2.RowIndex).Text.ToDecimal / row2.DataKey("TotalAnticipo").ToDecimal) * row2.DataKey("IVAAnticipo").ToDecimal) + If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}" + + IdCtaContable = IdCtaContAnticipos + CveCuenta = CveCuentaAnticipos + CveSubProyectoContabilizar = CveSubProyectoVenta + + If importeMovimiento <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, False, importeMovimiento, Referencia, 11, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=row2.DataKey("CveVenta").ToEntero, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=importeMovimiento * tipoCambio, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + Else + ViewState("SeGuardoPrePoliza") = True + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, importeMovimiento, Referencia, 2, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=importeMovimiento, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, CveIE:=CveIEAnticipo, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then + ErrorPrepoliza = True + Exit For + End If + 'se hace acreditamiento de impuestos + 'IVA X TRASLADAR + Dim PorcentajeImpuestoPago As Decimal = TmpDT.MAX("PorcentajeIVA").ToDecimal + '' si se esta aplicando NC por amortizaion, se trasladan impuestos + If EsNCAmortizacion Then + Dim IngresoIVA As Decimal = TxtIVA.Text.ToDecimal + Dim IngresoIEPS As Decimal = TxtIEPS.Text.ToDecimal + Dim IngresoTotal As Decimal = TxtTotal.Text.ToDecimal + + If IngresoIVA > 0 Then + + IdCtaIVAXTrasladar = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar) + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 13, NombreCliente, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString) + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, (importeMovimiento * IngresoIVA) / IngresoTotal, Referencia, 13, Concepto, Fecha, IdCtaIVAXTrasladar, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIVA) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuestoPago) Then + ErrorPrepoliza = True + Exit For + End If + 'IVA PAGADO + IdCtaIVATrasladado = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado) + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 61, NombreCliente, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString) + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, (importeMovimiento * IngresoIVA) / IngresoTotal, Referencia, 61, Concepto, Fecha, IdCtaIVATrasladado, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIVA) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuestoPago) Then + ErrorPrepoliza = True + Exit For + End If + End If + + + If IngresoIEPS > 0 Then + 'IEPS X TRASLADAR + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 38, NombreCliente, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString) + If IngresoIEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, (importeMovimiento * IngresoIEPS) / IngresoTotal, Referencia, 38, Concepto, Fecha, UsuarioActual.Empresa.IdCuentaIEPSxTrasladar, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIEPS) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + Exit For + End If + + 'IEPS PAGADO + Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 39, NombreCliente, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString) + If IngresoIEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, (importeMovimiento * IngresoIEPS) / IngresoTotal, Referencia, 39, Concepto, Fecha, UsuarioActual.Empresa.IdCuentaIEPSTrasladado, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=CveCliente, CveIE:=CveIEAnticipo, ImporteMX:=((importeMovimiento * IngresoIEPS) / IngresoTotal) * tipoCambio * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then + ErrorPrepoliza = True + Exit For + End If + End If + End If + + End If + End If + + End If + End If + Next + + End If + Else + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 251, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteMN251, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then + ErrorPrepoliza = True + Exit For + End If End If + + 'considero fluctuación. @@ -10218,6 +10302,7 @@ Partial Class Ventas End If End If End If + importeMovimiento = 0 Case 136 'Otros Conceptos Dinamicos For Each row2 As GridViewRow In GVOtrosConceptos.Rows If row2.FCTextBox("TxtCantidadConcepto").Text.ToDecimal > 0 Then @@ -10294,6 +10379,7 @@ Partial Class Ventas Exit For Else ViewState("SeGuardoPrePoliza") = True + End If End If Next @@ -10305,8 +10391,8 @@ Partial Class Ventas ' cuando es amortización de nota de crédito, y es la nc ' cuando es amortización por descuento, y es el ingreso ' cuando es amortización en cero - If DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero = 2 AndAlso ObjFactura.TipoDocto.Contiene("Egs") OrElse - DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero = 1 AndAlso ObjFactura.TipoDocto.Contiene("Ing") OrElse + 'DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero = 2 AndAlso ObjFactura.TipoDocto.Contiene("Egs") OrElse + If DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero = 1 AndAlso ObjFactura.TipoDocto.Contiene("Ing") OrElse DdlTipoAmortizacionAnticipo.SelectedValue.ToEntero = 3 Then For Each row2 As GridViewRow In GVAnticipos.Rows @@ -10326,6 +10412,7 @@ Partial Class Ventas Exit For Else ViewState("SeGuardoPrePoliza") = True + End If End If @@ -10776,7 +10863,7 @@ Partial Class Ventas End If End If Case 13 'Iva por Trasladar - If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then + If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") And ObjFactura.IVA > 0 Then importeMovimiento = ObjFactura.IVA * ValorMultiplicador importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2) FechaMovimiento = ObjFactura.FechaPago @@ -11082,7 +11169,7 @@ Partial Class Ventas CveConceptoAlmacen = 18 End If - Dim CveAlmacen = ddlAlmacen.SelectedValue.ToEnteroca + Dim CveAlmacen = ddlAlmacen.SelectedValue.ToEntero Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, CveConceptoAlmacen, factura.CveMoneda, factura.Fecha, -1, factura.CveUsuario, factura.CveEmpresa, -1, factura.CveVenta, -1, -1, Modulo:="Vta/E1") If CveMovimientoInventario <= 0 Then