Jump to content


Photo

Factura Electrónica para Argentina

Factura Electrónica AFIP

  • Please log in to reply
135 replies to this topic

#21 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 11 June 2015 - 08:14 AM

Bueno yo programo en Delphi no en Lazarus pero: existe alguna forma de probar un sistema sin datos reales, por supuesto la parte de facturacion electronica? probar si esta bien hecho?

 

Normalmente las instituciones cuentan con un webService de prueba (al menos acá en México), podrías preguntar a la autoridad correspondiente que te proporcione la url de pruebas.

 

Saludos


  • 0

#22 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 11 June 2015 - 10:38 AM

Tal como dice Ego

El ejemplo muestra como operar en servidor de homologacion (homologacion = pruebas), cambiando esa direccion por la oficial, entras en produccion (produccion = real)

Para poder operar incluso en pruebas tenes que tener el certificado que sirve para "iniciar sesion". Este lo provee la AFIP

Aca te dejo mas info
http://www.sistemasa...Ws#Certificados



 


  • 0

#23 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 posts

Posted 12 June 2015 - 06:32 AM

hola Agustin de que tipo es Comprobante? a mi no me lo reconoce, sera que debo utilizar WSDL Importer o alcanza con pasar las url como variables? O es el DataSet que contiene tu informacion sobre la factura..?


  • 0

#24 Amadis

Amadis

    Member

  • Miembros
  • PipPip
  • 13 posts

Posted 12 June 2015 - 07:13 AM

Hola Chajarí. Te escribo desde la antes llamada Ciudad Paraiso, de entre ríos.

 

Yo ando también incursionando en esto de incorporar la FE. Y te respondo ya que he consultado lo mismo al compañero Agustín. 

 

Cito sus palabras textuales 

 

la linea que aparece por ahi "with comprobante" bla bla bla. Eso lo tenes que reemplazar vos con los datos de la factura que oportunamente lees de algun lado (bd, archivo texto, o hasta podrias pedirlos por pantalla campo a campo)

 

El tema es que la factura nosotros ya la tenemos generada (tenemos un sistema de gestion que ya funciona) y le agregamos este modulo para las facturas electronicas. Entonces directamente le mandamos como parametro una factura ya hecha (no la armamos en el momento)


  • 0

#25 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 12 June 2015 - 11:59 AM

Tal y como dice Amadis, comprobante es un descendiente de TObject que tiene todos los datos de la factura 

 

Salutes!


  • 0

#26 giulichajari

giulichajari

    Advanced Member

  • Miembros
  • PipPipPip
  • 477 posts

Posted 13 June 2015 - 12:07 PM

Osea que los totales netos del objeto componente son las bases imponibles? y los totalIva son las alicuotas.

Entonces admite el 10,5 el 21 y el 27%? osea una factura con 3 ivas distintos discriminados?

 

Y en la base de datos tengo que tener la clave privada de cada cliente, osea de quienes pueden solicitar que se les haga facturacion electronica?

 

Y los archivos de certificado y clave privada de que tipo son??


  • 0

#27 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 14 June 2015 - 12:38 PM

Nono, giulichajari me entendiste mal

 

Cuando hablo del cliente hablo de TU cliente, el usuario del sistema. Tenes que tener un archivo .crt y otro archivo .key. El certificado lo provee la afip en base al .key, que se genera con SSL si mal no recuerdo. Desconozco como es el tramite para las empresas, yo hice el tramite via mail y me habilitaron solamente un certificado con mi CUIT, pero esta habilitado solo para servidor de pruebas. En servidor real me lo rebota porque no estoy ingresado

 

Entonces la empresa a la que vos vendes le tiene que poder indicar a tu sistema en algun lado los siguientes parametros para que pueda operar con factura electronica:

1. Ruta del certificado. Es el archivo .crt provisto por la AFIP

2. Clave privada. Es un archivo .key que hasta donde se, se genera por medio de las librerias open SSL. Si buscan en la pagina esa que deje arriba o por internet van a encontrar miles de tutoriales

3. Numero de cuit: Numero de cuit de la empresa o persona a cargo del negocio. Es el CUIT del emisor, obviamente debe ser legal, y tiene que corresponderse con el CUIT de los dos archivos de arriba

 

Con esas 3 cosas ya podrian operar. Al emitir una factura electronica (ahora si, hablamos de los clientes de ellos) solamente basta con mandar Tipo de Documento (DNI, CUIT, CUIL, LC, etc) y el numero

 

Cuando discriminas IVA, yo tengo la siguientes costantes y funcion declaradas:


delphi
  1. const
  2. { CODIGOS IVA ACT 27-04-2015 }
  3. IVA_NO_GRAV = 1;
  4. IVA_EXENTO = 2;
  5. IVA_0 = 3;
  6. IVA_105 = 4;
  7. IVA_21 = 5;
  8. IVA_27 = 6;
  9.  
  10. function CodigoIVA(const Alic: single): integer;
  11. begin
  12. try
  13. if Alic = 10.5 then
  14. Exit(IVA_105)
  15. else if Alic = 21 then
  16. Exit(IVA_21)
  17. else if Alic = 27 then
  18. Exit(IVA_27)
  19. else if Alic = 0 then
  20. Exit(IVA_0)
  21. else
  22. Exit(IVA_EXENTO);
  23. except
  24. Result := IVA_NO_GRAV;
  25. end;
  26. end;

La AFIP le asigna cierto codigo a cada tipo de iva, con esta funcioncita lo recupero segun el tipo de alicuota

 

No necesariamente las facturas discriminan todos los tipos de IVA; fijate que tengo los 3 campos ImporteIVA1, 2 y 3. Si alguno es mayor de 0 entonces tiene IVA y hay que discriminarlo

 

Espero haber aclarado un poco 


  • 1

#28 Nikolas

Nikolas

    Advanced Member

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

Posted 19 June 2015 - 03:16 PM

Al que le interese el tema del codigo de barras http://www.afip.gov....esol170204.html


  • 1

#29 Amadis

Amadis

    Member

  • Miembros
  • PipPip
  • 13 posts

Posted 19 June 2015 - 04:57 PM

Que tal Agustín. 

 

Estaba armando de cero un proyecto de prueba que autorice y me di cuenta que el ejemplo delphi que trae el FEAFIP de BitIngenieria es diferente en sintaxis de la forma en que vos estas trabajando. Al margen del objeto Comprobante. en tu ejemplo veo por ej 


php
  1. WSFEv1.Token := WSAA.Token;
  2. WSFEv1.Sign := WSAA.Sign;

Que no lo encuentro en el ejemplo de la DLL.

 

EL ejemplo que trae la DLL aparenta ser mas simple para los que apenas estamos conociendo el tema.


delphi
  1. { Los nombres de los parametros de las funciones se obtienen descomprimiendo FEAFIP DOC
  2. y luego abriendo el archivo index.html de la carpeta "Doc Interfaces".
  3. la interfaz correspondiente a este ejemplo es Iwsfev1 para facturas A y B.}
  4. const
  5. //URLs de autenticacion y negocio. Cambiarlas por las de producción al implementarlas en el cliente(abajo)
  6. URLWSAA = 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms';
  7. //Producción: https://wsaa.afip.gov.ar/ws/services/LoginCms
  8. URLWSW = 'https://wswhomo.afip.gov.ar/wsfev1/service.asmx';
  9. // Producción: https://servicios1.afip.gov.ar/wsfev1/service.asmx
  10.  
  11. var
  12. // Importar FEAFIPlib en esta unit: FEAFIPLib_TLB.
  13. wsfev1: iwsfev1;
  14. nro: Double;
  15. CAE, Vencimiento, Resultado, Reproceso, FechaComp: WideString;
  16. PtoVta, TipoComp: integer;
  17. begin
  18. CAE := '';
  19. Vencimiento := '';
  20. Resultado := '';
  21. Reproceso := '';
  22. nro := 0;
  23. PtoVta := 10;
  24. TipoComp := 1; // Factura A(ir a http://www.bitingenieria.com.ar/codigos.html)
  25. FechaComp := FormatDateTime('yyyymmdd', Now());
  26.  
  27. wsfev1 := Cowsfev1.Create;
  28. wsfev1.CUIT := 20939802593; // Cuit del vendedor
  29. wsfev1.URL := URLWSW;
  30. if wsfev1.login('certificado.crt', 'clave.key', URLWSAA) then
  31. begin
  32. if not wsfev1.RecuperaLastCMP(PtoVta, TipoComp, nro) then
  33. ShowMessage (wsfev1.ErrorDesc)
  34. else
  35. begin
  36. nro := nro + 1;
  37. wsfev1.Reset;
  38. wsfev1.AgregaFactura(1, 80, 30707219072, nro, nro, FechaComp, 121, 0, 100, 0, '', '', '', 'PES', 1);
  39. wsfev1.AgregaIVA(5, 100, 21); //ir a http://www.bitingenieria.com.ar/codigos.html
  40. if wsfev1.Autorizar(PtoVta, TipoComp) then
  41. begin
  42. wsfev1.AutorizarRespuesta(0, CAE, Vencimiento, Resultado, Reproceso);
  43. If Resultado = 'A' Then
  44. ShowMessage('Felicitaciones! Si ve este mensaje instalo correctamente FEAFIP. CAE y Vencimiento ' + ':' + CAE + ' ' + Vencimiento)
  45. else
  46. ShowMessage(wsfev1.AutorizarRespuestaObs(0))
  47. end
  48. else
  49. ShowMessage(wsfev1.ErrorDesc);
  50. end
  51. end
  52. else
  53. ShowMessage(wsfev1.ErrorDesc);
  54. end;

Ahora ese ejemplo que acabo de colocar arriba cumple la misma función y legalmente es válido como el procedimiento que estas usando??.

 

Inclusive se ve otro parámetro por donde se devuelven mensajes de error, como te comentaba en privado.


delphi
  1. wsfev1.ErrorDesc

Otro asunto, hoy me comentabas que en tu programa tenes un boolean, "esfacturaelectronica". Entonces,¿se pueden seguir emitiendo facturas no electronicas?.

Si no entendí mal, cuando en un registro tenías ese boolean en true, se gestionaba la autorización?. 

 

Creo que se va aclarando poco a poco el panorama.


  • 0

#30 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 19 June 2015 - 06:21 PM

Buenas, primero que nada queria hacer publica una pequeña charla privada que tuvimos con Amadis con respecto al tema; nos parecio buena idea porque quiza le sirva a alguien.

 

 

 

Hola agustin. Tenés algún formulario completo a modo de ejemplo de como confeccionar una factura y generar el pdf para ver como es el asuunto y lego adaptar a las necesidades. El codigo que colocaste me parece simple (aunque no logré que funcione). EL manual de afip trabaja todo por xml. Y nunca he usado webservices y xml y no se para que lado disparar. Muchas gracia

 

 

Hola Amadis,
 
El codigo que publique es tal y como lo uso. Lo unico que le "falta" para que compile es la unit del proyecto en la que contiene los tipos que maneja mi sistema, de ahi la linea que aparece por ahi "with comprobante" bla bla bla. Eso lo tenes que reemplazar vos con los datos de la factura que oportunamente lees de algun lado (bd, archivo texto, o hasta podrias pedirlos por pantalla campo a campo)
 
El tema es que la factura nosotros ya la tenemos generada (tenemos un sistema de gestion que ya funciona) y le agregamos este modulo para las facturas electronicas. Entonces directamente le mandamos como parametro una factura ya hecha (no la armamos en el momento)
 
La libreria lo unico que hace es meterse en el webservice de la afip, y para una determinada factura te devuelve el cae y fecha de vencimiento de cae (o errores si hubiera). No genera ningun pdf (lo tenes que hacer vos).
 
En la pagina http://www.sistemasa...turaElectronica hay una utilidad que te genera los pdf pero desconozco como se usa
 
En mi caso el pdf lo genero yo mismo, como dije antes, usando QuickReport. Para añadirle el codigo de barras reglamentario uso esta otra herramienta http://www.sistemasa...CódigosdeBarras  (PyI25: Generador de Códigos de Barras)
 
Dentro del reporte, solte un componente TQRImage que contendra la imagen con el codigo de barras y en el evento OnBeforePrint uso el siguiente codigo para poder generar la imagen

