AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Post Reply
User avatar
CARLOS ATUNCAR
Posts: 188
Joined: Thu Sep 17, 2015 11:40 pm
Location: Chincha - Peru
Been thanked: 1 time
Contact:

AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Post by CARLOS ATUNCAR »

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>
Carlos Atuncar - CaSoftSystem
Chincha - Perú
carlosalbatun@gmail.com
jbrita
Posts: 507
Joined: Mon Jan 16, 2006 3:42 pm

Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Post by jbrita »

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
hmpaquito
Posts: 1482
Joined: Thu Oct 30, 2008 2:37 pm

Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Post by hmpaquito »

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
User avatar
lubin
Posts: 451
Joined: Fri Dec 09, 2005 12:41 am
Location: Lima, Peru
Contact:

Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Post by lubin »

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
User avatar
jacgsoft
Posts: 106
Joined: Fri Nov 24, 2006 9:03 pm
Location: Lima - Peru

Re: AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Post by jacgsoft »

#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)
User avatar
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 )

Post by CARLOS ATUNCAR »

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)
Carlos Atuncar - CaSoftSystem
Chincha - Perú
carlosalbatun@gmail.com
User avatar
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 )

Post by CARLOS ATUNCAR »

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
Carlos Atuncar - CaSoftSystem
Chincha - Perú
carlosalbatun@gmail.com
Post Reply