-- mejora en impresión pdf de pagos
This commit is contained in:
@@ -8802,9 +8802,17 @@ Public Class ClsPaginas
|
|||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#Region "PDF PAGOS"
|
#Region "PDF PAGOS"
|
||||||
|
|
||||||
|
Private Function ValorXML(n As XmlNode, Campo As String, Optional Retorno As String = "") As String
|
||||||
|
Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0)
|
||||||
|
If o Is Nothing Then
|
||||||
|
Return Retorno
|
||||||
|
Else
|
||||||
|
Return o.Value
|
||||||
|
End If
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Sub PDFReciboDePagos(CveVenta As Integer, CveIE As Integer, CveComplementoPago As Integer, Optional imprimir As Boolean = True)
|
Public Sub PDFReciboDePagos(CveVenta As Integer, CveIE As Integer, CveComplementoPago As Integer, Optional imprimir As Boolean = True)
|
||||||
|
|
||||||
|
|
||||||
Dim ObjBancos As New ClsBancos
|
Dim ObjBancos As New ClsBancos
|
||||||
Dim ObjClientes As New ClsClientes
|
Dim ObjClientes As New ClsClientes
|
||||||
Dim params As New List(Of ReportParameter)
|
Dim params As New List(Of ReportParameter)
|
||||||
@@ -8855,6 +8863,7 @@ Public Class ClsPaginas
|
|||||||
DTConceptosPagoRelacionado.Columns.Add("MetodoDePagoDR", GetType(String))
|
DTConceptosPagoRelacionado.Columns.Add("MetodoDePagoDR", GetType(String))
|
||||||
DTConceptosPagoRelacionado.Columns.Add("MonedaDR", GetType(String))
|
DTConceptosPagoRelacionado.Columns.Add("MonedaDR", GetType(String))
|
||||||
DTConceptosPagoRelacionado.Columns.Add("TipoCambioDR", GetType(String))
|
DTConceptosPagoRelacionado.Columns.Add("TipoCambioDR", GetType(String))
|
||||||
|
DTConceptosPagoRelacionado.Columns.Add("ObjetoImpDR", GetType(String))
|
||||||
|
|
||||||
|
|
||||||
If ObjBancos.GetComplementoPagos(CveComplementoPago, CveIE, CveVenta, UsuarioActual.CveEmpresa) Then
|
If ObjBancos.GetComplementoPagos(CveComplementoPago, CveIE, CveVenta, UsuarioActual.CveEmpresa) Then
|
||||||
@@ -8901,13 +8910,29 @@ Public Class ClsPaginas
|
|||||||
|
|
||||||
Dim ImagenCBB As String = $"file://{Ruta}CBB\{Serie}-{Folio}.jpg"
|
Dim ImagenCBB As String = $"file://{Ruta}CBB\{Serie}-{Folio}.jpg"
|
||||||
|
|
||||||
|
|
||||||
If File.Exists(PathXML) Then
|
If File.Exists(PathXML) Then
|
||||||
Dim XmlDoc As New System.Xml.XmlDocument
|
Dim XmlDoc As New System.Xml.XmlDocument
|
||||||
XmlDoc.Load(PathXML)
|
XmlDoc.Load(PathXML)
|
||||||
|
Dim Version = ValorXML(XmlDoc.DocumentElement, "version")
|
||||||
|
Dim namespaces As New XmlNamespaceManager(XmlDoc.NameTable)
|
||||||
|
Dim Prefijo As String = If(XmlDoc.DocumentElement.Prefix = "", "cfd", XmlDoc.DocumentElement.Prefix)
|
||||||
|
Dim cfdVer As String = ""
|
||||||
|
|
||||||
Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento")
|
Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento")
|
||||||
Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos")
|
Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos")
|
||||||
|
|
||||||
|
If Version = "3.3" Then
|
||||||
|
cfdVer = "http://www.sat.gob.mx/cfd/3"
|
||||||
|
Else ' se considera que es la version 4.0
|
||||||
|
cfdVer = "http://www.sat.gob.mx/cfd/4"
|
||||||
|
End If
|
||||||
|
|
||||||
|
namespaces.AddNamespace(Prefijo, cfdVer)
|
||||||
|
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
|
||||||
|
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal")
|
||||||
|
namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20")
|
||||||
|
|
||||||
'Datos Fiscales
|
'Datos Fiscales
|
||||||
If Not IsNothing(validaElemento) Then
|
If Not IsNothing(validaElemento) Then
|
||||||
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
|
For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1
|
||||||
@@ -8924,46 +8949,60 @@ Public Class ClsPaginas
|
|||||||
'Pago
|
'Pago
|
||||||
If Not IsNothing(validaElemento) Then
|
If Not IsNothing(validaElemento) Then
|
||||||
Dim PagosChild = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Cast(Of XmlNode).Where(Function(a) a.LocalName.Equals("Pagos", StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault()
|
Dim PagosChild = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Cast(Of XmlNode).Where(Function(a) a.LocalName.Equals("Pagos", StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault()
|
||||||
|
Dim nodePagos As XmlNodeList
|
||||||
|
If Version = "3.3" Then
|
||||||
|
nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/pago10:Pago", Prefijo), namespaces)
|
||||||
|
Else
|
||||||
|
nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/pago20:Pagos/pago20:Pago", Prefijo), namespaces)
|
||||||
|
End If
|
||||||
|
|
||||||
For Each Pagos As XmlNode In PagosChild.ChildNodes
|
For Each Pagos As XmlNode In nodePagos
|
||||||
Dim Dr As DataRow = DTConceptosPago.NewRow
|
If Version = "4.0" AndAlso Pagos.Name = "pago20:Totales" Then
|
||||||
|
Dim a As String = "a"
|
||||||
If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = ""
|
|
||||||
If Not Pagos.Attributes("TipoCambioP") Is Nothing Then Dr("TipoCambioP") = Pagos.Attributes("TipoCambioP").Value Else Dr("TipoCambioP") = ""
|
|
||||||
|
|
||||||
If Not Pagos.Attributes("RfcEmisorCtaOrd") Is Nothing Then
|
|
||||||
Dr("RfcEmisorCtaOrd") = Pagos.Attributes("RfcEmisorCtaOrd").Value
|
|
||||||
RFCOrdenante = Pagos.Attributes("RfcEmisorCtaOrd").Value
|
|
||||||
Else
|
Else
|
||||||
Dr("RfcEmisorCtaOrd") = ""
|
|
||||||
|
Dim Dr As DataRow = DTConceptosPago.NewRow
|
||||||
|
|
||||||
|
If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = ""
|
||||||
|
If Not Pagos.Attributes("TipoCambioP") Is Nothing Then Dr("TipoCambioP") = Pagos.Attributes("TipoCambioP").Value Else Dr("TipoCambioP") = ""
|
||||||
|
|
||||||
|
If Not Pagos.Attributes("RfcEmisorCtaOrd") Is Nothing Then
|
||||||
|
Dr("RfcEmisorCtaOrd") = Pagos.Attributes("RfcEmisorCtaOrd").Value
|
||||||
|
RFCOrdenante = Pagos.Attributes("RfcEmisorCtaOrd").Value
|
||||||
|
Else
|
||||||
|
Dr("RfcEmisorCtaOrd") = ""
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dr("Monto") = Pagos.Attributes("Monto").Value
|
||||||
|
Dr("MonedaP") = Pagos.Attributes("MonedaP").Value
|
||||||
|
Dr("FormaDePagoP") = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPagoSAT", $"ClaveFormaPagoSAT= '{Pagos.Attributes("FormaDePagoP").Value}'")
|
||||||
|
Dr("FechaPago") = Pagos.Attributes("FechaPago").Value
|
||||||
|
|
||||||
|
FechaRecibo = Pagos.Attributes("FechaPago").Value
|
||||||
|
TotalLetra = Pagos.Attributes("Monto").Value.ToString.ToDouble.Texto2Letras(CveMoneda)
|
||||||
|
|
||||||
|
DTConceptosPago.Rows.Add(Dr)
|
||||||
|
|
||||||
|
For Each Relacionado As XmlNode In Pagos.SelectNodes("//pago20:DoctoRelacionado", namespaces)
|
||||||
|
Dim DrRelacionado As DataRow = DTConceptosPagoRelacionado.NewRow
|
||||||
|
|
||||||
|
If Not Relacionado.Attributes("Folio") Is Nothing Then DrRelacionado("Folio") = Relacionado.Attributes("Folio").Value Else DrRelacionado("Folio") = ""
|
||||||
|
If Not Relacionado.Attributes("Serie") Is Nothing Then DrRelacionado("Serie") = Relacionado.Attributes("Serie").Value Else DrRelacionado("Serie") = ""
|
||||||
|
If Not Relacionado.Attributes("TipoCambioDR") Is Nothing Then DrRelacionado("TipoCambioDR") = Relacionado.Attributes("TipoCambioDR").Value Else DrRelacionado("TipoCambioDR") = ""
|
||||||
|
|
||||||
|
DrRelacionado("IdDocumento") = Relacionado.Attributes("IdDocumento").Value
|
||||||
|
DrRelacionado("ImpPagado") = Relacionado.Attributes("ImpPagado").Value
|
||||||
|
DrRelacionado("ImpSaldoAnt") = Relacionado.Attributes("ImpSaldoAnt").Value
|
||||||
|
DrRelacionado("NumParcialidad") = Relacionado.Attributes("NumParcialidad").Value
|
||||||
|
If Version = "3.3" Then DrRelacionado("MetodoDePagoDR") = Relacionado.Attributes("MetodoDePagoDR").Value
|
||||||
|
If Version = "4.0" Then DrRelacionado("ObjetoImpDR") = Relacionado.Attributes("ObjetoImpDR").Value
|
||||||
|
|
||||||
|
DrRelacionado("MonedaDR") = Relacionado.Attributes("MonedaDR").Value
|
||||||
|
|
||||||
|
DTConceptosPagoRelacionado.Rows.Add(DrRelacionado)
|
||||||
|
Next
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dr("Monto") = Pagos.Attributes("Monto").Value
|
|
||||||
Dr("MonedaP") = Pagos.Attributes("MonedaP").Value
|
|
||||||
Dr("FormaDePagoP") = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPagoSAT", $"ClaveFormaPagoSAT= '{Pagos.Attributes("FormaDePagoP").Value}'")
|
|
||||||
Dr("FechaPago") = Pagos.Attributes("FechaPago").Value
|
|
||||||
|
|
||||||
FechaRecibo = Pagos.Attributes("FechaPago").Value
|
|
||||||
TotalLetra = Pagos.Attributes("Monto").Value.ToString.ToDouble.Texto2Letras(CveMoneda)
|
|
||||||
|
|
||||||
DTConceptosPago.Rows.Add(Dr)
|
|
||||||
|
|
||||||
For Each Relacionado As XmlNode In Pagos.ChildNodes
|
|
||||||
Dim DrRelacionado As DataRow = DTConceptosPagoRelacionado.NewRow
|
|
||||||
|
|
||||||
If Not Relacionado.Attributes("Folio") Is Nothing Then DrRelacionado("Folio") = Relacionado.Attributes("Folio").Value Else DrRelacionado("Folio") = ""
|
|
||||||
If Not Relacionado.Attributes("Serie") Is Nothing Then DrRelacionado("Serie") = Relacionado.Attributes("Serie").Value Else DrRelacionado("Serie") = ""
|
|
||||||
If Not Relacionado.Attributes("TipoCambioDR") Is Nothing Then DrRelacionado("TipoCambioDR") = Relacionado.Attributes("TipoCambioDR").Value Else DrRelacionado("TipoCambioDR") = ""
|
|
||||||
|
|
||||||
DrRelacionado("IdDocumento") = Relacionado.Attributes("IdDocumento").Value
|
|
||||||
DrRelacionado("ImpPagado") = Relacionado.Attributes("ImpPagado").Value
|
|
||||||
DrRelacionado("ImpSaldoAnt") = Relacionado.Attributes("ImpSaldoAnt").Value
|
|
||||||
DrRelacionado("NumParcialidad") = Relacionado.Attributes("NumParcialidad").Value
|
|
||||||
DrRelacionado("MetodoDePagoDR") = Relacionado.Attributes("MetodoDePagoDR").Value
|
|
||||||
DrRelacionado("MonedaDR") = Relacionado.Attributes("MonedaDR").Value
|
|
||||||
|
|
||||||
DTConceptosPagoRelacionado.Rows.Add(DrRelacionado)
|
|
||||||
Next
|
|
||||||
Next
|
Next
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|||||||
Reference in New Issue
Block a user