# 📋 FORMATOS SOPORTADOS - EXTRACCIÓN AUTOMÁTICA

## 📊 ARCHIVOS EXCEL (.XLSX)

### Formato esperado - Hoja "Carpeta"
La CRM busca información en este orden en las celdas:

```
Booking          | BUA0377418
Referencia       | (campo vacío o código)
CLIENT           | GRUPO SAN ISIDRO
Contacto / Email | (email o nombre)
SHIPPER          | RIMINIMARR S.A.
VESSEL           | MERCOSUL SANTOS
VOY              | PUM090N19
FLAG             | BRAZIL
TERMINAL         | TRP
ORIGIN (POL)     | PUERTO MADRYN, AR
POR              | BUENOS AIRES, AR
POD              | TOKYO, JP
FD               | TOKYO, JP
ETD POL          | 23/08/2026
ETA POD          | 18/10/2026
EQUIPMENT        | 40' RH -30°C
```

### Formato esperado - Hoja "Gastos"
Información de costos y tarifas:

```
Concepto         | Cotización $ | Compra $ | Venta $ | Notas
OCEAN FREIGHT    | 2100         | 2100     | 6650    | Flete marítimo
ISPS             | 14           | 14       | -       | Seguridad
AMS              | 32           | 32       | -       | Documentación
THC              | 335          | 335      | 335     | Terminal Handling
TOLL             | 190          | 190      | 190     | Peaje puerto
```

### ✅ Qué se extrae del Excel
- ✅ Booking # (referencia de reserva)
- ✅ Cliente (consignee)
- ✅ Exportador (shipper)
- ✅ Buque (vessel name)
- ✅ Viaje (voyage number)
- ✅ Puertos (origen, destino)
- ✅ Fechas (ETD, ETA)
- ✅ Equipos (tipo y tamaño de contenedor)
- ✅ Cantidades

---

## 📄 ARCHIVOS PDF

### Formatos soportados

#### ✅ SHIPPING DOCUMENTS (BL, Booking Confirmation)
Ejemplo de contenido que se extrae:

```
BOOKING CONFIRMATION
Booking Reference: BUA0377418
Vessel: MERCOSUL SANTOS
Voyage: PUM090N19

SHIPPER: RIMINIMARR S.A.
CONSIGNEE: MAR CO LTD.

ORIGIN: PUERTO MADRYN, AR
POL: BUENOS AIRES, AR
POD: TOKYO, JP
FD: TOKYO, JP

ETD: 23/08/2026
ETA: 18/10/2026

EQUIPMENT: 1x 40' RH -30°C
```

#### ✅ COMERCIAL INVOICES
Extrae: cliente, montos, referencias, fechas

#### ✅ PACKING LISTS
Extrae: equipment, cantidades, peso, dimensiones

#### ✅ DOCUMENTOS PERSONALIZADOS
Si contienen patrones estándar:
- "Booking #:", "Booking:", "BUA"...
- "Shipper:", "Exportador:"...
- "Consignee:", "Consignatario:"...
- "Vessel:", "Buque:"...
- "POL:", "Origen:"...
- "POD:", "Destino:"...

---

## 🔍 PATRONES QUE DETECTA EL PDF

### Booking
Busca: `booking [#:]? [A-Z0-9]+`
```
Booking: BUA0377418 ✅
Booking # BUA0377418 ✅
BUA0377418 ✅
```

### Cliente
Busca: `cliente [:\-]? [texto]`
```
Cliente: GRUPO SAN ISIDRO ✅
CLIENTE: GRUPO SAN ISIDRO ✅
```

### Exportador
Busca: `(shipper|exportador) [:\-]? [texto]`
```
Shipper: RIMINIMARR S.A. ✅
Exportador: RIMINIMARR S.A. ✅
```

### Puertos
Busca: `(pol|origen|origin)` y `(pod|destino|destination)`
```
POL: BUENOS AIRES, AR ✅
Origen: BUENOS AIRES, AR ✅
POD: TOKYO, JP ✅
Destino: TOKYO, JP ✅
```

### Fechas
Soporta formatos:
```
23/08/2026 ✅
23-08-26 ✅
08/23/2026 ✅
2026-08-23 ✅
23 Agosto 2026 ✗ (no soportado)
```

