Page 1 of 1

AYUDA PARA LEER XML DE FACTURA ELECTRONICA ( SOLUCIONADO )

Posted: Sun Mar 14, 2021 3:18 am
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>

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

Posted: Wed Mar 17, 2021 3:36 pm
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

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

Posted: Wed Mar 17, 2021 3:51 pm
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

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

Posted: Fri Mar 19, 2021 2:27 am
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

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

Posted: Sat Mar 27, 2021 3:08 am
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)

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

Posted: Thu Apr 01, 2021 3:34 am
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)

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

Posted: Thu Apr 01, 2021 3:37 am
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