Una herramienta web para validar y calcular el porcentaje de flete respecto al valor de la factura.
✅ Importar archivos - Soporta archivos .xlsx y .csv
✅ Validación automática - Valida número de factura, valor y ciudad de destino
✅ Cálculo de flete - Calcula el porcentaje del flete respecto a la factura
✅ Advertencias - Alerta si el flete supera el 10% del valor de la factura
✅ Interfaz intuitiva - Diseño limpio y responsivo
El archivo de entrada debe contener las siguientes columnas:
numero_factura- Número único de la facturavalor_factura- Valor monetario de la factura (número positivo)ciudad_destino- Ciudad de destino del envío
Ejemplo:
| numero_factura | valor_factura | ciudad_destino |
|---|---|---|
| FAC-001 | 150000 | Bogotá |
| FAC-002 | 200000 | Medellín |
| FAC-003 | 85000 | Cali |
- Clonar o descargar el proyecto
- Instalar dependencias:
npm install- Ejecutar el servidor:
npm startO en modo desarrollo con auto-reload:
npm run dev- Abrir en el navegador:
http://localhost:3000
- Subir archivo: Selecciona un archivo
.xlsxo.csvcon datos de facturas - Seleccionar factura: Elige una factura de la lista
- Ingresar flete: Introduce el valor del flete/transporte
- Ver resultado: El sistema calcula el porcentaje y muestra advertencias si es necesario
validador-fletes-js/
├── public/
│ ├── index.html # Página principal
│ ├── app.js # Lógica del cliente
│ └── style.css # Estilos
├── src/
│ ├── config/
│ │ └── settings.js # Configuración general
│ ├── controllers/
│ │ └── invoiceController.js # Lógica de rutas
│ ├── routes/
│ │ └── invoiceRoutes.js # Definición de rutas API
│ ├── services/
│ │ ├── fileReaderService.js # Lectura de archivos
│ │ └── freightService.js # Cálculo de flete
│ ├── utils/
│ │ └── formatters.js # Funciones de formato
│ └── validators/
│ └── invoiceValidator.js # Validación de datos
├── server.js # Servidor Express
└── package.json # Dependencias
Sube un archivo con datos de facturas.
Request:
Content-Type: multipart/form-data
Body: file (xlsx o csv)
Response:
{
"message": "File uploaded successfully.",
"invoices": [
{
"id": 0,
"numero_factura": "FAC-001",
"valor_factura": 150000,
"ciudad_destino": "Bogotá"
}
]
}Obtiene todas las facturas cargadas actualmente.
Calcula el porcentaje de flete.
Request:
{
"invoiceId": 0,
"freightValue": 15000
}Response:
{
"invoiceValue": 150000,
"freightValue": 15000,
"percentage": 0.1,
"percentageDisplay": "10.00%",
"exceedsLimit": false,
"message": "Freight is within the allowed range.",
"invoiceValueFormatted": "$150,000",
"freightValueFormatted": "$15,000"
}Editar src/config/settings.js para cambiar:
MAX_FREIGHT_PERCENTAGE: Límite de porcentaje (default: 0.10 = 10%)PORT: Puerto del servidor (default: 3000)WARNING_MESSAGE: Mensaje de advertenciaSUCCESS_MESSAGE: Mensaje de éxito
La aplicación valida:
✓ Archivo no vacío
✓ Presencia de columnas requeridas
✓ Número de factura no vacío
✓ Valor de factura > 0
✓ Ciudad de destino no vacía
✓ Flete debe ser número no negativo
- Soporte para descarga de resultados
- Histórico de cálculos
- Soporte para múltiples monedas
- Gráficos y estadísticas
- Autenticación de usuarios
- Base de datos persistente
- Importación desde API
- Node.js v14+
- npm o yarn
- Navegador moderno (Chrome, Firefox, Safari, Edge)
MIT
Jaltech 2026