- complementos de pago 4.0
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user