Código de Visual Basic - OCX Fiscal Epson

Imágen de perfil

OCX Fiscal Epsongráfica de visualizaciones


Visual Basic

estrellaestrellaestrellaestrellaestrella(32)
Actualizado el 17 de Febrero del 2016 por Rodolfo (Publicado el 16 de Febrero del 2016)
7.936 visualizaciones desde el 16 de Febrero del 2016. Una media de 56 por semana
Es toda las información que tengo de como manejar las Impresoras Fiscales Epson. Esta incluido el proyecto y el instalador de la OCX también incluí un texto explicativo con todas las funciones de la OCX y otro con explicativo de como enviar los valores (importes). Lo comparto por que toda esta info y códigos lo encontré muchos foros por partes separadas. Si Aun estemos en la era de las Facturas electrónicas muchos comercios utilizan Controladores Fiscales. Para probarlo les dejo también la dirección del emulador http://www.impresoras-fiscales.com.ar/emulador.htm si son tan obsesivos como yo lo van a poder implementar en su aplicación en un par de horas. Les recomiendo que implementen un control de errores y estado de la Impresoras por que nadie quiere que a la mitad de un venta de les cierre el programa y también tenga en cuenta a la hora de enviar los importes que esta bien explicado en uno de los TXT. No soy de compartir código propio de mis aplicaciones solo que este sitio me ayudo tanto que creo con este humilde aporte puedo colaborar con muchos que también lo necesitan como yo lo necesite y me costo mucho recopilar.

1.0
estrellaestrellaestrellaestrellaestrella(32)

Actualizado el 17 de Febrero del 2016 (Publicado el 16 de Febrero del 2016)gráfica de visualizaciones de la versión: 1.0
7.937 visualizaciones desde el 16 de Febrero del 2016. Una media de 56 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

  • Archivos para descargar

Si alguno de los archivos de descarga no funciona, comentanos aquí el error.




Comentarios sobre la versión: 1.0 (32)

Imágen de perfil
Manuel
17 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
Menudos aportes que nos estás haciendo, el otro día el del teclado, hoy este... muchísimas gracias.
Responder
Imágen de perfil
Rodolfo
18 de Febrero del 2016
estrellaestrellaestrellaestrellaestrella
Es que creo que hay que tener valores en vida. Si gracias a portes grandes o pequeños que te ayudan a resolver problemas. Es bueno devolver las ayudas y no ser mezquino. Obviamente no publico codigo de aplicaciones completas por que eso es trabajo de cada uno. Pero si puedo hacerlo de esta forma. Solo espero cumplir con mi cometido.
Responder
José
20 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo,

gracias por este excelente aporte.

Tengo un pequeño problema y es que al imprimir artículos con tildes o eñes no me aparecen correctamente, y no veo en el objeto manera alguna de configurar la codificación de caracteres. ¿Podrías darme alguna solución o idea?

Muchas gracias de antemano.
Responder
Imágen de perfil
Rodolfo
21 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
si es cierto, eso es por que tendrias que enviar sin acentos no Ñ cambiala por N y listo por que es un problema de la impresora fiscal eso no del controlador (OCX)
Responder
José
21 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Ah vale, gracias por la aclaración Rodolfo.

