-- timbrado complementos de pago pac 4
This commit is contained in:
@@ -453,6 +453,22 @@ Public Class CFDIComplementoPagos
|
|||||||
Public Property SelloPago As String = ""
|
Public Property SelloPago As String = ""
|
||||||
Public Property DocumentosRelacionados As List(Of CFDIComplementoPagosDocsRelacionados)
|
Public Property DocumentosRelacionados As List(Of CFDIComplementoPagosDocsRelacionados)
|
||||||
Public Property Impuestos As List(Of CFDIConceptosImpuestos)
|
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.ImpPagado).Sum()
|
||||||
|
|
||||||
|
tRetorno.TotalTrasladosBaseIVA0 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0 Select c.Base).Sum()
|
||||||
|
tRetorno.TotalTrasladosBaseIVA8 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.08 Select c.Base).Sum()
|
||||||
|
tRetorno.TotalTrasladosBaseIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.Base).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.Importe).Sum()
|
||||||
|
tRetorno.TotalTrasladosImpuestoIVA16 = (From c In Traslados Where c.Impuesto = "002" And c.TasaOCuota = 0.16 Select c.Importe).Sum()
|
||||||
|
|
||||||
|
Return tRetorno
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
|
||||||
Public ReadOnly Property TotalImpuestosRetenidos As Decimal
|
Public ReadOnly Property TotalImpuestosRetenidos As Decimal
|
||||||
Get
|
Get
|
||||||
@@ -470,29 +486,6 @@ Public Class CFDIComplementoPagos
|
|||||||
End Get
|
End Get
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
Public ReadOnly Property TotalImpuestosTrasladados(Impuesto As String, Tasa As Decimal, Optional Dato As String = "Base") As Decimal
|
|
||||||
Get
|
|
||||||
|
|
||||||
If Dato = "Base" Then
|
|
||||||
Return (From c In Traslados Where c.Impuesto = Impuesto And c.TasaOCuota = Tasa
|
|
||||||
Select c.Base).Sum()
|
|
||||||
Else
|
|
||||||
Return (From c In Traslados Where c.Impuesto = Impuesto And c.TasaOCuota = Tasa
|
|
||||||
Select c.Importe).Sum()
|
|
||||||
End If
|
|
||||||
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
Public ReadOnly Property TotalPagos As Decimal
|
|
||||||
Get
|
|
||||||
Return (From c In DocumentosRelacionados
|
|
||||||
Select c.ImpPagado).Sum()
|
|
||||||
End Get
|
|
||||||
End Property
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Sub New()
|
Sub New()
|
||||||
|
|
||||||
DocumentosRelacionados = New List(Of CFDIComplementoPagosDocsRelacionados)
|
DocumentosRelacionados = New List(Of CFDIComplementoPagosDocsRelacionados)
|
||||||
@@ -577,6 +570,23 @@ Public Class CFDIComplementoPagosDocsRelacionados
|
|||||||
End Class
|
End Class
|
||||||
|
|
||||||
|
|
||||||
|
<Serializable>
|
||||||
|
Public Class CFDIComplementoPagosTotales
|
||||||
|
Public Property MontoTotalPagos As Decimal = 0
|
||||||
|
Public Property TotalTrasladosBaseIVA16 As Decimal = 0
|
||||||
|
Public Property TotalTrasladosImpuestoIVA16 As Decimal = 0
|
||||||
|
Public Property TotalTrasladosBaseIVA8 As Decimal = 0
|
||||||
|
Public Property TotalTrasladosImpuestoIVA8 As Decimal = 0
|
||||||
|
Public Property TotalTrasladosBaseIVA0 As Decimal = 0
|
||||||
|
Public Property TotalTrasladosImpuestoIVA0 As Decimal = 0
|
||||||
|
Public Property TotalTrasladosBaseExento As Decimal = 0
|
||||||
|
Public Property TotalRetencionesIVA As Decimal = 0
|
||||||
|
Public Property TotalRetencionesISR As Decimal = 0
|
||||||
|
Public Property TotalRetencionesIEPS As Decimal = 0
|
||||||
|
|
||||||
|
End Class
|
||||||
|
|
||||||
|
|
||||||
<Serializable>
|
<Serializable>
|
||||||
Public Class CFDIComercioExterior11
|
Public Class CFDIComercioExterior11
|
||||||
Public Property MotivoTraslado As String
|
Public Property MotivoTraslado As String
|
||||||
|
|||||||
@@ -4090,19 +4090,20 @@ Public Class Timbrado
|
|||||||
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
|
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
|
||||||
Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales()
|
Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales()
|
||||||
'Totales Generales
|
'Totales Generales
|
||||||
Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos.TotalPagos.RoundSQL
|
|
||||||
|
|
||||||
Totales.TotalTrasladosBaseIVA16 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.16D, "Base")
|
Totales.MontoTotalPagos = ObjCFDITimbre.ComplementoPagos.Totales.MontoTotalPagos
|
||||||
|
|
||||||
|
Totales.TotalTrasladosBaseIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA16
|
||||||
Totales.TotalTrasladosBaseIVA16Specified = Totales.TotalTrasladosBaseIVA16 > 0
|
Totales.TotalTrasladosBaseIVA16Specified = Totales.TotalTrasladosBaseIVA16 > 0
|
||||||
Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.16D, "Impuesto").RoundSQL
|
Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA16.RoundSQL
|
||||||
Totales.TotalTrasladosImpuestoIVA16Specified = Totales.TotalTrasladosBaseIVA16 > 0
|
Totales.TotalTrasladosImpuestoIVA16Specified = Totales.TotalTrasladosBaseIVA16 > 0
|
||||||
|
|
||||||
Totales.TotalTrasladosBaseIVA8 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.08D, "Base")
|
Totales.TotalTrasladosBaseIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8
|
||||||
Totales.TotalTrasladosBaseIVA8Specified = Totales.TotalTrasladosBaseIVA8 > 0
|
Totales.TotalTrasladosBaseIVA8Specified = Totales.TotalTrasladosBaseIVA8 > 0
|
||||||
Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.08D, "Impuesto").RoundSQL
|
Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8.RoundSQL
|
||||||
Totales.TotalTrasladosImpuestoIVA8Specified = Totales.TotalTrasladosBaseIVA8 > 0
|
Totales.TotalTrasladosImpuestoIVA8Specified = Totales.TotalTrasladosBaseIVA8 > 0
|
||||||
|
|
||||||
Totales.TotalTrasladosBaseIVA0 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.00D, "Base")
|
Totales.TotalTrasladosBaseIVA0 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA0
|
||||||
Totales.TotalTrasladosBaseIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
|
Totales.TotalTrasladosBaseIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
|
||||||
Totales.TotalTrasladosImpuestoIVA0 = 0
|
Totales.TotalTrasladosImpuestoIVA0 = 0
|
||||||
Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
|
Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
|
||||||
@@ -5029,6 +5030,9 @@ Public Class Timbrado
|
|||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#Region "Receptor"
|
#Region "Receptor"
|
||||||
|
If ObjCFDITimbre.Receptor.RFC.ToUpper.Contiene("XAXX010101000", "XEXX010101000") Then 'Condición del SAT. CFDI40149
|
||||||
|
ObjCFDITimbre.Receptor.DomicilioFiscalReceptor = ObjCFDITimbre.Comprobante.LugarExpedicion
|
||||||
|
End If
|
||||||
|
|
||||||
cfdi.Receptor(ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Receptor.Nombre, ObjCFDITimbre.Receptor.DomicilioFiscalReceptor, ObjCFDITimbre.Receptor.ResidenciaFiscal, ObjCFDITimbre.Receptor.NumeroRegistroTributario, ObjCFDITimbre.Receptor.RegimenFiscalReceptor, ObjCFDITimbre.Receptor.UsoCFDI)
|
cfdi.Receptor(ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Receptor.Nombre, ObjCFDITimbre.Receptor.DomicilioFiscalReceptor, ObjCFDITimbre.Receptor.ResidenciaFiscal, ObjCFDITimbre.Receptor.NumeroRegistroTributario, ObjCFDITimbre.Receptor.RegimenFiscalReceptor, ObjCFDITimbre.Receptor.UsoCFDI)
|
||||||
|
|
||||||
@@ -5284,7 +5288,18 @@ Public Class Timbrado
|
|||||||
#Region "Complemento Pago"
|
#Region "Complemento Pago"
|
||||||
|
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
|
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
|
||||||
cfdi.Pago20Totales(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ObjCFDITimbre.ComplementoPagos.TotalPagos)
|
|
||||||
|
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"),
|
cfdi.Pago20(ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"),
|
||||||
ObjCFDITimbre.ComplementoPagos.FormaDePagoP,
|
ObjCFDITimbre.ComplementoPagos.FormaDePagoP,
|
||||||
@@ -5317,31 +5332,47 @@ Public Class Timbrado
|
|||||||
doc.ImpPagado,
|
doc.ImpPagado,
|
||||||
doc.ImpSaldoInsoluto,
|
doc.ImpSaldoInsoluto,
|
||||||
doc.ObjetoImpuesto)
|
doc.ObjetoImpuesto)
|
||||||
'falta impuestos
|
If doc.Impuestos IsNot Nothing Then
|
||||||
|
|
||||||
|
''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
|
||||||
|
|
||||||
|
''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
|
||||||
|
End If
|
||||||
|
|
||||||
Next
|
Next
|
||||||
|
|
||||||
'Estos impuestos aplicarían para anticipos
|
If ObjCFDITimbre.ComplementoPagos.Traslados.Count > 0 Then
|
||||||
If ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados > 0 Then
|
|
||||||
|
|
||||||
cfdi.PagoImpuestos(ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos, ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados)
|
|
||||||
If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
|
|
||||||
For Each Ret As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R")
|
|
||||||
cfdi.PagoRetencion(Ret.Impuesto, Ret.Importe)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then
|
|
||||||
For Each Tra As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T")
|
|
||||||
cfdi.PagoTraslado(Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.Importe)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
For Each Tra As CFDITraslados In (ObjCFDITimbre.ComplementoPagos.Traslados)
|
||||||
|
cfdi.Pago20TrasladoP(Tra.Base, Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.Importe)
|
||||||
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If (ObjCFDITimbre.ComplementoPagos.Retenciones).Count > 0 Then
|
||||||
|
For Each Ret As CFDIRetenciones In ObjCFDITimbre.ComplementoPagos.Retenciones
|
||||||
|
cfdi.Pago20RetencionP(Ret.Impuesto, Ret.Importe)
|
||||||
|
Next
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user