Skip to content

Módulo de Finanzas

El módulo de finanzas proporciona utilidades esenciales para la facturación electrónica y la gestión bancaria local.

Importación

typescript
import { amountToWords, getBankFromAccount } from 'gt-utils-js/finance';

Funciones

amountToWords(amount: number): string

Convierte un valor numérico a su representación legal en letras (español), la cual es obligatoria para la Facturación Electrónica en Línea (FEL) ante la SAT. Añade automáticamente los sufijos "QUETZALES EXACTOS" o "QUETZALES CON XX/100 CENTAVOS".

Ejemplos:

typescript
import { amountToWords } from 'gt-utils-js/finance';

// Monto entero
console.log(amountToWords(150)); 
// "CIENTO CINCUENTA QUETZALES EXACTOS"

// Monto con decimales
console.log(amountToWords(150.50)); 
// "CIENTO CINCUENTA QUETZALES CON 50/100 CENTAVOS"

// Millones
console.log(amountToWords(2500500.25)); 
// "DOS MILLONES QUINIENTOS MIL QUINIENTOS QUETZALES CON 25/100 CENTAVOS"

// Valores nulos o fracciones pequeñas
console.log(amountToWords(0.99)); 
// "CERO QUETZALES CON 99/100 CENTAVOS"

getBankFromAccount(account: string): { bankName: string; bankCode: string; } | null

Utiliza heurísticas basadas en la longitud y el dígito inicial de la cuenta bancaria para deducir a qué banco pertenece. Útil para validar o pre-rellenar formularios. Nota: Es heurístico, por lo que asume los formatos más comunes de cada entidad.

Ejemplos:

typescript
import { getBankFromAccount } from 'gt-utils-js/finance';

// Cuenta de Banrural (10 dígitos, empieza con 3 o 4)
console.log(getBankFromAccount('3123456789')); 
// { bankName: 'Banrural', bankCode: 'BANRURAL' }

// Cuenta de Banco Industrial (10 o 14 dígitos, empieza con 0 o 1)
console.log(getBankFromAccount('0123456789')); 
// { bankName: 'Banco Industrial', bankCode: 'BI' }

// Cuenta demasiado corta (Inválida)
console.log(getBankFromAccount('123')); 
// null