Progress - Facturación Electronica

   
Vista:

Facturación Electronica

Publicado por charly Albor (12 intervenciones) el 26/08/2010 23:26:30
Que tal buen día.

Tengo un detalle, en México se esta implementando lo que es la facturación electrónica, pero tengo un detalle no he encontrado la forma de implementar como funciona, es en base a XML. no me he profundizado mucho en el tema, a ver si pudiera alguien darme alguna orientación acerca de esto o algún ejemplo en progress.

Por que si ando bien perdido en esta cuestión.

Que tengan un buen día y de antemano gracias por su ayuda y tiempo.

Hasta luego.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Facturación Electronica

Publicado por Marcio (13 intervenciones) el 27/08/2010 14:06:49
Hola,

En Brasil también se ha aplicado, cualquier duda a www.proforo.net cuestión.
Abrazo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Facturación Electronica

Publicado por Ernesto  (1 intervención) el 05/10/2010 15:25:44
Hola charly .
No entiendo bien tu pregunta, yo soy de Argentina y aquí se rige por la AFIP.
yo genere de acurdo a los requisitos un XML con mi sistema de facturación con progress, que luego levanta a la pagina de AFIP
Eje.
/* VAN DEFINICIONES*/
/* LECTURA A TABLAS DE FACTURACIÓN*/

OUTPUT TO I:\Emp\XML\FACTURA.XML.
PUT "<?xml version=" '"1.0"' " encoding=" '"UTF-8"' "?>" SKIP.
PUT "<comprobantes>" SKIP.
PUT " <comprobante>" SKIP.


PUT " <tipo>" tipo "</tipo>" SKIP.
PUT " <ptovta>".
REPEAT I=1 TO LENGTH(PtoVta).
PUT SUBSTRING(PtoVta,I,1) FORMAT "X(1)".
END.
PUT "</ptovta>" SKIP.
PUT " <cuitemisor>" CuitEmisor "</cuitemisor>" SKIP.
PUT " <fechaemision>" FechaEmision "</fechaemision>" SKIP.
PUT " <idioma>" Idioma "</idioma>" SKIP.
PUT " <concepto>" Concepto "</concepto>" SKIP.
IF TIPO =19 THEN
DO:

PUT " <ape>".
REPEAT I=1 TO LENGTH(Ape).
PUT SUBSTRING(Ape,I,1) FORMAT "X(1)".
END.
PUT "</ape>" SKIP.
END.
PUT " <moneda>".
REPEAT I=1 TO LENGTH(Moneda).
PUT SUBSTRING(Moneda,I,1) FORMAT "X(1)".
END.
PUT "</moneda>" SKIP.
PUT " <tipocambio>" TipoCambio "</tipocambio>" SKIP.
PUT " <destinocmp>" DestinoCmp "</destinocmp>" SKIP.

IF NroDocReceptor <>0 THEN
DO:
PUT " <tipodocreceptor>" TipoDocReceptor "</tipodocreceptor>" SKIP.
PUT " <nrodocreceptor>" NroDocReceptor "</nrodocreceptor>" SKIP.
PUT " <idimpositivoreceptor>".
REPEAT I=1 TO LENGTH(IdImpositivoReceptor).
PUT SUBSTRING(IdImpositivoReceptor,I,1) FORMAT "X(1)".
END.
PUT "</idimpositivoreceptor>" SKIP.
END.

PUT " <receptor>".
REPEAT I=1 TO LENGTH(Receptor).
PUT SUBSTRING(Receptor,I,1) FORMAT "X(1)" .
END.
PUT "</receptor>" SKIP .

PUT " <domicilioreceptor>".
REPEAT I= 1 TO LENGTH(DomicilioReceptor).
PUT SUBSTRING(DomicilioReceptor,I,1) FORMAT "X(1)".
END.
PUT "</domicilioreceptor>" SKIP.
PUT " <importetotal>" ImporteTotal "</importetotal>" SKIP.
/* forma de pagos */
IF TIPO =19 THEN
DO:
PUT " <formaspago>" SKIP.
PUT " <formapago>" SKIP.
PUT " <codigo>" Codigo "</codigo>" SKIP.
PUT " <descripcion>".
REPEAT I=1 TO LENGTH(Descripcion).
PUT SUBSTRING(Descripcion,I,1) FORMAT "X(1)".
END.
PUT "</descripcion>" SKIP.
PUT " </formapago>" SKIP.
PUT " </formaspago>" SKIP.
END.
PUT " <incoterms>".
REPEAT I=1 TO 3.
PUT SUBSTRING(Incoterms,I,1) FORMAT "X(1)".
END.
PUT "</incoterms>" SKIP.
PUT " <detalleincoterms>".
REPEAT I=1 TO LENGTH(DetalleIncoterms).
PUT SUBSTRING(DetalleIncoterms,I,1) FORMAT "X(1)".
END.
PUT "</detalleincoterms>" SKIP.

IF OtrosDatosComerciales<>"" THEN
DO:
PUT " <otrosdatoscomerciales>".
REPEAT I=1 TO LENGTH(OtrosDatosComerciales).

PUT SUBSTRING(OtrosDatosComerciales,I,1) FORMAT "X(1)".
END.
PUT "</otrosdatoscomerciales>" SKIP.
END.

IF APE="N" AND TIPO =19 THEN
DO:
/* Permisos destino */

