# Hallazgos — Sistema de Despacho + estructura de la OT

> Revisión de `legacy/despachos/` (programación existente) y de los PDF de reporte de visita.

## 1. Sistema de despacho: qué reutilizamos

Es una app PHP que ya hace **exactamente la plomería** que necesita Instalaciones:

- **Conexión a vTiger vía Webservice API** (ripcord): `getchallenge` → `login` → `query` /
  `retrieve` / `describe` / `create`.
- **Trabaja sobre el módulo `SalesOrder`** (los pedidos): lee `salesorder_no`, `sostatus`,
  `account_id`, dirección de despacho (`ship_street`, `ship_city`) y varios campos
  personalizados (`cf_2584`, `cf_2564`, `cf_1126`, `cf_3297`…).
- **Consulta** `Accounts` (cliente), `Products`, `Services`.
- **Sube documentos/fotos al CRM**: `vtiger_upload_document_compat()` crea `Documents` con el
  archivo (CURLFile) y los **relaciona al pedido** (parent). Justo lo que la OT necesita
  para subir el PDF y las fotos.
- **Envía correos** con PHPMailer.
- **BD local `app_*`**: usuarios y permisos (`SELECT username, allowed FROM app_…`), transporte, etc.

**Archivos clave:** `orders.php` (listado), `order_details.php` (detalle del pedido),
`upload_related_documents.php` (subida + relación de documentos), `inc/funciones_despacho.php`,
`configuraciones/config-db-vtiger.php` (credenciales — ver seguridad).

> 🔴 **Seguridad:** `config-db-vtiger.php` tiene credenciales del CRM en texto plano.
> `legacy/` está en `.gitignore`, así que no se versiona; aun así, conviene **rotarlas**.

## 2. Reuso para Instalaciones

| Necesidad de la OT | Ya resuelto en despacho |
|--------------------|-------------------------|
| Leer las visitas del técnico | Query a `SalesOrder` (filtrando por el técnico) |
| Datos de cliente/dirección | `Accounts` + `ship_*` del pedido |
| Subir el PDF de la OT al CRM | `vtiger_upload_document_compat()` + relación al pedido |
| Subir fotos al CRM | Mismo mecanismo de `Documents` |
| Enviar correo (vendedor + CC técnico) | PHPMailer |
| Login y permisos | BD local `app_*` (usuarios/allowed) |

## 3. Estructura de la OT (según el PDF "Reporte visita técnica — Instalación FV")

Marca del reporte: **CiudadLuz** (instalación fotovoltaica). Secciones y campos:

**Antecedentes:** nombre cliente · número cliente · dirección · comuna · coordenadas · técnico/s.

**Factibilidad sistema FV:** factibilidad · motivos · comentarios · sistema propuesto ·
tipo de sistema (On grid/…) · tamaño (kWp) · cantidad de paneles · inversor · días estimados.

**Empalme:** número de medidor · protección · tipo de medidor · red (mono/trifásica) · *fotos*.

**Conductores:** tipo/sección conductor alimentador · ¿alimentador = consumo? · tipo/sección
conductor consumo · ¿tiene generador? · *fotos*.

**Punto de conexión:** ¿necesita extensión de cables? · comentarios · *fotos*.

**Tablero existente:** voltaje · comentarios · *fotos*.

**Montaje de paneles:** bancadas · módulos por bancada · tipo de estructura · material superficie ·
strings · orientación · desviación respecto al norte · posición de módulos · estructura de cubierta ·
acceso de paneles · acceso al techo · cantidad de escaleras · altura · cuerdas de vida · sombra ·
singularidad · detalle · comentarios · *fotos*.

**Montaje de equipos:** configuración instalación · tipo de muro inversor · dimensiones espacio ·
¿techo/alero? · intensidad wifi · ¿inversor en mismo muro del tablero? · comentarios · *fotos*.

**Canalizaciones** (por tramo: Panel–Inversor, Inversor–TGFV, TGFV–TDA): distancia · tipo de
canalización · tipo de superficie · comentarios · *foto de layout*.

**Glosario** (leyenda de símbolos) — fijo.

> Patrón: **cada sección = grupo de campos + galería de fotos**. Ideal para un formulario por
> secciones con guardado en borrador. Hay 20 PDFs; falta confirmar si todos usan esta misma
> plantilla o hay variantes.

## 4. Pendiente de confirmar (ver "cómo ayudas" en el chat)
- ¿Las visitas del técnico son `SalesOrder`? ¿Qué campo identifica al **técnico** y cuál al
  **vendedor** (correo) del pedido?
- Significado de los `cf_XXXX` relevantes (se puede deducir de `order_details.php`).
- ¿Todos los OT usan la plantilla FV, o hay variantes entre los 20 PDF?
- Marca/branding del documento (¿CiudadLuz? ¿PerfectPool?).
