Ir al contenido


Foto

Factura Electrónica para Argentina

Factura Electrónica AFIP

  • Por favor identifícate para responder
135 respuestas en este tema

#101 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 03 julio 2015 - 01:04

Te refieres a los creadores de las bibliotecas?  :dlaug: ...

 

No, acá se utiliza a un proveedor para el desarrollo de los servicios web que son los intermediarios con el sistema del gobierno y suele suceder que se pierde la comunicación entre ellos y el gobierno y envía errores de vez en cuando.

 

Saludos


  • 0

#102 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 03 julio 2015 - 02:54

No se, pero a mi me parece que hay un intermediario entre la AFIP y ustedes y están teniendo problemas entre ellos.

 

Saludos

 

no, desde la pagina tampoco se puede.


  • 0

#103 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 03 julio 2015 - 04:04

No le veo mucho futuro a esto acá

Los sistemas nunca andan acá porque no están ni bien diseñados, ni la infraestructura es buena. Por eso la señal de los teléfonos móviles es un desastre, el 3g en argentina es "pasame la clave del WiFi", querés ir a cargar la sube "no tengo sistema", internet anda mal, etc etc
  • 0

#104 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 mensajes

Escrito 03 julio 2015 - 04:56

Y bueno nosotros lo desarrollamos.... si despues el server no anda problema de ellos sino pueden ni recaudar jja


  • 0

#105 adripugliesso

adripugliesso

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 16 julio 2015 - 04:53

Buenos dias, les comento que tengo RESUELTO/FUNCIONANDO el codigo para FACTURA ELECTRONICA AFIP, con codigo 100% delphi original, sin OCX ni componentes raros, puro codigo delphi, muy sencillo de implementar en otras aplicaciones, los interesados en que le envie el codigo contactenme a adripugliesso en hotmail punto com ya que el codigo es extenso y tengo que pasarle otros archivos.

 

Saludos...


  • 0

#106 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 16 julio 2015 - 09:08

Bienvenido a DelphiAccess adripugliesso

 

Normalmente sugerimos que los correos no se coloquen en los mensajes ya que pensamos que las comunidades deben ser abiertas si no, su finalidad principal se pierde y se cae en las asesorías particulares y le niegan a la comunidad en general aprender con ustedes. Por otro lado, tu correo está expuesto a las arañas que visitan páginas como ésta para obtener correos y enviarles spam.

 

Sería interesante que le platicaras a los compañeros tu experiencia de desarrollar el proyecto de Facturación Electrónica de la AFIP y los problemas que hayas encontrado y como los solucionaste.

 

Saludos

 

PD, Me permitiré modificar tu correo.


  • 0

#107 Nikolas

Nikolas

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 604 mensajes
  • LocationMar del Plata / Bs As / Argentina

Escrito 16 julio 2015 - 09:08

Buenos dias, les comento que tengo RESUELTO/FUNCIONANDO el codigo para FACTURA ELECTRONICA AFIP, con codigo 100% delphi original, sin OCX ni componentes raros, puro codigo delphi, muy sencillo de implementar en otras aplicaciones, los interesados en que le envie el codigo contactenme  a adripugliesso en hotmail punto com  ya que el codigo es extenso y tengo que pasarle otros archivos.

 

Saludos...

 

muy bien. ¿en que tiempo lo desarrollaste?


  • 0

#108 quileab

quileab

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 17 julio 2015 - 05:53

Alguien tiene algo en Lazarus por lo menos en "camino"? No tengo mucho tiempo (ni experiencia en webservices) pero con el objetivo de avanzar estoy dispuesto a ayudar como pueda.

Saludos.


  • 0

#109 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 mensajes

Escrito 18 julio 2015 - 08:36

Alguien tiene algo en Lazarus por lo menos en "camino"? No tengo mucho tiempo (ni experiencia en webservices) pero con el objetivo de avanzar estoy dispuesto a ayudar como pueda.

Saludos.

No creo que alguien comparta todo su codigo jejje.. habria que hacer un tutorial sobre el tema ajja


  • 0

#110 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 18 julio 2015 - 01:47

quileab no te sirve lo que pusimos en las primeras paginas? la PyAfipWs?


  • 0

