-- 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 Extensiones
|
||||
Imports Newtonsoft.Json.Linq
|
||||
Imports Profact.TimbraCFDI33.Complementos
|
||||
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20
|
||||
|
||||
|
||||
@@ -1254,13 +1255,13 @@ Public Class Timbrado
|
||||
Case 4
|
||||
|
||||
Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial)
|
||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||
Retorno = If(Ret = "", True, False)
|
||||
|
||||
Case 5
|
||||
|
||||
Dim Ret As String = TimbrarFacturaPADEv40(Ventas, UsuarioActual, CvePACEspecial)
|
||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||
Retorno = If(Ret = "", True, False)
|
||||
|
||||
|
||||
@@ -1463,7 +1464,7 @@ Public Class Timbrado
|
||||
Dim k As Integer = 0
|
||||
For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos
|
||||
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
|
||||
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 docComp As New XmlDocument()
|
||||
docComp.LoadXml(xmlComp)
|
||||
'comprobante.PagosSpecified = True
|
||||
comprobante.Pagos20Specified = True
|
||||
LXmlComplementos.Add(docComp.DocumentElement)
|
||||
TieneComplemento = True
|
||||
End If
|
||||
@@ -1981,7 +1982,8 @@ Public Class Timbrado
|
||||
ComCartaPorte.TranspInternac = CType([Enum].Parse(GetType(ProfactCartaPorte.CartaPorteTranspInternac), Carta.TranspInternac), ProfactCartaPorte.CartaPorteTranspInternac)
|
||||
ComCartaPorte.EntradaSalidaMercSpecified = False
|
||||
ComCartaPorte.ViaEntradaSalidaSpecified = False
|
||||
ComCartaPorte.TotalDistRecSpecified = False
|
||||
ComCartaPorte.TotalDistRecSpecified = True
|
||||
ComCartaPorte.TotalDistRec = Carta.TotalDistanciaRecorrida
|
||||
|
||||
'UBICACIONES
|
||||
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).FechaHoraSalidaLlegada = ubica.FechaHoraSalidaLlegada.ToDate
|
||||
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,
|
||||
.Colonia = ubica.Domicilio.Colonia,
|
||||
@@ -2027,7 +2030,7 @@ Public Class Timbrado
|
||||
ComCartaPorte.Mercancias.PesoNetoTotal = Carta.Mercancias.PesoNetoTotal.ToDecimal
|
||||
ComCartaPorte.Mercancias.NumTotalMercancias = Carta.Mercancias.NumTotalMercancias
|
||||
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
|
||||
Dim i As Integer = 0
|
||||
@@ -2042,9 +2045,12 @@ Public Class Timbrado
|
||||
ComCartaPorte.Mercancias.Mercancia(i).Descripcion = concep.Descripción
|
||||
ComCartaPorte.Mercancias.Mercancia(i).Cantidad = concep.Cantidad
|
||||
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.ClaveMaterialPeligroso <> "" Then
|
||||
ComCartaPorte.Mercancias.Mercancia(i).MaterialPeligroso = ProfactCartaPorte.CartaPorteMercanciasMercanciaMaterialPeligroso.Sí
|
||||
ComCartaPorte.Mercancias.Mercancia(i).MaterialPeligrosoSpecified = True
|
||||
'ComCartaPorte.Mercancias.Mercancia(i).CveMaterialPeligroso = concep.ClaveMaterialPeligroso
|
||||
ComCartaPorte.Mercancias.Mercancia(i).CveMaterialPeligrosoSpecified = True
|
||||
'si lleva material pelgroso, debe llevar embalaje
|
||||
ComCartaPorte.Mercancias.Mercancia(i).EmbalajeSpecified = True
|
||||
@@ -2130,6 +2136,7 @@ Public Class Timbrado
|
||||
ComCartaPorte.FiguraTransporte(i).RFCFigura = concep.RFCFigura
|
||||
ComCartaPorte.FiguraTransporte(i).NumLicencia = concep.NumLicencia
|
||||
ComCartaPorte.FiguraTransporte(i).NombreFigura = concep.NombreFigura
|
||||
ComCartaPorte.FiguraTransporte(i).TipoFigura = concep.TipoFigura
|
||||
If concep.NumRegidTribFigura <> "" Then ComCartaPorte.FiguraTransporte(i).NumRegIdTribFigura = concep.NumRegidTribFigura
|
||||
'OComCartaPorte.FiguraTransporte.Operadores(i)(0) = concep.ResidenciaFiscalOperador 'falta
|
||||
|
||||
@@ -2150,11 +2157,11 @@ Public Class Timbrado
|
||||
End If
|
||||
|
||||
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 docComp As New XmlDocument()
|
||||
docComp.LoadXml(xmlComp)
|
||||
'comprobante.CartaPorteSpecified = True
|
||||
comprobante.CartaPorte20Specified = True
|
||||
LXmlComplementos.Add(docComp.DocumentElement)
|
||||
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 docNom As New XmlDocument()
|
||||
docNom.LoadXml(xmlNom)
|
||||
comprobante.Nomina12Specified = True
|
||||
LXmlComplementos.Add(docNom.DocumentElement)
|
||||
TieneComplemento = True
|
||||
|
||||
@@ -2327,8 +2335,6 @@ Public Class Timbrado
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
|
||||
If TieneComplemento Then
|
||||
comprobante.Complemento = New Profact.TimbraCFDI40.ComprobanteComplemento
|
||||
comprobante.Complemento.Any = LXmlComplementos.ToArray()
|
||||
@@ -2340,12 +2346,7 @@ Public Class Timbrado
|
||||
sw.Start()
|
||||
|
||||
#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
|
||||
Dim resultadoTimbre As Profact.TimbraCFDI.ResultadoTimbre = Nothing
|
||||
|
||||
@@ -2418,13 +2419,22 @@ Public Class Timbrado
|
||||
End If
|
||||
|
||||
If ObjCFDITimbre.Comprobante.TipoComprobante = "T" Then
|
||||
Dim ObjInv As New ClsInventarios()
|
||||
If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then
|
||||
Dim objGrales As New ClsGenerales
|
||||
If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC, "4.0") Then
|
||||
Retorno = ""
|
||||
Else
|
||||
Retorno = "Error"
|
||||
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
|
||||
|
||||
'Pendiente. Ruta guardar archivos
|
||||
@@ -2437,8 +2447,6 @@ Public Class Timbrado
|
||||
Else
|
||||
Retorno = "No se pudo timbrar ante el SAT. UUID no generado."
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
|
||||
If Not String.IsNullOrEmpty(resultadoTimbre.Detalle) Then
|
||||
@@ -2447,13 +2455,16 @@ Public Class Timbrado
|
||||
|
||||
If Resultados.Count > 0 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"
|
||||
MensajeErrorCFDI = $"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")} no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
||||
Else
|
||||
Dim sbMsg As New StringBuilder
|
||||
Dim sbMsgLog As New StringBuilder
|
||||
For Each msg In Resultados
|
||||
sbMsg.AppendFormat("{0}.<br/>", msg("Value"))
|
||||
sbMsgLog.AppendFormat("{0}.<br/>", msg("Value"))
|
||||
Next
|
||||
sbMsgLog.ToString.GuardaLog()
|
||||
Retorno = sbMsg.ToString()
|
||||
MensajeErrorCFDI = Retorno
|
||||
End If
|
||||
|
||||
Reference in New Issue
Block a user