Impresora Fiscal IBM
Posted:
Tue Dec 06, 2011 1:44 pm
by Adolfo
Saludos...
Alguien ha trabajado con impresoras fiscales IBM.
Necesito aclarar alguna dudas, ojala en Chile, por la reglamentacion del servicio de impuestos internos.
Saludos y gracias de antemano
Re: Impresora Fiscal IBM
Posted:
Thu Jun 13, 2013 10:13 pm
by Patricio Avalos Aguirre
Hola Adolfo
estas trabajando con impresoras fiscales
tengo un cliente que me pidio evaluar el tema, pero no entiendo nada
podris explicar un poco si es posible
saludos
Patrici Avalos Aguirre
La Serena Chile
Re: Impresora Fiscal IBM
Posted:
Sat Jun 15, 2013 2:08 pm
by Pablo
Hola adolfo si te sirve te adjunto un ejemplo en clipper , esto es para las ibm tf6.
te comento yo se muy poco de fivewin y trabajo con dbf es muy dificil pasar de dbf a mysql ?
gracias por tu respuesta
Pablo
//Inicializa puerta //
clear
pto:=0
Sn1:= Sn2:= sn3:= Sn4:= Sn5:= Sn6:= Sn7:= sn8:="N"
@ 01,01 Say "Puerto :" Get pto
@ 02,01 Say "Emitir informe X :" Get SN1 Pict "@!"
@ 03,01 Say "Emitir informe Z :" Get SN2 Pict "@!"
@ 04,01 Say "Inicio de Ventas :" Get SN3 Pict "@!"
@ 05,01 Say "Test de Impresora:" Get SN4 Pict "@!"
@ 06,01 Say "Acumuladores:" Get SN5 Pict "@!"
@ 07,01 Say "Repite linea 18:" Get SN6 Pict "@!"
@ 08,01 Say "Pld Forzado:" Get SN7 Pict "@!"
@ 09,01 Say "Cambiar horario:" Get SN8 Pict "@!"
Read
IniPortTF6(pto)
Set console off
Set Alternate to E_TF6.TXT ADDITIvE
Set Alternate On
Set century on
if Sn6="S"
error:=ImpTf6( pto, "18") && reimprimir linea
quit
endif
if Sn7="S"
error:=ImpTf6( pto, "90") && PLD FORZADO
quit
endif
if Sn5="S"
error:=ImpTf6( pto, "482") && acumuladores
@ 5,0 Say error
quit
endif
if Sn8="S"
horanew:=Space(4)
@ 10,01 Say "Ingrese hora (HHMM):" Get horanew pict "@R 99:99"
Read
datonew:=Subs(Dtoc(Date()),4,2)+Subs(Dtoc(Date()),1,2)+Subs(Dtoc(Date()),7,4)+horanew
error:=ImpTf6( pto,"44"+Datonew) && cambio de fecha hora
@ 5,0 Say error
quit
endif
if Sn1="S"
ImpTf6( pto, "01") && Reporte X
Return
endif
if Sn2="S"
ImpTf6( pto, "021") && Reporte Z
endif
if Sn3="S"
ImpTf6( pto, "32") && Inicio DE ventas
Quit
endif
if Sn4="S"
ImpTf6( pto, "38") && Test Impresora
*ImpTf6( pto, "41111") && seteo indicadores para cambio
quit
endif
/ imprime en TF6 //
func ImpTF6( nPurt, cString )
local nRest:=0 //len(cCadena )
local r
local lret:= .t.
local nEspera := 0
local nMaxEsp := 10
local cStrRet :=""
Local cLeePto :=""
cCadena:= chr( cton("87",16))+cString+ chr( cton("88", 16))
*Cadena:= chr("87")+cString+ chr("88")
nRest := len(cCadena)
while nRest > 0 .and. lRet
if com_dsr(nPurt)
cCadena := right(cCadena, nRest)
nRest := com_send(nPurt, cCadena)
cLeePto:=""
cStrRet:=""
while asc(cLeePto) != 13
cLeePto=com_read(nPurt,1)
if asc(cLeePto)== 10 //
cStrRet="OK"
lRet:=.f.
exit
else
if asc(cLeePto)!=0
cStrRet+= cLeePto
endif
if nEspera >= nMaxEsp
cStrRet+=" TIEMPO DE ESPERA TERMINADO "+dtoc(Date())+" "+Time()
lRet:=.f.
exit
else
inkey(.1)
nEspera+=0.1
endif
endif
endd
elseif nEspera >= nMaxEsp
if alert("No hay respuesta de la Impresora ;" +;
"Revise el estado del dispositivo.",{"Si","No"}) == 2
lRet := .f.
cStrRet:="No hubo Respuesta de la Impresora "+dtoc(Date())+" "+Time()
else
nEspera := 0
end
else
inkey(0.1)
nEspera += 0.1
endif
endd
return cStrRet
// Inicializa la puerta serial para impresora TF6
func IniPortTF6(nPurt, nBaud, cParidad, nLarBit, nBitPar, cMsgError)
local lRet := .f.
*nPurt := 1
nBaud := 19200
cParidad := "N"
nLarBit := 8
nBitPar := 1
cMsgError := "COM" + str(nPurt, 1)
if com_open(nPurt, 1000, 1000)
if com_init(nPurt, nBaud, cParidad, nLarBit, nBitPar)
lRet := .t.
com_hard( nPurt, .t., .t. )
else
com_close(nPurt)
alert("Puerta serial " + cMsgError + " no pudo inicializarse")
end
else
alert("Puerta serial " + cMsgError + " no pudo abrirse")
end
return lRet
Function v_error(coderror)
Ret:=.F.
do case
Case Coderror="003"
Alert("Monto Total del Item No Coincide(003)..!")
Case Coderror="005"
Alert("Memoria Flash fiscal Casi Llena(005)..!")
Case Coderror="006"
Alert("Monto Total de la Transaccion en Cero o Negativo(006)..!")
Case Coderror="007"
Alert("Total de la transaccion No coincide al Total Fiscal(007)..!")
Case Coderror="008"
Alert("Se ha enviado Caracteres no Imprimible(008)..!")
Case Coderror="012"
Alert("Linea de Comentarios Excedidas(012)..!")
Case Coderror="013"
Alert("Impresora No Responde revisar conexiones y encendido(013)..!")
Case Coderror="014"
Alert("Error ocurrido al Leer Memoria flash fiscal(014)..!")
Case Coderror="015"
Alert("Error al Escribir en la Memoria Flash Fiscal(015)..!")
Case Coderror="019"
Alert("Secuencia de comandos no Valida(019)..!")
Case Coderror="025"
Alert("descuento mayor al 50% (025)..!")
Case Coderror="040"
Alert("Impresora No termina de Imprimir(040)..!")
inkey(5)
Ret:=.t.
Case Coderror="043"
Alert("Falta Papel o la Tapa de Impresora est Abierta(043)..!")
Ret:=.T.
Case Coderror="045"
Alert("No Hay Energia Suficiente para Procesar el comando(045)..!")
Ret:=.T.
Case Coderror="059"
Alert("comando no puede hacerse en periodo de Ventas(059)..!")
Case Coderror="060"
Alert("comando no puede hacerse en periodo de Cierre(059)..!")
Case Coderror="067".or. Coderror="068"
Alert("Debe Ejecutar el Informe Z (067-068)..!")
Case Coderror="076".or.coderror="077"
Alert("Error Grave (076-077)..!")
Case Coderror="080".or. coderror="082"
Alert("Error de impresion Esta la tapa Abierta o se termino el Papel(080)..!")
inkey(5)
Ret:=.T.
Endcase
Return(Ret)
Re: Impresora Fiscal IBM
Posted:
Wed Jun 19, 2013 2:04 pm
by Leo
Adolfo, si no te molesta, cuales son las dudas que tienes para poder ayudarte, ya he homologado impresoras fiscales, si bien es cierto, son epson, pero todas trabajan más o menos de la misma forma. Además conozco bastante bien la jurisprudencia que regula el funcionamiento de las impresoras fiscales.
Atentamente, Leo.
Re: Impresora Fiscal IBM
Posted:
Wed Jun 19, 2013 3:09 pm
by Adolfo
Leo.
Gracias por el ofrecimiento, ya lo hize, el post original es del 2011 y ya tengo homologadas ambas Epson e IBM.
Patricio, por un problema de tiempo no he podido enviarte los manuales de IBM. Lo comprimo y te lo envio a la tarde, con un ej chico.
Saludos
Re: Impresora Fiscal IBM
Posted:
Thu May 29, 2014 7:10 pm
by elmoiquique
Hola
Adolfo... podrias colocar un ejemplo ... agradeceria tu ayuda
saludos
Re: Impresora Fiscal IBM
Posted:
Mon Aug 03, 2015 6:03 pm
by elmoiquique
Hola
Alguien tiene alguna rutina o ejemplo para poder imprimir en laimpresora.... agradeceria su ayuda
Re: Impresora Fiscal IBM
Posted:
Wed Aug 05, 2015 9:43 pm
by elmoiquique
Adolfo wrote:Te envie manual
Saludos
Gracias por el manual,,,, esta completisimo, he hecho algunas prueba ,,puedo sacar el informe pero no he podido extraer datos de la impresora, ya que necesito extraer el ultimo numero de boleta, no se si podrias ayudarme...esto es lo que tengo en el programa
Comando:='481'
cString:= Chr(135) + Comando + Chr(136)
WRITECOMM( nCom, @cString )
//debiera delvolver una cadena de informacion y yo buscar el numero dentro de esa cadena
?str2hex(cstring) //devuelve 8734383188
?hex2str(cstring) // nada
Re: Impresora Fiscal IBM
Posted:
Wed Aug 05, 2015 10:30 pm
by elmoiquique
elmoiquique wrote:Adolfo wrote:Te envie manual
Saludos
Gracias por el manual,,,, esta completisimo, he hecho algunas prueba ,,puedo sacar el informe pero no he podido extraer datos de la impresora, ya que necesito extraer el ultimo numero de boleta, no se si podrias ayudarme...esto es lo que tengo en el programa
Comando:='481'
cString:= Chr(135) + Comando + Chr(136)
WRITECOMM( nCom, @cString )
//debiera delvolver una cadena de informacion y yo buscar el numero dentro de esa cadena
?str2hex(cstring) //devuelve 8734383188
?hex2str(cstring) // nada
lo solucione asi
Comando:='482'
cString:= Chr(135) + Comando + Chr(136)
WRITECOMM( nCom, @cString )
//?str2hex(cString)
msginfo('hhh','vv')
//hex2str(cString)
cBytes:=space(100)
ReadComm( nCom,@cBytes)
?cBytes
Re: Impresora Fiscal IBM
Posted:
Thu Aug 06, 2015 9:33 pm
by Patricio Avalos Aguirre
Hola
podrian enviarme el manual
desde ya gracias
patricio_avalos_aguirre@hotmail.com
Re: Impresora Fiscal IBM
Posted:
Thu Aug 06, 2015 10:32 pm
by elmoiquique
Yo ya estoy trabajando en un programa, pero estoy en los problemas previos, cualquier ayuda es bienvenida
ENVIADO