Saltearse al contenido

@nodecfdi/adonisjs-sat-catalogs

Librería para facilitar el uso de los catálogos de SAT desde adonisjs.

Primeros pasos

Instalación

Para comenzar a utilizar la libreria lo primero que hay que hacer es instalarla, corre el siguiente comando en tu terminal (debes estar dentro del directorio de tu proyecto):

Ventana de terminal
node ace add @nodecfdi/adonisjs-sat-catalogs

Con esto ya tendremos la libreria instalada y lista para ser usada.

Configuración

Una vez instalada la libreria debemos configurarla, la manera más sencilla es actualizando el archivo config/database.ts, agregando la conexión:

// Other imports
import app from '@adonisjs/core/services/app';
//
connections: {
// Other connections
satcatalogs: {
client: 'better-sqlite3',
connection: {
filename: app.makePath('database/satcatalogs.db'),
},
},
},
//

Si quieres configurar la base de datos para que sea solo de lectura puedes configurar la conexión de la siguiente manera:

// Other imports
import app from '@adonisjs/core/services/app';
//
connections: {
// Other connections
satcatalogs: {
client: 'better-sqlite3',
connection: {
filename: app.makePath('database/satcatalogs.db'),
options: {
// @ts-expect-error - option not in types but is in better-sqlite3
readonly: true,
},
},
},
},
//

Una vez configurada la conexión, debemos crear la tabla de la base de datos, para ello corre el siguiente comando:

Ventana de terminal
node ace sat-catalogs:create-update

Este comando creará dos archivos, la base de datos y el archivo de version: satcatalogs.db y satcatalogs_version.txt.

Uso básico

Una vez configurada la conexión y creada la base de datos, se puede utilizar los modelos de cada catalogo, por ejemplo:

import { Cfdi40CodigosPostales, Cfdi40ProductosServicios } from '@nodecfdi/adonisjs-sat-catalogs';
const codigoPostal = await Cfdi40CodigosPostales.query().where('id', '72030').first();
const productoServicio = await Cfdi40ProductosServicios.firstOrFail();