paxapos / fiscalberry

[JSON ↔ HW] Connect things using JSON API with the fiscalberry websocket server interact easily with any kind of Hardware. Another IoT solution...
https://paxapos.github.io/fiscalberry/
Other
57 stars 40 forks source link

UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 2: ordinal not in range(128) #4

Closed juank3bytes closed 7 years ago

juank3bytes commented 7 years ago

Buenas tardes. Estamos usando la version para PHP con una impresora Hasar 441F. Para Imprimir facturas y ticket no tenemos problemas pero para imprimir nota de creditos no da el siguiente error: UnicodeDecodeError: 'ascii' codec can't decode byte 0x93 in position 2: ordinal not in range(128)

El formato del json es el siguiente: { "printTicket": { "encabezado": { "tipo_cbte": "NCB", "referencia": "00105838" }, "items": [{ "alic_iva": "21.00", "importe": 1, "ds": "DEPILACION", "qty": "1" }], "pagos": [] }, "printerName": "IMPRESORA_FISCAL" }

alevilar commented 7 years ago

ya pudimos resolver este error. probalo con la ultima version. Eso se debia a algun caracter raro, como por ejemplo un acento o una eñe. Muchas impresoras no son compatibles con acentos ni eñes.

juank3bytes commented 7 years ago

Buen dia. Muchas gracias por la respuesta. Tenemos funcionando actualmente el modulo pero sin hacer nota de credito. Ya probaremos con la ultima version. Desde ya muchas gracias.

Juan Carlos Silva Cornejo Software Developer - Yii Framework - Oracle Apex 3bytes - Soluciones de Software

alevilar commented 7 years ago