delphi
  1. var
  2.     PYI25: Variant;
  3.     CodeString, JPEGFile: string;
  4.     Imagen: TJPEGImage;
  5. begin
  6.     Imagen := NIL;
  7.     PYI25 := CreateOleObject('PYI25');
  8.     CodeString := sCUIT_Emisor + Comp.TipoComp + Comp.PuntoVenta + Comp.CAE + Comp.FechaVtoCae;
  9.     CodeString := CodeString + PyI25.DigitoVerificadorModulo10(CodeString);
  10.     JPEGFile := ExtractFilePath(ParamStr(0)) + CodeString + '.jpeg';
  11.     PyI25.GenerarImagen(CodeString, JPEGFile, 9, 0, 90, 'JPEG');
  12.     Imagen:= TJPEGImage.Create;
  13.     Imagen.LoadFromFile(JPEGFile);

Espero te sirva de algo 

 

 

Buenos Días Agustín, he logrado hacer compilar un proyecto con la FEAFIP.dll. 

 

Entonces si no entiendo mal la Factura electrónica no es más que una Factura normal con el agregado del CAE (en codigo de barra) y la habilitación del mismo mediante la FEAFIP.dll?.

 

Te hago otras consultas tontas seguramente. Descargue el PYi25 pero no he podido registrar la dll. larga un par de errores de las otras dll python25 etc.

 

Y en el proyecto si intento esta linea  PYI25 := CreateOleObject('PYI25'); larga error aquí no reconoce el objeto.

 

Otra consultita, que he realizado a la mesa de ayuda de afip pero nunca me dieron pelota.

 

Yo me he generado  mis certificados csr, lo he subido con mi clave fiscal a la afip, y he generado el crt y tengo tambien el .key.

EL CRT tiene vencimiento el año proximo. La consulta es, una vez terminado el sistema debo reemplazar estos certificados con los de la empresa que vaya a emitir la factura?? ¿o siempre queda con mi key?. La otra. Una vez vencido el CRT se debe gestionar otro? y reemplazar el antiguo?.

 

Desde ya muchísimas gracias por toda tu ayuda y tiempo.

 

 

Hola Amadis

 

En efecto, la FE es una simple factura normal pero que fue autorizada por la AFIP y te devuelven el CAE, fecha de vencimiento del CAE y un Id (numero de transaccion). Esos 3 valores te los tenes que guardar en algun lado (por ejemplo base de datos). El id te va a servir para hacer consultas y recuperar datos de facturas ya autorizadas, no lo probe aun, pero hay metodos para eso

 

Con el tema del codigo de barras, lamento a veces no explicar bien las cosas. Para que te ande tenes que instalar la interface del desarrollador de la biblioteca PyI25

 

Aca esta el enlace: https://code.google....mo.exe&can=2&q=

 

Admito que el desarrollador es bastante desprolijo con su pagina y vas a encontrar 1500 descargas repartidas por todos lados. PEro yo con ese puedo usar sin problemas el WSFEv1 y el PYI125

 

Tema certificados: Son credenciales de acceso, esos archivos equivalen a decir: "Yo soy Amadis y mi contraseña es esta..., pueden verificar que soy yo porque tengo los archivos que dicen que soy Amadis". Me seguis? Quiere decir que esos archivos estan habilitados para vos. Si los uso yo o cualquier otro en tu nombre, las facturas van a quedar como que las emitiste vos. Asi que si, cada empresa tiene que tener sus propios certifiacdos y clave. 

 

Por eso mismo en mi sistema agregamos un apartado de configuracion para la factura electronica. Ahi le pedimos que nos indique la ruta de los 2 archivos, las 2 URL de los webservice de la AFIP (por si quiere usar para pruebas o produccion, o por si cambia) y tambien el nro de CUIT

 

Espero haber sido de ayuda

 

 

Buenas Tardes Agustín. Finalmente voy haciendo andar las cosas. Ya tengo funcionando el pyi25.

 

ahora otra consulta, en la instrucción para el generado del código de barras, ¿que significa la siguiente linea?

 
CodeString := '20939802593' + '1' + '20' + caee + VtoCae;
 

En realidad lo que quiero saber es QUÉ ES lo que está antes de + cae .... etc. ¿que significan esos números? O son sólo numeros cualesquiera para el nombre del archivo ??.

 

Otra cosa, veo que la instrucción genera un jpg con el código, ese JPG ¿lo guardas o lo eliminas luego de generar la factura?.

 

Otra mas... leí por ahí que en ocaciones no se autoriza la operación.¿te ha pasado?.

 