#111 quileab

quileab

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 20 julio 2015 - 05:22

Les comento hasta donde he llegado:


php
  1. procedure TForm1.FormActivate(Sender: TObject);
  2. begin
  3.   CoInitialize(nil);
  4.   // Crear objeto interface Web Service Autenticación y Autorización
  5.   WSAA := CreateOleObject('WSAA');
  6.  
  7.   // Generar un Ticket de Requerimiento de Acceso (TRA)
  8.   tra :=  Utf8ToAnsi(WSAA.CreateTRA);
  9.   //WriteLn(tra);
  10.   Memo1.Lines.Add('TRA: '+tra);
  11.  
  12.   // Especificar la ubicacion de los archivos certificado y clave privada
  13.   path := GetCurrentDir + '\';
  14.   // Certificado: certificado es el firmado por la AFIP
  15.   // ClavePrivada: la clave privada usada para crear el certificado
  16.   Certificado := 'homo.crt'; // certificado de prueba
  17.   ClavePrivada := 'homo.key'; // clave privada de prueba' +
  18.   // Generar el mensaje firmado (CMS)
  19.   cms := WSAA.SignTRA(tra, Path + Certificado, Path + ClavePrivada); //<<------- ERROR DE PYTHON

En esa línea obtengo un "Unexpected Python error"... traceback... policy.pyo... lineas 277, 282, 585...

Comparto mi código, si hay que hacer un tutorial, lo hago.

Saludos


  • 0

#112 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 mensajes
  • LocationArgentina

Escrito 20 julio 2015 - 09:48

Hola de nuevo quileab

En la pagina #1 postie este codigo que es el que uso y me anda sin problemas.