no. la NC te la debo :( no la pudimos hacer funcionar aun. No entedemos por que.. pero tampoco pudimos dedicarle tiempo. De todos modos este issue es debido al uso de algun caracter no unicode, como por ejemplo una EÑE o un acento.

Ahora deberia comvertir las eñes en "enes" y acentos en letras sin acento, para que no tire ese error.

en las impresoras que soportas caracteres unicode (como por ejemplo una comandera) imprime correctamente con eñe o acento

2017-04-07 11:38 GMT-03:00 Juan Carlos Silva Cornejo < notifications@github.com>:

Buen dia. Muchas gracias por la respuesta. Tenemos funcionando actualmente el modulo pero sin hacer nota de credito. Ya probaremos con la ultima version. Desde ya muchas gracias.

Juan Carlos Silva Cornejo Software Developer - Yii Framework - Oracle Apex 3bytes - Soluciones de Software

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/paxapos/fiscalberry/issues/4#issuecomment-292554589, or mute the thread https://github.com/notifications/unsubscribe-auth/AANj8arKc6KUut3fZbxOiNMvMqgK93-6ks5rtkpigaJpZM4Lw6Aj .

juank3bytes commented 7 years ago

Alejandro la verdad que no recordaba el error que te mande porque fue hace mucho. De ahi hasta ahora hicimos mejoras en nuestro backend para que todo funciones. Armamos una funcion en PHP para arreglar cualquier caracter extraño. Pero bueno lo que tenemos pendiente al igual que vos es la Nota de Credito. Desde ya te estamos muy agradecidos por tu aporte porque la verdad que el codigo funciona a la perfeccion. Si nosotros llegamos a trabajar algo en python trataremos de aportarte. Gracias

El 7 de abril de 2017, 11:43, Alejandro Vilar notifications@github.com escribió:

no. la NC te la debo :( no la pudimos hacer funcionar aun. No entedemos por que.. pero tampoco pudimos dedicarle tiempo. De todos modos este issue es debido al uso de algun caracter no unicode, como por ejemplo una EÑE o un acento.

Ahora deberia comvertir las eñes en "enes" y acentos en letras sin acento, para que no tire ese error.

en las impresoras que soportas caracteres unicode (como por ejemplo una comandera) imprime correctamente con eñe o acento

2017-04-07 11:38 GMT-03:00 Juan Carlos Silva Cornejo < notifications@github.com>:

Buen dia. Muchas gracias por la respuesta. Tenemos funcionando actualmente el modulo pero sin hacer nota de credito. Ya probaremos con la ultima version. Desde ya muchas gracias.

Juan Carlos Silva Cornejo Software Developer - Yii Framework - Oracle Apex 3bytes - Soluciones de Software

— You are receiving this because you commented. Reply to this email directly, view it on GitHub <https://github.com/paxapos/fiscalberry/issues/4#issuecomment-292554589 , or mute the thread https://github.com/notifications/unsubscribe-auth/ AANj8arKc6KUut3fZbxOiNMvMqgK93-6ks5rtkpigaJpZM4Lw6Aj .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/paxapos/fiscalberry/issues/4#issuecomment-292555986, or mute the thread https://github.com/notifications/unsubscribe-auth/AL4wItgprNvAQvTOiLRYi49ZBEc-lO2Lks5rtkuKgaJpZM4Lw6Aj .

-- Juan Carlos Silva Cornejo Software Developer - PHP (Yii,Laravel) - Oracle Apex 3bytes - Soluciones de Software

juank3bytes commented 7 years ago

Buenas Tardes Alejandro: Estimado tengo una consulta.Estamos trabajando con un modelo de Hasar que es compatible con estos tamaños:

textSizeDict = { "615": {'nonFiscalText': 40, 'customerName': 30, 'custAddressSize': 40, 'paymentDescription': 30, 'fiscalText': 20, 'lineItem': 20, 'lastItemDiscount': 20, 'generalDiscount': 20, 'embarkItem': 108, 'receiptText': 106, },

El problema es que nos corta la descripción de un producto siempre en 20. Mi pregunta es la siguiente si modifico el "lineItem" a mas caracteres la impresion del ticket sera correcta o se rompera todo jajajaja. Si cambiamos el tamaño de caracteres por linea tendremos que hacer algo para saltos de linea o algo asi?. Te consulto porque no conozco mucho del lenguaje y estamos revisando todos los archivos para entender como funciona. Despues de investigar un poco el archivo HasarComandos.py creo que en la linea: self._formatText(description[-1], 'lineItem') esta haciendo el corte en 20 caracteres de la descripcion verdad?

Desde ya muchas gracias. Espero una pronta respuesta.

El 7 de abril de 2017, 11:51, Juan Carlos Silva Cornejo <jucadasrl@gmail.com

escribió:

Alejandro la verdad que no recordaba el error que te mande porque fue hace mucho. De ahi hasta ahora hicimos mejoras en nuestro backend para que todo funciones. Armamos una funcion en PHP para arreglar cualquier caracter extraño. Pero bueno lo que tenemos pendiente al igual que vos es la Nota de Credito. Desde ya te estamos muy agradecidos por tu aporte porque la verdad que el codigo funciona a la perfeccion. Si nosotros llegamos a trabajar algo en python trataremos de aportarte. Gracias

El 7 de abril de 2017, 11:43, Alejandro Vilar notifications@github.com escribió:

no. la NC te la debo :( no la pudimos hacer funcionar aun. No entedemos por que.. pero tampoco pudimos dedicarle tiempo. De todos modos este issue es debido al uso de algun caracter no unicode, como por ejemplo una EÑE o un acento.

Ahora deberia comvertir las eñes en "enes" y acentos en letras sin acento, para que no tire ese error.

en las impresoras que soportas caracteres unicode (como por ejemplo una comandera) imprime correctamente con eñe o acento

2017-04-07 11:38 GMT-03:00 Juan Carlos Silva Cornejo < notifications@github.com>:

Buen dia. Muchas gracias por la respuesta. Tenemos funcionando actualmente el modulo pero sin hacer nota de credito. Ya probaremos con la ultima version. Desde ya muchas gracias.

Juan Carlos Silva Cornejo Software Developer - Yii Framework - Oracle Apex 3bytes - Soluciones de Software

— You are receiving this because you commented. Reply to this email directly, view it on GitHub <https://github.com/paxapos/fiscalberry/issues/4#issuecomment-292554589 , or mute the thread https://github.com/notifications/unsubscribe-auth/AANj8arKc 6KUut3fZbxOiNMvMqgK93-6ks5rtkpigaJpZM4Lw6Aj .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/paxapos/fiscalberry/issues/4#issuecomment-292555986, or mute the thread https://github.com/notifications/unsubscribe-auth/AL4wItgprNvAQvTOiLRYi49ZBEc-lO2Lks5rtkuKgaJpZM4Lw6Aj .

-- Juan Carlos Silva Cornejo Software Developer - PHP (Yii,Laravel) - Oracle Apex 3bytes - Soluciones de Software

-- Juan Carlos Silva Cornejo Software Developer - PHP (Yii,Laravel) - Oracle Apex 3bytes - Soluciones de Software

alevilar commented 7 years ago

El 20 de abril de 2017, 18:34, Juan Carlos Silva Cornejo < notifications@github.com> escribió:

textSizeDict = { "615": {'nonFiscalText': 40, 'customerName': 30, 'custAddressSize': 40, 'paymentDescription': 30, 'fiscalText': 20, 'lineItem': 20, 'lastItemDiscount': 20, 'generalDiscount': 20, 'embarkItem': 108, 'receiptText': 106, },

Hola Juan!, acabo de subir una nueva version incorporando el modelo de impresora que me pasaste (con los parametros que me enviaste).

Fijate que uno de los parametros es 'lineItem': 20, y 'fiscalText': 20. Eso quiere decir que la impresora no permite mas de 20 caracteres, por lo que te lo recorta a ese ancho. Te soy sincero: no se que pasaria si le pasas mas caracteres.. para colmo esa es una impresora bastante vieja, no?

probá a ver que tal anda la ultima version, y cualquier cosa avisame los resultados que obtuviste !

saludos!!

Alejandro Vilar

juank3bytes commented 7 years ago

Buenos dias Alejandro: Estoy teniendo el siguiente problema con un ticket de un monto mayor a $10000. Me sale "Desbordamiento de totales". La impresora es hasar 441f. Segun lei el manual dice que viene seteada de fabrica con un tope de 10mil. Mi consulta era si en alguna parte del codigo de python esta seteada alguna variable para ese limite. Desde ya muchas gracias.

-- Juan Carlos Silva Cornejo Software Developer - PHP (Yii,Laravel) - Oracle Apex 3bytes - Soluciones de Software

alevilar commented 7 years ago

Hola!, lamentablemente hay una ley (totalmente desactualizada) que indica que, cuando el monto es mayor a los $1000 pesos, y es Consumidor final, será necesario poner el DNI del cliente... por lo tanto vas a tener que probar de armar el ticket pero con DOC, tipo doc y nombre.

"encabezado": { "tipo_cbte": "T", "nro_doc": "30256256", "domicilio_cliente": "Apache, Fuerte 21212", "tipo_doc": "DNI", "nombre_cliente": "Carlitos Tevez", },

Existe un ejecutable llamado "pruf", que te lo podes descargar desde la pagina de Hasar, con el cual podrias modificar la configuracion de la impresora para incrementar ese parametro y aceptar facturas "B" con un limite superior a los $1000. Es ilegal modificar ese parametro. Pero tecnicamente es posible y facil de hacerlo.

El jue., 15 de jun. de 2017 a la(s) 10:43, Juan Carlos Silva Cornejo < notifications@github.com> escribió:

Buenos dias Alejandro: Estoy teniendo el siguiente problema con un ticket de un monto mayor a $10000. Me sale "Desbordamiento de totales". La impresora es hasar 441f. Segun lei el manual dice que viene seteada de fabrica con un tope de 10mil. Mi consulta era si en alguna parte del codigo de python esta seteada alguna variable para ese limite. Desde ya muchas gracias.

-- Juan Carlos Silva Cornejo Software Developer - PHP (Yii,Laravel) - Oracle Apex 3bytes - Soluciones de Software

— You are receiving this because you modified the open/close state.

Reply to this email directly, view it on GitHub https://github.com/paxapos/fiscalberry/issues/4#issuecomment-308733048, or mute the thread https://github.com/notifications/unsubscribe-auth/AANj8ff4d5cV5bh7E870k-k47pRwv_Euks5sETUYgaJpZM4Lw6Aj .

gonzaabel commented 7 years ago

Hola Juan! Proba la nota de crédito, ya deberías poder imprimirla con la nueva release de fiscalberry. Ejemplo Nota de Crédito "A":

{
"printTicket":{ 
"encabezado":{
"tipo_cbte":"NCA",
"referencia":"00066778",
"nombre_cliente":"Carlos Tevez",
"domicilio_cliente":"zaraza",
"tipo_responsable":"RESPONSABLE_INSCRIPTO",
"tipo_doc":"CUIT",
"nro_doc":20407778884
},
"items":
[ 
{
 "alic_iva":21,
"importe":1,
"ds":"PEPSI",
"qty":1
}
]
},"printerName":"IMPRESORA_FISCAL"}

Ejemplo Nota de Crédito "B":

{
"printTicket":
{
"encabezado":{
"tipo_cbte":"NCB",
"referencia":"00066811"
},
"items":
[
{
"alic_iva":21,
"importe":1,
"ds":"PEPSI",
"qty":1
}
]
},"printerName":"IMPRESORA_FISCAL"}

Esos son los JSON según el tipo de factura (Están agregados a la página de WS 2 botones con estos JSON). Cualquier cosa nos preguntas o creas una nueva issue :+1: Saludos! :smile: