Como imprimir en una impresora fiscal desde visual foxpro 9?
Publicado por JOSE (64 intervenciones) el 04/05/2019 22:17:31
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0
** * *************************************************************************
** *
** * oFiscal.Status
** * ----------------
** * Tipo de información solicitada.
** * "N" Información Normal o compatible con modelos anteriores.
** * "P" Información sobre las Características del Controlador Fiscal.
** * "C" Información sobre el contribuyente.
** * "A" Información sobre contadores de documentos fiscales y no fiscales.
** * "D" Información sobre el documento que se esta emitiendo.
** * "S" devuelve las preferencias del sistema
** * Ejemplo de Uso:
** * oFiscal.Status("N")
** *
** * Status=N
** * ----------
** * AnswerField_3: Ultimo Comprobante Fiscal B/C (no cancelado) <nnnnnnnn>.
** * AnswerField_4: Fecha 1er. Comprobante Fiscal. <AAMMDD>.
** * AnswerField_5: Hora 1er. Comprobante Fiscal <HHMMSS>.
** * AnswerField_6: Nº del último Cierre Z <nnnnn>.
** * AnswerField_7: Dato de Auditoría parcial.
** * AnswerField_8: Dato de Auditoría Total.
** * AnswerField_9: Texto de Auditoría que Identifica el Impresor o
** * Nº de Serie de Impresora. ej.: PEL0012027.
** * AnswerField_10: Texto de Auditoría. ej. Hera211.
** * -----------------------------
** * NOTA: (Respuestas 7 a 10):
** * Recomendado ARCHIVAR diariamente antes del Cierre Z.
** *
** * Status=P
** * ----------
** * AnswerField_3: Ancho de la Impresora en columnas a 10 CPI para Facturas.
** * AnswerField_4: Ancho de la Impresora en columnas a 12 CPI para Facturas.
** * AnswerField_5: Ancho de la Impresora en columnas a 17 CPI para Facturas.
** * AnswerField_6: Ancho en columnas para lo que sean Tique <nnn>.
** * AnswerField_7: Cantidad de líneas de Validación <nnn>
** * AnswerField_8: "S" la Impresora Fiscal puede hacer Tiques y
** * "N" si no esta habilitada a hacerlos. <s>
** * AnswerField_9: "S" si la Impresora Fiscal puede hacer Tique-Factura y
** * "N" si no esta habilitada a hacerlos. <s>
** * AnswerField_10: "S" la Impresora Fiscal puede hacer Facturas y
** * "N" no esta habilitada a hacerlos. <s>
** * AnswerField_11: Dígitos asignados para centavos en el cierre Z o
** * en el subtotal. Valor normal 2. <nn>
** * AnswerField_12: Estación principal actualmente seleccionada,
** * donde se van a imprimir los datos. <nn>
** * "R" Impresión por salida de Tiques.
** * "S" Impresión por Hoja suelta o Formulario Continuo.
** * AnswerField_13: Modelo de Impresora <aaaaaaaaaaaaaaa>. Ej.: TM-U220
** * -----------------------------
** * NOTA: (Respuestas 3 a 5):
** * Si es Cero, no se puede imprimir a dicha resolución. <nnn>.
** *
** * Status=C
** * ----------
** * AnswerField_3: Nº CUIT.
** * AnswerField_4: Punto de Venta. <nnnn>.
** * AnswerField_5: Resp. Social del Contribibuyente: IEMT.
** * AnswerField_6: Tasa Estandard de IVA (21%). <nnnn>.
** * AnswerField_7: Monto máximo de Facturación y de Nota de Crédito.
** * AnswerField_8: Sin uso. 000001000.
** * AnswerField_9: Razón social del Comprador. 40 caracteres.
** *
** * Status=A
** * ----------
** * AnswerField_3: Ultimo Cierre Z <nnnnn>.
** * AnswerField_4: Ultimo Comprobante B/C sin problemas <nnnnnnnn>.
** * AnswerField_5: Ultimo Comprobante B/C <nnnnnnnn>.
** * AnswerField_6: Ultimo Comprobante A sin problemas <nnnnnnnn>.
** * AnswerField_7: Ultimo Comprobante A <nnnnnnnn>.
** * AnswerField_8: Ultimo Documento No Fiscal <nnnnn>.
** * AnswerField_9: Ultimo Documento No Fiscal Homologado <nnnnn>.
** * Este contador regresa a cero, luego de un Cierre Z.
** * AnswerField_10: Ultimo número de ref. para Documentos No Fiscales o
** * No Fiscales homologados <nnnnnnnn>.
** * Este contador es correlativo y no es modificado por
** * el cierre "X" o "Z".
** * AnswerField_11: Ultimo comprobante Nota de Crédito A <nnnnnnnn>.
** * AnswerField_12: Ultimo comprobante Nota de Crédito B/C <nnnnnnnn>.
** * AnswerField_13: Ultimo Remito emitido <nnnnnnnn>.
** *
** * Status=D
** * ----------
** * AnswerField_3: Letra que indica el Tipo de Documento que se esta emitiendo <a>.
** * "K" Tique.
** * "T" Tique-Factura.
** * "O" Documento No Fiscal.
** * "H" Documento No Fiscal Homologado.
** * "M" Documento No Fiscal Homologado Tique Nota de Crédito
** * AnswerField_4: Letra que Caracteriza al documento <a>.
** * "N" No tiene una letra que identifique al documento.
** * "A" Documento emitido con letra A.
** * "B" Documento emitido con letra B.
** * "C" Documento emitido con letra C.
** *
** * -------------------------------------------------------------------------
** *
** * OpenInvoice
** * ---------------
** * 1. Tipo de documento fiscal.
** * F=Factura, N=NotaCredito, T=TiqueFactura, M=TiqueNotaCredito.
** * 2. Salida de impresora (C=continuo o S=Slip).
** * C=Defecto; Si Campo 1 es T,M este valor será ignorado.
** * 3. Letra del documento (A,B,C o X).
** * 4. Cantidad de copias (1,2)
** * En impresión con rollo (T,TF,TNC), el valor será ignorado.
** * 5. Tipo de formulario (F,P o A).
** * Indica si debe dibujar líneas en facturas emitidas.
** * Este campo sólo es necesario para Facturas Fiscales.
** * En caso de Tique-Factura/Tique-NotaCrédito, el dato será ignorado.
** * F=Se usa formulario preimpreso.
** * P=La impresora debe dibujar las líneas de factura.
** * A=Autoimpresor. No imprimir todo el encabezado.
** * 6. Tipo de letra. (12,17).
** * 12=CPI 0x31 0x32
** * 17=CPI 0x31 0x37
** * En Tiquet éste valor se ignora.
** * 7. Responsabilidad IVA Emisor (I,R,E,N,M o T).
** * I=Responsable Inscripto.
** * R=Responsable NO Inscripto. (No se usa).
** * N=No Responsable.
** * E=Excento.
** * M=Monotributo.
** * T=Monotributo Social.
** * 8. Responsabilidad IVA Comprador(I,R,N,E,M,F,S,T,C o V).
** * I=Responsable Inscripto.
** * R=Responsable NO Incripto. (No se usa).
** * N=No Responsable.
** * E=Excento.
** * M=Monotributo.
** * F=Consumidor Final.
** * S=Sujeto No Categorizado.
** * T=Monotributista Social.
** * C=Pequeño Contribuyente Eventual.
** * V=Pequeño Contribuyente Eventual Social.
** * Cuando el sujeto es "No Categorizado" se debe realizar
** * percepción que corresponde por RG212.
** * 9. Linea 1 Nombre del Comprador.
** * Nombre Comercial del Comprador (Primera Línea).
** * Máximo cuando se emite T/TF/TNC es de 40 caracteres impresos.
** * Si se imprime en doble ancho, se reduce a la mitad.
** * 10. Linea 2 Nombre del Comprador.
** * Nombre Comercial del Comprador (Segunda Línea).
** * Cantidad de carcateres; idem anterior.
** * 11. Tipo Documento Comprador. (Número).
** * Tipo de Documento del Comprador. Max. 6 ceracteres.
** * Si se envía CUIT o CUIL se verifica el número.
** * 12. Nro. Documento Comprador.
** * Aceptados 11 caracteres sin guiones.
** * Se valida CUIT o CUIL si se emite un comrpbante A.
** * 13. Bien de Uso (B o N).
** * B=Se imprime leyenda "VTA. BIENES DE USO".
** * N=No se imprime la leyenda anterior.
** * Opción válida cuando la responsabilidad del emisor era
** * "Responsable Inscripto" y la del comprador era
** * "Responsable No Inscripto" y se emitía un Documento Fiscal
** * tipo Tique-Factura B ó Factura B.
** * Dado que se ha elimino "Responsable No Inscripto",
** * este dato ya no es requerido y será ignorado al ser enviado.
** * 14. Linea 1 Domicilio Comprador.
** * Domicilio Comprador, Primera Línea.
** * Max. 40 caracteres cuando se emite T/TF/TNC.
** * Al imprimir en doble ancho, se reduce la cantidad a la mitad.
** * 15. Linea 2 Domicilio Comprador.
** * Domicilio Comprador, Segunda Línea.
** * Cantidad de carcateres; idem anterior.
** * 16. Linea 3 Domicilio Comprador.
** * Domicilio Comprador, Tercera Línea.
** * Cantidad de carcateres; idem anterior.
** * 17. Linea 1 Remito.
** * Remitos Relacionados, Primer línea.
** * Texto Fiscal con Datos sobre remitos relacionados.
** * Max. de 40 caracteres, cuando se emiten T/TF/TNC.
** * En NotaCrédito este campo se usa para indicar
** * Tipo y Número de Comprobante de Venta de Origen.
** * En caso al emitir TNC será de 21 caracteres impresos.
** * 18. Linea 2 Remito.
** * Remitos Relacionados, Segunda línea.
** * Cantidad de carcateres; idem anterior.
** * 19. Tipo de tabla de item (C o G).
** * C=Luego del Tique/Tique-Factura, no se realizará un
** * Documento No Fiscal Homologado para Farmacias.
** * G=Se prepara el equipo para la impresión del D.N.F.H. para Farmacias,
** * cuando se termina de emitir el Tique/TF.
** * Usar "G", UNICAMENTE SEA NECESARIO EMITIR D.N.F.H. para Farmacias.
** *
** * -------------------------------------------------------------------------
** *
** * Opciones de SendTicketItem.
** * -------------------------------
** * 1. Descripción del artículo.
** * 2. Cantidad.
** * 3. Precio unitario.
** * 4. Tasa de IVA.
** * 5. Calificador de item: M,m,R,r
** * 7. Cantidad de cultos
** * 8. Impuestos internos porcentuales
** * 9. Impuestos Internos Fijos (opcional)
** *
** * Opciones de SendInvoiceItem.
** * -------------------------------
** * 1. Descripción del artículo.
** * 2. Cantidad.
** * 3. Precio unitario.
** * 4. Tasa de IVA.
** * 5. Calificador de item: M,m,R,r
** * 6. Cantidad de cultos
** * 7. Impuestos internos porcentuales
** * 8. Linea de descripción extra 1
** * 9. Linea de descripción extra 2
** * 10. Linea de descripción extra 3
** * 11. Tasa de acrecentamiento
** *
** * SendInvoice
** * ---------------
** * 1. Descripción del ítem a vender. 26 caracteres max.
** * En caso de emitirse con tasa de IVA no estándar, será de 18 caracteres max.
** * En caso de, además, poseer impuestos internos, será de 11 caracteres mas.
** * 2. Cantidad de unidades. (nnnnn.nnn). Ej. 22500 = 22.50.
** * Nota: 5 enteros y 3 decimales, se debe enviar sin el punto.
** * 3. Precio Unitario del Item. (nnnnnnn.nnnn)
** * Nota 1: Manejo de 7 enteros y 4 decimales, se debe enviar CON el punto decimal.
** * Nota 2: Compatible con manejo de 2 decimales, en este caso se debe enviar
** * 7 enteros y 2 decimales SIN el punto decimal.
** * 4. Tasa Impositiva. Alícuota de IVA (nn.nn). Ej.: 2100 = 21.00.
** * Nota: Se envía sin el punto decimal.
** * 5. Calificador de Item de Línea:
** * "M"= 0x4d, Monto agregado de mercadería o ítem de venta, SUMA.
** * "m"= 0x6d, anula el ítem vendido, RESTA.
** * "R"= 0x52, Bonificación, RESTA.
** * "r"= 0x72, anula una Bonificación, SUMA
** * En el caso de Bonificación, se antepone automáticamente la leyenda "BONIF."
** * a la descripción del artículo.
** * 6. Unidades o Bultos vendidos. (nnnn).
** * 7. Tasa de Ajuste Variable. (nnnnnnnn).
** * Nota: Se debe enviar sólo los decimales, hasta 8 dígitos, sin el punto.
** * 8. Monto Impuestos Internos Fijos. <nnnnnnn.nnnnnnnn>.
** * Nota: 7 enteros y 8 decimales, se debe enviar sin el punto.
** * Soporta 8 decimales por compatibilidad con modelos anteriores pero se
** * realiza el cálculo con el valor enviado (unitario) redondeado a 4 decimales
** * y se imprime el resultado con dos decimales.
** * -------
** * 8 a 10. Línea extra de descripción del artículo.
** * 11. Tasa de acrecentamiento.
** *
** * *************************************************************************
oFiscal = Createobject([EPSON_Impresora_Fiscal.PrinterFiscal])
oFiscal.PortNumber = 1
oFiscal.BaudRate = "9600"
oFiscal.MessagesOn = .T.
TicketConsumFinal()
TicketFacturaA()
**TicketFacturaB()
Procedure TicketFacturaA
oFiscal.OpenInvoice("T","C","A","1","A","17","I","I","Nombre del Cliente",;
"Nombre del Contacto","CUIT","20213275837","","Domicilio del Cliente","","",;
"-","","C")
cArticulo = "TANZA P/BORD.RED 2.5mm EL MT(170LOGBEL *28307*"
Do Case
Case Len(cArticulo)>20
cDesAdic1 = Alltrim(Left(cArticulo,30))
cArticulo = Alltrim(Substr(cArticulo,31))
Otherwise
cDesAdic1 = Alltrim(Left(cArticulo,20))
cArticulo = Alltrim(Substr(cArticulo,21))
Endcase
oFiscal.SendInvoiceItem(cArticulo,"2000","1281","2100","M","","",cDesAdic1,"","","","")
oFiscal.SendInvoiceItem("Articulo 2","4000","1109","1050","M","","","Descripcion Adicional 1",;
"Descripcion Adicional 2","Descripcion Adicional 3","","")
oFiscal.GetInvoiceSubtotal([P],[Subtotal])
oFiscal.SendInvoicePayment("Efectivo","10000","T")
oFiscal.CloseInvoice("T","A","AbelA")
Endproc
Procedure TicketFacturaB
oFiscal.OpenInvoice("T","C","B","1","A","17","I","E","Nombre del Cliente",;
"Nombre del Contacto","CUIT","20213275837","","Direccion","","",;
"Remito Nro. 00000000","","C")
oFiscal.SendInvoiceItem("Articulo 1","2000","1550","2100","M","","",;
"Descripcion Adicional 1","Descripcion Adicional 2","Descripcion Adicional 3",;
"","")
oFiscal.SendInvoiceItem("Articulo 2","4000","1225","1050","M","","",;
"Descripcion Adicional 1","Descripcion Adicional 2","Descripcion Adicional 3",;
"","")
oFiscal.GetInvoiceSubtotal([P],[Subtotal])
oFiscal.SendInvoicePayment("Efectivo","10000","T")
oFiscal.CloseInvoice("T","B","AbelB")
Endproc
Procedure TicketConsumFinal
oFiscal.OpenTicket()
cArticulo = "TANZA P/BORD.RED 2.5mm EL MT(170LOGBEL *28307*"
oFiscal.SendTicketItem(Left(cArticulo,20),'1000','250','2100','M','0','0')
oFiscal.SendExtraDescription(Substr(cArticulo,21,20))
oFiscal.SendExtraDescription(Substr(cArticulo,41))
oFiscal.SendTicketItem('Articulo Nro.2','2000','152','2100','M','0','0')
oFiscal.SendExtraDescription("Descripcion Extra...")
oFiscal.GetTicketSubtotal('P','SUB')
oFiscal.SendTicketPayment('Efectivo','554','T')
oFiscal.CloseTicket()
Endproc