Si hay errores son devueltos en este parámetro?  ShowMessage(lwsfev1.ErrorDesc);?

 

Otra... ¿el cae lo generas al momento de finalizar la factura y lo visualizas en pantalla? o lo imprimis directamente al pie de la boleta?. Te pregunto porque en la web de estos componentes PY... tienen una imagen de su sistema y veo que generan primero y lo muestran 

aplicativo_factura_electronica_06b_ubunt

 

Te estoy muy agradecido por todo tu tiempo y ayuda.

 

Muchas gracias.

 

 

 

Hola de nuevo Amadis

 
Con respecto al codigo de barras en el ejemplo que te pase arriba creo que estan bien detallados los parametros.

 

Pero basicamente el CodeString lo conformas asi:

 

CodeString := CUIT Emisor + Tipo Comprobante + Punto Venta + CAE + Fecha Venc CAE + Digito Verificador

 

Te quedaria entonces todo un string concatenado con esos datos. El digito verificador se lo pedis al mismo pyi25 ejecutando la funcion DigitoVerificadorModulo10(CodeString). Eso tiene que salir en la factura impreso abajo de la imagen del codigo de barras

 

El jpg en particular yo lo guardo y los voy archivando, pero de cualquier modo, siempre que se tenga los datos es posible reconstruirlo, y siempre deberia ser el mismo

 

Lo del fallo en la autorizacion, en realidad fallar es algo muy raro que pase, si falla es porque estas mandando mal algun valor. Por ejemplo, decis que el total es 120, y que tenes 21% aplicado sobre un valor de 100; obviamente la cuenta no da y te retorna error. Los errores yo los muestro con WSFEv1.ErrMsg. La que mencionas ni sabia que existia  :). Basicamente si cuando pedis CAE, si WSFEV1.Resultado = 'A' entonces autorizo bien; sino, esta mal

 

Otro tema que me paso el otro dia, a tener en cuenta: La fecha de la pc en cuestion tiene que estar sincronizada con el huso horario de buenos aires. Sino una excepcion enorme con errores de python. Pero se soluciono poniendo la fecha y hora en regla (era una pc con la pila de la bios gastada y tenia en fecha cualquier cosa.. pero haciendo pruebas, con 30 min adelantado o atrasado ya no te deja entrar)

 

Yo para gestionar las facturas, mantengo el circuito original del sistema. Se carga la factura y se guarda en la base de datos. Luego hay un par de campos nuevos que agregamos, serian: CAE, FechaVtoCae, IdGestion (el id con el que mandamos a autorizar), y un booleano EsFacturaElectronica; si es apenas grabada va a quedar con valores por defecto obviamente (string vacios, booleano en falso, etc)

 

Lo hacemos de esta manera porque al grabarla nos aseguramos que la factura es valida, por ejemplo que habia stock suficiente, no habia bloqueos por deudas pendientes de clientes, o algun otro error X. Ademas alguno de nuestros clientes cargan continuamente facturas y no "pueden andar esperando a que el sistema autorice". Para ellos es mejor cargar todo y luego en un momento con mas calma, las mandan a autorizar, no necesariamente tiene que ser en linea

 

Para mandarla a autorizar, tenemos un cuadro de busquedas en el cual permitimos seleccionar la factura deseada y enviarla a autorizar. Ahi es donde se ejecuta toda la rutina y si todo va bien, le mostramos un dialogo indicando exito y si quiere visualizar el comprobante, que seria un Preview a un QuickReport en formato PDF; si decide abrirlo ahi ya puede elegir si lo imprime, lo guarda como PDF.

Ademas al autorizar, se actualizan de esa factura los campos de la base de datos que te mencione arriba. Si llegara a mandar a autorizar de nuevo la misma le mostramos un warning diciendo que ya estaba autorizada y cual es el CAE y la fecha de Vencimiento

 

Hasta ahi bien. Luego en el cuadro de busqueda de facturas del que te comentaba arriba, para las facturas que fueron correctamente autorizadas, habilitamos un boton para que pueda generar el PDF (el mismo que le mostramos cuando autorizo exitosamente). Al tener ya los campos en la base es posible reconstruir como te comentaba el codigo de barras e imprimir el CAE y su vencimiento

 

