-- mejora en timbrado de carta porte PAC 3
This commit is contained in:
@@ -10,6 +10,7 @@ Imports System.Xml
|
|||||||
Imports System.Xml.Serialization
|
Imports System.Xml.Serialization
|
||||||
Imports Extensiones
|
Imports Extensiones
|
||||||
Imports Newtonsoft.Json.Linq
|
Imports Newtonsoft.Json.Linq
|
||||||
|
Imports Profact.TimbraCFDI33.Complementos
|
||||||
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20
|
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20
|
||||||
|
|
||||||
|
|
||||||
@@ -1254,13 +1255,13 @@ Public Class Timbrado
|
|||||||
Case 4
|
Case 4
|
||||||
|
|
||||||
Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial)
|
Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial)
|
||||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||||
Retorno = If(Ret = "", True, False)
|
Retorno = If(Ret = "", True, False)
|
||||||
|
|
||||||
Case 5
|
Case 5
|
||||||
|
|
||||||
Dim Ret As String = TimbrarFacturaPADEv40(Ventas, UsuarioActual, CvePACEspecial)
|
Dim Ret As String = TimbrarFacturaPADEv40(Ventas, UsuarioActual, CvePACEspecial)
|
||||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||||
Retorno = If(Ret = "", True, False)
|
Retorno = If(Ret = "", True, False)
|
||||||
|
|
||||||
|
|
||||||
@@ -1463,7 +1464,7 @@ Public Class Timbrado
|
|||||||
Dim k As Integer = 0
|
Dim k As Integer = 0
|
||||||
For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos
|
For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos
|
||||||
comprobante.Conceptos(i) = New Profact.TimbraCFDI40.ComprobanteConcepto()
|
comprobante.Conceptos(i) = New Profact.TimbraCFDI40.ComprobanteConcepto()
|
||||||
comprobante.Conceptos(i).Cantidad = concep.Cantidad
|
comprobante.Conceptos(i).Cantidad = concep.Cantidad.RoundSQL(6)
|
||||||
|
|
||||||
If concep.Unidad <> "" Then comprobante.Conceptos(i).Unidad = concep.Unidad
|
If concep.Unidad <> "" Then comprobante.Conceptos(i).Unidad = concep.Unidad
|
||||||
comprobante.Conceptos(i).ClaveUnidad = concep.ClaveUnidad
|
comprobante.Conceptos(i).ClaveUnidad = concep.ClaveUnidad
|
||||||
@@ -1962,7 +1963,7 @@ Public Class Timbrado
|
|||||||
Dim xmlComp As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(ComPag, GetType(Profact.TimbraCFDI40.Complementos.Pagos20.Pagos), nsComp)
|
Dim xmlComp As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(ComPag, GetType(Profact.TimbraCFDI40.Complementos.Pagos20.Pagos), nsComp)
|
||||||
Dim docComp As New XmlDocument()
|
Dim docComp As New XmlDocument()
|
||||||
docComp.LoadXml(xmlComp)
|
docComp.LoadXml(xmlComp)
|
||||||
'comprobante.PagosSpecified = True
|
comprobante.Pagos20Specified = True
|
||||||
LXmlComplementos.Add(docComp.DocumentElement)
|
LXmlComplementos.Add(docComp.DocumentElement)
|
||||||
TieneComplemento = True
|
TieneComplemento = True
|
||||||
End If
|
End If
|
||||||
@@ -1981,7 +1982,8 @@ Public Class Timbrado
|
|||||||
ComCartaPorte.TranspInternac = CType([Enum].Parse(GetType(ProfactCartaPorte.CartaPorteTranspInternac), Carta.TranspInternac), ProfactCartaPorte.CartaPorteTranspInternac)
|
ComCartaPorte.TranspInternac = CType([Enum].Parse(GetType(ProfactCartaPorte.CartaPorteTranspInternac), Carta.TranspInternac), ProfactCartaPorte.CartaPorteTranspInternac)
|
||||||
ComCartaPorte.EntradaSalidaMercSpecified = False
|
ComCartaPorte.EntradaSalidaMercSpecified = False
|
||||||
ComCartaPorte.ViaEntradaSalidaSpecified = False
|
ComCartaPorte.ViaEntradaSalidaSpecified = False
|
||||||
ComCartaPorte.TotalDistRecSpecified = False
|
ComCartaPorte.TotalDistRecSpecified = True
|
||||||
|
ComCartaPorte.TotalDistRec = Carta.TotalDistanciaRecorrida
|
||||||
|
|
||||||
'UBICACIONES
|
'UBICACIONES
|
||||||
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
|
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
|
||||||
@@ -2003,6 +2005,7 @@ Public Class Timbrado
|
|||||||
'ComCartaPorte.Ubicaciones(i).NavegacionTrafico = ubica.NavegacionTrafico
|
'ComCartaPorte.Ubicaciones(i).NavegacionTrafico = ubica.NavegacionTrafico
|
||||||
ComCartaPorte.Ubicaciones(i).FechaHoraSalidaLlegada = ubica.FechaHoraSalidaLlegada.ToDate
|
ComCartaPorte.Ubicaciones(i).FechaHoraSalidaLlegada = ubica.FechaHoraSalidaLlegada.ToDate
|
||||||
ComCartaPorte.Ubicaciones(i).DistanciaRecorrida = ubica.DistanciaRecorrida
|
ComCartaPorte.Ubicaciones(i).DistanciaRecorrida = ubica.DistanciaRecorrida
|
||||||
|
ComCartaPorte.Ubicaciones(i).DistanciaRecorridaSpecified = ubica.DistanciaRecorrida > 0
|
||||||
|
|
||||||
ComCartaPorte.Ubicaciones(i).Domicilio = New ProfactCartaPorte.CartaPorteUbicacionDomicilio With {.Calle = ubica.Domicilio.Calle,
|
ComCartaPorte.Ubicaciones(i).Domicilio = New ProfactCartaPorte.CartaPorteUbicacionDomicilio With {.Calle = ubica.Domicilio.Calle,
|
||||||
.Colonia = ubica.Domicilio.Colonia,
|
.Colonia = ubica.Domicilio.Colonia,
|
||||||
@@ -2027,7 +2030,7 @@ Public Class Timbrado
|
|||||||
ComCartaPorte.Mercancias.PesoNetoTotal = Carta.Mercancias.PesoNetoTotal.ToDecimal
|
ComCartaPorte.Mercancias.PesoNetoTotal = Carta.Mercancias.PesoNetoTotal.ToDecimal
|
||||||
ComCartaPorte.Mercancias.NumTotalMercancias = Carta.Mercancias.NumTotalMercancias
|
ComCartaPorte.Mercancias.NumTotalMercancias = Carta.Mercancias.NumTotalMercancias
|
||||||
ComCartaPorte.Mercancias.CargoPorTasacion = Carta.Mercancias.CargoporTasacion.ToDecimal
|
ComCartaPorte.Mercancias.CargoPorTasacion = Carta.Mercancias.CargoporTasacion.ToDecimal
|
||||||
' ComCartaPorte.Mercancias.UnidadPeso = Carta.Mercancias.UnidadPeso
|
ComCartaPorte.Mercancias.UnidadPeso = ProfactCartaPorte.c_ClaveUnidadPeso.KGM
|
||||||
|
|
||||||
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
|
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
|
||||||
Dim i As Integer = 0
|
Dim i As Integer = 0
|
||||||
@@ -2042,9 +2045,12 @@ Public Class Timbrado
|
|||||||
ComCartaPorte.Mercancias.Mercancia(i).Descripcion = concep.Descripción
|
ComCartaPorte.Mercancias.Mercancia(i).Descripcion = concep.Descripción
|
||||||
ComCartaPorte.Mercancias.Mercancia(i).Cantidad = concep.Cantidad
|
ComCartaPorte.Mercancias.Mercancia(i).Cantidad = concep.Cantidad
|
||||||
ComCartaPorte.Mercancias.Mercancia(i).Unidad = concep.Unidad
|
ComCartaPorte.Mercancias.Mercancia(i).Unidad = concep.Unidad
|
||||||
|
ComCartaPorte.Mercancias.Mercancia(i).ClaveUnidad = concep.ClaveUnidad
|
||||||
If concep.Dimensiones <> "" Then ComCartaPorte.Mercancias.Mercancia(i).Dimensiones = concep.Dimensiones
|
If concep.Dimensiones <> "" Then ComCartaPorte.Mercancias.Mercancia(i).Dimensiones = concep.Dimensiones
|
||||||
If concep.ClaveMaterialPeligroso <> "" Then
|
If concep.ClaveMaterialPeligroso <> "" Then
|
||||||
|
ComCartaPorte.Mercancias.Mercancia(i).MaterialPeligroso = ProfactCartaPorte.CartaPorteMercanciasMercanciaMaterialPeligroso.Sí
|
||||||
ComCartaPorte.Mercancias.Mercancia(i).MaterialPeligrosoSpecified = True
|
ComCartaPorte.Mercancias.Mercancia(i).MaterialPeligrosoSpecified = True
|
||||||
|
'ComCartaPorte.Mercancias.Mercancia(i).CveMaterialPeligroso = concep.ClaveMaterialPeligroso
|
||||||
ComCartaPorte.Mercancias.Mercancia(i).CveMaterialPeligrosoSpecified = True
|
ComCartaPorte.Mercancias.Mercancia(i).CveMaterialPeligrosoSpecified = True
|
||||||
'si lleva material pelgroso, debe llevar embalaje
|
'si lleva material pelgroso, debe llevar embalaje
|
||||||
ComCartaPorte.Mercancias.Mercancia(i).EmbalajeSpecified = True
|
ComCartaPorte.Mercancias.Mercancia(i).EmbalajeSpecified = True
|
||||||
@@ -2130,6 +2136,7 @@ Public Class Timbrado
|
|||||||
ComCartaPorte.FiguraTransporte(i).RFCFigura = concep.RFCFigura
|
ComCartaPorte.FiguraTransporte(i).RFCFigura = concep.RFCFigura
|
||||||
ComCartaPorte.FiguraTransporte(i).NumLicencia = concep.NumLicencia
|
ComCartaPorte.FiguraTransporte(i).NumLicencia = concep.NumLicencia
|
||||||
ComCartaPorte.FiguraTransporte(i).NombreFigura = concep.NombreFigura
|
ComCartaPorte.FiguraTransporte(i).NombreFigura = concep.NombreFigura
|
||||||
|
ComCartaPorte.FiguraTransporte(i).TipoFigura = concep.TipoFigura
|
||||||
If concep.NumRegidTribFigura <> "" Then ComCartaPorte.FiguraTransporte(i).NumRegIdTribFigura = concep.NumRegidTribFigura
|
If concep.NumRegidTribFigura <> "" Then ComCartaPorte.FiguraTransporte(i).NumRegIdTribFigura = concep.NumRegidTribFigura
|
||||||
'OComCartaPorte.FiguraTransporte.Operadores(i)(0) = concep.ResidenciaFiscalOperador 'falta
|
'OComCartaPorte.FiguraTransporte.Operadores(i)(0) = concep.ResidenciaFiscalOperador 'falta
|
||||||
|
|
||||||
@@ -2150,11 +2157,11 @@ Public Class Timbrado
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Dim nsComp As New System.Xml.Serialization.XmlSerializerNamespaces()
|
Dim nsComp As New System.Xml.Serialization.XmlSerializerNamespaces()
|
||||||
nsComp.Add("CartaPorte", "http://www.sat.gob.mx/CartaPorte")
|
nsComp.Add("cartaporte20", "http://www.sat.gob.mx/CartaPorte20")
|
||||||
Dim xmlComp As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(ComCartaPorte, GetType(ProfactCartaPorte.CartaPorte), nsComp)
|
Dim xmlComp As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(ComCartaPorte, GetType(ProfactCartaPorte.CartaPorte), nsComp)
|
||||||
Dim docComp As New XmlDocument()
|
Dim docComp As New XmlDocument()
|
||||||
docComp.LoadXml(xmlComp)
|
docComp.LoadXml(xmlComp)
|
||||||
'comprobante.CartaPorteSpecified = True
|
comprobante.CartaPorte20Specified = True
|
||||||
LXmlComplementos.Add(docComp.DocumentElement)
|
LXmlComplementos.Add(docComp.DocumentElement)
|
||||||
TieneComplemento = True
|
TieneComplemento = True
|
||||||
|
|
||||||
@@ -2318,6 +2325,7 @@ Public Class Timbrado
|
|||||||
Dim xmlNom As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(Nom, GetType(Profact.TimbraCFDI33.Complementos.Nomina12.Nomina), nsNom)
|
Dim xmlNom As String = Profact.TimbraCFDI.XMLUtilerias.SerializaObjeto(Nom, GetType(Profact.TimbraCFDI33.Complementos.Nomina12.Nomina), nsNom)
|
||||||
Dim docNom As New XmlDocument()
|
Dim docNom As New XmlDocument()
|
||||||
docNom.LoadXml(xmlNom)
|
docNom.LoadXml(xmlNom)
|
||||||
|
comprobante.Nomina12Specified = True
|
||||||
LXmlComplementos.Add(docNom.DocumentElement)
|
LXmlComplementos.Add(docNom.DocumentElement)
|
||||||
TieneComplemento = True
|
TieneComplemento = True
|
||||||
|
|
||||||
@@ -2327,8 +2335,6 @@ Public Class Timbrado
|
|||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
If TieneComplemento Then
|
If TieneComplemento Then
|
||||||
comprobante.Complemento = New Profact.TimbraCFDI40.ComprobanteComplemento
|
comprobante.Complemento = New Profact.TimbraCFDI40.ComprobanteComplemento
|
||||||
comprobante.Complemento.Any = LXmlComplementos.ToArray()
|
comprobante.Complemento.Any = LXmlComplementos.ToArray()
|
||||||
@@ -2340,12 +2346,7 @@ Public Class Timbrado
|
|||||||
sw.Start()
|
sw.Start()
|
||||||
|
|
||||||
#Region "Genera XML"
|
#Region "Genera XML"
|
||||||
' Try
|
|
||||||
' cfdi.GenerarXMLBase64(llaveBase64, Clave)
|
|
||||||
' cfdi.EscribirXML(cfdi.Xml, RutaArchivo, NombreArchivoXML)
|
|
||||||
' Catch ex As Exception
|
|
||||||
|
|
||||||
' End Try
|
|
||||||
'//Timbramos el CFDI por medio del conector y guardamos resultado
|
'//Timbramos el CFDI por medio del conector y guardamos resultado
|
||||||
Dim resultadoTimbre As Profact.TimbraCFDI.ResultadoTimbre = Nothing
|
Dim resultadoTimbre As Profact.TimbraCFDI.ResultadoTimbre = Nothing
|
||||||
|
|
||||||
@@ -2418,13 +2419,22 @@ Public Class Timbrado
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante = "T" Then
|
If ObjCFDITimbre.Comprobante.TipoComprobante = "T" Then
|
||||||
Dim ObjInv As New ClsInventarios()
|
Dim objGrales As New ClsGenerales
|
||||||
If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then
|
If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then
|
||||||
Retorno = ""
|
Retorno = ""
|
||||||
Else
|
Else
|
||||||
Retorno = "Error"
|
Retorno = "Error"
|
||||||
End If
|
End If
|
||||||
ObjInv.Dispose()
|
objGrales.Dispose()
|
||||||
|
|
||||||
|
Using ObjInv As New ClsInventarios()
|
||||||
|
If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then
|
||||||
|
Retorno = ""
|
||||||
|
Else
|
||||||
|
Retorno = "Error"
|
||||||
|
End If
|
||||||
|
End Using
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'Pendiente. Ruta guardar archivos
|
'Pendiente. Ruta guardar archivos
|
||||||
@@ -2437,8 +2447,6 @@ Public Class Timbrado
|
|||||||
Else
|
Else
|
||||||
Retorno = "No se pudo timbrar ante el SAT. UUID no generado."
|
Retorno = "No se pudo timbrar ante el SAT. UUID no generado."
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
Else
|
Else
|
||||||
|
|
||||||
If Not String.IsNullOrEmpty(resultadoTimbre.Detalle) Then
|
If Not String.IsNullOrEmpty(resultadoTimbre.Detalle) Then
|
||||||
@@ -2447,13 +2455,16 @@ Public Class Timbrado
|
|||||||
|
|
||||||
If Resultados.Count > 0 Then
|
If Resultados.Count > 0 Then
|
||||||
If resultadoTimbre.Descripcion.Contains("RFC del receptor no existe") Then
|
If resultadoTimbre.Descripcion.Contains("RFC del receptor no existe") Then
|
||||||
Retorno = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
Retorno = $"El RFC { Resultados(0)("Value") } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
||||||
MensajeErrorCFDI = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
MensajeErrorCFDI = $"El RFC { Resultados(0)("Value")} no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
||||||
Else
|
Else
|
||||||
Dim sbMsg As New StringBuilder
|
Dim sbMsg As New StringBuilder
|
||||||
|
Dim sbMsgLog As New StringBuilder
|
||||||
For Each msg In Resultados
|
For Each msg In Resultados
|
||||||
sbMsg.AppendFormat("{0}.<br/>", msg("Value"))
|
sbMsg.AppendFormat("{0}.<br/>", msg("Value"))
|
||||||
|
sbMsgLog.AppendFormat("{0}.<br/>", msg("Value"))
|
||||||
Next
|
Next
|
||||||
|
sbMsgLog.ToString.GuardaLog()
|
||||||
Retorno = sbMsg.ToString()
|
Retorno = sbMsg.ToString()
|
||||||
MensajeErrorCFDI = Retorno
|
MensajeErrorCFDI = Retorno
|
||||||
End If
|
End If
|
||||||
|
|||||||
Reference in New Issue
Block a user