THE FACTORY HKA
Soporte e Integración
Librería TfhkaNet Manual de Integración
SOPORTE E INTEGRACIÓN
Manual de Integración Revision 1.0
The Factory HKA La California Norte, Callejón Gutiérrez Edif. Riva, PB Ofic. 2-1 Caracas - Venezuela Teléfono (212) 237.4112 • Fax (212) 239.8176
Historial de Revisiones Revisión
Fecha
1.o
02/05/14
Paginas Afectadas Todas
Comentario Versión inicial
Índice Capitulo 1 .......................................................................................................... 1 Introducción .............................................................................................................. 1 Resumen .................................................................................................................... 1 Requerimientos de Hardware ................................................................................. 2 Requerimientos de Software ................................................................................... 2
Capitulo 2 .......................................................................................................... 3 Instalación ................................................................................................................. 3 Instalación .................................................................................................... 3 Alcance de la librería ................................................................................................ 6
Capitulo 3 .......................................................................................................... 7 Importación y Declaraciones .................................................................................. 7 Métodos de la clase Tfhka ....................................................................................... 9 OpenFpctrl .................................................................................................. 9 CloseFpctrl................................................................................................... 9 CheckFprinter ............................................................................................. 9 CheckDrawer............................................................................................. 10 ReadFpStatus ............................................................................................. 10 SendCmd .................................................................................................... 10 SendFileCmd ............................................................................................. 11 UploadReportCmd ................................................................................... 11 UploadStatusCmd ..................................................................................... 11 Atributos públicos orientados a objetos de la Clase Tfhka .............................. 13 StatusErrorPrinter tipo PrinterStatus..................................................... 13 GetZReport tipo ReportData ................................................................. 13 GetS1PrinterData tipo S1PrinterData ................................................... 14 GetS2PrinterData tipo S2PrinterData ................................................... 14 GetS3PrinterData tipo S3PrinterData ................................................... 14 GetS4PrinterData tipo S4PrinterData ................................................... 15 GetS5PrinterData tipo S5PrinterData ................................................... 15 GetS6PrinterData tipo S6PrinterData ................................................... 15 GetS7PrinterData tipo S7PrinterData ................................................... 15 GetS8EPrinterData tipo S8PrinterData ................................................ 15 GetS8PPrinterData tipo S8PrinterData................................................. 16 PrinterException ....................................................................................... 16 Métodos públicos orientados a objetos de la Clase Tfhka de Objetos........... 17 GetPrinterStatus........................................................................................ 17 GetXReport ............................................................................................... 17 GetX2Report ............................................................................................. 17
GetX4Report ............................................................................................. 18 GetX5Report ............................................................................................. 18 GetX7Report ............................................................................................. 18 GetZReport ............................................................................................... 19 PrintZReport ............................................................................................. 20 PrintXReport ............................................................................................. 21 GetS1PrinterData ..................................................................................... 21 GetS2PrinterData ..................................................................................... 21 GetS2EPrinterData .................................................................................. 21 GetS21PrinterData ................................................................................... 22 GetS22PrinterData ................................................................................... 22 GetS23PrinterData ................................................................................... 22 GetS24PrinterData ................................................................................... 23 GetS25PrinterData ................................................................................... 23 GetS3PrinterData ..................................................................................... 23 GetS4PrinterData ..................................................................................... 24 GetS5PrinterData ..................................................................................... 24 GetX4Report ............................................................................................. 24 GetX5Report ............................................................................................. 25 Anexos ..................................................................................................................... 26 ANEXO 1: Lista de códigos de Status .................................................. 26 ANEXO 2: Lista de códigos de Error ................................................... 27 ANEXO 3: Ejemplo básico de emisión de Factura para Consumidor Final ............................................................................................................ 28
T H E
F A C T O R Y
1
Capítulo
H K A
Introducción La librería TfhkaNet permite la integración con sistemas administrativos desarrollados bajo la tecnología de .NET; como lo son C#, J#, VB.NET y ASP
Resumen
E
n las siguientes páginas se describen los detalles de la interfaz de aplicación TfhkaNet, desde los requerimientos de hardware, le referencia a la librería de integración, los componentes adicionales tales como librerías dinámicas y finalmente la estructura de la Clase compilada que contiene los métodos y propiedades para el uso de cualquiera de las impresoras distribuidas por The Factory HKA a través de un sistema administrativo desarrollado en .NET.
1
T H E
F A C T O R Y
H K A
Requerimientos de Hardware
Procesador de 1Ghz o superior
Memoria RAM de 512MB o superior
Espacio
Puerto
libre
en
Serial
Disco físico
Duro o
de
50MB
USB
2.0
en
.NET
Requerimientos de Software
Sistema Operativo Windows IDE para manejar
un
2
desarrollo
T H E
F A C T O R Y
H K A
2
Capítulo
Instalación En el SDK descargado, usted se encontrará con las tres herramientas básicas para realizar la integración del sistema administrativo con nuestra impresora fiscal; la librería de integración (TfhkaNet.dll), el manual de dicha librería y un demo funcional de código abierto en donde se ejemplifica el uso de la librería de forma práctica. Instalación Antes de comenzar a hacer uso de la librería en el desarrollo, lo primero que se debe hacer es incluir y referenciar la librería en nuestro proyecto. Esto se consigue siguiendo los siguientes pasos: 1. Creamos un nuevo Proyecto.
3
T H E
F A C T O R Y
H K A
2. Agregamos la referencia a la librería de integración, desde nuestro IDE.
Esta normalmente se encuentra localizada en la ruta: TFHKA SDK .NET\TFHKA_DemoC_SharpNET\DemoInf_C_SharpNET\bin\Debug
4
T H E
F A C T O R Y
H K A
3. Una vez tenemos nuestra referencia a la librería implementada en nuestro proyecto, ya podemos hacer uso de ella. Para comenzar debemos incluir los métodos a utilizar de la librería, de la siguiente manera:
4. Finalmente, creamos dos variables para trabajar la clase durante el uso de nuestro desarrollo e inicializamos un objeto de tipo Tfhka que es el que manejara los distintos métodos y funciones a utilizar para interactuar con la impresora fiscal.
Acto seguido, nos encontramos listos para empezar a utilizar los métodos y funciones que contiene la clase Tfhka.
5
T H E
F A C T O R Y
H K A
Alcance de la librería La librería TfhkaNet es compatible con cualquier desarrollo cuya base sea la tecnología .NET.
6
T H E
F A C T O R Y
H K A
3
Capítulo
Importación y Declaraciones Una vez agregada la referencia de la clase TfhkaNet a la Solución e importado el espacio de nombre respectivo se puede empezar a trabajar con la clase Tfhka, con sus atributos y métodos públicos. using TfhkaNet.IF; using TfhkaNet.IF.VE;
1.
Declaración de un objeto tipo Tfhka. Tfhka
Ejemplos: private Tfhka Impresora; public Tfhka Impresora;
2.
Inicialización del objeto Tfhka.
La clase Tfhka tiene dos constructores, uno por defecto y otro que recibe como parámetro un String o cadena de carácter con el nombre del puerto serial o terminal serial. Constructor 1: = new Tfhka(); Este solo inicializar las propiedades del objeto fiscal. Constructor 2: = new Tfhka(); Este además de inicializar las propiedades del objeto fiscal, abre puerto y verifica comunicación. Ejemplos: Impresora = new Tfhka ( “COM1” );
7
T H E
F A C T O R Y
H K A
Si el parámetro está correctamente escrito, al efectuar esta inicialización se define el Terminal de la clase o String nombre de puerto, se abre si no está en uso y se define el estado del mismo por medio de la variable global booleana StatusPort, donde siendo su valor true si el puerto fue abierto exitosamente o false si el puerto está cerrado o no pudo ser abierto. Si se usa el constructor por defecto solo se inicializan las propiedades fundamentales de la interface, en este escenario posteriormente se debe usar el método correspondiente para realizar la apertura del puerto, que es el que se explica adelante.
8
T H E
F A C T O R Y
H K A
Métodos de la clase Tfhka OpenFpctrl BOOLEAN OpenFpctrl(String IpPortName) Permite realizar la apertura del puerto de comunicaciones por el cual se establecerá comunicación con la impresora. Este método se ejecuta en el constructor único de la clase, pero puede ser ejecutada nuevamente de ser requerido. Parámetros:
String IpPortName: Nombre del puerto COM a abrir. Retorno: True: Puerto Abierto False: Falla en apertura CloseFpctrl VOID CloseFpctrl() Permite cerrar del puerto COM asociado, abierto anteriormente Retorno: Esta función devuelve un booleano en donde si el mismo es verdadero, significa que se ha cerrado el puerto de comunicaciones con éxito, de lo contrario no se cerró el puerto de comunicaciones. CheckFprinter BOOLEAN CheckFprinter() Permite verificar si la impresora está conectada al PC. Retorno: True: impresora conectada. False: impresora no detectada.
9
T H E
F A C T O R Y
H K A
CheckDrawer BOOLEAN CheckDrawer() Permite verificar si la gaveta de dinero está conectada al PC. Retorno: True: Gaveta conectada. False: Gaveta no detectada. ReadFpStatus BOOLEAN ReadFpStatus() Permite leer las variables de estado y error de la impresora. Al ejecutar este método se establece el valor de la variable tipo String Estado. (Ver Anexos 1 y 2) Retorno: True: Método ejecutado exitosamente False: Error en ejecución del método Nota: En la librería .NET esta función esta obsoleta y no se recomienda su uso, será eliminada en futuras versiones de la librería, use la función GetPrinterStatus().
SendCmd BOOL SendCmd(String Cmd) Permite realizar el envío de comandos hacia la impresora, en forma de tramas de caracteres ASCII, tal como es descrito en los manuales de integración de las respectivas impresoras, y en el manual general de protocolos y comandos del protocolo TFHKA. Parámetros:
String cmd: trama de comando en ASCII que se enviara a la impresora. Retorno: True: Método ejecutado exitosamente.
10
T H E
F A C T O R Y
H K A
False: Error en ejecución del método. SendFileCmd INT SendFileCmd(String rutafile) Permite realizar el envío de un archivo de lotes de comando hacia la impresora. Parámetros:
String rutaFile: ruta en la cual se encuentra el archivo de comandos por lote que se enviará a la impresora. Retorno: (int) Número de líneas del archivo de lotes de comandos ejecutadas exitosamente. UploadReportCmd BOOLEAN UploadReportCmd(String cmd, String file) Permite almacenar en un archivo de texto simple, un reporte de la impresora. Parámetros:
String cmd: tipo de reporte a solicitar. Los reportes que pueden ser
solicitados son los siguientes (consultar manual general de integración de las respectivas impresoras): -
U0X
-
U0Z
-
U1Z
-
U1X
String file: ruta del archivo donde se almacenará el reporte solicitado. Retorno: True: Método ejecutado exitosamente. False: Error en ejecución del método. UploadStatusCmd BOOLEAN UploadStatusCmd(String cmd, String file)
11
T H E
F A C T O R Y
H K A
Esta función permite almacenar en un archivo de texto simple, un status de la impresora. Parámetros:
String cmd: tipo de Status a solicitar. Los Status que pueden ser solicitados -
son
S1 S2 S3
los
-
S4 S5 S8E
siguientes:
-
S8P
String file: ruta del archivo donde se almacenará el Status solicitado. Retorno: True: Método ejecutado exitosamente. False: Error en ejecución del método.
12
T H E
F A C T O R Y
H K A
Atributos públicos orientados a objetos de la Clase Tfhka StatusErrorPrinter tipo PrinterStatus Representa una estructura que establece y retorna los parámetros de Status y Error de la impresora fiscal cunado se ejecuta el método correspondiente. Sus elementos son los siguientes. 0) bool ErrorValidity: Validez del Error 1) int PrinterErrorCode: Valor entero del Error (Ver Anexo 2) 2) string PrinterErrorDescription: Descripción del Error. 3) int PrinterStatusCode: Valor entero del Status (Ver Anexo 1) 4) string PrinterStatusDescription: Descripción del Status.
GetZReport tipo ReportData Representa una estructura que contiene todos los datos de los reportes X y Z cuando se envían al PC con los métodos correspondientes. Sus elementos son los siguientes: 0) double AdditionalRate3Sale: BI Adicional del IVA 3 1) double AdditionalRate3Tax: IVA Adicional o tasa 3 2) double AdditionalRateDebit: BI Adicional en Nota Debito 3) double AdditionalRateDevolution: BI Adicional Devolucion 4) double AdditionalRateTaxDebit: IVA Adicional en Nota Debito 5) double AdditionalRateTaxDevolution: IVA Adicional en Devolucion 6) double FreeSalesTax: Monto Exento 7) double FreeTaxDebit: Exento en Nota Debito 8) double FreeTaxDevolution: Exento en Devolución 9) double GeneralRate1Sale: BI General del IVA 1 10) double GeneralRate1Tax: IVA General o tasa 1 11) double GeneralRateDebit: BI General en Nota Debito 12) double GeneralRateDevolution: BI General Devolución 13) double GeneralRateTaxDebit: IVA General en Nota Debito 14) double GeneralRateTaxDevolution: IVA General en Devolucion 15) DateTime LastInvoiceDate: Fecha Ultima Factura 16) int NumberOfLastCreditNote: Ultima Nota de Credito 17) int NumberOfLastDebitNote: Ultima Nota de Debito 18) int NumberOfLastInvoice: Ultima Factura 19) int NumberOfLastNonFiscal: Utimo Documento No Fiscal 20) int NumberOfLastZReport: Ultimo Reporte Z 21) double ReducedRate2Sale: BI Reducida del IVA 2 22) double ReducedRate2Tax: IVA Reducido o tasa 2 23) double ReducedRateDebit: BI Reducido en Nota Debito 24) double ReducedRateDevolution: BI Reducido Devolucion 25) double ReducedRateTaxDebit: IVA Reducido en Nota Debito 26) double ReducedRateTaxDevolution: IVA Reducido en Devolucion 27) DateTime ZReportDate: Fecha Ultimo Reporte Z
13
T H E
F A C T O R Y
H K A
GetS1PrinterData tipo S1PrinterData Representa la estructura de datos del estado S1 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: 0) int AuditReportsCounter: Contador de reporte de auditoría 1) int CashierNumber: Numero de Cajero Asignado 2) DateTime CurrentPrinterDateTime: Fecha y hora de la impresora 3) int DailyClosureCounter: Contador de Cierre Diario 4) int LastCreditNoteNumber: Número de la última Nota de Crédito 5) int LastDebitNoteNumber: Numero de la última Nota de Debito 6) int LastInvoiceNumber: Número de la última factura emitida 7) int LastNonFiscalDocNumber: Número del último Documento No Fiscal 8) int QuantityNonFiscalDocuments: Cantidad de Documentos No Fiscales 9) int QuantityOfCreditNotesToday: Cantidad de Notas de Crédito en el día 10) int QuantityOfDebitNotesToday: Cantidad de Notas Debito en el día 11) int QuantityOfInvoicesToday: Cantidad de facturas en el día 12) string RegisteredMachineNumber: Serial de la impresora fiscal 13) string RIF: RIF de fiscalización de la impresora fiscal 14) double TotalDailySales: Monto total de ventas diarias
GetS2PrinterData tipo S2PrinterData Representa la estructura de datos del estado S2 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: 0) double AmountPayable: Monto Por Pagar 1) int Condition: Condición de Transacción 2) string DataDummy: Data de relleno. 3) int NumberPaymentsMade: Cantidad de Pagos Realizados 4) int QuantityArticles: Cantidad de Artículos 5) double SubTotalBases: Subtotal Bases Imponibles 6) double SubTotalTax: Subtotal IVA 7) int TypeDocument: Tipo de Documento
GetS3PrinterData tipo S3PrinterData Representa la estructura de datos del estado S3 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: 0) int[ ] AllSystemFlags: Todas las banderas 1) double Tax1():Valor de la tasa 1 (%) 2) double Tax2():Valor de la tasa 2 (%) 3) double Tax3():Valor de la tasa 3 (%) 4) int TypeTax1(): Tipo de tasa 1 (Modo Incluido = 1, Modo Excluido = 2) 5) int TypeTax2(): Tipo de tasa 2 (Modo Incluido = 1, Modo Excluido = 2) 6) int TypeTax3(): Tipo de tasa 3 (Modo Incluido = 1, Modo Excluido = 2)
14
T H E
F A C T O R Y
H K A
GetS4PrinterData tipo S4PrinterData Representa la estructura de datos del estado S4 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes double[] AccumulatedMountsAllMeansOfPayment: Lista de los montos acumulados de los 15 medios de pagos de la impresora fiscal, y del monto correspondiente a las donaciones. GetS5PrinterData tipo S5PrinterData Representa la estructura de datos del estado S5 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: 0) double AuditMemoryFreeCapacity: Disponibilidad Memoria Auditoria (MB) 1) int AuditMemoryNumber: Número de memoria de auditoria 2) double AuditMemoryTotalCapacity: Capacidad Memoria Auditoria (MB) 3) int NumberRegisteredDocuments: Cantidad Documentos Memoria Auditoria 4) string RegisteredMachineNumber: Serial de la impresora fiscal 5) string RIF: RIF de fiscalización de la impresora
GetS6PrinterData tipo S6PrinterData Representa la estructura de datos del estado S6 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: 0) string Bit_Facturacion(): Indica la presencia de papel en la estación de facturación. 1) string Bit_Slip(): Indica la presencia de papel en la estación de Slip/Chequera. 2) string Bit_Validacion(): Indica la presencia de papel en la estación de Validación.
GetS7PrinterData tipo S7PrinterData Representa la estructura de datos del estado S6 que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: String MICR(): Lectura del MICR del cheque GetS8EPrinterData tipo S8PrinterData Representa la estructura de datos del estado S8E que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: string Header1: Encabezado, línea numero 1. string Header2: Encabezado, línea numero 2. string Header3: Encabezado, línea numero 3. string Header4: Encabezado, línea numero 4.
15
T H E
F A C T O R Y
H K A
string Header5: Encabezado, línea numero 5. string Header6: Encabezado, línea numero 6. string Header7: Encabezado, línea numero 7. string Header8: Encabezado, línea numero 8.
GetS8PPrinterData tipo S8PrinterData Representa la estructura de datos del estado S8P que se establece cuando se sube al PC con su método correspondiente. Sus elementos son los siguientes: string Footer1: Pie de Pagina, línea numero 1. string Footer2: Pie de Pagina, línea numero 2. string Footer3: Pie de Pagina, línea numero 3. string Footer4: Pie de Pagina, línea numero 4. string Footer5: Pie de Pagina, línea numero 5. string Footer6: Pie de Pagina, línea numero 6. string Footer7: Pie de Pagina, línea numero 7. string Footer8: Pie de Pagina, línea numero 8.
PrinterException Representa un tipo de excepción que arrojan algunos métodos de creación de objetos de las estructuras anteriormente definidas cuando ocurre un error en la transacción con la impresora fiscal. Está compuesto por los siguientes elementos: PrinterStatus StatusError(): retorna un objeto que contiene información del Status y el Error al momento de generarse la excepción. Message(): Contiene la descripción de la excepción arrojada.
16
T H E
F A C T O R Y
H K A
Métodos públicos orientados a objetos de la Clase Tfhka de Objetos GetPrinterStatus PrinterStatus GetPrinterStatus() Obtiene un reporte del Status y Error de la impresora en un objeto del tipo PrinterStatus que contiene el código y una descripción tanto para el Status como para el Error actual. Retorno: Un objeto de tipo PrinterStatus con los valores correspondientes a la repuesta. GetXReport ReportData GetXReport() throws PrinterException Obtiene un reporte X desde la impresora. Retorno: Un objeto de tipo ReportData con los valores correspondientes al reporte. Excepción: Arroja la excepción PrinterException GetX2Report ReportData GetX2Report() throws PrinterException Sube al PC un reporte X2 por medio del comando “U1X” actualizando sus valores de data. Retorno: Un objeto de tipo ReportData con toda la información para la carga de un reporte X2 actual.
17
T H E
F A C T O R Y
H K A
Excepción: Arroja la excepción PrinterException GetX4Report ReportData GetX4Report() throws PrinterException Sube al PC un reporte X4 por medio del comando “U0X4” actualizando sus valores de data. Retorno: Un objeto de tipo ReportData en la variable global ReportePC con toda la información para la carga de un reporte X4 actual. Excepción: Arroja la excepción PrinterException GetX5Report ReportData GetX5Report() throws PrinterException Sube al PC un reporte X5 por medio del comando “U0X5” actualizando sus valores de data. Retorno: Un objeto de tipo ReportData en la variable global ReportePC con toda la información para la carga de un reporte X5 actual. Excepción: Arroja la excepción PrinterException GetX7Report ReportData GetX7Report() throws PrinterException Sube al PC un reporte X7 por medio del comando “U0X7” actualizando sus valores de data. Retorno: Un objeto de tipo ReportData en la variable global ReportePC con toda la información para la carga de un reporte X7 actual.
18
T H E
F A C T O R Y
H K A
Excepción: Arroja la excepción PrinterException GetZReport ReportData GetZReport() throws PrinterException Sube al PC un reporte Z por medio del comando “U0Z” actualizando sus valores de data. Retorno Un objeto de tipo ReportData en la variable global ReportePC con toda la información del último reporte Z emitido. Excepción Arroja la excepción PrinterException. ReportData[] GetZReport(string StartDate, string EndDate) throws PrinterException Realiza una lectura de memoria fiscal por rango de fecha. Parámetros:
StartDate: Fecha del reporte Z inicial. EndDate: Fecha de reporte Z final. Retorno: Una lista de objetos ReportData con la información de los reportes Z comprendidos en el intervalo solicitado. Excepción: Arroja la excepción PrinterException ReportData[] GetZReport(int StartReportNumber, EndReportNumber ) throws PrinterException Realiza una lectura de memoria fiscal por rango de números. Parámetros:
StartReportNumber: Numero del reporte Z inicial.
19
int
T H E
F A C T O R Y
H K A
EndReportNumber: Numero de reporte Z final. Retorno: Una lista de objetos ReportData con la información de los reportes Z comprendidos en el intervalo solicitado. Excepción: Arroja la excepción PrinterException PrintZReport VOID PrintZReport() throws PrinterException Imprime el Reporte Diario Z Excepción Arroja la excepción PrinterException VOID PrintZReport(int StartReportNumber, int EndReportNumber) throws PrinterException Imprime un histórico de reportes Z por rango de números Parámetros
StartReportNumber: Número de reporte Z inicial. EndReportNumber: Número de reporte Z final. Excepción Arroja la excepción PrinterException VOID PrintZReport(Date PrinterException
StartDate,
Date
EndDate)
Imprime un histórico de reportes Z por rango de fechas Parámetros
StarDate: Fecha de reporte Z inicial. EndDate: Fecha de reporte Z final.
20
throws
T H E
F A C T O R Y
H K A
Excepción Arroja la excepción PrinterException
PrintXReport VOID PrintXReport() throws PrinterException Imprime el Reporte Diario X Excepción Arroja la excepción PrinterException GetS1PrinterData S1PrinterData GetS1PrinterData() throws PrinterException Sube el estado S1 de la Impresora fiscal al PC y Sube el estado S1 de la Impresora fiscal al PC y actualiza sus valores de data. Retorno: Un objeto de tipo S1PrinterData en la variable global S1Estado. Excepción: Arroja la excepción PrinterException. GetS2PrinterData S2PrinterData GetS2PrinterData() throws PrinterException Sube el estado S2 de la Impresora fiscal al PC y actualiza sus valores de data. Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS2EPrinterData S2PrinterData GetS2EPrinterData() throws PrinterException 21
T H E
F A C T O R Y
H K A
Sube el estado S2 correspondiente a los montos exentos de la transacción actual al PC y actualiza sus valores de data. Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS21PrinterData S2PrinterData GetS21PrinterData() throws PrinterException Sube el estado S2 correspondiente a los montos Tasa1 de la transacción actual al PC y actualiza sus valores de data. Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS22PrinterData S2PrinterData GetS22PrinterData() throws PrinterException Sube el estado S2 correspondiente a los montos Tasa2 de la transacción actual y actualiza sus valores de data. Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS23PrinterData S2PrinterData GetS23PrinterData() throws PrinterException Sube el estado S2 correspondiente a los montos Tasa3 de la transacción actual y actualiza sus valores de data.
22
T H E
F A C T O R Y
H K A
Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS24PrinterData S2PrinterData GetS24PrinterData() throws PrinterException Sube el estado S2 correspondiente a los montos Tasa4 de la transacción actual y actualiza sus valores de data. Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS25PrinterData S2PrinterData GetS25PrinterData() throws PrinterException Sube el estado S2 correspondiente a los montos Tasa5 de la transacción actual y actualiza sus valores de data. Retorno Un objeto de tipo S2PrinterData en la variable global S2Estado. Excepción Arroja la excepción PrinterException. GetS3PrinterData S3PrinterData GetS3PrinterData() throws PrinterException Sube el estado S3 de la Impresora fiscal al PC y actualiza sus valores de data. Retorno Un objeto de tipo S3PrinterData en la variable global S3Estado. Es importante mencionar que el objeto del tipo S3PrinterData contiene 23
T H E
F A C T O R Y
H K A
como primer argumento un arreglo de tipo Long donde cada elemento (59 en total) indica una bandera de la impresora que determina un comportamiento específico, como la actuación cuchilla de corte, etc. En la demo entregada en este SDK no se muestran estas banderas por simplicidad pero pueden ser vistas enviando el comando D (Desde la sección Enviar Comando) a una impresora conectada, esto hace que se imprima la programación de la impresora y se pueden ver las banderas. Excepción Arroja la excepción PrinterException. GetS4PrinterData S4PrinterData GetS4PrinterData() throws PrinterException Sube el estado S4 de la Impresora fiscal al PC y actualiza sus valores de data. Retorno Un objeto de tipo S4PrinterData en la variable global S4Estado. Excepción Arroja la excepción PrinterException. GetS5PrinterData S5PrinterData GetS5PrinterData() throws PrinterException Sube el estado S5 de la Impresora fiscal al PC y actualiza sus valores de data. Retorno Un objeto de tipo S5PrinterData en la variable global S5Estado. Excepción Arroja la excepción PrinterException. GetX4Report AcumuladosX GetX4Report() throws PrinterException Sube el reporte de acumulados de Ventas con Crédito Fiscal y actualiza sus valores de data.
24
T H E
F A C T O R Y
H K A
Retorno Un objeto de tipo AcumuladosX en la variable global ReporteAcumX. Excepción Arroja la excepción PrinterException.
GetX5Report AcumuladosX GetX5Report() throws PrinterException Sube el reporte de acumulados de Notas de Crédito con Crédito Fiscal y actualiza sus valores de data. Retorno Un objeto de tipo AcumuladosX en la variable global ReporteAcumX. Excepción Arroja la excepción PrinterException.
25
T H E
F A C T O R Y
H K A
Anexos ANEXO 1: Lista de códigos de Status STATUS Retorno (Hex)
Retorno (Decimal)
0
0
Estado desconocido.
1
1
En modo prueba y en espera.
2
2
En modo prueba y emisión de documentos fiscales.
3
3
En modo prueba y emisión de documentos no fiscales.
4
4
En modo fiscal y en espera.
5
5
En modo fiscal y emisión de documentos fiscales.
6
6
7
7
8
8
9
9
0A
10
0B
11
0C
12
En modo fiscal y emisión de documentos no fiscales. En modo fiscal, cercana carga completa de la memoria fiscal y en espera. En modo fiscal, cercana carga completa de la memoria fiscal y en emisión de documentos fiscales. En modo fiscal, cercana carga completa de la memoria fiscal y en emisión de documentos no fiscales. En modo fiscal, carga completa de la memoria fiscal y en espera. En modo fiscal, carga completa de la memoria fiscal y en emisión de documentos fiscales. En modo fiscal, carga completa de la memoria fiscal y en emisión de documentos no fiscales.
Comentario
26
T H E
F A C T O R Y
H K A
ANEXO 2: Lista de códigos de Error ERROR Retorno (Hex)
Retorno (Decimal)
00
0
No hay error.
01
1
Fin en la entrega de papel.
02
2
Error de índole mecánico en la entrega de papel.
03
3
Fin en la entrega de papel y error mecánico.
50
80
Comando invalido o valor invalido.
54
84
Tasa invalida.
58
88
No hay asignadas directivas.
5C
92
Comando invalido.
60
96
Error fiscal.
64
100
Error de la memoria fiscal.
6C
108
Memoria fiscal llena.
70
112
Buffer completo. (debe enviar el comando de reinicio)
80
128
Error en la comunicación.
89
137
No hay respuesta.
90
144
Error LRC.
91
145
Error interno api.
99
153
Error en la apertura del archivo.
Comentario
27
T H E
F A C T O R Y
H K A
ANEXO 3: Ejemplo básico de emisión de Factura para Consumidor Final
package ejemplomanual; import tfhka.ve.*; import tfhka.*; public class EjemploManual { private static Tfhka tf; //declaración de la clase public static void main(String[] args) { try { imprimir_factura(); } catch (PrinterException ex) { System.out.println("Ha ocurrido ex.getMessage()); // Manejo de error }
una
excepción:
"
} public static void imprimir_factura() throws PrinterException{ tf = new tfhka.ve.Tfhka("COM1"); //inicialización de la clase if(tf!=null){ tf.SendCmd(" 000000010000000100Papas"); //Agregar Item tf.SendCmd("101"); //Pago Total en Efectivo } } }
28
+