Comments (6)
Hola Catriel, sí. Para las Hasar eso esta disponible y gracias a eso en el json solamente enviamos el número de ticket para el caso de, por ejemplo, las notas de crédito.
Estamos enfocados a las Hasar ya que no disponemos una impresora fiscal de otra marca. Igual con leer el manual de la Epson sería una mejora fácil de implementar.
Igualmente nuestro objetivo es hacer que Fiscalberry sea lo más compatible posible (mientras más compatible, mejor para todos) por lo tanto estaremos agradecidos de recibir colaboraciones.
Si quieres colaborar te explico masomenos la estructura de Fiscalberry, el cual te podría ser fácil de aprender si te encuentras acostumbrado a trabajar con el patrón de software MVC (Modelo, Vista, Controlador) y si logras asociar de alguna manera la arquitectura de FB con este patrón de desarrollo.
Si conoces MVC, podrás comparar la arquitectura de FB de la siguiente manera:
-
El Traductor sería como un controlador, ya que salvo el TraductoresHandler, los demás son propios de cada tipo de impresora. Se encarga de traducir lo que el JSON contiene para que posteriormente se ejecute el/los comando/s de la clase de Comando que corresponda.
-
El Comando vendría a hacer el 'modelo' por así decirlo, ya que en este caso no hay base de datos. El comando contiene las acciones que podes usar en la impresora, y cada clase tiene un sendCommand que se encarga de enviar ese comando a la impresora, y la respuesta la capturara posteriormente el driver.
-
El Driver viene a ser como la 'vista'. En el sentido que viene a ser lo que genera el resultado final. Una vez que recibe respuesta de la impresora, esta pasa a manos del server.py que te la re-envía al cliente de WS.
-
También tenemos al TraductoresHandler que viene a ser a su vez como el dispatcher. Ese traductor contiene todos los comandos genéricos que no son para un tipo de impresora en concreto (EJ: el getAvailablePrinters). Pero cuando viene el printerName y el comando que le mandas a ejecutar no es genérico, es el encargado de mirar el nombre de impresora y el comando que llega por ese mismo JSON, para definir a que traductor redirigir la petición.
Bueno, esa es la forma que tuve yo de entenderlo fácilmente (quizás pude haberle errado en algún detalle) pero me ayudo muchísimo para entender Fiscalberry el asociar su estructura a la misma forma de trabajo que tengo con CakePHP. La wiki dispone de info acerca de la arquitectura, la cual te recomiendo que también la leas.
De la wiki nos queda mejorarla bastante en las secciones sobre los comandos y también mover cosas del readme hacía ella. Y en cuanto dispongamos de tiempo nos pondremos con eso ya que tener la documentación al día es una parte vital del proyecto.
Espero haberte guiado, y ante dudas podes mirar la wiki o preguntarnos. Muchas gracias por tu interés en Fiscalberry, esperaremos tu pull request si te animas al desafió. :)
Saludos!
from fiscalberry.
Logre que me devuelva el punto de venta, agregando el comando "getInitData" ese trae toda la info de la impresora fiscal.
En Hasar funciona bien, en Epson tengo el problema que abri en el #18
from fiscalberry.
Aca dejo lo que modifique para obtener el Punto de Venta. Estaria bueno agregar este comando para poder guardar el numero completo del ticket o factura emitido.
Saludos!
EpsonComandos.py:
Agrego en Linea: 39:
CMD_GET_INIT_DATA = (0x2a)
Agrego en Linea 327:
def getPtoVta(self, letter): reply = self._sendCommand(self.CMD_GET_INIT_DATA, ["C"], True) if len(reply) < 3: # La respuesta no es válida. Vuelvo a hacer el pedido y # si hay algún error que se reporte como excepción reply = self._sendCommand(self.CMD_GET_INIT_DATA, ["C"], False) return reply [3]
HasarCommandos.py:
Agrego en Linea 39:
CMD_GET_INIT_DATA = 0x73
Agrego en Linea 470:
def getPtoVta(self, letter): reply = self._sendCommand(self.CMD_GET_INIT_DATA, [], True) if len(reply) < 3: # La respuesta no es válida. Vuelvo a hacer el pedido y # si hay algún error que se reporte como excepción reply = self._sendCommand(self.CMD_GET_INIT_DATA, [], False) return reply [6]
TraductorFiscal.py
Agrego linea 40:
def getPtoVta(self, tipo_cbte): "Devuelve el punto de venta de la impresora fiscal" letra_cbte = tipo_cbte[-1] \ if len(tipo_cbte) > 1 else None return self.comando.getPtoVta(letra_cbte)
from fiscalberry.
Hola Catrielr, gracias por tu aporte.
Testeare tu código y lo incorporare lo más pronto que me sea posible.
Saludos!
from fiscalberry.
Me falto agregreagar
ComandoInterface.py
Linea 341
def getPtoVta(self, letter): """"Obtiene el punto de venta """ raise NotImplementedError
from fiscalberry.
Hola Catrielr, lo siento por demorarme demasiado en ponerme a incorporar tu código.
Han pasado varios meses y Fiscalberry ha cambiado bastante. ¿Podrías actualizar tu fork de fiscalberry, incorporar nuevamente tu código y testearlo de nuevo?
Una vez hecho eso, nos generas una pull request para aprovechar las herramientas de esta plataforma y así hacer un merge más fácil.
Si necesitas ayuda para actualizar tu fork, subir tus cambios y generar una pull request, no dudes en contactarme a través de esta issue.
Gracias, saludos!
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
- tm-t900fa usb windows HOT 18
- 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.