Un saludo.
Responder
Fede Pereyra
26 de Abril del 2016
estrellaestrellaestrellaestrellaestrella
Hola, gracias por tu aporte, estoy obteniendo un error de Desbordamiento de Total.. Hasta que monto puedo enviar ? no llegan a $3mil los dos productos que envio....los imprime bien, pero el error lo obtengo cuando intenta cerrar el comprobante : SE PRODUCIRA UN DESBORDE DE TOTAL.
Responder
Imágen de perfil
Rodolfo
12 de Junio del 2016
estrellaestrellaestrellaestrellaestrella
pega el codigo que estas utilizando y veo que es lo esta mal.
Responder
Martín Caggiano
30 de Noviembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, Necesito me aclares donde se denomina la funcion ME, osea en lugar de todo eso no puedo decirle a la impresora directamente que imprimir? Por ejemplo, printerfiscal1.senditem("text2", "text3", "text4", "2100", "M", "0", "0", "0") Cuando quiero abrir el ticket con printerfiscal1.openticket("G") abre el ticket con los datos de la cabecera, pero cuando le doy la instruccion tal como te la expliqué me dice que la variable no ha sido definida y me marca la parte de senditem, porque pasa esto? No hay una forma más fácil de utilizarla tipo la impresora hasar?
Responder
Martín Caggiano
01 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Hola, tengo problemas al enviar un ticket desde vb6, el comando que uso es el siguiente:
printerfiscal1.sendticketitem("text2","text3","text4","2100","M","0","0","0")
el error me dice que no es un valor declarado y me marca sendticketitem, pero cuando uso:
printerfiscal1.sendnofiscaltext("text2","text3","text4","2100","M","0","0","0") imprime sin ningun problema, obviamente que abro el ticket de la forma que corresponde dependiendo del caso, osea, printerfiscal1.openticket("G) para el ticket fiscal y printerfiscal1.opennofiscal para el otro caso. en que le estoy errando? Alguien puede ayudarme?
Responder
Imágen de perfil
Rodolfo
04 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Disculpa lei mal, en la funcion
printerfiscal1.sendnofiscaltext("text2","text3","text4","2100","M","0","0","0")
los textbox van sin comilas
Dim Descripcion as string
Dim Catidad as string
Dim Precio as string

Descripcion = left(text2,20)
El precio si es 1 tenes que enviar 100
La cantidad si es 1 tenes que enviar 1000
Para el precio y cantidad no te pongo el codigo por que no se si utilizas coma o punto para el valor decimal. Eso es programacion basica y creo que vas a tener problemas para resolverlo solo
Espero que te sirva la ayuda.
Responder
Imágen de perfil
Rodolfo
02 de Diciembre del 2016
estrellaestrellaestrellaestrellaestrella
Ya que mencionas Hasar, la epson tiene 20 caracteres de descripcion, y los valores son sin decimale es decir $100 le tenes que enviar 1000 o $2,50 ---> 250 ademas para que es la "G" cuando abris el tiket? ademas no son las mismas variables por que segun el tipo de ticket que abras son diferentes las variable a ingresar. Ademas mientras vas escribiendo te van apareciendo que variable y tipo e la siguiente. Presta atencion a eso. Ademas le podes enviar un mail a epon que ellos que envian toda la informacion sin problemas.
Responder
Juan Pablo
04 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo.. buenas tardes. Te escribo desde Paraná (E.Ríos).
Yo estoy utilizando esta OCX con PowerBuilder desde hace varios años, y recientemente descubrí que al realizar los cierres Z, la información que me devuelve no incluye los valores de las Notas de Crédito emitidas durante el día.
Tenés alguna idea sobre el porqué? Lo has visto?
Muchísimas gracias de antemano!
Responder
Imágen de perfil
Rodolfo
06 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Realmente creo que la razon es por que es un documento NO FISCAL pero algunos modelos lo toman como NO FISCAL HOMOLOGADO y no se refleja en la memoria del equipo. Hace muy poco que comence con el tema de fiscales y con el tema de las notas de credito para HASAR me podes ayudar ya que el ejemplo que viene con la OCX da error por que llama a una funcion que no existe :S saludos
Responder
Juan Pablo
06 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo. Gracias por tu respuesta. En realidad, según entiendo, las Notas de Crédito son documentos fiscales, y la información sobre los contadores debe estar guardada en algún lugar del equipo, ya que se imprime en el Ticket del Cierre Z. Estoy investigando y haciendo algunas pruebas. Si encuentro algo, te aviso.
Respecto a lo que me pedís, no he desarrollado nada para Hasar, pero con gusto te puedo ayudar en lo que esté a mi alcance. Sí tengo experiencia con temas de Facturación, Notas de Crédito, impuestos, y mucha en PowerBuilder. Saludos!
Responder
Jorge
13 de Septiembre del 2018
estrellaestrellaestrellaestrellaestrella
Buenos tardes Juan Pablo, yo tambien soy de Paraná y me interesaria intercambiar conocimientos. Ojala veas este mensaje, saludos.-
Responder
Imágen de perfil
Rodolfo
07 de Enero del 2017
estrellaestrellaestrellaestrellaestrella
Te comento, estamos trabajando con una contadora de Mendoza y ella nos envio documentacion de que las notras de credito no son fiscales pero las notas de debito si lo son. Es decir a mi entender de que son fiscales solo los documentos de cobro (ingreso de dinero) pero no las devoluciones. En lo que estamos incursionando es en hacer IVA compras IVA ventas. Si nos podes ayudar con ese tema para la legislacion de AFIP, ademas nos comentaron que la nueva reg. exije que se exporte a un CSV especifico para enviarlo directo. Agradeceriamos mucho tu colaboracion en este tema.
Responder
christian
22 de Febrero del 2017
estrellaestrellaestrellaestrellaestrella
Rodolfo gracias primero que nada. Funciona para tm-u220afii? Gracias
Responder
Carlos
25 de Abril del 2017
estrellaestrellaestrellaestrellaestrella
Excepcional aporte !!! estpy probando todo esto y anda, una consulta , con que funcion se le pregunta al impresor el numero de ticket emitido ? Gracias. Saludos. Carlos
Responder
Imágen de perfil
Rodolfo
27 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
con esta OCX no se puede, presumo que utilizando el protocolo extendido si se podria. Pero esta OCX es para protocolo compatible. Me alegro que con este simple aporte les ayuda a muchos para poder empezar con el tema de las fiscales. :)
Responder
Francisco Rivas
25 de Junio del 2017
estrellaestrellaestrellaestrellaestrella
Excelente Aporte Sr. Rodolfo, tengo una pregunta, este ocx lo pude implementar aca https://www.youtube.com/watch?v=mlW2Chs6ppw ahora bien, como puedo cambiar el CUIT por otro valor? o este ocx solo me sirve para las normas de Argentina? conoce otro ocx u dll para otras impresoras?, Gracias de antemano amigo, excelente su trabajo, estuve revisando las explicaciones y aclara mucho.
Responder
Cristian
08 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Buen dia, muy interesante el foro, les hago una consulta a ver si me pueden ayudar. Estoy usando ifepson, y funciona todo bien, pero quisiera saber como puedo sacar la impresion de las leyendas "Su Pago" y "Su vuelto", y como agregar una leyenda "Cuenta Corriente" cuando la operacion lo necesite. Desde ya muchas gracias
Responder
Imágen de perfil
Rodolfo
10 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Mira, hay un tema la fiscal no admite ese tipo de pago es EFECTIVO o TARJETA. Ahora en este caso tendrias que generar un ticket NO FISCAL para imprimir ese detalle de la compra y por cuenta corriente. Por que se asume que en un ticket fiscal te estan pagando por algun medio.
Responder
cristian
10 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, desde ya muchas gracias, el tema es que lo que emito es una factura, respecto a las leyendas tengo entendido que se pueden sacar pero no encontré la manera
Responder
Imágen de perfil
Rodolfo
12 de Julio del 2017
estrellaestrellaestrellaestrellaestrella
Alguien pudo conseguir el Emulador de las impresoras Nuevas Epson? yo me comunique con epson argentina y nos da mil vueltas para darnos el emulador. Segun ellos tambien trabaja con el protocolo Expandido.
No tiene nada que ver con la OCX que he publicado, quisiera ue alguno que lee este post pueda colaborar con nosotros y todo de los sitio para poder evolucionar ya que en poco tiempo las impresoras fiscales viejas ya no seran legalmente utilizarlas. Saludos
Responder
Ale
16 de Agosto del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo, te queria consultar si sabes como cambiar el tope de $ 1.000 que tiene la impresora fiscal Epson TM T220AFII ya que cada vez que se supera ese monto pide los datos del cliente y es muy engorroso.
Muchas gracias por tus aportes!!
Saludos!
Responder
agustin cima
21 de Septiembre del 2017
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo! muchas gracias por el OCX, te hago una consulta, cada vez que ejecuto una instruccion en tu aplicacion, imprime y despues me da un error "Error 8020, error al leer del dispositivo comm"

