Code Monkey home page Code Monkey logo

Comments (18)

aditsoluciones avatar aditsoluciones commented on July 22, 2024 1

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.

aditsoluciones avatar aditsoluciones commented on July 22, 2024 1

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.

alevilar avatar alevilar commented on July 22, 2024

from fiscalberry.

jpgdixon avatar jpgdixon commented on July 22, 2024

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.

aditsoluciones avatar aditsoluciones commented on July 22, 2024

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.

aditsoluciones avatar aditsoluciones commented on July 22, 2024

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.

jpgdixon avatar jpgdixon commented on July 22, 2024

Hola, Gracias!

from fiscalberry.

alevilar avatar alevilar commented on July 22, 2024

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.

aditsoluciones avatar aditsoluciones commented on July 22, 2024

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.

aditsoluciones avatar aditsoluciones commented on July 22, 2024

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.

alevilar avatar alevilar commented on July 22, 2024

from fiscalberry.

aditsoluciones avatar aditsoluciones commented on July 22, 2024

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.

NicoMachado avatar NicoMachado commented on July 22, 2024

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.

alevilar avatar alevilar commented on July 22, 2024

from fiscalberry.

NicoMachado avatar NicoMachado commented on July 22, 2024

from fiscalberry.

alevilar avatar alevilar commented on July 22, 2024

from fiscalberry.

NicoMachado avatar NicoMachado commented on July 22, 2024

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.

alevilar avatar alevilar commented on July 22, 2024

from fiscalberry.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.