delphi
  1. try
  2. CoInitialize(NIL);
  3. try
  4. // Crear objeto interface Web Service Autenticación y Autorización
  5. WSAA := CreateOleObject('WSAA');
  6.  
  7. // Generar un Ticket de Requerimiento de Acceso (TRA)
  8. tra := WSAA.CreateTRA;
  9.  
  10. // Certificado: certificado es el firmado por la AFIP
  11. Certificado := GetCurrentDir + '\cert.crt';
  12. ClavePrivada := GetCurrentDir + '\clave.key';
  13. // ClavePrivada: la clave privada usada para crear el certificado
  14. // Generar el mensaje firmado (CMS)
  15. // Especificar la ubicacion de los archivos certificado y clave privada
  16. cms := WSAA.SignTRA(tra, Certificado, ClavePrivada);
  17.  
  18. // Llamar al web service para autenticar:
  19. ta := WSAA.CallWSAA(cms, 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms');
  20. ... 

Eso de Utf8ToAnsi para que es?


  • 0

#113 quileab

quileab

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 21 julio 2015 - 04:20

Originalmente lo probé así pero python me devuelve un error: UnicodeEncodeError: 'ascii' codec can't encode characters...

Igualmente estoy probando con el "ejemplo interactivo interfaz PyAfipWs para WSAA" y falla diciendo "error: 2147221557 en WSAA", "Archivo no encontrado"

Probé desinstalar e instalar de nuevo el "instalador-PyAfipWs-1.25c-homo.exe" pero me sigue dando archivo no encontrado.

Sigo con la pelea 8o|


  • 0

#114 rodrinig

rodrinig

    Newbie

  • Miembros
  • Pip
  • 5 mensajes

Escrito 21 julio 2015 - 06:19

Hola foro recien encuentro este foro y estuve buscando bastante, yo he logrado facturar con PyAfipWs y aqui les dejo el codigo , espero que les sirva:

Veran que tiene muchos showmessage para ir viendo los valores.

Saludos

PD:adripugliesso

     si tenes algo hecho sin depender de un externo , podrias compartirlo asi vemos y tambien se aprende.

Saludos

 

Rodrigo 


php
  1. program consola;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. ActiveX,
  5. ComObj,
  6. Dialogs,
  7. SysUtils,
  8. fncVrs, fncCnv, xmldom, XMLIntf, msxmldom, XMLDoc ;
  9.  
  10. var
  11. WSAA, WSFEv1: Variant;
  12. tra, path, pathTra, Certificado, ClavePrivada, cms, ta: String;
  13. qty, LastId, LastCBTE, cae, ok , OkUlt, ok_WSAA: Variant;
  14. tipo_cbte, punto_vta, tipo_doc, presta_serv, id,
  15. cbt_desde, cbt_hasta : Integer;
  16. fecha, nro_doc, imp_total, imp_tot_conc, imp_neto, impto_liq,
  17. impto_liq_rni, imp_op_ex, fecha_cbte, fecha_venc_pago,
  18. fecha_serv_desde, fecha_serv_hasta, venc : String;
  19. cache ,url_wsdl ,proxy : String ;
  20. moneda_id , moneda_ctz : string ;
  21. base_imp, importe : string ;
  22. Token , Sign , ta_xml : Variant;
  23. w_archivo : string;
  24.  
  25. nodo: IXMLNode;
  26. dXML: TXMLDocument;
  27.  
  28.  
  29. f : TextFile;
  30. begin
  31. CoInitialize(nil);
  32.  
  33.  
  34. // Crear objeto interface Web Service Autenticación y Autorización
  35. WSAA := CreateOleObject('WSAA') ;
  36. // Generar un Ticket de Requerimiento de Acceso (TRA)
  37. tra := WSAA.CreateTRA;
  38. WriteLn(tra);
  39. // Especificar la ubicacion de los archivos certificado y clave privada
  40. path := GetCurrentDir + '\';
  41. // Certificado: certificado es el firmado por la AFIP
  42. // ClavePrivada: la clave privada usada para crear el certificado
  43. Certificado := 'elchiche.crt'; // certificado de prueba
  44. ClavePrivada := 'elchiche.key'; // clave privada de prueba' +
  45. // Generar el mensaje firmado (CMS)
  46. cms := WSAA.SignTRA(tra, Path + Certificado, Path + ClavePrivada);
  47. WriteLn(cms);
  48. // Llamar al web service para autenticar:
  49. ta := WSAA.CallWSAA(cms, 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms'); // Hologación
  50. //ta = WSAA.CallWSAA(cms, 'https://wsaa.afip.gov.ar/ws/services/LoginCms'); // Producción
  51. // Imprimir el ticket de acceso, ToKen y Sign de autorización
  52. WriteLn(ta);
  53. showmessage(ta);
  54. WriteLn('Token:' + WSAA.Token);
  55. WriteLn('Sign:' + WSAA.Sign);
  56. // Una vez obtenido, se puede usar el mismo token y sign por 6 horas
  57. // (este período se puede cambiar)
  58. // Crear objeto interface Web Service de Factura Electrónica
  59.  
  60. cache := ''; // directorio temporal (usar predeterminado)
  61. url_wsdl := 'https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL ';// usar servicios1 para producción
  62. proxy:= '';
  63.  
  64. WSFEv1 := CreateOleObject('WSFEv1');
  65.  
  66. // Setear tocken y sing de autorización (pasos previos)
  67. WSFEv1.Token := WSAA.Token;
  68. WSFEv1.Sign := WSAA.Sign;
  69. // CUIT del emisor (debe estar registrado en la AFIP)
  70. WSFEv1.Cuit := '20108714965';
  71. //WSFEv1.LanzarExcepciones := False;
  72. // Conectar al Servicio Web de Facturación
  73. ok := WSFEv1.Conectar(cache, url_wsdl, proxy); // homologación
  74. //ok := WSFE.Conectar('https://wsw.afip.gov.ar/wsfe/service.asmx'); // producción
  75. // Llamo a un servicio nulo, para obtener el estado del servidor (opcional)
  76. {WSFEv1.Dummy;
  77. WriteLn('appserver status ' + WSFEv1.AppServerStatus);
  78. WriteLn('dbserver status ' + WSFEv1.DbServerStatus);
  79. WriteLn('authserver status ' + WSFEv1.AuthServerStatus);}
  80. // Recupera cantidad máxima de registros (opcional)
  81. //qty := WSFE.RecuperarQty;
  82. // Recupera último número de secuencia ID
  83. //LastId := WSFEv1.RecuperaLastCMP();
  84. // Recupero último número de comprobante para un punto de venta y tipo (opcional)
  85.  
  86. tipo_cbte := 1; punto_vta := 3;
  87. LastCBTE := WSFEv1.CompUltimoAutorizado(punto_vta, tipo_cbte) + 1; //+ 1
  88.  
  89. //WriteLn(WSFEv1.FECompUltimoAutorizado) ;
  90.  
  91. // Establezco los valores de la factura o lote a autorizar:
  92. DateTimeToString(Fecha, 'yyyymmdd', Date);
  93. id := LastId + 1; presta_serv := 3;
  94. tipo_doc := 80; nro_doc := '20277448530';
  95. cbt_desde := LastCBTE ;
  96. cbt_hasta := LastCBTE ;
  97. imp_total := '121.00'; imp_tot_conc := '0.00'; imp_neto := '100.00';
  98. impto_liq := '21.00'; impto_liq_rni := '0.00'; imp_op_ex := '0.00';
  99. fecha_cbte := Fecha; fecha_venc_pago := Fecha;
  100. moneda_id := 'PES';
  101. moneda_ctz := '1.000';
  102.  
  103. // Fechas del período del servicio facturado (solo si presta_serv = 1)
  104. fecha_serv_desde := Fecha; fecha_serv_hasta := Fecha;
  105.  
  106. // Llamo al WebService de Autorización para obtener el CAE
  107. ok := WSFEv1.CrearFactura ( presta_serv,
  108. tipo_doc, nro_doc, tipo_cbte, punto_vta,
  109. cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto,
  110. impto_liq, impto_liq_rni, imp_op_ex, fecha_cbte, fecha_venc_pago,
  111. fecha_serv_desde, fecha_serv_hasta,moneda_id,moneda_ctz ); // si presta_serv = 0 no pasar estas fechas
  112.  
  113. //Agrego tasas de IVA
  114. id := 5 ; // 21%
  115. base_imp := '100.00';
  116. importe := '21.00';
  117. ok := WSFEv1.AgregarIva(id, base_imp, importe) ;
  118. {If tipo_cbte = 1 Then // solo para facturas A
  119. begin
  120. ok := WSFEv1.AgregarOpcional(5, '02'); // IVA Excepciones (01: Locador/Prestador, 02: Conferencias, 03: RG 74, 04: Bienes de cambio, 05: Ropa de trabajo, 06: Intermediario).
  121. ok := WSFEv1.AgregarOpcional(61, '80'); // Firmante Doc Tipo (80: CUIT, 96: DNI, etc.)
  122. ok := WSFEv1.AgregarOpcional(62, '20267565393'); // Firmante Doc Nro
  123. ok := WSFEv1.AgregarOpcional(7, '01'); // Car?er del Firmante (01: Titular, 02: Director/Presidente, 03: Apoderado, 04: Empleado)
  124. End;}
  125.  
  126. WSFEv1.Reprocesar := True ;
  127. //cae :=
  128.  
  129. cae := WSFEv1.CAESolicitar;
  130. If WSFEv1.Excepcion <> '' Then
  131. begin
  132. showmessage( WSFEv1.Excepcion) ;
  133. showmessage( WSFEv1.Traceback) ;
  134. showmessage( WSFEv1.XmlRequest) ;
  135. showmessage( WSFEv1.XmlResponse) ;
  136.  
  137. showmessage( 'Resultado ' + WSFEv1.Resultado);
  138. showmessage( 'CAE' + WSFEv1.CAE);
  139.  
  140. //' Imprimo pedido y respuesta XML para depuración (errores de formato)
  141. WriteLn(WSFEv1.XmlRequest );
  142. WriteLn( WSFEv1.XmlResponse );
  143. Showmessage( WSFEv1.XmlResponse );
  144. If WSFEv1.errmsg <> '' Then
  145. WriteLn(WSFEv1.errmsg);
  146.  
  147. WriteLn('Obs ' + WSFEv1.obs);
  148. WriteLn('Resultado: ' + WSFEv1.Resultado);
  149. WriteLn('cae: ' + WSFEv1.CAE);
  150.  
  151. //cae := WSFEv1.CAE() ;
  152. ShowMessage('CAE: ' + cae );
  153. showmessage('Presione Enter para terminar');
  154. ReadLn;
  155. CoUninitialize;
  156.  


  • 0

#115 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 mensajes

Escrito 21 julio 2015 - 07:30

la idea basica ya esta me parece.. lo que falta es que se adapte a cada sistema, para pasar parametros. Es decir el tipo y numero de documento. Las tasas de iva van a variar si es responsable inscripto, etc.. yo hice igual probe asociando un codigo similar a un tbutton. hasta que logre obtener el CAE. ahora me falta adaptar esas variaciones de parametros e incorporar un impresora fiscal para darle el comprobante fiscal al solicitante.

Saludos


  • 0

#116 rodrinig

rodrinig

    Newbie

  • Miembros
  • Pip
  • 5 mensajes

Escrito 21 julio 2015 - 07:33

Mira yo cree 2 botones uno que dice pedir autorizacion y el otro es Grabar , y grabo todo en un ini y leo despues el mismo, y si me devuelve cae, fecvto genero el codigo de barra

Saludos


  • 0

#117 quileab

quileab

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 21 julio 2015 - 07:55

Gracias @rodrinig.

Disculpen si estoy un poco pesado pero obtengo esto (hacer click en el link para ver imagen)

https://lh5.googleus...cd_k=w1896-h835

 

El código es (Lazarus 1.4.2 también lo probé en 1.2.6)


delphi
  1. unit Unit1;
  2.  
  3. {$mode objfpc}{$H+}
  4.  
  5. interface
  6.  
  7. uses
  8. Classes, SysUtils, FileUtil, IDEWindowIntf, Forms, Controls, Graphics,
  9. Dialogs, StdCtrls, XMLPropStorage, ActiveX, ComObj{, XMLConf, xmldom, XMLIntf,}
  10. {msxmldom, XMLDoc };
  11.  
  12. type
  13.  
  14. { TForm1 }
  15.  
  16. TForm1 = class(TForm)
  17. Button1: TButton;
  18. Memo1: TMemo;
  19. procedure Button1Click(Sender: TObject);
  20. private
  21. { private declarations }
  22. public
  23. { public declarations }
  24. end;
  25.  
  26. var
  27. Form1: TForm1;
  28.  
  29. implementation
  30.  
  31. {$R *.lfm}
  32.  
  33. { TForm1 }
  34.  
  35. procedure TForm1.Button1Click(Sender: TObject);
  36. var
  37. WSAA, WSFEv1: Variant;
  38. tra, path, pathTra, Certificado, ClavePrivada, cms, ta: String;
  39. qty, LastId, LastCBTE, cae, ok , OkUlt, ok_WSAA: Variant;
  40. tipo_cbte, punto_vta, tipo_doc, presta_serv, id,
  41. cbt_desde, cbt_hasta : Integer;
  42. fecha, nro_doc, imp_total, imp_tot_conc, imp_neto, impto_liq,
  43. impto_liq_rni, imp_op_ex, fecha_cbte, fecha_venc_pago,
  44. fecha_serv_desde, fecha_serv_hasta, venc : String;
  45. cache ,url_wsdl ,proxy : String ;
  46. moneda_id , moneda_ctz : string ;
  47. base_imp, importe : string ;
  48. Token , Sign , ta_xml : Variant;
  49. w_archivo : string;
  50.  
  51. //nodo: IXMLNode;
  52. //dXML: TXMLDocument;
  53.  
  54. f : TextFile;
  55. begin
  56. CoInitialize(nil);
  57.  
  58. // Crear objeto interface Web Service Autenticación y Autorización
  59. WSAA := CreateOleObject('WSAA') ;
  60. // Generar un Ticket de Requerimiento de Acceso (TRA)
  61. tra := WSAA.CreateTRA;
  62. Memo1.Lines.Add(tra);
  63. // Especificar la ubicacion de los archivos certificado y clave privada
  64. path := GetCurrentDir + '\';
  65. // Certificado: certificado es el firmado por la AFIP
  66. // ClavePrivada: la clave privada usada para crear el certificado
  67. Certificado := 'reingart.crt'; // certificado de prueba
  68. ClavePrivada := 'reingart.key'; // clave privada de prueba' +
  69. // Generar el mensaje firmado (CMS)
  70. Memo1.Lines.Add(Path + Certificado);
  71. Memo1.Lines.Add(Path + ClavePrivada);
  72. cms := WSAA.SignTRA(tra, Path + Certificado, Path + ClavePrivada);
  73. Memo1.Lines.Add(cms);
  74. // Llamar al web service para autenticar:
  75. ta := WSAA.CallWSAA(cms, 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms'); // Hologación
  76. //ta = WSAA.CallWSAA(cms, 'https://wsaa.afip.gov.ar/ws/services/LoginCms'); // Producción
  77. // Imprimir el ticket de acceso, ToKen y Sign de autorización
  78. Memo1.Lines.Add(ta);
  79. showmessage(ta);
  80. Memo1.Lines.Add('Token:' + WSAA.Token);
  81. Memo1.Lines.Add('Sign:' + WSAA.Sign);
  82. // Una vez obtenido, se puede usar el mismo token y sign por 6 horas
  83. // (este período se puede cambiar)
  84. // Crear objeto interface Web Service de Factura Electrónica
  85.  
  86. cache := ''; // directorio temporal (usar predeterminado)
  87. url_wsdl := 'https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL ';// usar servicios1 para producción
  88. proxy:= '';
  89.  
  90. WSFEv1 := CreateOleObject('WSFEv1');
  91.  
  92. // Setear tocken y sing de autorización (pasos previos)
  93. WSFEv1.Token := WSAA.Token;
  94. WSFEv1.Sign := WSAA.Sign;
  95. // CUIT del emisor (debe estar registrado en la AFIP)
  96. WSFEv1.Cuit := '20108714965';
  97. //WSFEv1.LanzarExcepciones := False;
  98. // Conectar al Servicio Web de Facturación
  99. ok := WSFEv1.Conectar(cache, url_wsdl, proxy); // homologación
  100. //ok := WSFE.Conectar('https://wsw.afip.gov.ar/wsfe/service.asmx'); // producción
  101. // Llamo a un servicio nulo, para obtener el estado del servidor (opcional)
  102. {WSFEv1.Dummy;
  103. WriteLn('appserver status ' + WSFEv1.AppServerStatus);
  104. WriteLn('dbserver status ' + WSFEv1.DbServerStatus);
  105. WriteLn('authserver status ' + WSFEv1.AuthServerStatus);}
  106. // Recupera cantidad máxima de registros (opcional)
  107. //qty := WSFE.RecuperarQty;
  108. // Recupera último número de secuencia ID
  109. //LastId := WSFEv1.RecuperaLastCMP();
  110. // Recupero último número de comprobante para un punto de venta y tipo (opcional)
  111.  
  112. tipo_cbte := 1; punto_vta := 3;
  113. LastCBTE := WSFEv1.CompUltimoAutorizado(punto_vta, tipo_cbte) + 1; //+ 1
  114.  
  115. //WriteLn(WSFEv1.FECompUltimoAutorizado) ;
  116.  
  117. // Establezco los valores de la factura o lote a autorizar:
  118. DateTimeToString(Fecha, 'yyyymmdd', Now);
  119. id := LastId + 1; presta_serv := 3;
  120. tipo_doc := 80; nro_doc := '20277448530';
  121. cbt_desde := LastCBTE ;
  122. cbt_hasta := LastCBTE ;
  123. imp_total := '121.00'; imp_tot_conc := '0.00'; imp_neto := '100.00';
  124. impto_liq := '21.00'; impto_liq_rni := '0.00'; imp_op_ex := '0.00';
  125. fecha_cbte := Fecha; fecha_venc_pago := Fecha;
  126. moneda_id := 'PES';
  127. moneda_ctz := '1.000';
  128.  
  129. // Fechas del período del servicio facturado (solo si presta_serv = 1)
  130. fecha_serv_desde := Fecha; fecha_serv_hasta := Fecha;
  131.  
  132. // Llamo al WebService de Autorización para obtener el CAE
  133. ok := WSFEv1.CrearFactura ( presta_serv,
  134. tipo_doc, nro_doc, tipo_cbte, punto_vta,
  135. cbt_desde, cbt_hasta, imp_total, imp_tot_conc, imp_neto,
  136. impto_liq, impto_liq_rni, imp_op_ex, fecha_cbte, fecha_venc_pago,
  137. fecha_serv_desde, fecha_serv_hasta,moneda_id,moneda_ctz ); // si presta_serv = 0 no pasar estas fechas
  138.  
  139. //Agrego tasas de IVA
  140. id := 5 ; // 21%
  141. base_imp := '100.00';
  142. importe := '21.00';
  143. ok := WSFEv1.AgregarIva(id, base_imp, importe);
  144. {If tipo_cbte = 1 Then // solo para facturas A
  145. begin
  146. ok := WSFEv1.AgregarOpcional(5, '02'); // IVA Excepciones (01: Locador/Prestador, 02: Conferencias, 03: RG 74, 04: Bienes de cambio, 05: Ropa de trabajo, 06: Intermediario).
  147. ok := WSFEv1.AgregarOpcional(61, '80'); // Firmante Doc Tipo (80: CUIT, 96: DNI, etc.)
  148. ok := WSFEv1.AgregarOpcional(62, '20267565393'); // Firmante Doc Nro
  149. ok := WSFEv1.AgregarOpcional(7, '01'); // Car?er del Firmante (01: Titular, 02: Director/Presidente, 03: Apoderado, 04: Empleado)
  150. End;}
  151.  
  152. WSFEv1.Reprocesar := True ;
  153. //cae :=
  154.  
  155. cae := WSFEv1.CAESolicitar;
  156. If WSFEv1.Excepcion <> '' Then
  157. begin
  158. showmessage( WSFEv1.Excepcion) ;
  159. showmessage( WSFEv1.Traceback) ;
  160. showmessage( WSFEv1.XmlRequest) ;
  161. showmessage( WSFEv1.XmlResponse) ;
  162.  
  163. end;
  164. showmessage( 'Resultado ' + WSFEv1.Resultado);
  165. showmessage( 'CAE' + WSFEv1.CAE);
  166.  
  167. //' Imprimo pedido y respuesta XML para depuración (errores de formato)
  168. Memo1.Lines.Add(WSFEv1.XmlRequest );
  169. Memo1.Lines.Add( WSFEv1.XmlResponse );
  170. Showmessage( WSFEv1.XmlResponse );
  171. If WSFEv1.errmsg <> '' Then
  172. Memo1.Lines.Add(WSFEv1.errmsg);
  173.  
  174. Memo1.Lines.Add('Obs ' + WSFEv1.obs);
  175. Memo1.Lines.Add('Resultado: ' + WSFEv1.Resultado);
  176. Memo1.Lines.Add('cae: ' + WSFEv1.CAE);
  177.  
  178. //cae := WSFEv1.CAE() ;
  179. ShowMessage('CAE: ' + cae );
  180.  
  181. CoUninitialize;
  182. end;
  183.  
  184. end.


  • 0

#118 rodrinig

rodrinig

    Newbie

  • Miembros
  • Pip
  • 5 mensajes

Escrito 21 julio 2015 - 11:33

No me deja ver el error, no tengo permisos


  • 0

#119 quileab

quileab

    Newbie

  • Miembros
  • Pip
  • 7 mensajes

Escrito 21 julio 2015 - 03:46

Perdon...

Compartido

 

https://drive.google...cDg&usp=sharing


  • 0

#120 Amadis

Amadis

    Member

  • Miembros
  • PipPip
  • 13 mensajes

Escrito 22 julio 2015 - 06:46

Hola Quileab.

Gracias por compartir tu ejemplo. 

 

Te cuento que a mi me ha funcionado bien.

Tu problema por lo que se ve debe ser de certificados.Fijate que te da problema al autenticar. Y Fijate que tenes puestos los certificados del creador de la dll reingart.key pero estas usando otro cuit que no es el de el. Yo lo he probado con mi cuit y crt y key y conecta y aprueba la factura de maravillas.


  • 0





Etiquetado también con una o más de estas palabras: Factura Electrónica, AFIP

IP.Board spam blocked by CleanTalk.