martes, 2 de diciembre de 2014

Impresora Fiscal Hasar con php

  Me llama un flaco (supuesto novio de una prima) de los que piensan que los informáticos somos una especie de chaman que todo lo puede y me cuenta que compro un sistema de gestión + facturación (un afano! mas de 50k le cobraron por un sistema sin terminar...) y el programador nunca pudo hacer andar las impresiones en fiscal Hasar SMH/P 715F.
  Buscando un poco en los foros me doy con que, a simple vista, con hacer un declare IF_WRITE y declarando el puerto ya sale funcionando, en mi opinión se olvidaron de especificar algunas cuestiones, al menos para las impresoras Hasar...
 A continuación los requisitos:

  - Primero que nada la versión de php, la que sin dudas funciona con la librería Hasar es: php version 5.2.1. 

  - Luego copiar la librería php_H715v52ts.dll (mas abajo comparto el link con librería y un ejemplo .php).

  - Reiniciar servicio apache.

  - Asegurarse que la impresora fiscal este conectada al puerto que voy a declarar en mi código php.

Ejemplo:

<?php
  require 'H715PhpApi.php';  
  $port = IF_OPEN("COM8",9600);
  if ( $port == -1) 
  {   echo "impresora ocupada";   return;  }
  $nError = IF_WRITE("@OpenFiscalReceipt|T|T");  
// Argumentos: 
// strVar1 Texto descripción del item (max 20 bytes)
// dblVar2 Cantidad (nnnn.nnnnnnnnnn)
// dblVar3 Precio unitario (nnnnnnn.nn)
// strVar4 Porcentaje IVA (nn.nn)/(**.**) (max 5 bytes)
// byVar5 Calificador de la operación {Mm}
// strVar6 Impuestos internos
// byVar7 Parámetro display {012}
// byVar8 Calificador de monto {TB}
  
  // repetir esta linea sacando del detalle de la venta.
  $nError = IF_WRITE("@PrintLineItem|Mouse Genius XScrol|1.0|1|10.50|M|0.0|0|B");  
  $nError = IF_WRITE("@Subtotal|P|Subtotal|0");  
  // con cuanto paga
  $nError = IF_WRITE("@TotalTender|Efectivo|20.00|T|0");
  $nError = IF_WRITE("@CloseFiscalReceipt");
  $nTiquet = IF_READ(3);
  $err =IF_CLOSE();
?>













Link -> ejemplo + libreria



3 comentarios:

lucho dijo...

Que tal, te queria hacer una consulta, estoy siguiendo tu ejemplo y tengo problemas con las dll, segun estuve viendo tenes que precompilar la dll.
Tengo PHP 5.6, puede ser ese el problema? me podes tirar un centro con este tema?
Desde ya muchas gracias, y esta re bien explicado el ejemplo.

Valubia dijo...

Hola, no hay necesidad de precompilar, proba con la version 5.2.1

Anónimo dijo...

Hola, muy interesante tu explicación gracias por compartir la info.

Dado que otras librerías y frameworks que utilizo se van actualizando y exigen mínimo PHP versión 5.6 o incluso PHP 7.0, tenés idea que habría que hacer para lograr que funcione sobre esas versiones más nuevas?

Muchas gracias.-

Publicar un comentario