Page 1 of 1
Factura Electrónica / Fivewin (CHILE)
Posted: Thu Jul 24, 2014 7:40 pm
by checo176
Estimados
Alguien que tiene alguna experiencia con Factura Electrónica en Chile.
De ante mano muchas gracias
Saludos desde Santiago
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Thu Jul 24, 2014 8:21 pm
by Adolfo
Checo ...
Lejos la mejor opcion es contratar un servicio con algun Holder de Facturas electronicas, quienes que entregan un demonio que instalas en un pc, el revisa si hay o no algun archivo xml. Si lo encuentra te hace el proceso completo de envio ,validacion, hosting y notificacion al SII. Tu solo generas el xml con la info sacada de tu sistema.
Saludos
Adolfo
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Thu Jul 24, 2014 10:56 pm
by checo176
Adolfo:
Garcias por tu respuesta. Puede que tengas razón, ya que estuve revisando los requisitos del SII y son algo engorrosos. Ahora una consulta vital, cómo genero el archivo XML desde mi sistema? y sábes tu cuales son los datos que se deben extraer del sistema?
Saludos
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Fri Jul 25, 2014 1:24 pm
by Lautaro
Checo,
Depende con que empresa vayas a trabajar, cada una tiene un formato distinto para capturar la informacion.
Ademas que los precios y la forma de almacenamiento de los documentos electronicos depende del servicio contratado.
Tambien recordar que los facturadores electronicos tienen que cumplir obligaciones tales como el responder a los documentos recibidos y a contar de agosto, solo podran usar el iva de las facturas a las que se les haya dado la recepcion conforme de mercaderias o servicios, ya sea en forma manual, firmando la guia de despacho que se recibio o en forma electronica, mediante el envio del archivo de aceptacion al proveedor y es importante saber como opera el proveedor del servicio de facturacion electronica respecto de esto.
Tambien tienen la obligacion de enviar los libros de compra y venta al SII cada mes.
Si gustas podemos verlo por privado, comunicate a mi email : lautaro_punto_moreira_arroba_gmail.com ( sustituir el _punto_ por . y el _arroba_ por @ )
Saludos
Lautaro
Osorno
Chile
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Mon Jul 06, 2015 2:18 pm
by viceanto10
lautaro tiene la solucion para la facturacion en chile, pero no comparte nada ni vende, no se porque no lo hace si este foro es para ayudarnos..
saludos
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Mon Jul 06, 2015 3:23 pm
by Lautaro
Estimado Viceanto10
Efectivamente para mi empresa he desarrollado una solucion de factura electronica, la cual estoy impedido de vender o entregar por un asunto legal y comercial.
Creo que la mayoria aqui entiende mi situacion, y si revisas, dentro del foro si he respondido , quizas no con el detalle ( codigo listo para usar ), que algunos quisieran, pero si he entregado mi experiencia en el tema.
No recuerdo que nos hayamos puesto en contacto alguna vez para hablar sobre el tema.
Sobre el no comparte nada ni vende, solo te puedo decir que nuestro producto es comercial y puede integrarse en forma transparente con otras aplicaciones via traspaso de archivos y tiene un valor de arriendo mensual bastante economico y sin limite de numero de documentos emitidos y para los programadores que lo integran con su aplicacion tenemos un sistema de comisiones con el cual varios colegas, incluyendo un que tambien usa fivewin, estan bastante conformes.
Si deseas mas informacion en este mismo hilo esta mi correo para contacto, el que anoto aqui nuevamente : lautaro_punto_moreira_arroba_gmail.com ( sustituir el _punto_ por . y el _arroba_ por @ )
Tal como he respondido en alguna ocasion, si puedo ayudar lo hare, pero me veo limitado a poner ejemplos con codigo.
En lo tecnico lo unico externo a harbour y fivewin que usamos es la utilidades xmlsec que pueden encontrar en :
https://www.aleksey.com/xmlsec/
Saludos desde Osorno
Lautaro Moreira
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Mon Jul 06, 2015 3:37 pm
by viceanto10
lautaro, claro que nunca hemos hablado pero le he consultado a varios colegas y me dicen esto
que no compartes ni vende y eso de arriendo, es como amarrarte por siempre con alguien la idea es tener nuestro propio facturador.
gracias de todas manera.
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Tue Jul 07, 2015 1:35 pm
by thefull
Buenas
Me gustaría dar mi opinión al respecto sobre este tema, pues creo que es muy común en varios paises.
He participado en varias soluciones de distintos paises, uno desde cero y en otros colaborando y en otros simplementa aportando un trabajo inicial.
Entiendo perfectamente a Lautaro, ha realizado un trabajo, y ese trabajo consiste que otros no tengan que hacer practicamente nada,
en muy poco tiempo puedas tener tu sistema corriendo.
La ventaja, es que cualquier cambio de legislacion, y creerme que ocurre, prácticamente no deberias hacer mucho para adaptarte, y además no deberías ni
estar pendiente de ello.
Esta solución la usamos en México con Rene, y en Brasil con otra empresa y es la mejor opción si no quieres problemas.
Ahora para Portugal lo hicimos desde cero, y si no tienes tiempo, estar pendiente de cambios de legislación o en su caso, que el cliente te informe
que la agencia tributaria no le valida los XML, el tiempo a emplear puede ser considerable.
Ahora bien, considero que esto es una comunidad, que no vivimos del trabajo de otros compañeros, se podria crear un proyecto, que pueda contener
las diversas facturas electronicas y que cualquier pueda usarlo.
Por lo que he visto, hay varios compañeros de diversos paises que podrían colaborar en realizar la factura electronica, solo es cuestión de ponerse de acuerdo,
y crear un proyecto común, libre, y que pueda ser usado y/o comercializado por cualquiera.
Si quieres algo, hazlo, y compartelo. Claro que no siempre es posible, porque en la empresa que se trabaja no te permite hacerlo.
Para Chile no he realizado nada, pero supongo que no será muy diferente a otras soluciones de otros paises.
Saludos Cordiales
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Tue Jul 07, 2015 8:31 pm
by thefull
Buenas
Visto por encima, aparentemente no tiene demasiada complejidad, además , es similar en la manera de trabajar de Uruguay o Peru, que una base para
trabajar esta aquí mismo, a través de SOAP:
http://forums.fivetechsupport.com/viewt ... 23#p167823
En
https://github.com/niclabs/DTE teneis un trabajo realizado en Java, que además contiene todos los XSD de los esquemas para montar los XML.
También aquí, he encontrado info que podemos aprovechar para aprender que hacer.
http://lenguajedemaquinas.blogspot.com. ... ii_28.html
Mi consejo es que intenteis hacer una serie de clases similar a los esquemas XSD, de tal manera, que su mantenimiento sea muy sencilla a la hora de _, y
que montar los XML sea muy sencillo.
Info :
http://www.sii.cl/factura_electronica/autenticacion.pdf
Si tengo un poco de tiempo, os monto un par de ejemplos, tal y como realizo en otros productos.
Saludos Cordiales
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Mon Jul 13, 2015 1:33 am
by Patricio Avalos Aguirre
Hola a tod@s
Yo tuve que hacer los XML para la Empresa de servicio de BSOFT, el cual uno crea el xml y ellos hacen todo
pero el problema que estas empresas cobran por paquetes de documentos electronicos y no son baratos, ademas cobran por mantenimiento anual si nos les pagas te cortan el servicio a si de chanta
el problema pasa por las PYME que se les subiria el costo mensual que ademas no hacen tantas facturas.
Mis clientes Pyme han optado por hacer las Facturas electronicas a travez del SII que es gratis, doble trabajo, hacerlo por mi sistema y a la vez por el SII, podria haber una solucion para esto que pudiera hacer la factura electronica y que se conecten al SII y envien los libros de compra y venta
bueno tenia entendido que Lautaro habia implementado pero no sabia que uno podia adquerirlo
thefull sería interesante que pudieras hacer una solucion por lo menos yo estoy dispuesto a invertir como muchos de los chilenos que tenemos estos problemas
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Tue Jul 14, 2015 9:20 am
by thefull
Buenas
Os dejo aqui un trabajo inicial, que espero podais continuar , es un boceto de como debería hacerse.
Tiene 2 partes,
1) Parte. Conexion por SOAPClient
El ejemplo tiene una ejemplo de como obtener una semilla a través de Soap, esto os debe de abrir la mente de como
podéis hacer la comunicacion.
2) Boceto de construccion del XML EnvioDTE. Teneis la base sobre la que trabajar, por si os corre prisa.
Ojo, no está ni mucho menos acabada, pero es para que os hagais una idea de como hacer clases independientes por cada
seccion del XSD, de esta manera, el mantenimiento es super sencillo.
Podeis ver como los objetos se llaman unos a otros para escribir cada uno su parte del XML, en cascada.
3) Tema de Cifrado, hay que buscar ayuda de como usar openssl. MI CONSEJO es usarlo EXTERNO a la aplicacion,
de lo contrario, os aseguro que como en el sistema exista algún OpenSSL con una version distintas, el sufrimiento no merece
la pena
Por lo que poco que he visto , creo que funciona muy similar al de Portugal, pero no me hacerme mucho caso, porque no
he podido apenas mirar nada.
Espero que os ayude un poco.
Nota:
#SOPORTE PARA MXML
MXML_LIB=$(HARBOUR_LIB_DIR)\mxml.lib
HB_MXML_LIB=$(HARBOUR_LIB_DIR)\hbmxml.lib
Code: Select all
function Chile()
Local cValue := ""
Local oSoapClient
Local lOk, orespuesta, i
Local cDominio_WebServices := "https://palena.sii.cl/DTEWS/CrSeed.jws?WSDL"
Local oEnvioDte, cXml
lOk := .T.
// Ejemplo para obtener una semilla --------------------------------------------------
oSoapClient := CreateObject( "MSSOAP.SoapClient30" ) // Conecta a SOAP 3.0
oSoapClient:msSoapInit( cDominio_WebServices )
try
cXml := oSoapClient:getSeed()
alert( cXml )
catch
cValue := oSOAPClient:faultString + Hb_OsNewLine() + oSOAPClient:detail
alert( "error:"+cValue )
end
oSoapClient := NIL
// Ejemplo para obtener una semilla --------------------------------------------------
// Ejemplo de como formar XML electronico.
oEnvioDte := EnvioDTE():New()
oEnvioDte:oSetDTE:ID := "1"
oEnvioDte:oSetDTE:oCaratula:RutEmisor := "1"
oEnvioDte:oSetDTE:oCaratula:RutEnvia := "2"
oEnvioDte:oSetDTE:oCaratula:RutReceptor := "3"
oEnvioDte:oSetDTE:oCaratula:FchResol := "2015-01-01"
oEnvioDte:oSetDTE:oCaratula:TmstFirmaEnv := hb_TSToStr( hb_DateTime() )
oEnvioDte:oSetDTE:oCaratula:oSubTotDTE:TpoDTE := "33"
// Creamos un documentro tributario Electronico
oDte := DTE():New()
oDte:version = "2"
oEnvioDte:AddDTE( oDte )
oDte := DTE():New()
oDte:version = "23"
oEnvioDte:AddDTE( oDte )
Alert( oEnvioDte:WriteXML() )
quit
return nil
#include "hbclass.ch"
/****************************************************************************/
/****************************************************************************/
CLASS EnvioDTE FROM TResponse
DATA version INIT "1.0"
DATA oSetDTE
DATA oSignature // TODO:objeto signature
METHOD New() CONSTRUCTOR
METHOD WriteXML()
METHOD AddDTE( oDTE ) INLINE ::oSetDTE:AddDTE( oDTE )
END CLASS
METHOD New() CLASS EnvioDTE
::Operacion := "EnvioDTE"
::oSetDTE := SetDTE():New()
RETURN Self
METHOD WriteXML() CLASS EnvioDTE
Local pNode, pMsgs, pTree
Local oSuplement
pNode := ::CreateXML( )
mxmlElementSetAttr( pNode, "version", ::version )
::oSetDTE:WriteXML( pNode )
::GetXML()
RETURN ::cXML
/*
SetDTE , sección del documento que contiene toda la data del envío, esto es la
Carátula y 1 o más DTE, y su respectiva firma electrónica
*/
CLASS SetDTE
DATA ID INIT "ID_1"
DATA oCaratula
DATA aoDTEs
METHOD New() CONSTRUCTOR
METHOD WriteXML()
METHOD AddDTE( oDTE ) INLINE aadd( ::aoDTEs, oDTE )
END CLASS
METHOD new() CLASS SetDTE
::aoDTEs := {} // Arrays de objetos DTE
::oCaratula := Caratula():New()
RETURN Self
METHOD WriteXML( pNode ) CLASS SetDTE
Local pSetDte, oDte
pSetDte := mxmlNewElement( pNode, "SetDTE" )
mxmlElementSetAttr( pSetDte, "ID", ::ID )
::oCaratula:WriteXML( pSetDte )
for each oDte in ::aoDTEs
oDte:WriteXML( pSetDte )
next
RETURN pSetDte
/*****************************************************************/
/* Resumen de información enviada */
/*****************************************************************/
CLASS Caratula
DATA version INIT "1"
DATA RutEmisor INIT "0"
DATA RutEnvia INIT "0"
DATA RutReceptor INIT "0"
DATA FchResol INIT "2000-01-01"
DATA NroResol INIT "123456"
DATA TmstFirmaEnv INIT "2000-01-01T00:00:00"
DATA oSubTotDTE
METHOD New() CONSTRUCTOR
METHOD WriteXML()
END CLASS
METHOD new() CLASS Caratula
::oSubTotDTE := SubTotDTE():New()
RETURN Self
METHOD WriteXML( pNode ) CLASS Caratula
Local pCaratula, node
pCaratula := mxmlNewElement( pNode, "Caratula" )
mxmlElementSetAttr( pCaratula, "version", ::version )
node := mxmlNewElement( pCaratula, "RutEmisor")
mxmlNewText(node, 0, ::RutEmisor)
node := mxmlNewElement( pCaratula, "RutEnvia")
mxmlNewText(node, 0, ::RutEnvia)
node := mxmlNewElement( pCaratula, "RutReceptor")
mxmlNewText(node, 0, ::RutReceptor )
node := mxmlNewElement( pCaratula, "FchResol")
mxmlNewText(node, 0, ::FchResol)
node := mxmlNewElement( pCaratula, "NroResol")
mxmlNewText(node, 0, ::NroResol )
node := mxmlNewElement( pCaratula, "TmstFirmaEnv")
mxmlNewText(node, 0, ::TmstFirmaEnv )
::oSubTotDTE:WriteXML( pCaratula )
RETURN pCaratula
/****************************************************************************/
/* Subtotales de DTE enviados */
/****************************************************************************/
CLASS SubTotDTE
DATA TpoDTE INIT "0"
DATA NroDTE INIT "0"
METHOD New() CONSTRUCTOR
METHOD WriteXML( pNode)
END CLASS
METHOD new() CLASS SubTotDTE
RETURN Self
METHOD WriteXML( pNode ) CLASS SubTotDTE
Local pSubTotDTE, node
pSubTotDTE := mxmlNewElement( pNode, "SubTotDTE" )
node := mxmlNewElement( pSubTotDTE, "TpoDTE")
mxmlNewText(node, 0, Cstr( ::TpoDTE ) )
node := mxmlNewElement( pSubTotDTE, "NroDTE")
mxmlNewText(node, 0, Cstr( ::NroDTE ) )
RETURN pSubTotDTE
/****************************************************************************/
/* Documento Tributario Electronico */
/****************************************************************************/
CLASS DTE
DATA version INIT "1"
DATA oDocumento
METHOD New() CONSTRUCTOR
METHOD WriteXML( pNode )
END CLASS
METHOD new() CLASS DTE
::oDocumento := Documento():New()
RETURN Self
METHOD WriteXML( pNode ) CLASS DTE
Local pDTE, node
pDte := mxmlNewElement( pNode, "DTE" )
mxmlElementSetAttr( pDte, "version", ::version )
::oDocumento:WriteXML( pDte )
RETURN pDTE
/****************************************************************************/
/* Información Tributaria del DTE */
/****************************************************************************/
CLASS Documento
DATA ID INIT "1"
DATA oEncabezado
DATA oDetalle
DATA oSubTotInfo
METHOD New() CONSTRUCTOR
METHOD WriteXML( pNode )
END CLASS
METHOD new() CLASS Documento
RETURN Self
METHOD WriteXML( pNode ) CLASS Documento
Local pDTE, node
pDte := mxmlNewElement( pNode, "Documento" )
mxmlElementSetAttr( pDte, "ID", ::ID )
RETURN pDTE
/****************************************************************************/
/****************************************************************************/
CLASS TResponse
DATA Error INIT .F.
DATA oDoc
DATA lUTF8 INIT .F.
DATA cXML INIT ""
DATA Operacion INIT ""
METHOD New() INLINE Self
METHOD CreateXML()
METHOD WriteXMLFile( cFile ) VIRTUAL
METHOD WriteXML()
METHOD GetXML()
METHOD Destroy()
ENDCLASS
METHOD CreateXML( ) CLASS TResponse
Local oNode, oNodeP
::oDoc := mxmlNewXML("1.0")
oNodeP := mxmlNewElement( ::oDoc, ::Operacion )
mxmlElementSetAttr( oNodeP, "xmlns", "http://www.sii.cl/SiiDte" )
mxmlElementSetAttr( oNodeP, "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
mxmlElementSetAttr( oNodeP, "xsi:schemaLocation", "http://www.sii.cl/SiiDte EnvioDTE_v10.xsd")
RETURN oNodeP
METHOD WriteXML() CLASS TResponse
::CreateXML( )
::GetXML()
::Destroy()
RETURN ::cXML
METHOD GetXML( ) CLASS TResponse
::cXML := MXMLSAVEALLOCSTRING( ::oDoc )
// TODO: Hay que hacer una conversion de UTf-8 a iso-8859-1, y cambiar encoding="utf-8" a iso-8859-1
if !::lUTF8
endif
RETURN ::cXML
METHOD Destroy() CLASS TResponse
if !empty( ::oDoc )
mxmlDelete( ::oDoc )
endif
RETURN NIL
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Fri Jul 17, 2015 7:36 pm
by elmoiquique
Yo me anoto, para ayudar, tambien tengo que desarrollar la aplicacion que firme las los XML,,, lo que es comunicacion con los webservice y creacion de xml, es sencillo,,, lo mas complicado es firmar las facturas
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Thu Aug 13, 2015 3:40 pm
by Lautaro
Hola,
Como nadie mas aporta algo, aqui va como descargar la lista de facturadores electronicos y sus correos registrados en el SII ( Servicio de Impuestos Internos ), correo al cual deben enviarse obligatoriamente los documentos emitidos a otros facturadores electronicos.
Esto descarga el archivo en formato .csv con el cual se puede alimentar una base de datos u otra.
Sobre uso de hbcurl y libcurl favor leer ejemplos y manuales en
http://curl.haxx.se , yo no soy experto en la materia, y ahi encontraran los ejemplos necesarios.
Tambien ver ejemplos de uso en harbour en la carpeta \contrib\hbcurl\tests
Saludos,
Lautaro Moreira
Audisoft SPA
Osorno
Chile
Code: Select all
#include "fivewin.ch"
#include "hbcurl.ch"
/*
Funcion para bajar lista de facturadores electronicos del SII
usa la lib hbcurl
esta pensada para ser llamada desde msgmeter por eso los parametros ometer,otext,odlg,lend si no lo llaman asi, comentar todo lo relacionado a ello.
notar que el tamaño de la descarga no se puede saber con anticipacion
Basado en codigo publicado en edreams.cl
Programado por Lautaro Moreira - Audisoft SPA
Si va a usar esta funcion no borrar esta informacion
Funcion bajalistafacturadores
curl = url del archivo a bajar [opcional]
cfile = Archivo a bajar [opcional]
cdestino = Nombre del destino para el archivo bajado [opcional]
ometer = objeto tmeter
otext = objeto tsay
odlg = objeto tdialog
lend = si es .t. indica que el usuario aborto [funcion no la usa]
retorna texto con ruta de archivo bajado.
*/
FUNCTION bajalistafacturadores(curl,cfile,cdestino,ometer,otext,odlg,lend)
LOCAL aHeader
LOCAL curlHandle
LOCAL ncontador
LOCAL ddate := date()
DO WHILE DoW(ddate) == 7 .OR. DoW(ddate) == 1 // solo dias habiles
--ddate
ENDDO
DEFAULT cfile := "ce_empresas_dwnld_"+DToS(ddate)+".csv"
DEFAULT cdestino := GetEnv("TEMP")+"\"+cfile
DEFAULT curl := "https://palena.sii.cl/cvc_cgi/dte/ee_consulta_empresas_dwnld?NOMBRE_ARCHIVO="+cfile
ncontador := 0
ometer:settotal( 10000 )
ometer:SET(0)
curlHandle:= curl_easy_init()
aHeader:={}
AAdd(aHeader,"Referer: https://palena.sii.cl/cvc_cgi/dte/ee_empresas_dte.html")
AAdd(aHeader,"Accept-Encoding: gzip, deflate, sdch")
AAdd(aHeader,"User-Agent: Mozilla/5.0") // (compatible; PROG 1.0; Windows NT 5.0; YComp 5.0.2.4)")
otext:settext("Descargando Archivo desde el SII")
IF .NOT. Empty(curlhandle)
curl_easy_setopt( curlhandle, HB_CURLOPT_HTTPHEADER,aHeader)
curl_easy_setopt( curlHandle, HB_CURLOPT_URL, cUrl )
curl_easy_setopt( curlHandle, HB_CURLOPT_SSLVERSION,3)
curl_easy_setopt( curlHandle, HB_CURLOPT_SSL_VERIFYPEER, .F. )
curl_easy_setopt( curlHandle, HB_CURLOPT_CONNECTTIMEOUT , 60 )
curl_easy_setopt( curlHandle, HB_CURLOPT_DL_FILE_SETUP, cdestino )
curl_easy_setopt( curlHandle, HB_CURLOPT_NOPROGRESS, 0 )
curl_easy_setopt( curlHandle, HB_CURLOPT_VERBOSE, .F. ) //lVerbose )
curl_easy_setopt( curlHandle, HB_CURLOPT_PROGRESSBLOCK, {| nPos, nLen |IF(ncontador>=10000,(ncontador:=0,sysrefresh()),ncontador++), ometer:SET( ncontador ) } )
/* Do everything */
curlErr := curl_easy_perform(curlHandle)
/* Report any errors */
if .NOT. empty(curlErr)
msgalert(curl_easy_strerror(curlErr),"Error")
ENDIF
curl_easy_reset( curlHandle )
ELSE
msgalert("No handle")
ENDIF
if !empty(curlHandle)
curl_easy_cleanup( curlHandle )
else
msgalert( "Error")
endif
RETURN cdestino
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Fri Aug 28, 2015 4:24 pm
by gdeteran
Mi experiencia ha sido mas fácil. Contraté con ACEPTA.COM su servicio que consiste en que por cada factura que hago, al momento de imprimir, me piden que deje una copia de la factura en formato XML en una carpeta. Me instalaron un Servicio que revisa permanentemente esta carpeta y si encuentra un archivo, le inserta la firma electrónica y la envía a la impresora y a continuación hace el envío al SII. Si por algún motivo no hay internet, hace el envío una vez que se restablezca la Red.
Estoy haciendo un promedio de 650 facturas mensuales y me cobran 102.000 pesos chilenos aprox. que es un poco menos de lo que me gastaba en talonarios de facturas.
Code: Select all
cFile := "C:\Acepta\DTEService\input\" + cTipo + "F" + LTRIM(TRANSFORM(nNumero,"@ZZZZZZZZ"))+ ".XML"
oPrn := TTxtFile():New( cFile )
IF oPrn:Open()
oPrn:Add( "<Documento>")
oPrn:Add( "<Encabezado>")
oPrn:Add("<IdDoc>")
oPrn:Add("<TipoDTE>" + (cTIDOCV)->Tipo + "</TipoDTE>")
oPrn:Add("<Folio>" + LTRIM(TRANSFORM(nNumero,"@ZZZZZZZZ")) + "</Folio>")
oPrn:Add("<FchEmis>" + cFecha + "</FchEmis>")
// oPrn:Add("<IndNoRebaja>" + "" + "</IndNoRebaja>")
IF (cTIDOCV)->Tipo = "52"
oPrn:Add("<TipoDespacho>" + "2" + "</TipoDespacho>") // Despacho por cuenta del emisor
// a intalaciones del cliente
IF SUBSTR((cTIDOCV)->Estado,1,1) = "T"
oPrn:Add("<IndTraslado>" + "6" + "</IndTraslado>") // 6=Otros traslados no venta
oPrn:Add("<FmaPago>" + "3" + "</FmaPago>") // 3=Sin Costo(entrega gratuita)
ELSE
oPrn:Add("<IndTraslado>" + "1" + "</IndTraslado>") // 1=Operacion constituye venta
oPrn:Add("<FmaPago>" + IF((cTIDOCV)->Dias_CR = 0,"1","2" ) + "</FmaPago>") // 1=Contado; 2=Credito; 3
ENDIF
ELSE
oPrn:Add("<FmaPago>" + IF((cTIDOCV)->Dias_CR = 0,"1","2" ) + "</FmaPago>") // 1=Contado; 2=Credito; 3
ENDIF
oPrn:Add("<FchVenc>" + cFVencim + "</FchVenc>")
oPrn:Add("</IdDoc>")
oPrn:Add("<Emisor>")
oPrn:Add("<RUTEmisor>" + LTRIM(cRutEmis) + "</RUTEmisor>")
oPrn:Add("<RznSoc>" + RTRIM((cPARAM)->Nombre) + "</RznSoc>")
oPrn:Add("<GiroEmis>" + RTRIM((cPARAM)->Giro) + "</GiroEmis>")
oPrn:Add("<Acteco>" + RTRIM((cPARAM)->Activid) + "</Acteco>")
oPrn:Add("<Sucursal>" + RTRIM((cPARAM)->Ciudad) + "</Sucursal>")
// oPrn:Add("<CdgSIISucur>" + "" + "</CdgSIISucur>")
oPrn:Add("<DirOrigen>" + RTRIM(LimpiaString((cPARAM)->Direcc)) + "</DirOrigen>")
oPrn:Add("<CmnaOrigen>" + RTRIM((cPARAM)->Ciudad) + "</CmnaOrigen>")
oPrn:Add("<CiudadOrigen>" + RTRIM((cPARAM)->Ciudad) + "</CiudadOrigen>")
oPrn:Add("<CdgVendedor>" + (cTIDOCV)->CodVen + "</CdgVendedor>")
oPrn:Add("</Emisor>")
oPrn:Close()
Esta es una parte del código para generar el formato que me pide ACEPTA.COM, entiendo que hay otros proveedores que piden formato distinto.
Re: Factura Electrónica / Fivewin (CHILE)
Posted: Fri Aug 28, 2015 5:03 pm
by horacio
Hace un tiempo postee las fuentes de factura electrónica en argentina, allí están las rutinas para firmar un archivo xml.
http://forums.fivetechsupport.com/viewt ... 33#p178709
Saludos