Comments (18)
obviamente tenes q bajar la dll oficial de epson. la podes bajar de https://ftp.epson.com/latin/drivers/pos/EpsonFiscalDriver_03.03.00.zip
la dll esta dentro del example/python
la prepare para tener tanto 32 como 64. pero usan la misma dll al final. asiq es la misma en ambas carpetas.
espero q te sirva. al menos asi ya arranca, falta armar el resto de tradccion pero recien hoy empece a verlo. y bueno esto avance.
te paso lo q tenes q poner en config.ini (si usas la web q trae agrega Epson2Gen ) en marca y driver para que te lo tome. sino igual te paso el config
[epsonusb]
driver = Epson2Gen
path = 0
modelo = TM-T900
marca = Epson2Gen
baudrate = 115200
[epsoncom2]
driver = Epson2Gen
path = 2
modelo = TM-T900
marca = Epson2Gen
baudrate = 115200
espero ser de ayuda. saludos!
from fiscalberry.
creo q es obvio donde colocar la dll, pero por las dudas te lo aclaro.
epsonlib/win/32/
epsonlib/win/64/
recorda instalar el driver. mismo link q te pase para las dll
from fiscalberry.
from fiscalberry.
Necesito consultarte, realice pruebas con la Epson 220 y se conecto correctamente a la COM1 e imprimió el cierre x sin problemas. Ahora en la misma pc cambiamos esa impresora por la T900 (SIEMPRE CON EL COM1) y no nos funciono. Por que puede suceder?
from fiscalberry.
la t900 es nueva generacion, y no esta terminada esa parte correctamente. estoy armando el traductor pero no tengo permisos sobre este repositorio. ademas agregue el parche para que la nueva generacion ande tambien en windows. usando las dll correspondientes.
probe y me anda en usb y com. pero estoy terminando el traductor, ya que algunas funciones cambiaron como ultimocomprobante.
from fiscalberry.
te paso maso el parche, para q te ande:
1- archivo: Epson2GenDriver.py reempaza todo antes de "class Epson2GenDriver(DriverInterface):"
-- coding: utf-8 --
from datetime import datetime
from DriverInterface import DriverInterface
import logging
from FiscalPrinterDriver import PrinterException
import ctypes
from ctypes import byref, c_int, c_char, c_char_p, c_long, c_short, create_string_buffer
import requests
import platform
import os
from ctypes import windll
archbits = platform.architecture()[0]
sowin = platform._syscmd_ver()[1]
newpath = os.path.dirname(os.path.realpath(file))
if sowin == "Windows":
if archbits[0:2] == "64":
fullpath = "./epsonlib/win/64/EpsonFiscalInterface.dll"
EpsonLibInterface= windll.LoadLibrary(fullpath)
else:
fullpath = "./epsonlib/win/32/EpsonFiscalInterface.dll"
EpsonLibInterface= windll.LoadLibrary(fullpath)
else:
if archbits[0:2] == "64":
fullpath = "./epsonlib/lin/64/libEpsonFiscalInterface.so"
EpsonLibInterface = ctypes.cdll.LoadLibrary(fullpath)
else:
fullpath = "./epsonlib/lin/32/libEpsonFiscalInterface.so"
EpsonLibInterface = ctypes.cdll.LoadLibrary(fullpath)
from fiscalberry.
Hola, Gracias!
from fiscalberry.
Excelente! gracias. si podes enviarnos un PULL REQUEST mejor, asi queda el aporte que realizaste a tu nombre y mas ordenado... luego lo testeamos y mergeamos en el proyecto principal
te paso el primer articulo que encontre en google sobre como realizar el PR https://desarrolloweb.com/articulos/pull-request-git.html
from fiscalberry.
Que tal ale, dame unos dias y lo subo, porque agregue varias cosas extras, y te la quiero documentar.
Para que sepas maso que le sume:
Try Exception en cada comando. para evitar que se cuelgue o perder comunicacion, con esto hice que en la respuesta de la api si hubo una exception te responde un json, con tu comando, parametros, detalleerror.
agregue un metodo a la api que se llama listargument, donde le mandas un array de cosas a realizar, y te responde un solo json con sus respuestas en mismo orden y tambien informando que comando mandaste con q parametros, y si tuvo algun errores.
la idea de esto es desde una api poder hacer un solo post para traer informacion y no depender tanto del codigo a mano realizado en el proyecto.
tambien agregue un nuevo comando llamado runcommand, el cual te permite mandar hasta 10 argumentos y ejecutarlo aunque no este desarrollado.
y bueno ahora estoy en la etapa aburrida de cargar todos las combinaciones que tiene el modelo. estoy usando la guia oficial de epson para poner todos los comandos. ya que este modelo en argentina es el definitivo por unos años. estoy intentando que ya quede lo mas posible configurado.
aprovecho para preguntarte, tenes alguna informacion de como subir la auditoria de los nuevos modelos? ya que la reglamentacion dice que tenes una vez a la semana subirlo. si tienen maso algo veo de agregarlo en alguna funcion. y ya ayudamos mas a la gente, porq la verdad es muy poca la info que veo sobre el tema.
gracias!
from fiscalberry.
te muestro un ejemplo del nuevo listado de solicitudes
{"listcommand":[
{"dailyClose":"x"},
{"ConsultarVersionDll":"x"},
{"getState":"x"},
{"getLastError":"x"},
{"getFiscalStatus":"x"},
{"getPrinterStatus":"x"},
{"getReturnCode":"x"},
{"getPrinterStatus":"x"},
{"getComPort":"x"},
{"getBaudRate":"x"},
{"getProtocolType":"x"},
{"SetSSLInsecureMode":"x"},
{"GetTimeOut":"x"},
{"GetResponseHeadersCount":"x"},
{"getExtraFieldCount":"x"}
],"printerName":"real0"}
y su respuesta:
{
"rta": [
{
"action": "dailyClose",
"rta": 83886109,
"params": "x"
},
{
"action": "ConsultarVersionDll",
"rta": {
"Machinne Version": 0,
"Major Machinne Version": 2,
"Minor Machine Version": 9,
"String Machinne Version": "Epson Fiscal Interface dynamic library (32-bit): 2.9.8 - Epson Fiscal Driver dynamic library: 3.3.0"
},
"params": "x"
},
{
"action": "getState",
"rta": 0,
"params": "x"
},
{
"action": "getLastError",
"rta": 0,
"params": "x"
},
{
"action": "getFiscalStatus",
"rta": 0,
"params": "x"
},
{
"action": "getPrinterStatus",
"rta": 0,
"params": "x"
},
{
"action": "getReturnCode",
"rta": 0,
"params": "x"
},
{
"action": "getPrinterStatus",
"rta": 0,
"params": "x"
},
{
"action": "getComPort",
"rta": 0,
"params": "x"
},
{
"action": "getBaudRate",
"rta": 115200,
"params": "x"
},
{
"action": "getProtocolType",
"rta": 1,
"params": "x"
},
{
"action": "SetSSLInsecureMode",
"params": "x",
"err": "function 'SetSSLInsecureMode' not found"
},
{
"action": "GetTimeOut",
"params": "x",
"err": "function 'GetTimeOut' not found"
},
{
"action": "GetResponseHeadersCount",
"params": "x",
"err": "function 'GetResponseHeadersCount' not found"
},
{
"action": "getExtraFieldCount",
"params": "x",
"err": "function 'getRegetExtraFieldCountturnCode' not found"
}
]
}
from fiscalberry.
from fiscalberry.
Claro entiendo lo de la factura electronica. Pasa que en venta masiva conviene una impresora de ticket, yo lo tengo q implementar para que ande sin internet o aunque no ande la pagina de la afip.
para venta mas minorista esta genial la electronica y reducis mucho el gasto.
Cuanto tenga terminado el proceso de la epson lo comparto.
epson te dan un programa q tenes que instalarlo y agregarle los certificados para subir las auditorias.
osea se podria hacer que los mismos empleados lo suban. pero bueno si automatizamos las cosas evitamos el problema de que en alguna suc se olviden de subirlo. ademas eso de dejar los certificados desparramados por cada sucursal no me gusta mucho.
pienso ver si hago que al realizar un cierre z, verifique la fecha actual, si esta en el rango de presentacion que la descargue y la envie y dispare a un webhook con los archivos.
con esto en un solo lugar te llegarian los de todas las sucursales, y se subirian de ahi. lo cual te permite ver cuantos controladores no llegaron(puede q esten sin internet varios dias, etc.) para proceder a la descarga manual de esos y no traer multas por falta de presentaciones.
asique en unos dias voy a estar subiendo, primero a testear todo bien, ya que python no es mi fuerte, trabajo a pleno con node, js y angular
saludos!
saludos! estamos hablando
from fiscalberry.
Hola Soy nuevo en este mundo de las impresoras fiscales,
me dieron la tarea de implementar esta libreria en una TM-900, una Epson de 2da Generacion.
Lo que me paso es que no toma los Tickets letra A,B.C, etc .. siempre sale ticket C, (083),
Y lo que vi es que hay que enviar datos del cliente antes de abrir comprobante, y no se donde esta esa parte en el codigo.
Soy muy nuevo para python ...
De algun lugar se puede baja una version acorde a las Epson nuevas?
Saludos
from fiscalberry.
from fiscalberry.
from fiscalberry.
from fiscalberry.
Buenos Dias!,
otra consulta, mientras investigo lo anterior ...
Me comentan que el texto que dice "Vuelto" siempre esta saliendo en 0.
Estuve leyendo un poco la informacion de la interfaz dll de la impresora, y no encuentro nada, (como comente soy nuevo en esto de la imp fiscales) , me podrian dar una punta de como se podria resolver
seria un "texto extra" ?
Saludos
from fiscalberry.
from fiscalberry.
Related Issues (20)
- Problema con envio de JSON del lado cliente
- AttributeError: HasarComandos instance has no attribute 'start' en self.comando.start() al imprimir ticket HOT 3
- "No module named git" en Windows HOT 1
- Hay una forma facil de modificar la plantilla que se usa para imprimir printRemito o printComanda? HOT 1
- Se puede imprimir una comanda o un documento NO FISCAL en una IMPRESORA FISCAL? HOT 9
- No se paso un comando valido HOT 1
- Documentacion: Listado de comandos HOT 2
- SRP samsung isues no imprime factura "A"
- Configuración Hasar SMH/PT-250F HOT 1
- Consulta Devolucion HOT 1
- FiscalberryApp [ERROR]: OSError(24, 'Too many open files')- [Errno 24] Too many open files
- agregar compatibilidad con SMH/PT 250 FPA de PANAMA
- Problemas cuando no se agrega uuid en el config.ini
- Problema de conexión con Epson TM-T900FA via USB HOT 12
- Controlador Fiscal Epson TM-T900FA, imprime solo comprobantes Ticket (cod 83) HOT 15
- Timeout FiscalberryDriver API
- Too many open files
- No such file or directory >> Problema con la SO de Epson HOT 1
- error al iniciar server.py HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fiscalberry.