• Este debate está vacío.
Viendo 8 entradas - de la 1 a la 8 (de un total de 8)
  • Autor
    Entradas
  • #31272

    Hola Foro.

    Tengo el spooler de hasar P320F corriendo en el pto 1600, y el Spooler conectado por un puerto COM4 virtual a un emulador de impresora fiscal P320F.

    Anda todo bien, es decir cuando facturo desde el libertya se conecta correctamente con el spooler y manda la factura al emulador, pero el Libertya aparentemente encuentra que me faltan datos para facturar… (La factura la hice sin iva y con pto de vta número 1)

    Cuando quiero completar la factura me aparece el sgte error:

    Ocurrió un error durante la comunicación con la impresora fiscal. La respuesta recibida tiene un formato no válido. Faltan datos del estado fiscal o general del controlador. (Petición: { 43 “P” “x” “0” }, Respuesta: { 43 })

    El detalle de la conexión es

    Esperando conexión con la impresora fiscal…
    Impresora fiscal conectada Comienzo de la ejecución de comandos fiscales…
    [OK]: { 62 “WARNER BROSS” “11111111113” “I” “C” “LALALAL 987, , 8300, Buenos Aires ” } [OK]: { 40 “A” “T” } [OK]: { 42 “MATISYAHU YOUTH” “19.0000” “500.0000” “0.0” “M” “0.00000000” “0” “x” } [OK]: { 98 }

    En el emulador tengo los siguientes datos fiscales cargados:
    Cuit: 11111111113
    Razon Social: Empresa de Prueba
    Fecha de Inicialición (AAMMDD): 051231
    Nro Pto de Vta: 1
    Fecha Inicio de actividades(AAMMDD): 050801
    IIBB: 00000000000
    Responsabilidad frente al iva: I Resposable inscripto.

    Que dato me estará faltando configurar? Ademas no hay mas nada para configurar en el emulador.

    #34038

    Hola, aparentemente la configuración de la impresora la tienes bien ya que varios comandos son aceptados y respondidos por el spooler. El error que te aparece es justamente cuando los bytes que devuelve el spooler en respuesta de un comando, son erróneos (en tu caso faltan bytes). Teniendo en cuenta eso, a continuación te escribo una lista de probables problemas y pruebas a realizar:

    1) Estás utilizando el spooler para windows? Hasar distribuye dos ejecutables: spooler.exe (DOS) y wspooler.exe (versión para ejecutar desde Windows). Si estas ejecutándolo desde un Windows deberías utilizar el segundo.

    2) El comando que falla es el 43, que es el comando de Subtotal que se envía previo a los comandos de pagos y cierre de comprobante. La pregunta es: siempre falla en ese mismo comando (43) al querer emitir una factura? O a veces falla antes o después?

    3)
    Relacionado con el ítem anterior, y metiéndonos en la parte técnica, el WSpooler tiene una particularidad muy desagradable de realizar respuestas de comandos sin indicar el fin de la respuesta. Por lo tanto, a nivel implementación, no existe ningún caracter de control para determinar el fin de una respuesta, ni tampoco es posible determinar la cantidad de bytes que componen a la misma, es por ello que se optó por implementar un contador de timeOuts para determinar el final de una respuesta. Sabiendo esto, puede suceder que la respuesta del WSpooler sea la correcta pero que esté llegando fuera de tiempo (se vencen todos los timeouts). Para verificar esto, podrías copiar y pegar el log que imprime el WSpooler en la consola de DOS en la que se ejecuta. Cada vez que el WSpooler recibe un comando lo imprime en la consola, lo mismo para un respuesta que envía hacia Libertya. De esta forma podríamos ver si la respuesta se envía bien pero lo que está fallando (por algún motivo desconocido) es el viaje de esa respuesta entre el WSpooler y Libertya.

    Espero ayudarte con estos tips, cualquier cosa que encuentres postealo y vemos si podemos encaminar la solución.
    Saludos
    Franco

    #34039

    Franco, muchas gracias por la data. Me tira muchas opciones de un tema del que no sabía nada. Por lo que me decis, pienso que el problema debe estar en el puerto COM, porque el emulador crea un puerto virtual COM, quiza hay algo que se está descincronizando. Voy a hacer algunas pruebas para conseguir algunos detalles mas y ponerlos en el foro.
    Muchas gracias.

    #34043

    Franco, estoy con el tema de mirar las nuevas definiciones de los comandos Hasar. Entiendo que uno de los métodos de HasarFiscalPrinter donde debo buscar comandos utilizados es FiscalClose. No lo encuentro! Esta definido en la interface FiscalPrinter pero no veo su implementación, es decir, no está dentro de la clase HasarFiscalPrinter.

    #34040

    La verdad que es raro que el método esté definido en la interface pero no en la clase HasarFiscalPrinter. De hecho lo verifiqué y veo el método public void fiscalClose(String closeType) dentro de la clase HasarFiscalPrinter. También veo que fue agregado antes del release 10.03 con lo cual si estás usando esa versión debería estar.
    En fin, dentro de ese método solo se usa el comando cmdDailyClose, con lo cual alcanza con agregarlo a la lista de comandos a verificar.
    Saludos!
    Franco

    #34041
    Javier Ader
    Participante

    Buenas. Seguís con el problema con la P320F? Porque hace unos días configure un emulador (supongo que estamos usando el mismo; casi seguro que por los datos de inicializacion que pusiste) y el spooler justamente para esa impresora y no me tiro ningún problema (usando la versión 10.3, pero supongo que no hubo cambios desde la versión anterior sobre los drivers). La clase que implementa el driver es org.openXpertya.print.fiscal.hasar.HasarPrinterP320F ; si el metodo no esta definido ahí, tiene que estar obligatoriamente definido es su superclase (si no, no compila…).
    El problema que planteaste tal vez no venga por “Formato no valido” si no mas bien por “Faltan datos del estado fiscal o general del controlador” (tal vez no estaba inicalizado, tal vez fue que quisiste facturar sin iva habiendo inicializado la impresora como responsable inscripto…)
    Probaste el spooler desde fuera de Liberyta? Tene en cuenta, que el emulador se cierra después de cierto tiempo, y una vez que lo reinicias, por alguna razón tambíén tenes que reiniciar el spooler (me paso…). Para probarlo independientemente lo que hice fue usar el programa sndcmd. Te pongo lo que hice bajo windows
    -inicio el emulador para que use el port virutal COM4
    -lo inicializo y lo pongo a “escuchar” (“abrir puerto” creo que es la opción del menú)[este punto no se si va antes que el anterior… o tal vez no traiga diferencias..]
    -arranco el spooler, bajo windows wspooler para que use es port COM
    wspooler -p 4 -k
    (puede que te salte el firewall; desbloquealo)
    -ya en este punto el spooler se comunica con el emulador; te debe mostrar unas comandos recibidos en el “log” del emulador
    -le envio las ordenes al spooler para que imprima un documento no fiscal en la impresora:
    sndcmd.exe -p 1600 -t 127.0.0.1 DNF.330
    El archivo DNF.330 esta dentro del zip que se descarga de hasar; el sndcmd también (pero este zip parece ser especifico al modelo P320F; probablemente haya pequeñas diferencias entre modelos en estos zips; esto es, baja el zip exacto).

    La primera vez que lo probé tarde mucho en llevar a cabo el último punto y al parecer el emulador se habia cerrado. Como te dije, reinicie el emulador y el spooler; reintente y anduvo todo ok (tanto en el log del emulador como en el del spooler se mostro todo ok). Después directamente facture desde libertya y de nuevo, todo ok.

    PD : Me comento Antonio que estaban queriendo crear los drivers para las versiones nuevas de los controladores/impresoras hasar (le dije que para mi casi seguro son backward compatibles a nivel de protocolo con los versiones anteriores… pero bueno, habría que por lo menos testear los drivers actuales contra modelos nuevos); si me dicen la lista de modelos (en otro thread preferentemente) que están teniendo en cuenta, tal vez pueda aportar algo.

    #34502

    Javier, gracias por la data. Tuve problemas con el emulador hace un tiempo pero se solucionaron. En realidad lo molesté a Franco porque estoy mirando un poco el panorama a efectos de intentar armar algunos nuevos drivers para algunas Hasar nuevas. Hay un thread en la sección de Partners con toda la data de modelos y forma de trabajo, si no lo ves pediles a los chicos que te den acceso. Ahí estamos posteando las dudas por ahora, y en algún momento los avances también. La idea es armar una planilla con las diferencias en los comandos e ir creando los nuevos drivers y tu colaboración siempre es bienvenida.

    #34042
    zaikoski yosua
    Participante

    Gracias por la Info, el problema lo resolvi cambiando el SOTimeOut del Socket en la clase SpoolerTCPComm en el metodo setSoTimeout(500), la impresora era una Hasar 330F.
    Muchas gracias nuevamente..

Viendo 8 entradas - de la 1 a la 8 (de un total de 8)
  • Debes estar registrado para responder a este debate.