### Equipos
Busca: `[número]x [tamaño]' [tipo] [temperatura]`
```
1x 40' RH -30°C ✅
1 container 40' Standard -25°C ✅
2x 20' HC ✅
```

---

## ❌ LIMITACIONES CONOCIDAS

### PDFs que NO funcionan bien
- ❌ Documentos escaneados (imágenes PDF)
- ❌ PDFs protegidos con contraseña
- ❌ Tablas complejas sin estructura clara
- ❌ Texto en ángulos o rotado
- ❌ Múltiples idiomas mezclados

### Soluciones para limitaciones
| Problema | Solución |
|----------|----------|
| PDF escaneado | Usar OCR (Adobe, Tesseract) primero |
| PDF protegido | Desbloquear antes de subir |
| Formato no estándar | Llenar manualmente los campos |
| Datos incompletos | Completar después de importar |

---

## 🎯 MEJORES PRÁCTICAS

### 1. Preparar Excel
- ✅ Usa la estructura recomendada
- ✅ Completa todos los campos disponibles
- ✅ Evita espacios en blanco innecesarios
- ✅ Formato de fecha consistente (DD/MM/YYYY)

### 2. Preparar PDF
- ✅ Usa documentos de TEXTO (no escaneados)
- ✅ Mantén formato estándar (encabezados claros)
- ✅ Incluye etiquetas: "Booking:", "Shipper:", etc.
- ✅ Fechas en formato: DD/MM/YYYY o MM/DD/YYYY

### 3. Validar datos
- ✅ Después de importar, revisa los campos
- ✅ Completa lo que no se extrajo automáticamente
- ✅ Verifica fechas y números
- ✅ Guarda la operación

---

## 📝 EJEMPLOS DE USO

### Caso 1: Importar desde Excel
```
1. Tienes: Booking_BUA0377418.xlsx
2. Abre "Importar Datos"
3. Carga el archivo
4. Campos se llenan automáticamente
5. Completa los que falten (si hay)
6. Guarda la operación
```

### Caso 2: Importar desde PDF de Bill of Lading
```
1. Tienes: BL_BUA0377418.pdf
2. Abre "Importar Datos"
3. Carga el PDF
4. CRM extrae: Booking, Vessel, Shipper, Consignee, POL, POD, Dates
5. Completa campos específicos si es necesario
6. Guarda la operación
7. Adjunta el PDF original en "Documentos Adjuntos"
```

### Caso 3: Múltiples documentos
```
1. Nueva operación
2. Carga primero el Excel → llena datos principales
3. Luego carga el PDF → verifica/completa datos
4. Finalmente adjunta ambos en "Documentos Adjuntos"
5. Guarda operación con referencias a ambos archivos
```

---

## 🔧 INFORMACIÓN TÉCNICA

### Librerías usadas
- **XLSX.js** → Lectura de Excel
- **PDF.js** → Lectura de PDF (Mozilla)
- **RegExp** → Patrones de extracción

### Límites del navegador
- Máximo 20 MB por archivo
- 5 páginas PDF leídas (primeras páginas)
- localStorage limitado a ~5-10 MB según navegador

### Procesamiento
- Extracción en cliente (tu navegador)
- Sin envío a servidores externos
- Privado y seguro

---

## 📊 COMPARATIVA: PDF vs Excel

| Característica | Excel | PDF |
|---|---|---|
| Extracción de datos | ⭐⭐⭐⭐⭐ (muy buena) | ⭐⭐⭐⭐ (buena) |
| Confiabilidad | Alta | Media-Alta |
| Formato variable | Baja | Media |
| Mejor para | Datos estructurados | Documentos oficiales |
| Documentos escaneados | Sí | No |
| Tablas complejas | Sí | Parcial |

---

## 💡 CONSEJOS

1. **Crea un Excel template** con tus operaciones estándar → cópialo y modifica
2. **Guarda PDFs de referencia** en la operación → búsqueda rápida después
3. **Documenta cambios** en el campo "Observaciones"
4. **Valida siempre** después de importar → error en importación = error en operación

---

**Última actualización:** Septiembre 2026
