Saludos,
Necesito leer los datos de un xml de factura electronica e intentado con los ejemplos q he encontrado pero no he logrado en su totalidad
este es el archivo xml
<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
<ext:UBLExtensions>
<ext:UBLExtension>
<ext:ExtensionContent><ds:Signature Id="SignatureSP"><ds:SignedInfo><ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><ds:Reference URI=""><ds:Transforms><ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></ds:Transforms><ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><ds:DigestValue>xh/m/3wVPDnhU5JOYAoSnWTOMe0=</ds:DigestValue></ds:Reference></ds:SignedInfo><ds:SignatureValue>MPY7AcpWsLeQzz59sYwEODkqJA+NQmPAnUMpdi5O1FZMq2wFDF0cv+2bdHqwJtqv1Rb7KiyOocoM7RpKQqH2JdMN1zNfxYx/z4vkw2Ta5Hj78EV5F9eVJhgCFhho2z4w0GmjO1opnUk6W6Uj30yh5OXfKdHsqiojk1F66dCQHXS/iWjnzsTcPx615ltoTItzPnQ7AaENuumc6il+SHro9ju2Izdf780DVXf1QwKOAtaVJwdmpBd1P1WjMBKdgHEdl6pI0pO6p7D+jujz+DC03UlkznGL8z/UCWAvF3yVNJ/vAjE9JLQV0ZPGHGD1i34PlaO/WCPS42n5KpZWMiArAg==</ds:SignatureValue><ds:KeyInfo><ds:X509Data><ds:X509Certificate>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</ds:X509Certificate></ds:X509Data></ds:KeyInfo></ds:Signature></ext:ExtensionContent>
</ext:UBLExtension>
</ext:UBLExtensions>
<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>2.0</cbc:CustomizationID>
<cbc:ID>F001-30</cbc:ID>
<cbc:IssueDate>2021-02-18</cbc:IssueDate>
<cbc:IssueTime>00:00:00</cbc:IssueTime>
<cbc:DueDate>2021-02-18</cbc:DueDate>
<cbc:InvoiceTypeCode listID="0101">01</cbc:InvoiceTypeCode>
<cbc:Note languageLocaleID="1000"><![CDATA[TRESCIENTOS OCHENTA CON 20/100 SOLES]]></cbc:Note>
<cbc:DocumentCurrencyCode>PEN</cbc:DocumentCurrencyCode>
<cac:Signature>
<cbc:ID>20606177896</cbc:ID>
<cbc:Note><![CDATA[LAFARYAT II E.I.R.L.]]></cbc:Note>
<cac:SignatoryParty>
<cac:PartyIdentification>
<cbc:ID>20606177896</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name><![CDATA[LAFARYAT II E.I.R.L.]]></cbc:Name>
</cac:PartyName>
</cac:SignatoryParty>
<cac:DigitalSignatureAttachment>
<cac:ExternalReference>
<cbc:URI>#SIGN-EMPRESA</cbc:URI>
</cac:ExternalReference>
</cac:DigitalSignatureAttachment>
</cac:Signature>
<cac:AccountingSupplierParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20606177896</cbc:ID>
</cac:PartyIdentification>
<cac:PartyName>
<cbc:Name><![CDATA[LAFARYAT II E.I.R.L.]]></cbc:Name>
</cac:PartyName>
<cac:PartyLegalEntity>
<cbc:RegistrationName><![CDATA[LAFARYAT II E.I.R.L.]]></cbc:RegistrationName>
<cac:RegistrationAddress>
<cbc:ID>110201</cbc:ID>
<cbc:AddressTypeCode>0000</cbc:AddressTypeCode>
<cbc:CitySubdivisionName>NONE</cbc:CitySubdivisionName>
<cbc:CityName>CHINCHA</cbc:CityName>
<cbc:CountrySubentity>ICA</cbc:CountrySubentity>
<cbc:District>CHINCHA ALTA</cbc:District>
<cac:AddressLine>
<cbc:Line><![CDATA[AV. ALVA MAURTUA NRO. 598 OTR. AVENIDA ICA - CHINCHA - CHINCHA ALTA]]></cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20451640047</cbc:ID>
</cac:PartyIdentification>
<cac:PartyLegalEntity>
<cbc:RegistrationName><![CDATA[MEDICOS & FISIOTERAPEUTAS FISIOAPAIN E.I.R.L]]></cbc:RegistrationName>
<cac:RegistrationAddress>
<cac:AddressLine>
<cbc:Line><![CDATA[CAL.DANIEL OLAECHEA NRO. 260 DPTO. 504 URB. HUASCAR (CRUCE CON AV. INCA RIPAC)]]></cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">58</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PEN">322.2</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PEN">58</cbc:TaxAmount>
<cac:TaxCategory>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal></cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:LineExtensionAmount currencyID="PEN">322.2</cbc:LineExtensionAmount>
<cbc:TaxInclusiveAmount currencyID="PEN">380.2</cbc:TaxInclusiveAmount>
<cbc:PayableAmount currencyID="PEN">380.2</cbc:PayableAmount>
</cac:LegalMonetaryTotal><cac:InvoiceLine>
<cbc:ID>1</cbc:ID>
<cbc:InvoicedQuantity unitCode="NIU">5.00</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">80.51</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">19.00000</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">14.49</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PEN">80.51</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PEN">14.49</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:Percent>18.00</cbc:Percent>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description><![CDATA[FLORA BALANCE 2000 MILLONES/5ML SUSP. ORAL CJA X 10 FCOS]]></cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>00076</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">16.10000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine><cac:InvoiceLine>
<cbc:ID>2</cbc:ID>
<cbc:InvoicedQuantity unitCode="NIU">2.00</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">21.36</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">12.60000</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">3.84</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PEN">21.36</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PEN">3.84</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:Percent>18.00</cbc:Percent>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description><![CDATA[LEVOGLOB 500MG CAJAX10 TABLETA RECUBIERTA]]></cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>00128</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">10.68000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine><cac:InvoiceLine>
<cbc:ID>3</cbc:ID>
<cbc:InvoicedQuantity unitCode="NIU">10.00</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">118.64</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">14.00000</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">21.36</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PEN">118.64</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PEN">21.36</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:Percent>18.00</cbc:Percent>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description><![CDATA[AZBACT 500MG CAJAX10 TABLETAS RECUBIERTAS]]></cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>00129</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">11.86000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine><cac:InvoiceLine>
<cbc:ID>4</cbc:ID>
<cbc:InvoicedQuantity unitCode="NIU">2.00</cbc:InvoicedQuantity>
<cbc:LineExtensionAmount currencyID="PEN">101.69</cbc:LineExtensionAmount>
<cac:PricingReference>
<cac:AlternativeConditionPrice>
<cbc:PriceAmount currencyID="PEN">60.00000</cbc:PriceAmount>
<cbc:PriceTypeCode>01</cbc:PriceTypeCode>
</cac:AlternativeConditionPrice>
</cac:PricingReference>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="PEN">18.31</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="PEN">101.69</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="PEN">18.31</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:Percent>18.00</cbc:Percent>
<cbc:TaxExemptionReasonCode>10</cbc:TaxExemptionReasonCode>
<cac:TaxScheme>
<cbc:ID>1000</cbc:ID>
<cbc:Name>IGV</cbc:Name>
<cbc:TaxTypeCode>VAT</cbc:TaxTypeCode>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>
<cac:Item>
<cbc:Description><![CDATA[LEVOFLOXACINO 500MG CAJA X 100 TAB RECUBIERTAS]]></cbc:Description>
<cac:SellersItemIdentification>
<cbc:ID>00288</cbc:ID>
</cac:SellersItemIdentification>
</cac:Item>
<cac:Price>
<cbc:PriceAmount currencyID="PEN">50.85000</cbc:PriceAmount>
</cac:Price>
</cac:InvoiceLine></Invoice>
Cuando necesito leer el dato del RUC del cliente de esta parte no encuentro como diferenciar ya que <cac:PartyIdentification> se encuenta en 3 partes
<cac:AccountingCustomerParty>
<cac:Party>
<cac:PartyIdentification>
<cbc:ID schemeID="6">20451640047</cbc:ID>
</cac:PartyIdentification>
<cac:PartyLegalEntity>
<cbc:RegistrationName><![CDATA[MEDICOS & FISIOTERAPEUTAS FISIOAPAIN E.I.R.L]]></cbc:RegistrationName>
<cac:RegistrationAddress>
<cac:AddressLine>
<cbc:Line><![CDATA[CAL.DANIEL OLAECHEA NRO. 260 DPTO. 504 URB. HUASCAR (CRUCE CON AV. INCA RIPAC)]]></cbc:Line>
</cac:AddressLine>
<cac:Country>
<cbc:IdentificationCode>PE</cbc:IdentificationCode>
</cac:Country>
</cac:RegistrationAddress>
</cac:PartyLegalEntity>
</cac:Party>
</cac:AccountingCustomerParty>
AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
- CARLOS ATUNCAR
- Posts: 188
- Joined: Thu Sep 17, 2015 11:40 pm
- Location: Chincha - Peru
- Been thanked: 1 time
- Contact:
Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
Hola... Prueba asi:
static function revisarnodo()
Local oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM")
Local lSuccess,oteste,xDestEmit,cXMLDestEmit
oXMLDoc:async := .f.
lSuccess := oXMLDoc:load( "D:\SYSTEMA\BUS\PRG\JOSE.xml" )
xDestEmit := oXMLDoc:getElementsByTagName( "cac:PartyIdentification" )
cXMLDestEmit := xDestEmit:Item(0):xml
msginfo(cXMLDestEmit )
return .t.
saludos
static function revisarnodo()
Local oXMLDoc := TOLEAUTO():New("Microsoft.XMLDOM")
Local lSuccess,oteste,xDestEmit,cXMLDestEmit
oXMLDoc:async := .f.
lSuccess := oXMLDoc:load( "D:\SYSTEMA\BUS\PRG\JOSE.xml" )
xDestEmit := oXMLDoc:getElementsByTagName( "cac:PartyIdentification" )
cXMLDestEmit := xDestEmit:Item(0):xml
msginfo(cXMLDestEmit )
return .t.
saludos
Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
Aunque no la he probado, porque uso una de Rafa Carmona, esta clase tiene muy buena pinta y siendo de Cristóbal, el certificado de funcionamiento va implícito
http://fivetechsupport.com/forums/viewt ... 17&t=37597
http://fivetechsupport.com/forums/viewt ... 17&t=37597
Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
Hola Carlos
Por casualidad podrías comentarnos como solucionaste el problema de la lectura del XML, quizas un ejemplo
Me parece que eres de Perú, quizás podemos ver algunos temas por aquí de Sunat
gracias
Lubin
Por casualidad podrías comentarnos como solucionaste el problema de la lectura del XML, quizas un ejemplo
Me parece que eres de Perú, quizás podemos ver algunos temas por aquí de Sunat
gracias
Lubin
Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
#include 'FiveWin.Ch'
Function Main()
Local _Xml_,Pos_1,_Txt_
_Xml_:='<cac:PartyIdentification>'+ ;
'<cbc:ID>20606177896</cbc:ID>'+ ;
'</cac:PartyIdentification>'
Pos_1:=HB_At('PartyIdentification',_Xml_)
_Txt_:=Subs(_Xml_,Pos_1,60)
Pos_1:=HB_At('ID>',_Txt_)
? 'Ruc -> '+Subs(_Txt_,Pos_1+3,11)
Return(Nil)
Function Main()
Local _Xml_,Pos_1,_Txt_
_Xml_:='<cac:PartyIdentification>'+ ;
'<cbc:ID>20606177896</cbc:ID>'+ ;
'</cac:PartyIdentification>'
Pos_1:=HB_At('PartyIdentification',_Xml_)
_Txt_:=Subs(_Xml_,Pos_1,60)
Pos_1:=HB_At('ID>',_Txt_)
? 'Ruc -> '+Subs(_Txt_,Pos_1+3,11)
Return(Nil)
- CARLOS ATUNCAR
- Posts: 188
- Joined: Thu Sep 17, 2015 11:40 pm
- Location: Chincha - Peru
- Been thanked: 1 time
- Contact:
Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
Asi lo solucione para cargar registro de ventas desde lo xlm
Extraigo la informacion con la funcion Extrae()
cFileXml := op:temp+"xml\"+aDir[a][1]
cXml:=MEMOREAD( cFileXml ) && lee xml
tmp->( DbAppend())
tmp->voucher := a
tmp->orden := "1"
tmp->fecha := Extrae("cbc:IssueDate",,.F.,cXml)
tmp->vence := Extrae("cbc:IssueDate",,.F.,cXml)
Static Function Extrae(cProc,cNodo,lNodo,cXml )
Local InicioNodo := "<"+cProc+">"
Local FinalNodo := "</"+cProc+">"
Local nPosIni := At(InicioNodo,cXml)
Local nPosFim := At(FinalNodo,cXml)
Local cRet := '0'
local oXmlDoc,oNode,cText
local xmlNode,cPath
If nPosIni==0 .or. nPosFim==0
Return cRet // aqui que ela aborta... retorna '0'
Endif
If cNodo != NIL
cText := Substr(cXml,nPosIni+Len(InicioNodo),nPosFim-nPosIni-Len(FinalNodo)+1)
nXml := '<?xml version="1.0" encoding="UTF-8"?>'+CRLF
nXml += cText
Else
nXml := cXml
cNodo:= cProc
EndIf
oXmlDoc := TXmlDocument():new( nXml )
IF oXmlDoc:nStatus != HBXML_STATUS_OK
RETURN cRet
ENDIF
oNode := oXmlDoc:findfirst(cNodo)
If oNode != Nil
If lNodo
xmlNode := oXmlDoc:oRoot:oChild
WHILE xmlNode != NIL
cPath := xmlNode:Path()
If xmlNode:nType=5
cRet :=xmlNode:cData
Exit
EndIf
xmlNode := xmlNode:NextInTree()
ENDDO
Else
cRet := oNode:cData
EndIf
Endif
Return(cRet)
Extraigo la informacion con la funcion Extrae()
cFileXml := op:temp+"xml\"+aDir[a][1]
cXml:=MEMOREAD( cFileXml ) && lee xml
tmp->( DbAppend())
tmp->voucher := a
tmp->orden := "1"
tmp->fecha := Extrae("cbc:IssueDate",,.F.,cXml)
tmp->vence := Extrae("cbc:IssueDate",,.F.,cXml)
Static Function Extrae(cProc,cNodo,lNodo,cXml )
Local InicioNodo := "<"+cProc+">"
Local FinalNodo := "</"+cProc+">"
Local nPosIni := At(InicioNodo,cXml)
Local nPosFim := At(FinalNodo,cXml)
Local cRet := '0'
local oXmlDoc,oNode,cText
local xmlNode,cPath
If nPosIni==0 .or. nPosFim==0
Return cRet // aqui que ela aborta... retorna '0'
Endif
If cNodo != NIL
cText := Substr(cXml,nPosIni+Len(InicioNodo),nPosFim-nPosIni-Len(FinalNodo)+1)
nXml := '<?xml version="1.0" encoding="UTF-8"?>'+CRLF
nXml += cText
Else
nXml := cXml
cNodo:= cProc
EndIf
oXmlDoc := TXmlDocument():new( nXml )
IF oXmlDoc:nStatus != HBXML_STATUS_OK
RETURN cRet
ENDIF
oNode := oXmlDoc:findfirst(cNodo)
If oNode != Nil
If lNodo
xmlNode := oXmlDoc:oRoot:oChild
WHILE xmlNode != NIL
cPath := xmlNode:Path()
If xmlNode:nType=5
cRet :=xmlNode:cData
Exit
EndIf
xmlNode := xmlNode:NextInTree()
ENDDO
Else
cRet := oNode:cData
EndIf
Endif
Return(cRet)
- CARLOS ATUNCAR
- Posts: 188
- Joined: Thu Sep 17, 2015 11:40 pm
- Location: Chincha - Peru
- Been thanked: 1 time
- Contact:
Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )
lubin wrote:Hola Carlos
Por casualidad podrías comentarnos como solucionaste el problema de la lectura del XML, quizas un ejemplo
Me parece que eres de Perú, quizás podemos ver algunos temas por aquí de Sunat
gracias
Lubin
claro me puedes contactar por whastapp 956993597