Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Fujitsu COBOL (https://www.cobolforo.es/forumdisplay.php?f=77)
-   -   [Sintaxis] Problemas con comunicación impresoras fiscales. (https://www.cobolforo.es/showthread.php?t=1435)

fastpho 19 de marzo de 2025 14:46

Cita:

Citación del post de Ale (Mensaje 9963)
Gracias fastpho, a la noche arranco con las pruebas..
CALL FUNC-SAM4-LIB WITH STDCALL USING BY REFERENCE "comando" returning "respuesta".
comando en este caso seria "Numero" (numero de comprobante), pero en respuesta, me traerá el numero de comprobante que preciso? o solo me trae el valor, si se ejecuto bien la función?

@Ale te deberia traer el numero de ticket que confeccionaste en la variable "respuesta" que deberia ser
Código COBOL:
  1. 01 Respuesta PIC S9(9) COMP-5


Saludos..

Kuk 19 de marzo de 2025 19:39

@Ale,

Comentario de Moderador
Usa los botones de resalto de sintaxis ;)


En cuanto a esto:
Código CPP:
  1. const char * IFOpRetGet (const char * name)

En Cobol se hace con un puntero:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  ptrDato     POINTER.
  3. ...
  4.  LINKAGE SECTION.
  5.  01  datosRecepcion      PIC X(100).
  6.  
  7.  PROCEDURE       DIVISION.
  8.  
  9.      call pgm with stdcall using by content "Precio"
  10.                            returning ptrDato
  11.                            
  12.      set address of datosRecepcion to ptrDato
  13.      
  14.      display datosRecepcion

Ale 21 de marzo de 2025 17:50

controlador fiscal
 
hola amigos.. Les comento los resultados, por si a alguien le hace falta en algún momento.

Código CPP:
  1. const char * IFOpRetGet (const char * name)

En esta función, para traer el numero de comprobante desde la fiscal, probando lo que me explicaron uds, funciono esto:
Código COBOL:
  1.  CALL FUNC-SAM4-LIB WITH STDCALL USING BY REFERENCE "comando" returning "respuesta".
. Pero lo tuve que enviar como:

Código CPP:
  1. const char * IFOpIntGet (const char * name)
como numérico (entero).

Ahora cuando tenga que traer algún valor como texto, como la función IFOpRetGet, no se como voy a hacer.
----

Y con respecto a enviar parámetro cantidad articulo, sigue sin funcionar, mejoro porque no me tira error, pero no me toma valor cantidad, lo mejor que funciono es esto:
Código COBOL:
  1.  01 comando-item-canti   pic x(8) value "Cantidad".
  2.  
  3.     MOVE "IFOpParamSet" TO FUNCION.
  4. ***        MOVE "IFOpParamFloatSet" TO FUNCION.
  5.     CALL FUNCION WITH STDCALL USING BY reference COMANDO-ITEM-CANTI
  6.                                       by value 2.60  
  7.                                       returning RESPUESTA-IMPRESOR.

probé como "IFOpParamIntSet" y "IFOpParamFloatSet" (como indica el manual) y no lo pude hacer funcionar. Lo raro es que en: por ejemplo comando "Precio" que tiene la misma arquitectura,
enviándolo como "IFOpParamIntSet" me lo tomo, pic S9(9) comp-5. Logicamente acomodando los decimales.
Ya me estoy entregando. Me supera.

saludos ....

Kuk 21 de marzo de 2025 19:27

Cita:

Citación del post de Ale (Mensaje 9969)
Código COBOL:
  1. CALL FUNC-SAM4-LIB WITH STDCALL USING BY REFERENCE "comando" returning "respuesta".

Yo la verdad es que este código ni lo entiendo.... Ese returning "respuesta" con qué lo reemplazas? Porque tal cual, siempre trae un puntero a la cadena de caracteres en duro "respuesta"...


Cita:

Citación del post de Ale (Mensaje 9969)
Pero lo tuve que enviar como:
Código CPP:
  1. const char * IFOpIntGet (const char * name)
como numérico (entero).

:mm:

No entiendo nada de esta librería, la documentación y definición dice una cosa, pero funcion de otra. Qué narices es esto? Se necesita un vidente a tiempo completo para poder trabajar con ella :D

Cita:

Citación del post de Ale (Mensaje 9969)
acomodando los decimales

A qué te refieres? Cómo se acomodan las decimales, si el campo es un entero??? :flipa:

Ale 21 de marzo de 2025 22:02

controlador fiscal
 
jaja. Dale yo cuando este en mi casa, voy a enviarte algún ejemplo y tratar de explicarte.
En Argentina lamentablemente en nada la tenemos fácil.. jaja.

Gusaiello 24 de marzo de 2025 22:07

@Ale, Tira a la basura esa impresora y pasate a la factura electrónica. Es lo mas fácil que hay Y GRATIS!!!!

Ale 25 de marzo de 2025 15:45

controlador fiscal
 
En cualquier momento la revoleo...
El problema de la facturación online, es que luego tengo que pasar uno por uno los comprobantes al final del día al sistema..
Pude hacer funcionar varias funciones.
me falta resolver, el enviar al final del tique, la leyenda que exige (Arca), sobre transparencia fiscal.
Tengo que probar con esto:

Código CPP:
  1. drv.IFOpBegin("EstablecerEncabezadoCola");
  2.                 drv.IFOpParamIntSet("Numero", 19);
  3.                 drv.IFOpParamSet("Texto", "Cola libre 9");

Fito 25 de marzo de 2025 16:22

Hola:

Por qué pasar una a una las facturas al sistema.

Gustvo te sugiere hacer factura electrónica por webservice.

Saludos

Fito...

Ale 25 de marzo de 2025 22:19

controlador fiscal
 
Hola Fito, porque tengo hecho el sistema contable todo con (cobol), la información que envio y traigo del controlador fiscal, la chupo a mi sistema. Y por ejemplo, los item los saco de una lista de precios y los utilizo en la facturación, al igual que los datos de los clientes.
Mucho mas ágil, cosa que por facturador web de arca no me lo ofrece.
saludos...

Gusaiello 26 de marzo de 2025 19:46

Cita:

Citación del post de Ale (Mensaje 9982)
El problema de la facturación online, es que luego tengo que pasar uno por uno los comprobantes al final del día al sistema..

No debería ser asi. Yo no hablo de la factura en línea. me refiero a emitir factura electrónica desde tu programa, el mismo que esta intentando imprimir una factura en la impresora fiscal, que envíe los datos a ARCA y si la factura viene aprobada que guarde los datos que se necesiten en los archivos correspondientes (iva, cuenta corriente etc. etc.), es decir que en lugar de negociar la factura con la impresora fiscal, lo haces directamente con el servidor de afip.



Post añadido a las 15:46. Post anterior a las 15:42


Si necesitas ayuda con ese tema no tengo inconveniente ya que al principio me costó bastante encontrarle la vuelta, pero desde que migré todos los programas a factura electrónica se terminaron los problemas.
No solo tiene la ventaja de que podes imprimir en cualquier tipo de impresora, sino que tambien esta la opción de no imprimir; podes generar un pdf y luego enviarlo por e-mail.


La franja horaria es GMT +2. Ahora son las 16:41.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.