Skip to main content

Esempi pratici

In questa sezione vengono riportati esempi concreti di utilizzo delle regole di controllo sul modello Ordine di produzione (mrp.production) . Gli esempi mostrano sia configurazioni di base con condizioni AND, sia casi più avanzati con filtri Python e combinazioni di gruppi AND/OR.


Condizioni (AND/OR)

Tutte le regole riportate, hanno di default il gruppo Root con AND.

✦ Scadenza vicina/passata e senza quantità prodotta

Controllare gli ordini con scadenza passata o alla data odierna e senza quantità prodotte.

Campo Operatore Tipo valore Sorgente valore Valore
Scadenza <= Date Oggi (date) /
Quantità in produzione = Integer Valore literal 0
✦ Scadenza nella prossima settimana e non completati

Controllare gli ordini con scadenza nella prossima settimana (non mostra le passate) e senza quantità prodotte.

Campo Operatore Tipo valore Sorgente valore Valore
Scadenza >= Datetime Adesso (datetime) -
Scadenza <= Datetime Python (safe_eval) now + relativedelta(weeks=1) 
Stato in Char/Testo Python (safe_eval) ['confirmed','progress','to_close'] 
✦ Non completati con materiale pronto

Controllare gli ordini non completati dove il padre già è completato (gestione di un eventuale disallineamento).

Campo Operatore Tipo valore Sorgente valore Valore
Stato not in Char/Testo Python (safe_eval) ['done','cancel','draft'] 
Disponibilità materiale = Char/Testo Valore literal assigned

Filtro Python

Molto utile su confronto campi o elaborazione dati

✦ Ordini non completati con data programmata prima di scadenza
model.search([]).filtered(
  lambda r: r.date_deadline and r.date_planned_start and r.date_deadline < r.date_planned_start and
  r.state in ['confirmed', 'in_progress', 'to_close']
)
✦ Ordine di vendita e scadenza passata
today_date = today()# Paccheto python attivo
model.search([]).filtered(
  lambda r: r.sale_order_count > 0 and r.date_deadline and r.date_deadline < today_date
)

4) Filtro Python - Importo minimo

La produzione è valida solo se l’importo totale dell’ordine (amount_total) supera 1000 €.


record.amount_total > 1000

5) Filtro Python - Combinazione quantità e data

La regola è valida solo se la quantità pianificata è maggiore di 50 e la produzione inizia oggi.


record.product_qty > 50 and record.date_planned_start == fields.Date.today()

6) Filtro Python - Controllo stato

Validare solo le produzioni nello stato "confirmed" o "in_progress".


record.state in ["confirmed", "in_progress"]