Estoy implementando un sistema para ello
Con datos de la factura se debe crear un archivo xml
- Code: Select all Expand view
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<facturaComputarizadaCompraVenta xsi:noNamespaceSchemaLocation="facturaComputarizadaCompraVenta.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<cabecera>
<nitEmisor>1003579028</nitEmisor>
<razonSocialEmisor>Carlos Loza</razonSocialEmisor>
<municipio>La Paz</municipio>
<telefono>78595684</telefono>
<numeroFactura>1</numeroFactura>
<cuf>44AAEC00DBD34C53C3E2CCE1A3FA7AF1E2A08606A667A75AC82F24C74</cuf>
<cufd>BQUE+QytqQUDBKVUFOSVRPQkxVRFZNVFVJBMDAwMDAwM</cufd>
<codigoSucursal>0</codigoSucursal>
<direccion>AV. JORGE LOPEZ #123</direccion>
<codigoPuntoVenta xsi:nil="true"/>
<fechaEmision>2021-10-06T16:03:48.675</fechaEmision>
<nombreRazonSocial>Mi razon social</nombreRazonSocial>
<codigoTipoDocumentoIdentidad>1</codigoTipoDocumentoIdentidad>
<numeroDocumento>5115889</numeroDocumento>
<complemento xsi:nil="true"/>
<codigoCliente>51158891</codigoCliente>
<codigoMetodoPago>1</codigoMetodoPago>
<numeroTarjeta xsi:nil="true"/>
<montoTotal>99</montoTotal>
<montoTotalSujetoIva>99</montoTotalSujetoIva>
<codigoMoneda>1</codigoMoneda>
<tipoCambio>1</tipoCambio>
<montoTotalMoneda>99</montoTotalMoneda>
<montoGiftCard xsi:nil="true"/>
<descuentoAdicional>1</descuentoAdicional>
<codigoExcepcion xsi:nil="true"/>
<cafc xsi:nil="true"/>
<leyenda>Ley N° 453: Tienes derecho a recibir información sobre las características y contenidos de los
servicios que utilices.
</leyenda>
<usuario>pperez</usuario>
<codigoDocumentoSector>1</codigoDocumentoSector>
</cabecera>
<detalle>
<actividadEconomica>451010</actividadEconomica>
<codigoProductoSin>49111</codigoProductoSin>
<codigoProducto>JN-131231</codigoProducto>
<descripcion>MI PRODUCTO O SERVICIO</descripcion>
<cantidad>1</cantidad>
<unidadMedida>1</unidadMedida>
<precioUnitario>100</precioUnitario>
<montoDescuento>0</montoDescuento>
<subTotal>100</subTotal>
<numeroSerie>124548</numeroSerie>
<numeroImei xsi:nil="true"/>
</detalle>
</facturaComputarizadaCompraVenta>
En el foro en encontrado un código de Rafa Carmona
- Code: Select all Expand view
#include "FiveWin.ch"
*
Function Main()
Local oFacturaEmitidas,oFactura
oFacturaEmitidas := SuministroLRFacturasEmitidas():New()
oFacturaEmitidas:oCabecera:oTitular:NombreRazon := "La razon social"
oFacturaEmitidas:oCabecera:oTitular:NIF := "A0101010101"
while TengoFacturas
oFactura := oFactura():New()
oFacturaEmitida := LRfacturasEmitidasType():New()
with object ( oFacturaEmitida )
:PeriodoImpositivo:Ejercicio := 2017
:PeriodoImpositivo:Periodo := "01"
:IDFactura:NIF := "AAAAAAAA"
:IDFactura:NumSerieFacturaEmisor := "01"
:IDFactura:FechaExpedicionFacturaEmisor := date()
:FacturaExpedida:DescripcionOperacion := "Compras de materiales"
:FacturaExpedida:DatosInmueble:SituacionInmueble := 1
:FacturaExpedida:DatosInmueble:ReferenciaCatastral := "ASDFGHJKLUYTREWQW"
:FacturaExpedida:Contraparte:NombreRazon := "ASDFGHJKL"
:FacturaExpedida:Contraparte:NIFRepresentante := "90001376F"
:FacturaExpedida:Contraparte:NIF := "70031376F"
oFacturaRectificada := IDFacturaARType():New( )
oFacturaRectificada:NumSerieFacturaEmisor := "X"
oFacturaRectificada:FechaExpedicionFacturaEmisor := date()
:FacturaExpedida:AddFacturaRectificada( oFacturaRectificada )
end with
oLibroFacEmitidas := SuministroLRFacturasEmitidas():New()
with object ( oLibroFacEmitidas )
:Cabecera:Titular:NombreRazon := "RAFA & COMPANY"
:Cabecera:Titular:NIFRepresentante := "AAAA"
:Cabecera:Titular:NIF := "12312312J"
:add( oFacturaEmitida )
:WriteXML()
:WriteXMLFile( hb_dirbase()+"\ssi.xml" )
end with
oFacturaEmitidas:Add( oFactura )
end while
if oFacturaEmitidas:SendSoap()
? "Ey, todo bien"
else
? "Analizar respuesta" , oFacturaEmitidas:oResponse
endif
RETURN nil
*
CLASS SuministroLRFacturasEmitidas FROM ResponseSoap
DATA Operacion INIT "siiLR:SuministroLRFacturasEmitidas"
DATA oCabecera
DATA aoRegistroLRFacturasEmitidas
METHOD New() CONSTRUCTOR
METHOD Add( oRegistroLRFacturasEmitidas ) INLINE aadd(::aoRegistroLRFacturasEmitidas, oRegistroLRFacturasEmitidas )
METHOD WriteXML( pNode, NameSpace )
END CLASS
METHOD New() CLASS SuministroInformacion
::oCabecera := Cabecera():New()
::aoRegistroLRFacturasEmitidas := {}
RETURN Self
METHOD WriteXML( pNode, NameSpace ) CLASS SuministroInformacion
Local oFactura, pList
if !empty( NameSpace )
::NameSpace := NameSpace
endif
pNode := ::CreateXML( )
::oCabecera:WriteXML( pNode )
if !empty( ::aoRegistroLRFacturasEmitidas )
for each oFactura in ::aoRegistroLRFacturasEmitidas
pList = mxmlNewElement( pNode, ::NameSpace + "RegistroLRFacturasEmitidas" )
oFactura:WriteXML( pList, ::NameSpace )
next
endif
RETURN NIL
*
CLASS Cabecera
DATA IDVersionSii INI "0.4"
DATA oTitular
DATA TipoComunicacion INIT "A0" // Enum A0, A1, A4
METHOD New() CONSTRUCTOR
METHOD WriteXML( pNode, NameSpace )
END CLASS
METHOD New() CLASS Cabecera
::oTitular := PersonaFisicaJuridicaESType():New()
RETURN Self
METHOD WriteXML( pNode, NameSpace ) CLASS Cabecera
Local pParent
pParent = mxmlNewElement( pNode, NameSpace + "Cabecera" )
SetNodeValue( pParent , NameSpace + "IDVersionSii", ::IDVersionSii )
SetNodeValue( pParent , NameSpace + "TipoComunicacion", ::TipoComunicacion )
::oTitular:WriteXML( pParent, NameSpace )
RETURN NIL
*
CLASS PersonaFisicaJuridicaESType
DATA NombreRazon
DATA NIFRepresentante // Optional
DATA NIF
METHOD New() CONSTRUCTOR
METHOD WriteXML( pNode, NameSpace )
END CLASS
METHOD New() CLASS PersonaFisicaJuridicaESType
RETURN Self
*
METHOD WriteXML( pNode, NameSpace ) CLASS PersonaFisicaJuridicaESType
Local pParent
pParent = mxmlNewElement( pNode, NameSpace + "Titular" )
SetNodeValue( pParent , NameSpace + "NombreRazon", ::NombreRazon )
SetNodeValue( pParent , NameSpace + "NIF", ::NIF )
if !empty( ::NIFRepresentante )
SetNodeValue( pParent , NameSpace + "NIFRepresentante", ::NIFRepresentante )
endif
RETURN NIL
function SetNodeValue( pNode , cKey, uValue )
Local hTree
if uValue != NIL
hTree := mxmlNewElement( pNode, cKey )
mxmlNewText( hTree, 0, cValtoChar( uValue ) )
endif
return hTree
Me salen éstos errores
- Code: Select all Expand view
Error: Unresolved external '_HB_FUN_OFACTURA' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Error: Unresolved external '_HB_FUN_LRFACTURASEMITIDASTYPE' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Error: Unresolved external '_HB_FUN_IDFACTURAARTYPE' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Error: Unresolved external '_HB_FUN_RESPONSESOAP' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Error: Unresolved external '_HB_FUN_SUMINISTROLRFACTURASEMITIDAS_NEW' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Error: Unresolved external '_HB_FUN_SUMINISTROLRFACTURASEMITIDAS_WRITEXML' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Error: Unresolved external '_HB_FUN_MXMLNEWELEMENT' referenced from D:\SISTEMAS\ACRSOFT\OK\OBJ\ACR.OBJ
Gracias por la ayuda