PUT " <permisosdestinos>" SKIP.
PUT " <permisodestino>" SKIP.
PUT " <permisoemb>".
/*
REPEAT I=1 TO LENGTH(PermisoEmb).
PUT SUBSTRING(PermisoEmb,I,1) FORMAT "X(1)".
END.
*/
PUT PermisoEmb.
PUT " </permisoemb>" SKIP.
PUT " <destino>" Destino "</destino>" SKIP.
PUT " </permisodestino>" SKIP.
PUT " </permisosdestinos>" SKIP.
END.

IF TIPO <>19 THEN
DO:
TipoAsoc = int(ENTRY(1,TmpCtasCtesPFJExp.CompAso[1],"-")).
PtoVtaAsoc = int(ENTRY(2,TmpCtasCtesPFJExp.CompAso[1],"-")).
Nroasoc = int(ENTRY(3,TmpCtasCtesPFJExp.CompAso[1],"-")).

/* Comprobante Asiciados */
PUT " <cmpasociados>" SKIP.
PUT " <cmpasociado>" SKIP.
PUT " <tipoasoc>" TipoAsoc "</tipoasoc>" SKIP.
PUT " <ptovtaasoc>" PtoVtaAsoc "</ptovtaasoc>" SKIP.
PUT " <nroasoc>" Nroasoc "</nroasoc>" SKIP.
PUT " </cmpasociado>" SKIP.
PUT " </cmpasociados>" SKIP.

END.
/* Detalle de la venta */
PUT " <detalles>" SKIP.

FOR EACH TmpCtasCtesPFJDet WHERE TmpCtasCtesPFJDet.CodEmp =TmpCtasCtesPFJ.CodEmp AND
TmpCtasCtesPFJDet.NroInt =TmpCtasCtesPFJ.NroInt NO-LOCK:

Cod= TmpCtasCtesPFJDet.CodArt .
DesDet=TmpCtasCtesPFJDet.Descripcion .
DesDet=ENTRY(1,DesDet,"//").
DesDet=REPLACE(DesDet,"/","").
DesDet=REPLACE(DesDet,"á","a") .
DesDet=REPLACE(DesDet,"é","e") .
DesDet=REPLACE(DesDet,"í","i") .
DesDet=REPLACE(DesDet,"é","e") .
DesDet=REPLACE(DesDet,"ó","o") .
DesDet=REPLACE(DesDet,"ú","u") .
Cant=STRING(TmpCtasCtesPFJDet.Cantidad) .
PrecioUnit= STRING(TmpCtasCtesPFJDet.PrUniNet).
Importe = STRING(TmpCtasCtesPFJDet.PrUniNet * TmpCtasCtesPFJDet.Cantidad).
FIND FIRST Articulos WHERE Articulos.NroInt = TmpCtasCtesPFJDet.NroIntArt NO-LOCK NO-ERROR.
IF AVAILABLE Articulos THEN
DO:
UniMed="".
FIND FIRST UniMed WHERE UniMed.Descripcion=Articulos.UniMed NO-LOCK NO-ERROR.
IF AVAILABLE UniMed THEN
DO:
UniMed= STRING(UniMed.Codigo).
END.
END.
PUT " <detalle>" SKIP.
PUT " <cod>".
REPEAT I=1 TO LENGTH(Cod).
PUT SUBSTRING(Cod,I,1) FORMAT "X(1)".
END.
PUT "</cod>" SKIP.
PUT " <desc>".
REPEAT I=1 TO LENGTH(DesDET) .

PUT SUBSTRING(DesDET,I,1) FORMAT "X(1)".

END.
PUT "</desc>" SKIP.
PUT " <unimed>".
REPEAT I=1 TO LENGTH(UniMed ) .
PUT SUBSTRING(UniMed,I,1) FORMAT "X(1)".
END.
PUT "</unimed>" SKIP.

PUT " <cant>".
REPEAT I=1 TO LENGTH(cant).
PUT SUBSTRING(Cant,I,1) FORMAT "X(1)".
END.
PUT "</cant>" SKIP.

PUT " <preciounit>".
REPEAT I=1 TO LENGTH(PrecioUnit).
PUT SUBSTRING(PrecioUnit,I,1) FORMAT "X(1)".
END.
PUT "</preciounit>" SKIP.
PUT " <importe>".
REPEAT I=1 TO LENGTH(importe).
PUT SUBSTRING(Importe,I,1) FORMAT "X(1)".
END.
PUT "</importe>" SKIP.
PUT " </detalle>" SKIP.

END.

PUT " </detalles>" SKIP.
PUT " <otrosdatosgenerales>".
REPEAT I=1 TO LENGTH(OtrosDAtosGenerales).
IF SUBSTRING(OtrosDAtosGenerales,I,1)<>CHR(13) THEN
DO:

PUT SUBSTRING(OtrosDAtosGenerales,I,1) FORMAT "X(1)".

END.
ELSE PUT SKIP.
END.

PUT "</otrosdatosgenerales>" SKIP.

PUT " </comprobante>" SKIP.
PUT "</comprobantes>" .
OUTPUT CLOSE.

Saludos Ernesto Cruciani.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Facturación Electronica

Publicado por charly (12 intervenciones) el 05/10/2010 23:43:24
Gracias, por el dato

esta me sirve bastante, nada mas que tengo la duda de como mando el xml por pagina web al sitio donde me verifica si mi xml es correcto.,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar