# Analisi forense: Lavorazioni e moduli collegati

**Ambito:** solo il dominio produzione “Lavorazioni” su VTENEXT 26.07 (build 3508), installazione `/var/www/html/vte23083_2711/`, DB `vtefibbi`, prefisso `vte_`.

**Data analisi:** 2026-08-03 · **Metodo:** sola lettura di codice PHP/JS + metadata DB live (nessuna modifica runtime).

## Indice

| File | Contenuto |
|------|-----------|
| [01-lavorazioni.md](01-lavorazioni.md) | Hub Lavorazioni: campi, tabelle, save, install, JS, Ajax |
| [02-modlight-sessioni.md](02-modlight-sessioni.md) | ModLightLavorazioniSess (sessioni) |
| [03-joborder.md](03-joborder.md) | Collegamento Commessa (JobOrder) |
| [04-operatori-e-barcode.md](04-operatori-e-barcode.md) | Operatori + barcode Ajax/SDK |
| [05-macchinari-legame-soft.md](05-macchinari-legame-soft.md) | Macchinari via `codice_macchina` |
| [06-related-standard.md](06-related-standard.md) | Documents, Calendar, Processes, ModComments, MyNotes |
| [07-catalogo-funzionalita.md](07-catalogo-funzionalita.md) | Elenco completo funzionalità |

## Mappa collegamenti

```mermaid
flowchart TD
  Lav["Lavorazioni tabid=114"] -->|"joborder_id FK"| JO["JobOrder"]
  Lav -->|"operatore_id FK"| Op["Operatori"]
  Lav -->|"codice_macchina testo"| Mac["Macchinari"]
  Lav -->|"uitype 220 mlLavorazioniSess"| ML["ModLightLavorazioniSess"]
  ML -->|"parent_id"| Lav
  JO -->|"relatedlist dependents x19 duplicati"| Lav
  Lav --> Doc["Documents"]
  Lav --> Cal["Calendar"]
  Lav --> Proc["Processes"]
  MC["ModComments widget"] --> Lav
  Notes["MyNotes widget"] --> Lav
```

## Verdetto rapido

Lavorazioni è un **modulo custom Pantarei** (v1.1.0, menu Support) pensato per raccogliere eventi di produzione macchina: data, codice macchina, commessa, operatore/barcode, programma, stato, sessioni ModLight, id evento esterno.

- Record vivi: **0** (1 soft-deleted). Numerazione attiva: prefisso `LAV-`, `cur_id=2`.
- Operatori vivi: **39**. Macchinari: **6**. JobOrder vivi: **2**.
- Anomalie rilevanti (dettaglio nei file):
  1. **19 related list duplicate** JobOrder → Lavorazioni
  2. **Drift schema ModLight**: colonne fisiche `operatore_id` / `barcode_operatore` / `tipologia_lavorazione` ancora in tabella ma **assenti** da `vte_field`
  3. **JS autofill** punta ancora ai campi riga ModLight; sul padre i campi operatore/barcode esistono ma non sono gestiti dallo stesso hook
  4. File SDK `ReturnOperatoreBarcode.php` presente ma **non registrato** in `sdk_popup_return_funct`
  5. Picklist `stato_sessione` con valori **duplicati** da install ripetute

## Ruolo nel flusso

Una Lavorazione rappresenta un ciclo di lavoro su macchina legato a una Commessa (`JobOrder`). Le **sessioni** (righe ModLight) spezzano il ciclo in intervalli con stato/durata/alert. L’operatore può essere risolto da barcode (`Operatori.vcf_14_3`). Il codice macchina è testo libero allineabile ai codici in Macchinari (`MAC1`…`MAC6`).
