Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fiscalbox rd implementacion (WIP) #48

Closed
wants to merge 3 commits into from
Closed

Fiscalbox rd implementacion (WIP) #48

wants to merge 3 commits into from

Conversation

mckaygerhard
Copy link

Trabajo en el kit fiscal para RD y asi potenciar de "fiscalbox" al fiscalberry pueda tambien ser un producto usable en otros paises, segun lo expuesto en #47 , este pull es un WIP para trabajar en el issue #45 el cual me ha dado problemas pero con este proyecto se ha avanzado

No realizar merge hasta que el commit de un finish de este pull en progreso.

En los comentarios el progreso y las necesidades..

* se usa como base EpsonComandos.py ya que el lkit usa el mismo principio
* archivo inicial no se cambia, apra ver las diferencias que yo hago mas claras
* solo hay 4 modos de venta y solo tengo dos impresoras para probrar
* el comando es enviado en pares de hexa no en un solo hexa
* pendiente el set de comandos, se deja el de argentina aun (no encuentro el pdf para comparar)
@mckaygerhard
Copy link
Author

Se empleara el locale del pais, esto hace que basado en POSIX y el nombre del archivo se carge automaticamente segun el locale del fiscalberry, es_RD en caso de Republica dominicana.

En cuanto el driver que comunica el set de comandos, se emplea el mismo driver, se reusa y define es solo el set de comandos, sin embargo esto solo fue casual en el caso de estos dos paises ya que el msimo proveedor fabrico ambos kits..

TAREAS URGENTES PARA AVANZAR:

  • solo hay 4 modos de venta y solo tengo dos impresoras para probrar
  • el comando es enviado en pares de hexa no en un solo hexa
  • pendiente el set de comandos, se deja el de argentina aun (no encuentro el pdf para comparar)

Me seria de utilidad el pdf de definicion de set de comandos de argentina ya que no encuentro el mio yo lo tenia pero no lo consigo. para asi comararlo con el de dominicana y codificar puesto la impresora no la tengo a mano directament ey no la tendre por los momentos a mediano plazo..

@mckaygerhard
Copy link
Author

@gonzaabel mira hablando con Alejando me confirma que el comando argentino es un byte, mientras el de dominicana es dos bytes..

mi duda es de python, para redefinir los comandos (el unico cambio ya que es el mismo principio)

ejemplo para el kit argentino CMD_STATUS_REQUEST = 0x2a pero en el caso de dominicana el request de estado es 0x00 + 0x01, simplemente lo concateno y coloco CMD_STATUS_REQUEST = 0x000x01 ? o como debere colocarlo?

estoy a ciegas ya que la impresora la tiene mi compañero

@alevilar
Copy link
Collaborator

alevilar commented Feb 8, 2018 via email

@mckaygerhard
Copy link
Author

umm no lo recuerdo, eso significa que esperare por la respuesta del ruso.. pero no es la lx300 si te refieres a eso, ya vi que manejan 3 tipos de modleos..

@alevilar
Copy link
Collaborator

alevilar commented Feb 8, 2018 via email

@mckaygerhard
Copy link
Author

ah te entendi, me explique mal, en el manual ellos le dicen "bytes" ello envian 0x0001 perdon disculpa, en el kit argentino envian para estado 0x02a en el de dominicana envian 0x0001 en pagina 46(archivop) topico 4.2.1

@gonzaabel
Copy link
Contributor

@mckaygerhard por lo que estoy viendo en la docu en ese punto 4.2.1, van a quedar de la siguiente manera los números para los comandos, por ej para el estado:
CMD_STATUS_REQUEST = 0x0001
Donde 0x0001 es un número de 2 bytes. Y 0x00 y 0x01 son dos números de 1 byte de longitud.
La longitud de los bytes se miden de a 2 números hexadecimales por byte. Por ejemplo un número que tiene una longitud de 4 bytes sería: 0xAF398710. Donde cada par de números seguidos del 0x es 1 byte.
Eso para el número del comando, para la extensión del comando te pide también otro número hexadecimal de 2 bytes de longitud aparte.

@mckaygerhard
Copy link
Author

tal como lo pense @gonzaabel se evia tal cual porque el mensage al opuerto es un flujo ok buen modelo el del fiscalberry.. en la noche pruebo con el ruso el codigo ajustado.. gracias

@nerv55
Copy link

nerv55 commented Feb 9, 2018

el local debe corregirse el correcto: es_DO

@mckaygerhard
Copy link
Author

no he trabajado porque me doble el tobillo... en estos dias me pongo a tono

@mckaygerhard
Copy link
Author

hola todos, como no teneis foros, les digo que me quiero rascar dentro del yeso y no soporto la comezon... voy trabajar un ratico aqui sustituyendo lso comando como me enseño gonzalo..

@gonzaabel
Copy link
Contributor

Suerte en tu recuperación!

