- complementos de pago 4.0

This commit is contained in:
2022-06-20 18:46:09 -07:00
parent dbadc2d80f
commit e78dbe9d63
2 changed files with 231 additions and 113 deletions

View File

@@ -13,7 +13,8 @@ Public Class CFDITimbre
Public Property RetencionesLocales As List(Of CFDIRetencionesLocales)
Public Property TrasladosLocales As List(Of CFDITrasladosLocales)
Public Property Nomina As CFDINomina
Public Property ComplementoPagos As CFDIComplementoPagos
Public Property ComplementoPagos As CFDIComplementoPago
Public Property ComplementoPagos20 As CFDIComplementoPagos20
Public Property Complementos As CFDIComplementos
Public Property Timbrado As Boolean
Public Property IStimbreFiniquito As Boolean
@@ -115,7 +116,8 @@ Public Class CFDITimbre
Receptor = New CFDIReceptor
RetencionesLocales = New List(Of CFDIRetencionesLocales)
TrasladosLocales = New List(Of CFDITrasladosLocales)
ComplementoPagos = New CFDIComplementoPagos
ComplementoPagos = New CFDIComplementoPago
ComplementoPagos20 = New CFDIComplementoPagos20
Complementos = New CFDIComplementos
End Sub
@@ -437,7 +439,111 @@ End Class
<Serializable>
Public Class CFDIComplementoPagos
Public Class CFDIComplementoPagos20
Public Property TotalTrasladosBaseExento As Decimal = 0
Public Property TotalRetencionesIVA As Decimal = 0
Public Property TotalRetencionesISR As Decimal = 0
Public Property ComplementoPagos As List(Of CFDIComplementoPago)
Public ReadOnly Property MontoTotalPagos As Decimal
Get
Return (From c In ComplementoPagos Select c.Monto * c.TipoCambioP).Sum()
End Get
End Property
Public ReadOnly Property TotalTrasladosBaseIVA0 As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.0 Select c.BaseMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Public ReadOnly Property TotalTrasladosImpuestoIVA0 As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.0 Select c.ImporteMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Public ReadOnly Property TotalTrasladosBaseIVA8 As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Public ReadOnly Property TotalTrasladosImpuestoIVA8 As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Public ReadOnly Property TotalTrasladosBaseIVA16 As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Public ReadOnly Property TotalTrasladosImpuestoIVA16 As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Public ReadOnly Property TotalRetencionesIEPS As Decimal
Get
Dim Ret As Decimal = 0
For Each cfd As CFDIComplementoPago In ComplementoPagos
Ret = Ret + ((From c In cfd.Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum() * cfd.TipoCambioP)
Next
Return Ret.RoundSQL()
End Get
End Property
Sub New()
ComplementoPagos = New List(Of CFDIComplementoPago)
End Sub
'Public ReadOnly Property Totales As CFDIComplementoPagosTotales
' Get
' Dim tRetorno As New CFDIComplementoPagosTotales
' tRetorno.MontoTotalPagos = (From c In DocumentosRelacionados Select c.ImpPagadoMN).Sum()
' tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.BaseMN).Sum()
' tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum()
' tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum()
' tRetorno.TotalTrasladosImpuestoIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Importe).Sum()
' tRetorno.TotalTrasladosImpuestoIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum()
' tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum()
' tRetorno.TotalRetencionesIEPS = (From c In Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum()
' Return tRetorno
' End Get
'End Property
End Class
<Serializable>
Public Class CFDIComplementoPago
Public Property FechaPago As Date
Public Property FormaDePagoP As String = ""
Public Property MonedaP As String = ""
@@ -455,24 +561,24 @@ Public Class CFDIComplementoPagos
Public Property SelloPago As String = ""
Public Property DocumentosRelacionados As List(Of CFDIComplementoPagosDocsRelacionados)
Public Property Impuestos As List(Of CFDIConceptosImpuestos)
Public ReadOnly Property Totales As CFDIComplementoPagosTotales
Get
Dim tRetorno As New CFDIComplementoPagosTotales
tRetorno.MontoTotalPagos = (From c In DocumentosRelacionados Select c.ImpPagadoMN).Sum()
'Public ReadOnly Property Totales As CFDIComplementoPagosTotales
' Get
' Dim tRetorno As New CFDIComplementoPagosTotales
' tRetorno.MontoTotalPagos = (From c In DocumentosRelacionados Select c.ImpPagadoMN).Sum()
tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.BaseMN).Sum()
tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum()
tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum()
' tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.BaseMN).Sum()
' tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.BaseMN).Sum()
' tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.BaseMN).Sum()
tRetorno.TotalTrasladosImpuestoIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Importe).Sum()
tRetorno.TotalTrasladosImpuestoIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum()
tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum()
' tRetorno.TotalTrasladosImpuestoIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Importe).Sum()
' tRetorno.TotalTrasladosImpuestoIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.ImporteMN).Sum()
' tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.ImporteMN).Sum()
tRetorno.TotalRetencionesIEPS = (From c In Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum()
' tRetorno.TotalRetencionesIEPS = (From c In Retenciones Where c.Impuesto = "003" Select c.ImporteMN).Sum()
Return tRetorno
End Get
End Property
' Return tRetorno
' End Get
'End Property
Public ReadOnly Property TotalImpuestosRetenidos As Decimal
Get

View File

@@ -1097,19 +1097,23 @@ Public Class Timbrado
'como registra un peso por cada fatura que se cancele, se tiene que multiplicar por el numero de facturas, para que se pueda emitir el timbre
If dttpagos IsNot Nothing AndAlso dttpagos.Rows.Count > 0 Then ImporteCancelacion = ImporteCancelacion * dttpagos.Rows.Count
Timbre.ComplementoPagos.CtaOrdenante = CuentaPago
Timbre.ComplementoPagos.CtaBeneficiario = CuentaBeneficiario
Timbre.ComplementoPagos.FechaPago = FechaPago
Timbre.ComplementoPagos.FormaDePagoP = FormaPago
Timbre.ComplementoPagos.MonedaP = MonedaPago
Timbre.ComplementoPagos.Monto = Monto.RoundSQL
Timbre.ComplementoPagos.TipoCambioP = TipoCambioP
Dim docPago As New CFDIComplementoPago
docPago.CtaOrdenante = CuentaPago
docPago.CtaBeneficiario = CuentaBeneficiario
docPago.FechaPago = FechaPago
docPago.FormaDePagoP = FormaPago
docPago.MonedaP = MonedaPago
docPago.Monto = Monto.RoundSQL
docPago.TipoCambioP = TipoCambioP
Dim VentaFolioFiscal, VentaSerie, VentaFolio, VentaAbreviaturaSAT, VentaMetodoPago, ObjetoImpuesto As String
Dim VentaImportePago, VentaImportePagoMN, VentaImporteSaldoInsoluto, VentaImporteSaldoAnterior, VentaTipoCambio, VentaTipoCambioMN, PorcentajeIVA, PorcentajeIEPS As Decimal
Dim VentaImportePago, VentaImportePagoMN, VentaImporteSaldoInsoluto, VentaImporteSaldoAnterior, VentaTipoCambio, PorcentajeIVA, PorcentajeIEPS, Equivalencia As Decimal
Dim VentaNumParcialidad As Integer
If dttpagos IsNot Nothing AndAlso dttpagos.Rows.Count > 0 Then
For Each dr As Data.DataRow In dttpagos.Rows
@@ -1131,11 +1135,14 @@ Public Class Timbrado
'' si la moneda es igual, se omite el tipo de cambio de la venta
If MonedaPago = VentaAbreviaturaSAT Then
VentaTipoCambio = 1
VentaTipoCambioMN = 1
Equivalencia = 1
'condiciones especiales para el pago en pesos, facturas en moneda extranjera
ElseIf MonedaPago = "MXN" AndAlso VentaAbreviaturaSAT <> "MXN" Then
VentaTipoCambioMN = VentaTipoCambio
VentaTipoCambio = (1 / VentaTipoCambio).RoundSQL(6)
VentaTipoCambio = VentaTipoCambio.RoundSQL(6)
Equivalencia = (1 / VentaTipoCambio).RoundSQL(6)
ElseIf MonedaPago = "USD" AndAlso VentaAbreviaturaSAT <> "USD" Then
VentaTipoCambio = VentaTipoCambio.RoundSQL(6)
Equivalencia = VentaTipoCambio
End If
' For Each drr As Data.DataRow In DtFacturasPagadas.Rows
@@ -1145,11 +1152,11 @@ Public Class Timbrado
.MonedaDR = VentaAbreviaturaSAT,
.MetodoDePagoDR = VentaMetodoPago,
.ImpPagado = VentaImportePago,
.ImpPagadoMN = (VentaImportePago / VentaTipoCambio).RoundSQL,
.ImpPagadoMN = (VentaImportePago * TipoCambioP).RoundSQL,
.ImpSaldoInsoluto = VentaImporteSaldoInsoluto,
.ImpSaldoAnt = VentaImporteSaldoAnterior,
.TipoCambioDR = VentaTipoCambio,
.EquivalenciaDR = VentaTipoCambio,
.EquivalenciaDR = Equivalencia,
.NumParcialidad = VentaNumParcialidad,
.ObjetoImpuesto = ObjetoImpuesto} 'If(drr("MetodoPago").ToString = "PUE", 0, drr("NumParcialidad").ToString.ToEntero)}
@@ -1160,17 +1167,18 @@ Public Class Timbrado
.TasaOCuota = drp("PorcentajeImpuesto").ToString().ToDecimal,
.Impuesto = drp("TipoImpuesto").ToString,
.Importe = drp("Importe").ToString().ToDecimal.RoundSQL,
.BaseMN = (drp("Base").ToString.ToDecimal / VentaTipoCambio).RoundSQL(6),
.ImporteMN = (drp("Importe").ToString.ToDecimal * VentaTipoCambio).RoundSQL(6)
.BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(2),
.ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(2)
}
)
Next
Timbre.ComplementoPagos.DocumentosRelacionados.Add(doc)
docPago.DocumentosRelacionados.Add(doc)
Next
Timbre.ComplementoPagos20.ComplementoPagos.Add(docPago)
End If
'If drr("IVA").ToString.ToDouble > 0 Then
@@ -4113,24 +4121,24 @@ Public Class Timbrado
Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales()
'Totales Generales
Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos.Totales.MontoTotalPagos.RoundSQL
Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos20.MontoTotalPagos.RoundSQL
Totales.TotalTrasladosBaseIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA16.RoundSQL
Totales.TotalTrasladosBaseIVA16 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA16.RoundSQL
Totales.TotalTrasladosBaseIVA16Specified = Totales.TotalTrasladosBaseIVA16 > 0
Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA16.RoundSQL
Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA16.RoundSQL
Totales.TotalTrasladosImpuestoIVA16Specified = Totales.TotalTrasladosImpuestoIVA16 > 0
Totales.TotalTrasladosBaseIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8.RoundSQL
Totales.TotalTrasladosBaseIVA8 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA8.RoundSQL
Totales.TotalTrasladosBaseIVA8Specified = Totales.TotalTrasladosBaseIVA8 > 0
Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA8.RoundSQL
Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA8.RoundSQL
Totales.TotalTrasladosImpuestoIVA8Specified = Totales.TotalTrasladosImpuestoIVA8 > 0
Totales.TotalTrasladosBaseIVA0 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA0.RoundSQL
Totales.TotalTrasladosBaseIVA0 = ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA0.RoundSQL
Totales.TotalTrasladosBaseIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
Totales.TotalTrasladosImpuestoIVA0 = 0
Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0 ' si hay base > 0, debe de ponerse aunque sea en cero
If ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIEPS > 0 Then
Totales.TotalRetencionesIEPS = ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIEPS.RoundSQL
If ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS > 0 Then
Totales.TotalRetencionesIEPS = ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS.RoundSQL
Totales.TotalRetencionesIEPSSpecified = True
Else
Totales.TotalRetencionesIEPSSpecified = False
@@ -4214,7 +4222,7 @@ Public Class Timbrado
For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x) = New Profact.TimbraCFDI40.Complementos.Pagos20.PagosPagoImpuestosPRetencionP()
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImpuestoP = Ret.Impuesto
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImporteP = Ret.Importe
ComPag.Pago(0).ImpuestosP(0).RetencionesP(x).ImporteP = Ret.ImporteMN
x += 1
Next
End If
@@ -5066,88 +5074,92 @@ Public Class Timbrado
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
cfdi.Pago20Totales(ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIVA,
ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesISR,
ObjCFDITimbre.ComplementoPagos.Totales.TotalRetencionesIEPS,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA16,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA16,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA8,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA0,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA0,
ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseExento,
ObjCFDITimbre.ComplementoPagos.Totales.MontoTotalPagos)
cfdi.Pago20(ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"),
ObjCFDITimbre.ComplementoPagos.FormaDePagoP,
ObjCFDITimbre.ComplementoPagos.MonedaP,
ObjCFDITimbre.ComplementoPagos.TipoCambioP,
ObjCFDITimbre.ComplementoPagos.Monto,
ObjCFDITimbre.ComplementoPagos.NumOperacion,
ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaOrd,
ObjCFDITimbre.ComplementoPagos.NomBancoOrdExt,
ObjCFDITimbre.ComplementoPagos.CtaOrdenante,
ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaBen,
ObjCFDITimbre.ComplementoPagos.CtaBeneficiario,
ObjCFDITimbre.ComplementoPagos.TipoCadPago,
ObjCFDITimbre.ComplementoPagos.CertPago,
ObjCFDITimbre.ComplementoPagos.CadPago,
ObjCFDITimbre.ComplementoPagos.SelloPago)
cfdi.Pago20Totales(ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIVA,
ObjCFDITimbre.ComplementoPagos20.TotalRetencionesISR,
ObjCFDITimbre.ComplementoPagos20.TotalRetencionesIEPS,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA16,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA16,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA8,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA8,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseIVA0,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosImpuestoIVA0,
ObjCFDITimbre.ComplementoPagos20.TotalTrasladosBaseExento,
ObjCFDITimbre.ComplementoPagos20.MontoTotalPagos)
For Each docp As CFDIComplementoPago In ObjCFDITimbre.ComplementoPagos20.ComplementoPagos
cfdi.Pago20(docp.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"),
docp.FormaDePagoP,
docp.MonedaP,
docp.TipoCambioP,
docp.Monto,
docp.NumOperacion,
docp.RfcEmisorCtaOrd,
docp.NomBancoOrdExt,
docp.CtaOrdenante,
docp.RfcEmisorCtaBen,
docp.CtaBeneficiario,
docp.TipoCadPago,
docp.CertPago,
docp.CadPago,
docp.SelloPago)
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
If docp.DocumentosRelacionados.Count > 0 Then
For Each doc As CFDIComplementoPagosDocsRelacionados In ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados
cfdi.Pago20DoctoRelacionado(doc.IdDocumento,
doc.Serie,
doc.Folio,
doc.MonedaDR,
doc.EquivalenciaDR,
doc.NumParcialidad,
doc.ImpSaldoAnt,
doc.ImpPagado,
doc.ImpSaldoInsoluto,
doc.ObjetoImpuesto)
If doc.Impuestos IsNot Nothing Then
For Each doc As CFDIComplementoPagosDocsRelacionados In docp.DocumentosRelacionados
cfdi.Pago20DoctoRelacionado(doc.IdDocumento,
doc.Serie,
doc.Folio,
doc.MonedaDR,
doc.EquivalenciaDR,
doc.NumParcialidad,
doc.ImpSaldoAnt,
doc.ImpPagado,
doc.ImpSaldoInsoluto,
doc.ObjetoImpuesto)
If doc.Impuestos IsNot Nothing Then
''retenciones
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
Dim j As Integer = 0
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R")
If docimp.TrasladooRetencion = "R" Then
cfdi.Pago20RetencionDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe)
End If
j += 1
Next
''retenciones
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
Dim j As Integer = 0
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "R")
If docimp.TrasladooRetencion = "R" Then
cfdi.Pago20RetencionDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe)
End If
j += 1
Next
End If
''traslados
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then
Dim j As Integer = 0
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T")
If docimp.TrasladooRetencion = "T" Then
cfdi.Pago20TrasladoDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe)
End If
j += 1
Next
End If
End If
''traslados
If (doc.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then
Dim j As Integer = 0
For Each docimp As CFDIConceptosImpuestos In doc.Impuestos.Where(Function(x) x.TrasladooRetencion = "T")
If docimp.TrasladooRetencion = "T" Then
cfdi.Pago20TrasladoDR(docimp.Base, docimp.Impuesto, docimp.TipoFactor, docimp.TasaOCuota, docimp.Importe)
End If
j += 1
Next
End If
Next
If (docp.Retenciones).Count > 0 Then
For Each Ret As CFDIRetenciones In docp.Retenciones
cfdi.Pago20RetencionP(Ret.Impuesto, Ret.ImporteMN)
Next
End If
Next
If (ObjCFDITimbre.ComplementoPagos.Retenciones).Count > 0 Then
For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones
cfdi.Pago20RetencionP(Ret.Impuesto, Ret.ImporteMN)
Next
If docp.Traslados.Count > 0 Then
For Each Tra As CFDITraslados In (docp.Traslados)
cfdi.Pago20TrasladoP(Tra.BaseMN, Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.ImporteMN)
Next
End If
End If
Next
If ObjCFDITimbre.ComplementoPagos.Traslados.Count > 0 Then
For Each Tra As CFDITraslados In (ObjCFDITimbre.ComplementoPagos.Traslados)
cfdi.Pago20TrasladoP(Tra.BaseMN, Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.ImporteMN)
Next
End If
End If
End If
#End Region