Skip to content
View Aeunius's full-sized avatar

Block or report Aeunius

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Aeunius/README.md
Alejandro Gonzales Sarmiento — Fullstack Laravel + Vue — Socio fundador y CTO en Dibal Terminal: el stack en formato YAML

Código abierto

Paquetes de Laravel para problemas que resuelvo una y otra vez en sistemas peruanos. En español, sin depender de servicios externos, con CI contra Laravel 12 y 13. Tres tienen un gemelo en npm para el frontend, en TypeScript, que se prueba con los mismos datos y da el mismo resultado que el backend.

Paquete Qué resuelve Versión
laravel-feriados-peru Feriados nacionales y plazos en días hábiles según la Ley 27444, con días no laborables y feriados regionales Packagist
laravel-peru-rules Validación de RUC, DNI, carné de extranjería, celular, placa y CCI, con sus dígitos de control. Gemelo para el frontend, con reglas para Vue: peru-rules-js Packagist npm
laravel-catalogos-sunat Los catálogos de la facturación electrónica de la SUNAT (Anexo N.° 8) y sus códigos de retorno, consultables y con regla de validación. Gemelo para el frontend: catalogos-sunat-js Packagist npm
laravel-numero-a-letras Montos en letras con el formato de los comprobantes de la SUNAT (MIL DOSCIENTOS CINCUENTA CON 50/100 SOLES), en soles, dólares o euros. Núcleo en PHP puro, también sin Laravel. Gemelo para el frontend: monto-en-letras-js Packagist npm
Por qué cada uno es más difícil de lo que parece

Calcular un plazo en días hábiles parece trivial hasta que aparecen los feriados agregados por ley a mitad de año, los días no laborables que solo aplican al Estado y los feriados regionales. El paquete de feriados cuenta los plazos como manda la ley, y cada entidad lo ajusta a su realidad desde la configuración.

Los catálogos de la SUNAT suelen copiarse de los PDF de las resoluciones, y ahí se rompen: descripciones corridas entre filas, números de página pegados al texto, códigos que dejaron de existir. El paquete de catálogos los toma de las reglas de validación que publica la propia SUNAT, los regenera con un solo comando y versiona sus fuentes, así que cada actualización se ve código por código. Su gemelo en npm toma esos mismos datos de un tag fijo y trae cada catálogo como un módulo aparte, para que los 49 mil códigos de producto no entren en una app que solo necesita monedas.

Pasar un monto a letras parece un ejercicio de primer ciclo hasta que aparecen «veintiún mil» frente a «veintiuno», «un millón de soles» frente a «un millón cien soles», el redondeo de los céntimos y el límite de 100 caracteres de la leyenda del comprobante. El paquete de montos en letras se prueba con cientos de casos escritos a mano y se contrastó con ICU en doscientos mil números. Su gemelo en npm pasa esos mismos casos y da el mismo texto en el navegador.


En producción

Repositorios privados, institucionales y de empresa. Lo que hay dentro:

Sistema Qué resuelve Stack
SIMI · UNALM ~140 000 activos físicos con responsables, locales y oficinas, integrado con SIGA (MEF) y SINADMOL (SBN) Laravel 9 · SQL Server · Bootstrap 5
SINADMOL / SIGA v2 · UNALM Transferencias patrimoniales, cuadros de tiempos y saldos, y reportes de gastos por grupo operacional a Excel y PDF Laravel 11 · Vue 3 · ApexCharts · SQL Server
Gestión de restaurantes · Dibal El sistema que sostiene a la empresa Laravel 12 · Tailwind 4 · Vitest · MySQL
Gestión de cocheras · Dibal Producto nuevo, en desarrollo Laravel 12 · Tailwind 4 · Vite 7 · MySQL
Servicio de WhatsApp · Dibal Envío de PDF por la Cloud API oficial, compartido entre productos Laravel 12 · WhatsApp Cloud API
Servicio de facturación · Dibal Facturación electrónica sacada del monolito, en construcción Laravel 12 · MariaDB
Intranet · UNALM Reportería mensual de ingresos y gastos con detalle y exportaciones Laravel 9 · SQL Server · Vite
Sistema heredado · UNALM Mantenimiento y actualizaciones, sigue en producción Visual FoxPro 9
La facturación se extrae del monolito de restaurantes a un servicio compartido que consumen todos los productos

Al arrancar cocheras había que decidir: ¿duplicar la facturación que vivía dentro del monolito, o extraerla? La sacamos como microservicio reutilizable, igual que el envío por WhatsApp. Un solo lugar donde corregir cuando cambian las reglas de SUNAT.

Laravel contra SQL Server

El ecosistema de Laravel asume MySQL o PostgreSQL, y la documentación se acaba rápido cuando el motor es SQL Server. Lo resolví de punta a punta: imagen base con ODBC 18 y pdo_sqlsrv, migraciones que respetan T-SQL, y un entorno Docker que levanta cualquier proyecto con un make up.


Trayectoria

Línea de tiempo de 2013 a hoy: roles y stacks a lo largo de trece años

Contacto

LinkedIn

Popular repositories Loading

  1. flutter_pos_printer_platform flutter_pos_printer_platform Public

    Forked from diantahoc/flutter_pos_printer_platform

    A library that prints esc commands to printers in different platforms such as android, ios, windows and different interfaces Bluetooth and BLE, TCP and USB

    Kotlin

  2. Aeunius Aeunius Public

  3. laravel-peru-rules laravel-peru-rules Public

    PHP

  4. laravel-feriados-peru laravel-feriados-peru Public

    Feriados nacionales del Perú y cálculo de plazos en días hábiles para Laravel

    PHP

  5. laravel-numero-a-letras laravel-numero-a-letras Public

    Convierte montos a letras con el formato de los comprobantes peruanos de la SUNAT: MIL DOSCIENTOS CINCUENTA CON 50/100 SOLES.

    PHP

  6. laravel-catalogos-sunat laravel-catalogos-sunat Public

    Los catálogos de la SUNAT (Anexo N.° 8 de la facturación electrónica) como datos consultables desde PHP y Laravel.

    PHP