En el caso de un cierre x lo hace bien , pero si es un ticket, imprime el encabezado y despues da error...

Busque por todos lados y nada, alguna idea?
Responder
Imágen de perfil
Rodolfo
23 de Septiembre del 2017
estrellaestrellaestrellaestrellaestrella
Te comento, esos son ejemplos que sacamos de internet. En la realidad cuando se envia a imprimir un ticket no hay que esperar la respuesta de cada orden osea que ejecuta el comando de manera directa.

Te paso la funcion que usamos nosostros:

Function ImprimirTicketEpson(FormaPago As String, Recargo As Double, Optional Ltr As String) As Boolean
On Local Error GoTo Fallo1
Dim respuesta As Boolean
Dim Articulo As String
Dim Cantidad As String
Dim PrecioUnit As String
Dim Pago As String
Dim RecargoT As String
Dim IVA As String

If Val(FrmCobrar.TxtAbona) >= Val(Reemplazar(FrmCobrar.txttotal, ",", ".")) Then
Pago = Format(FrmCobrar.TxtAbona, "#0.#0")
Pago = Reemplazar(Pago, ",", "")
Else
Pago = Reemplazar(FrmCobrar.txttotal, ",", "")
End If

With MdiPrincipal
Procesar:
Dim Emisor As String
Dim Compra As String
Dim Letra As String
Dim Tipo As String

