-
Notifications
You must be signed in to change notification settings - Fork 40
JSON Comandos Para impresora Fiscal
Realiza el cierre fiscal. Acepta como parámetro el tipo de cierre (X o Z) y si no se le pasa parámetro realiza el cierre X.
Tipo CHAR que puede ser "X" o "Z" dependiendo lo que se quiera imprimir
//JSON que se envía al servidor desde el cliente según el tipo de cierre:
// imprime un Zeta
{
"dailyClose": "Z"
}
Imprime un cierre tipo X
{
"dailyClose": "X"
}
Recibe un JSON con toda la informacion que viene de la fiscal.
//JSON que recibe el cliente como respuesta:
{
_RESERVADO_SIEMPRE_CERO_: "0" (Integer)
_cant_doc_fiscales_: "0" (Integer)
_cant_doc_fiscales_a_emitidos_: "0" (Integer)
_cant_doc_fiscales_bc_emitidos_: "0" (Integer)
_cant_doc_fiscales_cancelados_: "0" (Integer)
_cant_doc_nofiscales_: "1" (Integer)
_cant_doc_nofiscales_homologados_: "0" (Integer)
_cant_nc_a_fiscales_a_emitidos_: "0" (Integer)
_cant_nc_bc_emitidos_: "0" (Integer)
_cant_nc_canceladas_: "0" (Integer)
_monto_credito_nc_: "0.00" (Float)
_monto_imp_internos_: "0.00" (Float)
_monto_imp_internos_nc_: "0.00" (Float)
_monto_iva_doc_fiscal_: "0.00" (Float)
_monto_iva_nc_: "0.00" (Float)
_monto_iva_no_inscripto_: "0.00" (Float)
_monto_iva_no_inscripto_nc_: "0.00" (Float)
_monto_percepciones_: "0.00" (Float)
_monto_percepciones_nc_: "0.00" (Float)
_monto_ventas_doc_fiscal_: "0.00"(Float)
_status_fiscal_: "0600" (Hexadecimal)
_status_impresora_: "C080" (Hexadecimal)
_ultima_nc_a_: "30" (Integer)
_ultima_nc_b_: "327" (Integer)
_ultimo_doc_a_: "2262" (Integer)
_ultimo_doc_b_: "66733" (Integer)
_ultimo_remito_: "0" (Integer)
_zeta_numero_: "1" (Integer)
}
Imprime el ticket, se le deben pasar parametros como, el encabezado, items, pagos que son listas [], addAdditional, setHeader, setTrailer. Devuelve lo que _cerrarComprobante() a su vez devolvió.
Protocolo para formar un JSON con el objetivo de imprimir un ticket. Se compone de 3 distintas partes:
- Encabezado
- Ítems
- Pagos (opcional)
Al imprimir un ticket el servidor enviará 3 comandos previos que pueden resultar en un mensaje de warning: "comando no es valido para el estado de la impresora fiscal ". Esto no es un error, sino que antes de imprimir un tiquet envia:
- CANCELAR CUALQUIER TIQUET ABIERTO
- CANCELAR COMPROBANTE NO FISCAL
- CANCELAR NOTA ED CREDITO O DEBITO Es una comprobación útil que ahorrará dolores de cabeza y posibilidades de bloquear la impresora fiscal.
tipo: Json
{
"encabezado": {
"tipo_cbte": "FA", // tipo tiquet VARIABLE ESTATICA *obligatorio
"nro_doc": "20267565393", // identificacion cliente
"domicilio_cliente": "Rua 76 km 34.5 Alagoas", // domicilio
"tipo_doc": "DNI", // tipo documento VARIABLE ESTATICA (mas abajo se detallan)
"nombre_cliente": "Joao Da Silva", // nombre cliente
"tipo_responsable": "RESPONSABLE_INSCRIPTO" // VARIABLE ESTATICA
}
}
// ejemplo Nota de Crédito "B"
{
"encabezado": {
"tipo_cbte": "NCB", // tipo tiquet VARIABLE ESTATICA *obligatorio
"referencia": "000100012" // numero de comprobante impreso
}
}
```json
##### Variables Estáticas Para Encabezado
tipo_cbte
"T" # tiques
"FA",
"FB",
"NDA",
"NCA",
"NDB",
"NCB",
"FC",
"NDC",
"NDC",
tipo_responsable
"RESPONSABLE_INSCRIPTO"
"RESPONSABLE_NO_INSCRIPTO"
"NO_RESPONSABLE"
"EXENTO"
"CONSUMIDOR_FINAL"
"RESPONSABLE_MONOTRIBUTO"
"NO_CATEGORIZADO"
"PEQUENIO_CONTRIBUYENTE_EVENTUAL"
"MONOTRIBUTISTA_SOCIAL"
"PEQUENIO_CONTRIBUYENTE_EVENTUAL_SOCIAL"
tipo_doc
"DNI"
"CUIT"
"LIBRETA_ENROLAMIENTO"
"LIBRETA_CIVICA"
"CEDULA"
"PASAPORTE"
"SIN_CALIFICADOR"
#### addAdditional (opcional)
tipo: dict
Sirve para poner descuento o recargo general a todo el ticket
```javascript
{addAdditional: {
description: "Descuento",
amount: 200,
iva: 21,
negative: True
}}
{
description: "Recargo por algo",
amount: 200,
iva: 21,
negative: False
}
tipo: list
{
"items": [
{
"alic_iva": 21.0, // * Obligatorio
"importe": 0.01, // * Obligatorio
"ds": "Descripcion Producto", // * Obligatorio
"qty": 1.0 // * Obligatorio
},
{
"alic_iva": 21.0,
"importe": 0.22,
"ds": "COCA COLA",
"qty": 2.0
}
]
}
Todos los campos del ítem son obligatorios
tipo: list
{
"percepciones": [
{
"importe": 0.01, // * Obligatorio
"ds": "Tasa de seguridad e higiene" // * Obligatorio
},
{
"importe": 0.22,
"ds": "Descripcion Tasa"
}
]
}
Todos los campos de la percepción son obligatorios
tipo: list
{
"pagos": [
{
"ds": "efectivo", // * Obligatorio
"importe": 1.0 // * Obligatorio
}
]
}
json = {
"printTicket": {
"encabezado": {
"tipo_cbte": "FA",
"nro_doc": "20267565393",
"domicilio_cliente": "Rua 76 km 34.5 Alagoas",
"tipo_doc": "DNI",
"nombre_cliente": "Joao Da Silva",
"tipo_responsable": "RESPONSABLE_INSCRIPTO"
},
"items": [
{
"alic_iva": 21.0,
"importe": 0.01,
"ds": "PIPI",
"qty": 1.0
},
{
"alic_iva": 21.0,
"importe": 0.22,
"ds": "COCA",
"qty": 2.0
}
],
"pagos": [
{
"ds": "efectivo",
"importe": 1.0
}
]
}
}
json = {
"printTicket": {
"encabezado": {
"tipo_cbte": "T"
},
"items": [{
"alic_iva": 21.0,
"importe": 0.01,
"ds": "PEPSI",
"qty": 1.0
}, {
"alic_iva": 21.0,
"importe": 0.12,
"ds": "COCA",
"qty": 2.0
}]
}
}
// ejemplo de Nota de Credito
json = {
"printTicket": {
"encabezado": {
"tipo_cbte": "NCB",
"referencia": "001000000025"
},
"items": [{
"alic_iva": 21.0,
"importe": 0.01,
"ds": "PEPSI",
"qty": 1.0
}, {
"alic_iva": 21.0,
"importe": 0.12,
"ds": "COCA",
"qty": 2.0
}]
}
}
Setea el encabezado del ticket Se le debe pasar una Lista con los renglones a colocar donde cada item es un renglon []
{
"setHeader": [
"Linea 1",
"Linea 22 22",
"Linea 3 3 3 3 3"
]
}
Setea el pie de pagina Se le debe pasar una Lista con los renglones a colocar donde cada item es un renglon []
{
"setTrailer": [
"Linea 1",
"Linea 22 22",
"Linea 3 3 3 3 3"
]
}
// cada item de la lista es una linea a modificar, por ejemplo
{
"setTrailer": [
"", // dejara la linea 1 vacia
"Linea 22 modif", // modificara la linea 2
]
}
// EJ: ultimo numero de tiquet
{
"getLastNumber": "T"
}
// EJ: ultimo comprobante Factura A
{
"getLastNumber": "FA"
}
// EJ: ultimo comprobante Nota de Credito A
{
"getLastNumber": "NCA"
}
Fiscalberry es un proyecto de PaxaPos -Punto de Venta en la nube-.