codermapuche / hasar-fp

Driver para impresoras fiscales Hasar en Node.js y C++
12 stars 2 forks source link

Integracion con PHP? #1

Open vousys opened 7 years ago

vousys commented 7 years ago

Hola! no lo tenes compilado para instalar en server linux en entorno LAMP? (apache + php)

codermapuche commented 7 years ago

Hola! actualmente no lo compile para linux, según los de Hasar debería poder compilarse sin problemas (El código fuente es el oficial del fabricante) pero después de todo lo que renegué para compilarlo en windows se me fueron las ganas.

Si lo compilas seria bienvenido un PR con un binario para agregar al repositorio.

En lo que respecta a PHP te comento que no es necesario una librería para utilizarlo, aunque es viable hacer una.

Te comento que esto no esta pensado para ser utilizado desde el servidor sino directamente desde el navegador, es decir, hacer una aplicación web que sea genérica y que cada usuario acceda a ella desde internet, por ejemplo, un sistema de ventas, el usuario se registra con su usuario y clave, accede a su cuenta y en la pantalla donde carga sus ventas tiene un botón para "Guardar e imprimir ticket" por ejemplo, cuando clickea ahí, se dispara el proceso de guardado propio del sistema y luego se llama a la función javascript para que imprima el ticket correspondiente, en este caso, es el cliente quien tiene que tener su impresora fiscal conectada a su computadora y el sistema en si no sabe nada de ella.

El mejor ejemplo de esto lo podes encontrar aca donde los pasos 1 y 2 los puede realizar cualquier mortal con conocimientos básicos de pc, y el paso 3 es que deberíamos realizar los desarrolladores en nuestras aplicaciones.

Para no irme del tema, en lo que respecta a PHP (si pensamos en un entorno WAMP) abría que trabajar sobre las bases donde lo que habria que hacer con php es escribir el archivo command.json en el formato adecuado y luego invocar al driver.exe, si hago a tiempo este fin de semana armo una versión en php del index.js que básicamente eso es lo que hace.

En teoria, si se compilara para linux, tendría que andar todo exactamente de la misma manera.

vousys commented 7 years ago

Gracias nene, como siempre un placer leerte :)

vousys commented 7 years ago

Nehuen consulta: te acordas que modelo exacto era la hasar? y si era de las 1era generacion o 2da?

codermapuche commented 7 years ago

Actualmente funciona para la Hasar 615 y la Hasar 715F, si te bajas la extensión y clickeas en el icono tenes una foto de cada modelo soportado.

Solo hice esas dos que fueron las que necesite, pero en teoría esto funciona con todos los modelos Hasar, de 8 y 16Bits, de primera y segunda generación, este es el código fuente detrás de los ocx, dlls y demás que andan circulando en internet.

Para agregar otros modelos tienes que hacer lo siguiente:

  1. Aca Agregar una constante mas con el nombre del modelo, toma de ejemplo las dos existentes que corresponden a los modelos 615 y 715 respectivamente, en este punto lo que estas haciendo es darle un nombre interno unico al modelo que queres incorporar.
  2. Aca Agregar una nueva condición if tomando como referencia tal como están actualmente las de los modelos 615 y 715, en este punto, lo que estas haciendo es mapear el valor que esperas en archivo command.json al codigo interno unico del modelo que creaste en el paso anterior.
  3. Aca Agregar una nueva condición case tomando como referencia tal como están actualmente las de los modelos 615 y 715, en este punto, lo que estas haciendo es mapear el codigo interno único que creaste al principio con el driver propiamente dicho que proporciona el fabricante. Puede que tengas que agregar al inicio de dicho archivo, el #include "PMODEL.h" correspondiente, dentro del archivo del modelo en cuestión, vas a encontrar el nombre que los de hasar le dieron al modelo.

Eso es todo. Recorda que a la hora de compilar para que no explote, tenes que tener o bien la impresora fiscal conectada, o el emulador activado con el modelo correcto, ya que al ejecutarse el driver se intenta conectar para ejecutar el comando.