Dim rs As New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "SELECT * From Clientes where IdCliente='" & txtidcliente & "'", Cnx, 3, 1
Emisor = Left(Cargar_Config_STR("Config", "CatAfip"), 1)

Select Case Emisor
Case "R": Emisor = "I"
Case "M": Emisor = "M"
Case "E": Emisor = "E"
End Select

If txtidcliente = "1" Then Letra = "C": Compra = "F": GoTo SaltoCF
Compra = Left(rs("IVA"), 1)

Select Case Compra
Case "R": Letra = "A": Compra = "I"
Case "M": Letra = "B": Compra = "M"
Case "E": Letra = "B": Compra = "E"
Case "C": Letra = "C": Compra = "F"
End Select

SaltoCF:
'Tipo de Ticket segun CatAfip
If (Emisor = "M" Or Val(txtidcliente) = 1 Or Letra = "C") And Funcion = "V" Then 'CF
respuesta = .IF1.OpenTicket("C")
Else 'Ticket Factura A o B o Nota de Credito
If Funcion = "V" Then Tipo = "T"
If Funcion = "NC" Then Tipo = "M"
If Emisor = "M" Or Val(txtidcliente) = 1 Or Letra = "C" Then
respuesta = .IF1.OpenInvoice(Tipo, "C", Letra, "1", "P", "12", Emisor, Compra, "_", "_", "CUIT", "30614104712", "N", "_", "_", "_", Trim(txtNroNC) & "_", "_", "C")
Else
respuesta = .IF1.OpenInvoice(Tipo, "C", Letra, "1", "P", "12", Emisor, Compra, Left(rs("Nombre"), 40), Left(rs("Apellido"), 40), "CUIT", rs("CUIT"), "N", rs("Direccion") & " " & rs("Altura"), "CP: " & rs("CP"), rs("Provincia"), "0" & Trim(txtNroNC), "_", "C")
End If
Set rs = Nothing
End If
' Lista Art.
Dim Valor_sin_IVA As String
For i = 1 To DataGrid1.ApproxCount
Articulo = Left(DataGrid1.Columns(4).CellText(i), 20)
Cantidad = Val(Reemplazar(DataGrid1.Columns(5).CellText(i), ",", ".")) * 1000
PrecioUnit = Val(Reemplazar(DataGrid1.Columns(6).CellText(i), ",", ".")) * 100
IVA = Val(Reemplazar(IVADetalle(DataGrid1.Columns(2).CellText(i)), ",", ".")) * 100
If Letra = "A" Or Letra = "B" Or Funcion = "NC" Then 'Ticket Factura A o B
Valor_sin_IVA = Val(Reemplazar(DataGrid1.Columns(6).CellText(i), ",", ".")) / (Val(IVA) / 10000 + 1)
Valor_sin_IVA = Format(Valor_sin_IVA, "#0.#0") * 100
respuesta = .IF1.SendInvoiceItem(Articulo, Cantidad, Valor_sin_IVA, IVA, "M", "0", "0", "", "", "", "", "")
Else 'Ticket CF
respuesta = .IF1.SendTicketItem(Articulo, Cantidad, PrecioUnit, IVA, "M", "0", "0")
End If
Next