@mckaygerhard
Copy link
Author

mckaygerhard commented Mar 24, 2018

ejeeee!, @alevilar , @gonzaabel @nerv55 ya toy Sin yeso! y con dudas, en el bloque de comandos, entgo esto:

CMD_CLOSE_FISCAL_RECEIPT = (0x45, 0x65)

que significa esos dos encerrados en parentesis?

… sin yeso!

configurando lso comando fiscales segun el comentario en #48 (comment) gracias a esto ya que no recordaba nada de como se hacia..

quedapendietne ahora revisar el formato de ernvio segun lo que dijo   @nerv55 para despeus terminar de probar, el trabajo ira lento porque estoy algo full con ospos
@joseluisbossio
Copy link

joseluisbossio commented Mar 24, 2018 via email

@mckaygerhard
Copy link
Author

@joseluisbossio no puedo mirar el manual porque no tengo el de argentina, tengo uno de dominicana, y no veo dos comandos para la misma funcion, practicamente estoy programando a ciegas basandome en pura logica e investigacion teorica..

sobre mi pregunta, no no! yo me refuero a porque dos encerrados en parentesis? no es solo uno? estoy tratando de ver en el codigo ýthon pero aprender python es bastante lioso, son dos codigos y no uno? como es el asunto en dicho caso? o ambos codigos hacen lo mismo?

@gonzaabel
Copy link
Contributor

Buenas

@mckaygerhard writes:
CMD_CLOSE_FISCAL_RECEIPT = (0x45, 0x65)
que significa esos dos encerrados en parentesis?

Según estuve viendo en el manual de Epson Argentina el 0x45 que en la tabla ASCII representa la E (acá esta la tabla), a dicho caracter se lo asocia con el tipo de responsable "EXENTO DE IVA". Aunque para cerrar el comprobante no pide el tipo de responsable... (ojo, puede llegar a significar otra cosa, el pdf ese puede ser de otra de las marcas de EPSON o al caracter ASCII se le da múltiples usos dependiendo los comandos). Y el 0x65 es el número del comando "CerrarComprobanteFiscal".

Saludos!

@mckaygerhard
Copy link
Author

ah es que no me explique, lo que quiero decir es que por lo general veo que XX = 0xYY pero alli veo dos comandos "por el precio de uno" es decir no es lo mismo que enviar 0x45+0x65 pegado en el flujo, el detecta la coma o es el driver de fiscalberry el que ve dicho par y lo interpreta

es decir, envia dos comando al mismo tiempo? "cierra el comprobante y hazlo excepnto de via" ? recuerden que estoy programando a ciegas y el python no ayuda mucho, no tengo digamos mucho tiempo para aprender cuando se maneja un negocio..

@mckaygerhard
Copy link
Author

@wDirac lee primero el contexto, no es un "+" literalmente, es una coma: mira:

CMD_CLOSE_FISCAL_RECEIPT = (0x45, 0x65)

@mckaygerhard
Copy link
Author

si el comando es de dos bytes y un comando de dos bytes se debe enviar asi (0xYY, 0xYZ) rentoces todo lo que hice est malo? porque el kit de argentina los comandos son de un byte y el de RD de dos bytes.. en fin como se deberia enviar el comando de RD en python! es tan complicado, en gambas simplemnte lo envio pegado y ya!

@gonzaabel
Copy link
Contributor

Bien, ahora entiendo tu pregunta. Según estoy viendo en la docu de republica dominicana (en esa que te pase de Argentina esta desactualizada, es del 2001...) en el punto 4.1 dice lo siguiente:

Checksum: son cuatro bytes ‘0’-‘9’, ‘A’-‘F’, con la representación hexadecimal de los dos
bytes que conforman el checksum (suma de todos los datos) del paquete, desde el STX al
ETX, incluyendo a ambos

Y un poco más arriba, muestra que STX es el comienzo del paquete y ETX el final. Por lo tanto parece ser que tienen que ir separados como en comandos del EpsonComandos de Fiscalberry.
Igualmente proba de enviarlos juntos si tenes algún emulador o impresora epson fiscal para probar y ver que te retorna la impresora. Yo también estoy a ciegas porque no he leído mucho de la documentación y no he metido mano en los comandos de EpsonComandos ni tengo el manual actualizado de Epson Argentina para ver las diferencias que hay entre un kit y otro.
Lo ideal sería enviar los comandos a un emulador y ver la respuesta.

@mckaygerhard
Copy link
Author

no, no conozco emulador alguno, tengo un enviador/receptor qt4, donde hay que colocarle manualmente todo en hexa, mande pedir el manual de las vmax pero con todo el protocolo llegara en unos meses.. esto me deja varado nuevamente..

@gonzaabel tu me pasaste un manual de el kit de argentina? no lo tengo si puedes volver enviarlo..

@alevilar alevilar closed this Feb 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants