ProgrammingManualV1 1r3
ProgrammingManualV1 1r3
MANUAL DE PROGRAMACIÓN
IMPRESORAS FISCALES
SEWOO LK – T200 – FP
OKI ML – 620 - FP
OKI ML – 420 - FP
Índice de contenidos
1.- Introducción a la utilización de las librerías fiscales...........................................................................6
1.1.- Normativa utilizada..........................................................................................................................7
...................................................................................................................................................................7
Equipos Fiscales ..........................................................................................................................7
2.- Comandos Fiscales utilizados para documentos Fiscales................................................................8
2.1.- Abrir comprobante fiscal .............................................................................................................8
2.1.1.- Tabla de definición de estructura de apertura de documento fiscal.......................................8
2.2.1.- Tabla de definición de estructura de ítem de venta...............................................................9
2.3.- Subtotal comprobante fiscal........................................................................................................10
2.4.- Pago.............................................................................................................................................10
2.4.1.- Tabla de definición de estructura de pago...........................................................................11
2.5.- Cancelar comprobante fiscal.......................................................................................................12
2.6.- Descuento....................................................................................................................................12
2.6.1.- Tabla de definición de estructura utilizada en comando descuento....................................12
2.7.- Cerrar documento fiscal..............................................................................................................13
2.8.- Ejecutar zeta................................................................................................................................13
2.9.- Imprimir reporte X......................................................................................................................14
2.10.- Impresión de texto libre en documentos fiscales......................................................................14
3.- Comandos Fiscales utilizados para Documentos No Fiscales. ..........................................................16
3.1.- Abrir comprobante no fiscal........................................................................................................16
3.2.- Imprimir texto No Fiscal.............................................................................................................16
3.3.- Cerrar documento no fiscal.........................................................................................................16
4.- Comandos fiscales para petición de información fiscal y de estado...................................................18
4.1.- Comando de envío de status del sistema.....................................................................................18
4.1.1.- Tabla de definición de estructura de status del sistema.......................................................18
4.2.- Comando de envío de valores de contadores y acumuladores fiscales.......................................19
4.2.1.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al
último cierre de día.........................................................................................................................19
4.2.2.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al
documento en proceso....................................................................................................................22
5.- Comandos Fiscales utilizados para controlar la impresión.................................................................23
5.1.- Fin de línea..................................................................................................................................24
5.2.- Form Feed...................................................................................................................................24
5.3.- Cambio de formato de impresión................................................................................................24
Tabla 5.3.1.- Definición de estructura de bits para comando printRT:...........................................25
5.4.- Impresión de códigos de barra....................................................................................................25
Tabla 5.4.1.- Definición de estructura datos para comando printBarCod......................................25
Tabla 5.4.2.- Definición de tipos de códigos de barras:..................................................................26
5.5- Comando de corte de papel..........................................................................................................26
El siguiente documento entrega información referente a todas las funciones disponibles tanto en las dll
de usuario y DGI, las que permiten comunicarse de forma abstracta con el hardware de las impresoras fiscales
LK-T200-FP, ML-420-FP y ML-620-FP.
Los programadores de aplicaciones o integradores de software deben hacer uso de este manual para
enlazar el software de manejo de puntos de ventas o aplicaciones de usuario que deseen interactuar con la
impresora fiscal deseada.
Toda la interacción se basa en el llamado de distintas funciones contenidas en las librerías de enlace
dinámico (DLL´s) disponibles para este sistema. Existen dos librerías denominadas dllFiscalUSER.dll y
dllFiscalDGI.dll, la primera de ellas posee las funciones de acceso a la impresora fiscal disponibles para el
usuario de estas máquinas. La segunda librería posee las funciones de acceso a la impresora fiscal disponibles
específicamente para la Dirección General de Ingresos (DGI).
Cada una de las librerías se encargan de encapsular y traducir comandos de alto nivel (funciones de
acceso) en una secuencia de información binaria entendible solo por la impresora fiscal, la cual se transfiere
físicamente a través del puerto fiscal o del puerto de usuario. Esto permite liberar al usuario de realizar drivers
o módulos de control complejos de implementar.
Todos los métodos incluidos en las librerías retornan el estado de ejecución final que envía la impresora
fiscal medíante una variable del tipo BOOL. En caso que el retorno sea FALSO, se recomienda invocar el
método readStatus(BYTE*) para obtener la causa exacta del error.
En todos los valores de entrada a la librería fiscal en formato tipo String, deben ser finalizados con el
caracter de fin de cadena (char 0). Para el caso de los campos de solo un byte del tipo ASCII, no es necesario
el caracter 0.
Se utiliza para validación del contenido de los registros el algoritmo CRC16 con polinomio generador
1021 (X16 + X15 + X2 + 1), tanto en la información de llegada a la impresora fiscal como la que retorna esta.
Las funciones de las librerías están divididas en los siguientes ítems funcionales:
Cada invocación a una función de las librerías corresponde a la ejecución de uno o mas comandos
fiscales en la impresora fiscal, todos estos comandos cumplen con lo exigido por la Dirección General de
Ingresos y que se encuentran definidos en los siguientes documentos:
Equipos Fiscales
• Normativa - Decreto Ejecutivo No. 53 "Por la cual se establecen
las normas relativas a la adopción de Equipos Fiscales para la
emisión de Comprobantes Fiscales y otros documentos"
• Normativa - Resolución No. 201-8407 "Por medio de la cual se
adoptan norma y procedimientos para la homologación y
autorización para distribuir o enajenar Equipos Fiscales en el
territorio nacional"
• Normativa - Resolución No. 201-568 "Por medio de la cual se
dictan requerimientos técnicos para los Equipos Fiscales que
sean utilizados en el territorio nacional"
• Normativa - Resolución No. 201-1513 "Por medio de la cual se
establece la fecha efectiva de adopción de los equipos Fiscales
en el Territorio Nacional y se modifica una especificación
aplicable a dichos equipos."
• Esquema XML - Memorias del Equipo Fiscal
• Resolución Sellos de Goma
Este es el primer comando que se ejecuta al momento de abrir un ticket fiscal, este comando es el
indicador para que los contadores de los documentos fiscales se incrementen de por vida, al momento de
ejecutarse este comando la impresora responde imprimiendo las líneas del encabezado y el comprobante fiscal.
Prototipo Método:
BOOL openDctoFiscal(BYTE* dataOpenDocto, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
openDctoFiscal BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que define los ejecutado exitosamente por la
campos de la apertura de impresora fiscal,
un documento fiscal FALSE en caso contrario
(ver tabla siguiente)
retValue: puntero a la
BYTE* dirección de la variable
donde se almacenará la
estructura de retorno
indicada en la tabla 4.2.2
Este comando envía a la impresora líneas de ítem, que incluyen la descripción para un ítem en
particular, el valor del artículo, la cantidad, el código del artículo y el código del impuesto al cual esta sujeto.
Con este comando también es posible efectuar los procesos de descuento y devolución de un ítem.
Este comando se puede ejecutar tantas veces como sea necesario. Para finalizar el ingreso de ítems,
es necesaria la recepción del comando total.
Prototipo Método:
BOOL ítem(BYTE* ítem, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
ítem BYTE* Puntero con la dirección de la TRUE si el comando fue
estructura que define los campos del ejecutado exitosamente
ítem de venta por la impresora fiscal,
(ver tabla siguiente) FALSE en caso contrario
Este comando se utiliza para enviarle a la impresora Fiscal el valor temporal acumulado de las ventas
realizadas durante la impresión del comprobante fiscal.
Un uso alternativo de este comando es la validación de la correspondencia entre los valores del sistema
de facturación (aplicación de clientes) y lo almacenado por la impresora fiscal.
Prototipo Método:
BOOL subTotal(Float subTotalValue, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
subTotal ASCII 9 enteros + '.' + 2 decimales TRUE si el comando fue
(12 caracteres fijos) ejecutado exitosamente por la
impresora fiscal,
BYTE* retValue: puntero a la FALSE en caso contrario
dirección de la variable
donde se almacenará la
estructura de retorno
indicada en la tabla 4.2.2
2.4.- Pago
Este comando se utiliza para indicarle a la impresora Fiscal el fin del ingreso de ítems y el comienzo de
la impresión de los tipos de pago, además del valor del cambio. Pueden existir varios tipos de pago, asociados
todos a un comando total en particular. (Total en efectivo, total en tarjetas, etc).
Posteriormente a la ejecución de este comando, solo se permiten los comandos de cierre de documento
fiscal y de cancelación del mismo.
Prototipo Método:
BOOL pago(BYTE totalType, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
pago BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que define los ejecutado exitosamente por la
campos del pago de la impresora fiscal,
venta FALSE en caso contrario
(ver tabla siguiente)
Este comando permite la anulación del cualquier comprobante fiscal que se esté imprimiendo, en
cualquier etapa anterior al cierre del documento fiscal.
Prototipo Método:
BOOL abortDcto(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
abortDcto BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.2
2.6.- Descuento
Este comando permite la realización de descuentos al total bruto del comprobante fiscal , siempre antes
de que sean calculados los impuestos. Una vez que la impresora Fiscal recibe este comando, no se puede
recibir ningún comando de ítem.
Prototipo Método:
BOOL discount(BYTE* discountValue, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
discount BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura del ítem ejecutado exitosamente por la
(ver tabla siguiente) impresora fiscal,
FALSE en caso contrario
BYTE* retValue: puntero a la
dirección de la variable
donde se almacenará la
estructura de retorno
Este comando le indica a la impresora, que se debe finalizar el comprobante fiscal que se está
imprimiendo. Con este comando se imprime lo siguiente:
Prototipo Método:
BOOL closeDcto(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
closeDcto BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.2
Este comando le indica a la impresora fiscal, que se debe realizar un cierre de día, este comando solo
puede ejecutarse cuando el sistema se encuentre en estado de apertura de comprobante fiscal o no fiscal.
Al finalizar este comando, se imprime un ticket con el resumen de los totales fiscales díarios. Posterior a
la impresión del reporte indicado, se vuelcan los datos de totales e impuestos a la memoria fiscal.
Prototipo Método:
BOOL zeta(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
zeta BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.1
Este comando le indica a la impresora, que se debe realizar un reporte X. Este comando puede ser
ejecutado en cualquier momento.
Al finalizar este comando, se imprime un ticket con el resumen de los totales fiscales díarios. Este
comando no altera ningún acumulador ni contador fiscal, solamente permite la impresión de un documento con
la misma información que entrega un reporte Z.
Prototipo Método:
BOOL printX(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printX BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.1
Este comando le indica a la impresora Fiscal que debe imprimir el texto indicado como una
descripción adicional de un item en la transacción fiscal en curso.
Prototipo Método:
BOOL printItemDesc(BYTE* text)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printItemDesc BYTE* Contenido del string a TRUE si el comando fue
imprimir en el documento ejecutado exitosamente por la
fiscal impresora fiscal,
Permite imprimir cualquier tipo de reporte distintos de los fiscales, como por ejemplo voucher de
tarjetas de crédito, cupones de descuento y otros similares. EL encabezado del reporte siempre comienza con
el texto: “DOCUMENTO NO FISCAL”
Prototipo Método:
BOOL openDctoNoFiscal(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
openDctoNoFiscal BYTE* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
estructura de retorno FALSE en caso contrario
indicada en la tabla 4.2.2
Este comando le indica a la impresora Fiscal que se imprimirá una línea de texto libre. Este comando
solo se puede utilizar posteriormente a la recepción del comando de apertura de comprobante no fiscal. No
existe límite para el número de líneas ni su contenido.
Prototipo Método:
BOOL printTextNoFiscal(BYTE* freeText)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printTextNoFiscal BYTE* String constituyente de la TRUE si el comando fue
línea de texto libre que se ejecutado exitosamente por la
enviara a la impresora impresora fiscal,
fiscal, el largo del string es FALSE en caso contrario
variable y solo definido por
caracter de fin de string
(char 0)
Este comando le indica a la impresora fiscal que se debe finalizar la impresión de texto libre. Este
comando solo se puede utilizar posteriormente a la recepción del comando de apertura de comprobante no
fiscal.
Prototipo Método:
BOOL closeDctoNoFiscal()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
closeDctoNoFiscal ninguno TRUE si el comando fue
ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario
Este comando le indica a la dll y a la impresora Fiscal que deben retornar inmedíatamente la
estructura de datos que contienen el estado del sistema. No existe secuencia en la ejecución de este comando
y puede ser ejecutado en cualquier momento.
Prototipo Método:
BOOL readStatus(BYTE* statusPtr)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
readStatus BYTE* StatusPtr:Puntero con la TRUE si el status fue leído
dirección de la variable exitosamente de la impresora
donde se almacenará el fiscal (existe conexión),
status leído desde la Ifiscal FALSE en caso contrario (no
indicado en la estructura existe conexión con la
indicada en la tabla 4.1.1 impresora fiscal)
comando ejecutado
exitosamente
8 Estatus detallado módulo Unsigned Long Long 64 Bits (8 bytes) que indican
fiscal detalladamente el estado del
módulo fiscal (ver documento:
IF_LK_T200_FP_StatusBitsDe
scription.pdf
16 Estatus detallado dll Unsigned Long Long 64 Bits (8 bytes) que indican
detalladamente el estado de la
dll, ver documento:
DLL_StatusBitsDescription.pdf
24 Version del microcodigo Unsigned Long Long Version del microcodigo Fiscal
Fiscal
Este comando le indica a la impresora Fiscal que debe retornar inmedíatamente la estructura
de datos que contienen el resumen de todos los contadores y acumuladores fiscales hasta el momento anterior
a la ejecución de este comando. No existe secuencia en la ejecución de este comando y puede ser ejecutado
en cualquier momento.
Prototipo Método:
BOOL readCont(BYTE* retValue
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
readCont BYTE* RetValue:Puntero con la TRUE si los contadores
dirección de la variable donde fiscales fueron leídos
se almacenará la estructura exitosamente,
que contiene los datos FALSE en caso contrario
fiscales retornados desde la
Ifiscal y que se definen en las
tablas 4.2.1 y 4.2.2
(nota: las estructuras se
retornan una a continuación
de la otra)
4.2.1.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al último
cierre de día.
Notas DB
400 Total x% calculado Float Double 8 Tasa impositiva auxiliar para
Notas DB futuros usos
408 Total ISC calculado Float Double 8
Notas DB
416 Total 7% calculado Float Double 8
Notas CR
424 Total 10% calculado Float Double 8
Notas CR
432 Total 15% calculado Float Double 8
Notas CR
440 Total x% calculado Float Double 8 Tasa impositiva auxiliar para
Notas CR futuros usos
448 Total ISC calculado Float Double 8
Notas CR
456 Descuento Total Float Double 8
464 Numero Descuentos Ulong 4
4.2.2.- Tabla de definición de estructura de datos fiscales retornados por la Ifiscal asociada al
documento en proceso.
Los siguientes comandos están presentes en la librería. dllFiscalUSER.dll y tienen por finalidad enviar a
la impresora fiscal una serie de información de control que permite cambiar los atributos de impresión y o
imprimir códigos de barra.
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe avanzar un
cierto número de líneas.
Prototipo Método:
BOOL printLF(BYTE numLF)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printLF BYTE Hexadecimal indicador del TRUE si el comando fue
Número de fines de línea ejecutado exitosamente por la
solicitados impresora fiscal,
(0 a 255) FALSE en caso contrario
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe avanzar un
cierto número de lineas indicado por la variable numLineas y posteriormente reimprimir el encabezado del
documento fiscal en proceso.
Prototipo Método:
BOOL printFF(BYTE numLineas)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printFF BYTE Hexadecimal indicador del TRUE si el comando fue
Número de fines de línea ejecutado exitosamente por la
solicitados impresora fiscal,
(0 a 255) FALSE en caso contrario
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe utilizar el
formato de impresión que se indica, este formato es válido hasta que no se defina uno distinto o que el sistema
sea apagado.
Prototipo Método:
BOOL printRT(BYTE format)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printRT BYTE Byte hexadecimal que TRUE si el comando fue
indica el ejecutado exitosamente por la
Formato de impresión de impresora fiscal,
acuerdo a la tabla de bits FALSE en caso contrario
que se indica en la figura
siguiente
5.4.- Impresión de códigos de barra (Válido solo para OKI ML-620 y ML-420).
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe imprimir un
código de barra con las características indicadas. ESTE COMANDO NO ESTA IMPLEMENTADO.
Prototipo Método:
BOOL printBarCode(BYTE format)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printBarCode BYTE* Características y datos del TRUE si el comando fue
Tabla 5.4.2.- Definición de tipos de códigos de barras (Válido solo para OKI ML-620 y ML-420):
5.5- Comando de corte de papel (Válido solo para OKI ML-620 y ML-420).
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe cortar el
papel.
Prototipo Método:
BOOL cutPaper()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe realizar la
activación del solenoide de control de apertura del cajón conectado. Este comando no tiene secuencia y puede
ser invocado en cualquier momento.
Prototipo Método:
BOOL openCD()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
openCD ninguno TRUE si el comando fue
ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario
Este comando le indica a la impresora Fiscal que debe realizar el test del mecanismo de
impresión que consiste en la impresión de un patern standard que permite validar el estado del mecanismo.
Este comando solo puede ser invocado cuando se está a la espera de algún tipo de documento fiscal o no
fiscal.
Prototipo Método:
BOOL testMecPrt()
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
testMecPrt ninguno TRUE si el comando fue
ejecutado exitosamente por la
impresora fiscal,
FALSE en caso contrario
Este comando le indica a la impresora Fiscal que debe reimprimir un reporte zeta específico o
un grupo de ellos por rangos de fechas. Este comando solo puede ser invocado cuando se está a la espera de
algún tipo de documento fiscal o no fiscal.
Prototipo Método:
BOOL printCopiasZetas(ulong numTraDesde, ulong numTraHasta, ulong startDate, ulong endDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printCopiasZetas Ulong Número de zeta inicial
si este número es cero se
deben considerar los
parámetros de fecha
Este comando le indica a la impresora Fiscal que debe reimprimir una copia de una o mas
transacciones fiscales almacenadas en la memoria de auditoría, para ello se le debe indicar el número
específico de la transacción o el rango de fechas deseado. Este comando solo puede ser invocado cuando se
está a la espera de algún tipo de documento fiscal o no fiscal.
Prototipo Método:
BOOL printCopiasTrFiscales(ulong numTraDesde, ulong numTraHasta, ulong startDate, ulong
endDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printCopiasTrFiscales Ulong Número de documento TRUE si el comando fue
fiscal inicial ejecutado exitosamente por la
si este número es cero se impresora fiscal,
deben considerar FALSE en caso contrario
parámetros de fecha
Este comando le indica a la impresora Fiscal que debe reimprimir una copia de una o mas
transacciones no fiscales almacenadas en la memoria de auditoría, para ello se le debe indicar el número
específico de la transacción no fiscal o el rango de fechas deseado. Este comando solo puede ser invocado
cuando se está a la espera de algún tipo de documento fiscal o no fiscal.
Prototipo Método:
BOOL printCopiasTrNoFiscales(ulong numTraDesde, ulong numTraHasta, ulong startDate, ulong
endDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
printCopiasTrNoFiscales Ulong Número de documento
fiscal inicial
si este número es cero se
deben considerar
parámetros de fecha
5.11- Comando de cambio de márgenes de impresión (Válido solo para OKI ML-620 y ML-420).
Este comando le indica al mecanismo de impresión de la impresora Fiscal que debe cambiar los
márgenes de impresión del documento, estos son indicados con dos variables del tipo BYTE.
Prototipo Método:
BOOL setMargins(BYTE leftMargin, BYTE rightMargin)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setMargins BYTE Márgen Izquierdo TRUE si el comando fue
ejecutado exitosamente por la
BYTE Margen Derecho impresora fiscal,
Este comando le indica a la impresora, que debe comenzar el modo fiscal de funcionamiento. Una vez
ejecutado el comando, se imprime un reporte que indica los siguientes datos del contribuyente:
– Razón Social.
– Dirección fiscal.
– RUC Contribuyente
– DV Contribuyente.
– Tasas de impuestos permitidas.
Este comando solo debe ser ejecutado una sola vez en la vida fiscal del sistema. Los datos indicados
anteriormente quedan permanentemente almacenados en la memoria fiscal y de transacciones y no puede ser
borrada.
Prototipo Método:
BOOL initFiscal(BYTE* initString, BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
initFiscal BYTE* Puntero con la dirección de TRUE si el proceso fue
la variable donde se realizado exitosamente en la
encuentra la información impresora fiscal,
requerida para la FALSE en caso contrario
inicialización Fiscal (ver
siguiente tabla)
Este comando se utiliza para indicarle a la impresora Fiscal que debe enviar a la dll la información
asociada a la última inicialización fiscal realizada.
Prototipo Método:
BOOL getInitInfo(BYTE* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
getInitInfo BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura donde se ejecutado exitosamente por la
almacenará la información impresora fiscal,
de inicialización de la FALSE en caso contrario
impresora fiscal de acuerdo
a lo indicado en la tabla
6.1.1
Este comando se utiliza para indicarle a la impresora Fiscal que debe cambiar la fecha y hora de su
reloj interno.
La nueva fecha debe ser mayor a la indicada en la última transacción fiscal realizada.
Prototipo Método:
BOOL setDateTime(Unsigned Int newDate, Ulong* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setDateTime Unsigned Int NewDate:Variable donde se TRUE si el comando fue
encuentra la nueva fecha y ejecutado exitosamente por la
formato: segundos
transcurridos desde el
01/01/2000 a las 12:00:00
Este comando se utiliza para indicarle a la impresora Fiscal que debe enviar a la dll la fecha y hora de
su reloj interno.
Prototipo Método:
BOOL getDateTime(Ulong* retValue)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
getDateTime Ulong* retValue: puntero a la TRUE si el comando fue
dirección de la variable ejecutado exitosamente por la
donde se almacenará la impresora fiscal,
valor de la fecha y hora que FALSE en caso contrario
utiliza la Ifiscal
formato: segundos
transcurridos desde el
01/01/2000 a las 12:00:00
Este comando se utiliza para reactivar la impresora Fiscal posteriormente a que esta haya quedado
inoperativa al desconectar el módulo fiscal o intentar la intervención del mismo.
Prototipo Método:
BOOL restartSys(Unsigned Int newDate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
restartSys Unsigned Int NewDate:Variable donde se TRUE si el comando fue
encuentra la nueva fecha y ejecutado exitosamente por la
hora a configurar impresora fiscal,
FALSE en caso contrario
6.6- Inicialización de líneas del encabezado de usuario para los documentos fiscales.
Este comando le indica a la impresora Fiscal que debe almacenar la o las líneas de encabezado
opcionales de usuario de los documentos fiscales “facturas”. Si la línea se define vacia, la primera posición del
string debe tener el caracter 0 (null char). Para el caso de las impresoras OKI ML-620 y OKI Ml-420 solo se
permiten definir 2 lineas de encabezado de usuario de 80 caracteres cada una, en el caso de la impresora
Sewoo TK-200FP se permiten hasta un máximo de 5 lineas de hasta 40 caracteres cada una.
Prototipo Método:
BOOL setHeader(BYTE* headerStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setHeader BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que contiene ejecutado exitosamente por la
las líneas de header de los impresora fiscal,
documentos fiscales, de FALSE en caso contrario
acuerdo a la tabla que sigue
Número de ASCII
caracteres por String que define la cuarta línea del encabezado de las
- línea definidos en facturas (null terminated)
la tabla 6.10.1 (Válido solo para SEWOO LK – T200 – FP)
Número de ASCII
caracteres por String que define la quinta línea del encabezado de las
- línea definidos en facturas (null terminated)
la tabla 6.10.1 (Válido solo para SEWOO LK – T200 – FP)
Este comando le indica a la impresora Fiscal que debe almacenar la o las líneas de pie de
página de los documentos fiscales “facturas”. Si la línea se define vacia, la primera posición del string debe
tener el caracter 0 (null char). ESTE COMANDO NO ESTA IMPLEMENTADO
Prototipo Método:
BOOL setFooter(BYTE* footerStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
setFooter BYTE* Puntero con la dirección de TRUE si el comando fue
la estructura que contiene ejecutado exitosamente por la
las líneas de pie de página impresora fiscal,
de los documentos fiscales FALSE en caso contrario
“facturas”, de acuerdo a la
tabla que sigue
Tabla 6.7.1.- Definición de estructura datos para comando setFooter (Válido solo para versión 2.x.x de
microcódigo fiscal):
Este comando le indica a la impresora Fiscal que debe enviar los números de serie asociados a
la impresora fiscal.
Prototipo Método:
BOOL readSerNum(BYTE* serialStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
readSerNum BYTE* SerialStruct:Dirección de la TRUE si el comando fue
Tabla 6.8.1.- Definición de estructura datos de retorno para comando de lectura de datos de
serialización:
Este comando le indica a la impresora Fiscal que debe realizar un self test y posteriormente
almacenar en la estructura indicada el status e imprimir un reporte con el estado de los componentes mas
relevantes del sistema.
Prototipo Método:
BOOL test(BYTE* statusStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
test BYTE* Puntero con la dirección de TRUE si el comando fue
la variable donde se ejecutado exitosamente por la
almacenará el status leído impresora fiscal,
desde la IFiscal. FALSE en caso contrario
Ver tabla 4.1.1
Prototipo Método:
BOOL configMI(BYTE* configMIStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
configMI BYTE* Puntero con la dirección de TRUE si el comando fue
la variable desde donde se ejecutado exitosamente por la
leerá la configuración del impresora fiscal,
mecanismo de impresión. FALSE en caso contrario
Ver tabla sgte.
6.11- Serialización.
Este comando serializa la impresora fiscal de acuerdo a lo requerido por la DGI, la información
necesaria para realizar este proceso se indica en la sgte. tabla.
Prototipo Método:
BOOL serializar(BYTE* serialStruct)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
serializar BYTE* Puntero con la dirección de TRUE si el comando fue
la variable desde donde se ejecutado exitosamente por la
leerán los datos que se impresora fiscal,
utilizarán en la serialización. FALSE en caso contrario
Ver tabla sgte.
Los siguientes comandos están presentes en la librería dllFiscalDGI.dll y permiten generar un archivo XML
encriptado con el algoritmo AES
Este comando le indica a la impresora Fiscal que debe retornar los strings que
componen el encabezado de las facturas que imprime la impresora fiscal.
Prototipo Método:
BOOL readHeaderFact(STRING nombreArchivo)
Nombre Método Tipo de dato parámetro Parámetros Retorno
readHeaderFact Nombre archivo de TRUE si archivo xml fue
BYTE* salida, incluido el generado con éxito.
directorio destino FALSE en caso contrario
7.1.1.- Tabla de definición de estructura de datos fiscales que se retorna al invocar al “Comando de
lectura de encabezado de facturas”, esta información se guarda en archivo XML encriptado.
Prototipo Método:
BOOL readFiscalMem(Ulong Fecha Inicial, Ulong FechaFinal, STRING nombreArchivo)
Nombre Método Tipo de dato parámetro Parámetros Retorno
readFiscalMem Ulong Fecha inicial TRUE si archivo xml fue
generado con éxito.
Ulong Fecha final
FALSE en caso contrario
BYTE* Nombre archivo de salida
7.2.1.- Tabla de definición de estructura de datos fiscales que se retorna al invocar “Comando leer
memoria fiscal entre un rangos de fechas”, esta información se guarda en archivo XML encriptado.
Prototipo Método:
BOOL readAuditMem(BYTE Fecha Inicial, BYTE FechaFinal, STRING nombreArchivo)
Nombre Método Tipo de dato parámetro Parámetros Retorno
readAuditMem BYTE Fecha inicial TRUE si archivo xml fue
generado con éxito.
BYTE Fecha final
FALSE en caso contrario
BYTE* Nombre archivo de
salida, incluido el
directorio destino
7.3.1.- Tabla de definición de estructura de datos genérica sobre la cual se obtienen los datos
necesarios para ser utilizados por el “Comando leer memoria de auditoría entre un rangos de fechas”,
esta información se guarda en archivo XML encriptado.
Las tablas siguientes entregan un detalle de los diferentes componentes de una transacción amacenada
en la memoria de auditoría.
Prototipo Método:
BOOL checkConec(BYTE* statusPtr)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
checkConec BYTE* Puntero con la dirección de TRUE si el status fue leído
la variable donde se exitosamente de la impresora
almacenará el status leído fiscal (existe conexión),
desde la IFiscal. FALSE en caso contrario (no
Ver tabla 4.1.1 existe conexión con la
impresora fiscal)
Este comando establese el canal de comunicacion para la impresora, debe llamarse antes de
realizar cualquier llamada a otras funciones.
Prototipo Método:
BOOL WOpenPort(LPCWSTR PortName, DWORD baudRate)
Nombre Método Tipo de dato del Parámetros Retorno
parámetro
WOpenPort LPCWSTR Puntero a un string con el TRUE si la conexion fue
nombre del puerto existosa, FALSE en caso
conectado a la impresora contrario (no existe conexión
con la impresora fiscal)
DWORD BaudRate del puerto de
comunicaciones.
La tabla siguiente muestra la secuencia de ejecución permitida de los distintos comandos fiscales
definidos en los puntos anteriores de acuerdo al estado fiscal en que se encuentre y a la dll que pertenece el
comando.
Anexos
// Declaracion de dlls:
..........