Dim LeyendaP As String
If FormaPago = "E" Then LeyendaP = "EFECTIVO"
If FormaPago = "T" Then LeyendaP = "TARJETA"
If FormaPago = "Ch" Then LeyendaP = "CHEQUE"

If Recargo <> 0 Then
Dim LetraPay As String
Dim LeyendaRD As String
If Recargo > 0 Then LetraPay = "R": LeyendaRD = "RECARGO"
If Recargo < 0 Then LetraPay = "D": Recargo = Recargo * (-1): LeyendaRD = "DESCUENTO"
RecargoT = Format(Recargo, "#0.#0")
RecargoT = Reemplazar(RecargoT, ",", "")
If Letra = "A" Or Letra = "B" Then 'Ticket Factura A o B
respuesta = .IF1.GetInvoiceSubtotal("P", "Sub-Total")
respuesta = .IF1.SendInvoicePayment(LeyendaRD & " POR " & LeyendaP, RecargoT, LetraPay)
Else ' Ticket CF
respuesta = .IF1.GetTicketSubtotal("P", "Sub-Total")
respuesta = .IF1.SendTicketPayment(LeyendaRD & " POR " & LeyendaP, RecargoT, LetraPay)
End If
End If

If Letra = "A" Or Letra = "B" Or Tipo = "M" Or Tipo = "N" Or Funcion = "NC" Then 'Ticket Factura A o B
respuesta = .IF1.SendInvoicePayment("PAGO CON " & LeyendaP, Pago, "T")
respuesta = .IF1.CloseInvoice(Tipo, Letra, "")
Else 'Ticket CF
respuesta = .IF1.SendTicketPayment("PAGO CON " & LeyendaP, Pago, "T")
respuesta = .IF1.CloseTicket
End If

ImprimirTicketEpson = True

End With
Exit Function
Fallo1:
If rs.State = adStateOpen Then rs.Close
If MsgBox("Error: " & Err.Description, vbRetryCancel, "IMPRESORA FISCAL") = vbRetry Then Resume Procesar
End Function
Responder
Marcelo
16 de Febrero del 2018
estrellaestrellaestrellaestrellaestrella
Hola, te hago una consulta. Estoy tratando de emitir una nota de debito, se puede con esta ocx? en caso de que no se pueda, me podrias dar alguna sugerencia de como hacerlo?.
Desde ya muchas gracias
Responder
Imágen de perfil
Rodolfo
20 de Febrero del 2018
estrellaestrellaestrellaestrellaestrella
Muy buena pregunta, no tiene la funcion. Para ellos tenes que utilizar el protocolo de bajo nivel actalmente esta en la pagina de de EPSON. saludos
Responder
RUBEN
24 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Hola Rodolfo. Excelente el aporte.
Ahora te molesto para consultarte si no tenes OCX o algún ejemplo para trabajar en VB6 con el controlador fiscal EPSON TM_T900FA ??

Gracias
saloudoss
Ruben
Responder
Imágen de perfil
Rodolfo
26 de Abril del 2018
estrellaestrellaestrellaestrellaestrella
Envia un mail a epson pidiendoles la OCX y los ejemplos. Saludos
Responder
Eduardo Bzura
21 de Mayo del 2018
estrellaestrellaestrellaestrellaestrella
Como hago para enviar en el ticket fiscal impuestos internos ?
Mi cliente vende cigarrillos
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3435  
Revisar política de publicidad