Yo estoy compilando con el perfil "debug" usando esta version del visual studio.

vousys commented 7 years ago

Muchas gracias nene!

El 5 ago. 2017 13:15, "Nehuen Prados" notifications@github.com escribió:

Actualmente funciona para la Hasar 615 y la Hasar 715F, si te bajas la extensión https://chrome.google.com/webstore/detail/fiscal-printer-cloud-conn/pkmanacnbmcbbbalkpgdkjkkioegcpfe y clickeas en el icono tenes una foto de cada modelo soportado.

Solo hice esas dos que fueron las que necesite, pero en teoría esto funciona con todos los modelos Hasar, de 8 y 16Bits, de primera y segunda generación, este es el código fuente detrás de los ocx, dlls y demás que andan circulando en internet.

Para agregar otros modelos tienes que hacer lo siguiente:

  1. Aca https://github.com/codermapuche/hasar-fp/blob/master/driver-source/fiscalStructures.h#L5 Agregar una constante mas con el nombre del modelo, toma de ejemplo las dos existentes que corresponden a los modelos 615 y 715 respectivamente, en este punto lo que estas haciendo es darle un nombre interno unico al modelo que queres incorporar.
  2. Aca https://github.com/codermapuche/hasar-fp/blob/master/driver-source/ClaseFiscal.cpp#L75 Agregar una nueva condición if tomando como referencia tal como están actualmente las de los modelos 615 y 715, en este punto, lo que estas haciendo es mapear el valor que esperas en archivo command.json al codigo interno unico del modelo que creaste en el paso anterior.
  3. Aca https://github.com/codermapuche/hasar-fp/blob/master/driver-source/fiscalEngine.cpp#L51 Agregar una nueva condición case tomando como referencia tal como están actualmente las de los modelos 615 y 715, en este punto, lo que estas haciendo es mapear el codigo interno único que creaste al principio con el driver propiamente dicho que proporciona el fabricante. Puede que tengas que agregar al inicio de dicho archivo, el #include "PMODEL.h" correspondiente, dentro del archivo del modelo en cuestión, vas a encontrar el nombre que los de hasar le dieron al modelo.

Eso es todo. Recorda que a la hora de compilar para que no explote, tenes que tener o bien la impresora fiscal conectada, o el emulador activado con el modelo correcto, ya que al ejecutarse el driver se intenta conectar para ejecutar el comando.

Yo estoy compilando con el perfil "debug" usando esta version http://go.microsoft.com/fwlink/?linkid=57034 del visual studio.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/codermapuche/hasar-fp/issues/1#issuecomment-320452394, or mute the thread https://github.com/notifications/unsubscribe-auth/AMODpet6Lp_SOA2h72grA6DT2zsYtlP5ks5sVJULgaJpZM4OpFT_ .

codermapuche commented 7 years ago

Recien le agregue compatibilidad con el modelo 320 (por agregar uno al azar) podes ver los cambios que hice en este commit en particular mira los 3 archivos que te mencione, los demás son cambios propios del proceso de recompilación.

vousys commented 7 years ago

Ha buenísimo, voy a pedirle a mí cliente que compre alguna de esas que mencionas vos entonces así me evito probar cosas nuevas. Gracias nene! Es lindo volverte a leer

El 5 ago. 2017 14:12, "Nehuen Prados" notifications@github.com escribió:

Recien le agregue compatibilidad con el modelo 320 (por agregar uno al azar) podes ver los cambios que hice en este commit https://github.com/codermapuche/hasar-fp/commit/f675ebb4cea83c589d367994cc2f29f358ebdf14 en particular mira los 3 archivos que te mencione, los demás son cambios propios del proceso de recompilación.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/codermapuche/hasar-fp/issues/1#issuecomment-320455547, or mute the thread https://github.com/notifications/unsubscribe-auth/AMODpYCT8wif9zjR49Yp1li1PAxHoJRyks5sVKKBgaJpZM4OpFT_ .