En el caso de que falle la autorizacion, hacemos un raise Exception informando el error que devuelve la AFIP, eso como te comente mas arriba con el  WSFEv1.ErrMsg. Un ejemplo facil que podes probar para ver como devuelve es intentar autorizar una factura en donde el CUIT del emisor y receptor sean iguales. Los errores vuelven con un codigo de error y es bastante presentable a un usuario comun, no hace falta hacer algun manejo raro de excepciones ni andar interceptando nada

 

En sintesis, al cliente no le interesa tanto "ver el CAE", solamente apretar algun boton y que si todo va bien, poder obtener un archivo digital para enviar por mail la factura en cuestion, o imprimirla si gusta

 

Saludos y como siempre, cualquier inquietud me comentas


  • 1

#31 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 19 June 2015 - 06:36 PM

Con respeto a la ultima consulta, ahora me doy cuenta de que estas usando la primer biblioteca que publique, la FEAFIP.dll

El problema es que esa libreria no es libre, hay que pagar una licencia para poder usarla; yo mismo me contacte por mail con los desarrolladores. El costo de la misma es de $3000 si mal no recuerdo, esto harà mes, mes y medio atras.

 

En realidad seria ideal que en la propia pagina del fabricante o en la documentacion se aclaren estos puntos, a mi jefe no le gusto nada el estar en dudas, mando mail y la respuesta fue esa. Supongo que la version que esta en la pagina es una demo que te permitiria cierta cantidad de comprobantes o no te deja entrar en produccion (modo real)

 

Fue en el msg #9 http://delphiaccess....ina/#entry89853

donde aclare que iba a usar otra biblioteca; pero claro no me di cuenta que no inclui el enlace de la nueva

 

Es decir, donde escribi esto:

 

 

 

Buenas, yo al final termine usando esto:

 

En realidad quise poner esto:

 

 

 

Buenas, yo al final termine usando esto: http://www.pyafipws.com.ar/wsfev1

 

