Sale Note to Picking
Copia automaticamente le righe nota di un ordine di vendita nel campo Note di ogni picking generato alla conferma — e le mantiene sincronizzate ad ogni modifica successiva.
Il problema
Gli ordini di vendita contengono spesso righe nota con istruzioni di gestione, indicazioni del cliente o flag di priorità. Queste note sono visibili in back-office ma non raggiungono mai il magazzino: i picking generati hanno il campo Note vuoto, e gli operatori che lavorano nell'app Barcode o in Magazzino non ne sono al corrente.
Funzionalità
- Copia automatica alla conferma — tutte le righe
line_notevengono concatenate e scritte nel campo Note di ogni picking creato. - Sincronizzazione in tempo reale — aggiungere, modificare o eliminare righe nota su un ordine confermato aggiorna immediatamente tutti i picking aperti.
- Cambio tipo riga rilevato — il passaggio da/verso tipo nota viene intercettato e i picking aggiornati in entrambe le direzioni.
- Backorder inclusi — i backorder aperti vengono sincronizzati automaticamente.
- Non distruttivo — i picking completati o annullati non vengono mai modificati.
- Zero configurazione — nessuna impostazione, nessuna vista, installa e dimentica.
Comportamento
| Event | Azione |
|---|---|
| Ordine di vendita confermato | Note copiate su tutti i picking generati |
| Testo riga nota modificato su ordine confermato | Tutti i picking aperti aggiornati immediatamente |
| Riga nota aggiunta a ordine confermato | Tutti i picking aperti aggiornati |
| Riga nota eliminata da ordine confermato | Nota ricalcolata; campo svuotato se non ne rimangono |
| Tipo riga cambiato da/verso nota | Picking aggiornati in entrambe le direzioni |
| Picking già completato o annullato | Mai modificato — record storici preservati |
Note tecniche
- Nessun nuovo modello o migrazione — semplici override Python su
sale.orderesale.order.line. sale.order._picking_note_html()unisce inamedi tutte leline_notecone converte viaplaintext2html(necessario perchéstock.picking.noteèfields.Html).- Il guard su
writedisale.order.linesi attiva solo quando cambianonameodisplay_type— nessun overhead su aggiornamenti di campi non pertinenti. - L'override di
writecattura gli ordini coinvolti sia prima che dopo la scrittura per gestire correttamente le transizioni didisplay_type.
Changelog
| Version | Data | Note |
|---|---|---|
| 18.0.1.0.0 | 29/04/2026 | Prima pubblicazione |
Sviluppato da STeSI Consulting — Francesco Moccia <moccia.f@stesi.consulting>