-- 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 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.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
|
||||
Get
|
||||
@@ -470,29 +486,6 @@ Public Class CFDIComplementoPagos
|
||||
End Get
|
||||
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()
|
||||
|
||||
DocumentosRelacionados = New List(Of CFDIComplementoPagosDocsRelacionados)
|
||||
@@ -577,6 +570,23 @@ Public Class CFDIComplementoPagosDocsRelacionados
|
||||
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>
|
||||
Public Class CFDIComercioExterior11
|
||||
Public Property MotivoTraslado As String
|
||||
|
||||
@@ -4090,19 +4090,20 @@ Public Class Timbrado
|
||||
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
|
||||
Dim Totales As New Profact.TimbraCFDI40.Complementos.Pagos20.PagosTotales()
|
||||
'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.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.16D, "Impuesto").RoundSQL
|
||||
Totales.TotalTrasladosImpuestoIVA16 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosImpuestoIVA16.RoundSQL
|
||||
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.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados("002", 0.08D, "Impuesto").RoundSQL
|
||||
Totales.TotalTrasladosImpuestoIVA8 = ObjCFDITimbre.ComplementoPagos.Totales.TotalTrasladosBaseIVA8.RoundSQL
|
||||
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.TotalTrasladosImpuestoIVA0 = 0
|
||||
Totales.TotalTrasladosImpuestoIVA0Specified = Totales.TotalTrasladosBaseIVA0 > 0
|
||||
@@ -5029,6 +5030,9 @@ Public Class Timbrado
|
||||
#End Region
|
||||
|
||||
#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)
|
||||
|
||||
@@ -5284,7 +5288,18 @@ Public Class Timbrado
|
||||
#Region "Complemento Pago"
|
||||
|
||||
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"),
|
||||
ObjCFDITimbre.ComplementoPagos.FormaDePagoP,
|
||||
@@ -5317,31 +5332,47 @@ Public Class Timbrado
|
||||
doc.ImpPagado,
|
||||
doc.ImpSaldoInsoluto,
|
||||
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
|
||||
|
||||
'Estos impuestos aplicarían para anticipos
|
||||
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
|
||||
If ObjCFDITimbre.ComplementoPagos.Traslados.Count > 0 Then
|
||||
|
||||
For Each Tra As CFDITraslados In (ObjCFDITimbre.ComplementoPagos.Traslados)
|
||||
cfdi.Pago20TrasladoP(Tra.Base, Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.Importe)
|
||||
Next
|
||||
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 Region
|
||||
|
||||
|
||||
Reference in New Issue
Block a user