Ahora veo que por error u omision, no aparece el enlace, pido disculpas por ello :(

 

De todos modos, la biblioteca PyAFIPWs funciona bien con el codigo que he publicado, hay ejemplos en delphi en la web del autor y hasta un foro (grupo de google) donde responden dudas puntuales, de hecho participa el autor de la libreria

 

Antes de seguir con las incertidumbres, esta biblioteca es libre pero no viene habilitada por defecto para entrar en modo de produccion. Para hacerlo hay que modificar los binarios que se compilan en el instalador, y luego volver a instalar la biblioteca en la pc en cuestion. Yo no lo he hecho aun. En este enlace se detallan los pasos https://github.com/r...ionCodigoFuente

 

Luego, extraido de la web oficial, http://www.sistemasa...tosyCondiciones

 

Costos y Condiciones

  • Instalador para demostración sin cargo completamente funcional (para homologación)
  • Código fuente publicado licenciado bajo GPLv3 (ver Licencia)
  • Soporte comunitario: para uso gratuito sin cargo por el  fóro público (Google Group) ver Modos Homologación/Producción e Instalación Codigo Fuente
  • Costo del soporte técnico comercial básico para webservices de AFIP y productos relacionados: (por única vez por empresa desarrolladora de software, sin activación ni limitaciones de CUIT, consultar por presupuestos a medida)

Mas abajo...

 

C Consideraciones generales
  • Los precios están sujetos a modificaciones y pueden variar sin previo aviso (valor hora de referencia: $187,50/h + IVA Marzo 2015).
  • El tiempo promedio de respuesta es en el día (<24hs), pudiendo variar dependiendo de cada caso puntual.
  • Queda a criterio de Sistemas Ágiles elegir los tiempos, prioridad y modalidad de prestación de los servicios.
  • Se ofrecen demostraciones sin cargo y el código fuente está publicado, por lo que una vez contratado el servicio, no se aceptarán reclamos ni se efectuarán devoluciones.

El software es un desarrollo propio, previo, no exclusivo ni confidencial, Copyright 2008/2009/2010/2011/2012/2013/2014/2015 por Mariano Alejandro Reingart. Se reservan los derechos de autor Ley 11723. Se autoriza el uso, incorporación y distribución de la solución a la empresa contratante de los servicios, junto a su sistema de gestión/facturación. Se prohíbe el relicenciamiento a terceros.

 

Aca mas informacion: http://www.sistemasa...ciónyProducción

 

La otra opcion es si no se quiere realizar la modificacion, es pagarle al autor para que nos de el instalador habilitado para produccion, y obtener ayuda y soporte tecnico


  • 0

#32 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 19 June 2015 - 06:40 PM

Por ultimo con respecto al boolean de EsFacturaElectronica, es simplemente un campo que tengo en la BD para identificar si la autorice o no, no necesariamente todas las facturas deben estar autorizadas

 

Como comentaba, primero se graba la factura en mi sistema de gestion, luego el usuario es responsable de autorizarla cuiando crea oportuno. Segun tengo entendido, hay un plazo creo de 10 dias como tope para autorizar

 

Aun asi, tambien tenemos en nuestro programa la opcion de, apenas terminada de cargar la factura, enviar para autrorizar; pero esto ya es mas la forma de trabajo del sistema que otra cosa

 

Saludos

 

PD: He hecho 3 post solo porque me parecia mucho contenido para mandarlo en uno solo. En realidad me hubiese gustado poner algunas cosas dentro de "spoilers" pero no he encotrado la opcion o no se hacerlo. Si algun moderador lo considera adecuado puede juntar todo en un post


  • 1

#33 Amadis

Amadis

    Member

  • Miembros
  • PipPip
  • 13 posts

Posted 20 June 2015 - 09:38 AM

Con razón si bien se me aclaraban las cosas no entendía del todo entre lo que estaba haciendo yo y tu ejemplo.

 

Ahora estoy trabajando para intentar armar un demo de prueba que autorice una factura en base a tu código reemplazando el objeto comprobante por variables con los datos.

 

La semana próxima cuando lo haga funcionar publico.

 

Otra cosa, comentas que el PYAFIPWS no viene para producción, que hay que modificar los binarios en Python. 

¿no basta con cambiar la url de homologación por la de producción?.


delphi
  1. // Llamar al web service para autenticar:
  2. ta := WSAA.CallWSAA(cms, 'https://wsaahomo.afip.gov.ar/ws/services/LoginCms'); // Hologación
  3. //Para Producción debería bastar con reemplazar por : https://wsaa.afip.gov.ar/ws/services/LoginCms
  4. cache := ''; // directorio temporal (usar predeterminado)
  5. url_wsdl := 'https://wswhomo.afip.gov.ar/wsfev1/service.asmx'; // usar servicios1 para producción
  6. // Producción: https://servicios1.afip.gov.ar/wsfev1/service.asmx
  7.  
  8. proxy := ''; // información de servidor intermedio (si corresponde)
  9. //¿esto es si la PC navega a travéz de un proxy?. ¿El webservice no se basa en la configuración del Internet de la PC?.
  10. // Debemos especificar allí dirección:puerto del proxy?

Otra duda más. El directorio caché predeterminado es ''? . Eso sería la ruta raíz del programa no.

Ese caché, por lo que leí de la DLL FEAFIP agilizaría las autorizaciones almacenando datos temporales no?.

 

Bueno saludos a todos, disfruten del fin de semana a los argentinos, y también felíz día del padre Mañana.


  • 0

#34 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 20 June 2015 - 12:19 PM

Haciendo pruebas en una aplicación de consola la primer conexión es más lenta que las consecuentes, así que si tenemos caché. Aunque he visto en la web del autor información al respecto sobre como gestionar caché

Con respecto al modo producción si cambias la dirección con binarios de prueba "no le da bola", por decirlo en criollo

Esto es según leí en su página por problemas legales, no veo cual. Yo supongo que lo hace ya que, dado que también hay utilidades hechas por el para usuario final que realizan la autorización, pero tampoco dejarlo tan accesible a cualquiera y poder agarrar algún mango
  • 0

#35 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14460 posts
  • LocationMéxico

Posted 20 June 2015 - 08:31 PM

 

PD: He hecho 3 post solo porque me parecia mucho contenido para mandarlo en uno solo. En realidad me hubiese gustado poner algunas cosas dentro de "spoilers" pero no he encotrado la opcion o no se hacerlo. Si algun moderador lo considera adecuado puede juntar todo en un post

 

Yo lo veo bien así.

 

Solo me queda la duda que es lo que querías hacer, ¿que es "spoilers"?

 

Saludos


  • 0

#36 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 20 June 2015 - 09:24 PM

PD: He hecho 3 post solo porque me parecia mucho contenido para mandarlo en uno solo. En realidad me hubiese gustado poner algunas cosas dentro de "spoilers" pero no he encotrado la opcion o no se hacerlo. Si algun moderador lo considera adecuado puede juntar todo en un post

 

 

En DelphiAccess no castigamos por dobe posting. No vemos nada de malo en eso. Así que no te debes sentirte apenado.

 

 

Yo lo veo bien así.

 

Solo me queda la duda que es lo que querías hacer, ¿que es "spoilers"?

 

Saludos

 

Los spoilers son un etiquetado/citado que puede plegarse/ocultarse. Por defecto vienen contraído pero al hacer clic se expande y puede verse el texto (y/o imágenes) ubicado en ellos. Se lo usa en algunos foros para evitar la carga de páginas lentas y de ese modo ocultar texto e imágnes que puede resultar secundario.

 

Saludos,


  • 0

#37 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 20 June 2015 - 09:29 PM

Yo vengo siguiendo al hilo sin intervenir en el tema porque no tengo idea.

Lo que me llama la atención son las dificultades técnicas/legales que se han encontrado para llevar esto a una etapa fuera de producción. Me siento confundido ¿Al final han podido superar esto? ¿Tódo se resume a que hay que desenvolsar los miles de pesos a terceros? ¿No hay en la documentación oficial de la AFIP como llevar las cosas fuera del ambiente de pruebas y pasar a algo final?

 

Yo también uso Lazarus, y ni bien termine un proyecto que tengo en manos es mi intención estudiar este tema ya que como bien saben este gobierno nos acaba de soltar la factura electrónica y todos andamos corriendo... ¿Cómo va la cosa? ¿Se puede al final?

 

Saludos,


  • 0

#38 Nikolas

Nikolas

    Advanced Member

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

Posted 21 June 2015 - 10:12 AM

 

Lo que me llama la atención son las dificultades técnicas/legales que se han encontrado para llevar esto a una etapa fuera de producción. 

 

 

tecnicas, algunas, en mi caso no trabaje con WS ni XML, entonces desde ese lado, me fue complicado.

legales tales como las impresoras fiscales.

 


Yo también uso Lazarus, y ni bien termine un proyecto que tengo en manos es mi intención estudiar este tema ya que como bien saben este gobierno nos acaba de soltar la factura electrónica y todos andamos corriendo... ¿Cómo va la cosa? ¿Se puede al final?

 

Saludos,

 

tenes 2 caminos

el largo y hacer todo vos ya que existe la documentacion oficial de la AFIP. esta en los primeros posts.

el corto que seria utilizar las librerias que otros profesionales han desarrollado con mas tiempo (el tema de la FE tiene un par de años).

 

En mi caso opte por el corto y comprar la consultoria de BITINGENIERIA para el uso de la FEAFIP, en realidad compre tiempo de desarrollo ya que debo solucionar el tema en un corto plazo.

La inversion de plata se recupera muy rapido en el caso que tengas clientes que necesiten el servicio.

 

Saludos.


  • 0

#39 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6295 posts
  • LocationArgentina

Posted 21 June 2015 - 12:56 PM

Gracias Nikolas,

Ya sea que haga todo el trabajo yo (que posiblemente termine siendo lo más probable) o que emplee componentes/bibliotecas de terceros seguro que pongo una clase Adapter a modo intermediario que ofrezca una interfaz adecuada para mis trabajos.

 

Saludos,


  • 0

#40 Amadis

Amadis

    Member

  • Miembros
  • PipPip
  • 13 posts

Posted 22 June 2015 - 04:43 PM

Hola Delphius. Disculpa la ignorancia. ¿que sería una clase Adapter?.

 

Yo estoy tratando de implementar con las DLL de Phyton con las instrucciones de OrtuAgustin. Tengo que pasar en limpio otras cositas para darle forma y armar un ejemplo simple para gestionar CAE y lo publico


  • 0





Also tagged with one or more of these keywords: Factura Electrónica, AFIP

IP.Board spam blocked by CleanTalk.