- corrección mejora Rev. B

This commit is contained in:
2024-02-10 08:56:16 -07:00
parent d1fc3c4666
commit 1d9f072bec

View File

@@ -9,6 +9,7 @@ Imports System.Reflection
Imports System.Xml
Imports System.Xml.Serialization
Imports Extensiones
Imports External.Office
Imports Newtonsoft.Json.Linq
Imports Profact.TimbraCFDI33.Complementos
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte30
@@ -2461,45 +2462,45 @@ Public Class Timbrado
#Region "C O M P L E M E N T O D E C O M E R C I O E X T E R I O R"
If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior.AplicaComercioExteriorSubProyecto Then
If ObjCFDITimbre.Complementos.ComercioExterior IsNot Nothing Then
If ObjCFDITimbre.Complementos.ComercioExterior IsNot Nothing Then
'DATOS GENERALES
cfdi.ComercioExterior20(ObjCFDITimbre.Complementos.ComercioExterior.MotivoTraslado,
ObjCFDITimbre.Complementos.ComercioExterior.ClavedePedimento,
ObjCFDITimbre.Complementos.ComercioExterior.CertificadoOrigen,
ObjCFDITimbre.Complementos.ComercioExterior.NumCertificadoOrigen,
ObjCFDITimbre.Complementos.ComercioExterior.NumeroExportadorConfiable,
ObjCFDITimbre.Complementos.ComercioExterior.Incoterm,
ObjCFDITimbre.Complementos.ComercioExterior.Observaciones,
ObjCFDITimbre.Complementos.ComercioExterior.TipoCambioUSD,
ObjCFDITimbre.Complementos.ComercioExterior.TotalUSD)
'EMISOR
cfdi.ComercioExterior20Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior.Emisor.CURP))
cfdi.ComercioExterior20Domicilio(ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Calle,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.NumeroExterior,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.NumeroInterior,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Colonia,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Localidad,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Referencia,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Municipio,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Estado,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Pais,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.CP)
'RECEPTOR
cfdi.ComercioExterior20Receptor(ObjCFDITimbre.Complementos.ComercioExterior.Receptor.NumRegIdTrib)
cfdi.ComercioExterior20DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Calle,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.NumeroExterior,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.NumeroInterior,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Colonia,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Localidad,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Referencia,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Municipio,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Estado,
'DATOS GENERALES
cfdi.ComercioExterior20(ObjCFDITimbre.Complementos.ComercioExterior.MotivoTraslado,
ObjCFDITimbre.Complementos.ComercioExterior.ClavedePedimento,
ObjCFDITimbre.Complementos.ComercioExterior.CertificadoOrigen,
ObjCFDITimbre.Complementos.ComercioExterior.NumCertificadoOrigen,
ObjCFDITimbre.Complementos.ComercioExterior.NumeroExportadorConfiable,
ObjCFDITimbre.Complementos.ComercioExterior.Incoterm,
ObjCFDITimbre.Complementos.ComercioExterior.Observaciones,
ObjCFDITimbre.Complementos.ComercioExterior.TipoCambioUSD,
ObjCFDITimbre.Complementos.ComercioExterior.TotalUSD)
'EMISOR
cfdi.ComercioExterior20Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior.Emisor.CURP))
cfdi.ComercioExterior20Domicilio(ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Calle,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.NumeroExterior,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.NumeroInterior,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Colonia,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Localidad,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Referencia,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Municipio,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Estado,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.Pais,
ObjCFDITimbre.Complementos.ComercioExterior.Emisor.CP)
'RECEPTOR
cfdi.ComercioExterior20Receptor(ObjCFDITimbre.Complementos.ComercioExterior.Receptor.NumRegIdTrib)
cfdi.ComercioExterior20DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Calle,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.NumeroExterior,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.NumeroInterior,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Colonia,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Localidad,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Referencia,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Municipio,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Estado,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.Pais,
ObjCFDITimbre.Complementos.ComercioExterior.Receptor.CP)
If ObjCFDITimbre.Complementos.ComercioExterior.Destinatario IsNot Nothing Then
cfdi.ComercioExterior20Destinatario(ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.NumRegIdTrib,
If ObjCFDITimbre.Complementos.ComercioExterior.Destinatario IsNot Nothing Then
cfdi.ComercioExterior20Destinatario(ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.NumRegIdTrib,
ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.Nombre,
ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.Calle,
ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.NumeroExterior,
@@ -2511,37 +2512,32 @@ Public Class Timbrado
ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.Estado,
ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.Pais,
ObjCFDITimbre.Complementos.ComercioExterior.Destinatario.CP)
End If
'MERCANCIAS
If ObjCFDITimbre.Complementos.ComercioExterior.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior.Mercancias.Count > 0 Then
For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior.Mercancias
cfdi.ComercioExterior20Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares)
If concep.DescripcionesEspecificas.Marca <> "" Then
cfdi.ComercioExterior20MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca,
concep.DescripcionesEspecificas.Modelo,
concep.DescripcionesEspecificas.SubModelo,
concep.DescripcionesEspecificas.NumeroSerie)
End If
Next
End If
End If
'MERCANCIAS
If ObjCFDITimbre.Complementos.ComercioExterior.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior.Mercancias.Count > 0 Then
For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior.Mercancias
cfdi.ComercioExterior20Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares)
If concep.DescripcionesEspecificas.Marca <> "" Then
cfdi.ComercioExterior20MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca,
concep.DescripcionesEspecificas.Modelo,
concep.DescripcionesEspecificas.SubModelo,
concep.DescripcionesEspecificas.NumeroSerie)
End If
Next
End If
End If
#End Region
End If
#End Region
End If
#Region "C O M P L E M E N T O C A R T A P O R T E"
If UsuarioActual.CveEmpresa = 13 Then
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte
''DATOS GENERALES
@@ -2555,7 +2551,6 @@ Public Class Timbrado
'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
cfdi.CartaPorteDomicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP)
Next
End If
'MERCANCIAS
@@ -2697,6 +2692,11 @@ Public Class Timbrado
For Each docp As CFDIComplementoPago In ObjCFDITimbre.ComplementoPagos20.ComplementoPagos
Dim MonDiferente As Integer = (From c In docp.DocumentosRelacionados
Where c.MonedaDR <> docp.MonedaP
Select c.MonedaDR).Count()
If MonDiferente > 0 Then cfdi.ContieneVariasMonedas = True 'consideración adicional Rev. B
cfdi.Pago20(docp.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"),
docp.FormaDePagoP,
docp.MonedaP,
@@ -2727,7 +2727,7 @@ Public Class Timbrado
doc.ImpSaldoInsoluto,
doc.ObjetoImpuesto)
If doc.MonedaDR <> docp.MonedaP Then cfdi.ContieneVariasMonedas = True 'consideración adicional Rev. B
'If doc.MonedaDR <> docp.MonedaP Then cfdi.ContieneVariasMonedas = True 'consideración adicional Rev. B
If doc.Impuestos IsNot Nothing Then
''retenciones