lunes, 18 de noviembre de 2013

Conexión con Impresoras Fiscales HASAR - El driver es gratuito - No se deje engañar!!

"La verdad que estoy bastante enojado, Resulta que cuando voy a implementar un sistema de gestión de ventas me doy con que la impresora fiscal imprimía en el nombre de los artículos *DEMO, por lo cual el ticket queda inutilizable"

Hay una empresa, bastante conocida, (es más si uno busca "driver fiscal" o "driver hasar" en google es indexada en los primeros resultados) que ofrece drivers de impresoras fiscales de las marcas más conocidas, tales como Hasar y Epson.

Sin embargo el driver que se puede descargar es una versión de prueba! Si se quiere que funcione correctamente (no aparece *DEMO en el ticket) hay que pagarlo. Pagar qué?

Los drivers tanto de Epson como de Hasar están disponibles en sus respectivas páginas web con sus tutoriales y ejemplos!!

Hasta que descubrí esto tuve que volver a programar todo con los nuevos comandos del driver original de Hasar (que en realidad son más fáciles de entender y usar que los que venden en esa página) significando para mí una pérdida de tiempo.

La ida de este tutotorial es que otros no pierdan el tiempo como yo.

El driver de Hasar que estoy usando es: Fiscal051122.Ocx

Lo podemos bajar desde http://www.grupohasar.com/sites/default/files/Tiqueadoras.zip

En el .zip se encuentran ejemplos y descripción de los métodos y además un spooler para poder usar la impresara desde la red (todavía lo estoy investigando, cuando logre hacerlo andar lo posteo)

Simplemente, debemos registrar la ocx para que nuestra herramienta de desarrollo lo detecte como un componente ActiveX

Para ello abrimos la consola de windows y ejecutamos:

regsvr32 c:\pathdelarchivo\Fiscal051122.Ocx

Nos saldrá un cuadro de diálogo afirmando que el registro fue correcto y listo, ya estamos en condiciones de trabajar de manera full.

En mi caso, uso la herramienta WinDev. Les dejo un ejemplo de código actualmente funcionando para imprimir facturas A y B:

PROCEDURE ImprimirTicket()
WHEN EXCEPTION IN
HReadSeek(setup,set_id,1)
AX_Ticketera>>Baudios(setup.set_velserial)
AX_Ticketera>>Puerto(setup.set_serial)
AX_Ticketera>>Comenzar() 
AX_Ticketera>>PrecioBase(False)
//Tipo de factura para abrir comprobante
AX_Ticketera>>TratarDeCancelarTodo
nTipofactura is int
IF STC_Factura="Factura A" THEN
nTipofactura=65
ELSE IF STC_Factura="Factura B" THEN
nTipofactura=66
END
//escribir
HReadSeek(cliente,cli_id,STC_Id_Cliente)
nCondfiscal is int
IF cliente.cli_condfiscal=2 THEN
nCondfiscal=73
ELSE
nCondfiscal=67
END
AX_Ticketera>>DatosCliente(cliente.cli_nombre,cliente.cli_cuit,67,nCondfiscal,"Domicilio")
AX_Ticketera>>AbrirComprobanteFiscal(nTipofactura)
AX_Ticketera>>ImprimirTextoFiscal("Detalle de su compra")
IF SC_Tablero.EDT_PagaConTarjeta>0 THEN
AX_Ticketera>>ImprimirTextoFiscal("Pago con tarjeta")
END
FOR EACH ROW OF TABLE_VentaRepuestos
AX_Ticketera>>ImprimirItem(TABLE_VentaRepuestos.COL_Nombre,TABLE_VentaRepuestos.COL_Cantidad,TABLE_VentaRepuestos.COL_Precio_Venta,21,1)
END
AX_Ticketera>>ImprimirPago("Efectivo",SC_Tablero.EDT_PagaConEfectivo)
AX_Ticketera>>CerrarComprobanteFiscal()
AX_Ticketera>>Finalizar()
DO
Error("Error al conectar con la impresora fiscal")
RETURN
END


Espero que le sirva a alguien, recuerde NO SE DEJE ENGAÑAR. 

Cualquier duda me escriben. Estoy aquí para ayudar, responder y discutir si es que se quiere. Saludos