◆ DtoMes_Produzione.bpl

Modulo Produzione

Gestione completa del ciclo produttivo: dalla distinta componenti ai barcode, dall'evasione ordini alla registrazione ore. Pattern MVP con Presenter separato dalla View, 30 query censite, MemoryLens integrato.

30
Query censite
8
Unit Pascal
12
Record types
3
Host modes
Architettura
MVP: Model — View — Presenter

Il Presenter non ha dipendenze VCL. La View non accede ai dati. La comunicazione avviene tramite eventi tipizzati: il Presenter è riutilizzabile con una futura View HTML.

Model

UProdTypes
UProdQueryNames
UProd_QueryProvider

Presenter

UProd_DistintaPresenter
30 query · ML capture

View

UFrProdDistinta
cxGrid · Barcode input

UProd_DistintaPresenter.pas
procedure TProdDistintaPresenter.AggiornaDistinta;
begin
  FQueryProvider.ExecSQL(
    FQueryProvider.GetSQL(QRY_PROD_AGG_DIST),
    [LQta, LIdProd]);

  // MemoryLens: cattura azione utente (graceful)
  TMLHelper.CaptureAction(ML_MODULE, 'AggiornaDistinta',
    Format('{"idprod":%d,"qta":%d}', [LIdProd, LQta]));

  if Assigned(FOnDistintaLoaded) then
    FOnDistintaLoaded(Self, FQryDistinta, LCount);
end;
Aree funzionali
Dal lotto al pallet, tutto tracciato

📋 Distinta Produzione

Caricamento distinta da stored procedure. Aggiornamento quantità, note per riga, differenze con il database. Griglia con colorazione condizionale.

🔘 Barcode

Lettura con input dedicato. Assegnazione automatica alla produzione. Conteggio barcode non assegnati. Campionatura e matricola.

📦 Evasione + Pallet

Pallet con capacità configurabile. Evasione ordini, conferma, chiusura e stampa pallet. Storico bancali per lotto.

🕑 Ore e Presenze

Registrazione ore per team e utente. Ore produzione, cambio formato, altri tempi. Presenze per centro di costo con storico.

🎯 Situazione Real-time

Calcolo in tempo reale: barcode disponibili, pezzi prodotti, da completare, bancale corrente. Record con 11 contatori.

🤖 MemoryLens integrato

Ogni azione catturata via TMLHelper. Anomalie segnalate automaticamente (distinta vuota, barcode insufficienti). Errori con exception class e stack.

Query censite
30 query in UProdQueryNames

Ogni query ha un nome costante. Nessuna stringa SQL hardcoded nei Presenter. Il QueryProvider centralizza l'accesso ai dati.

AreaQueryScopo
Lottoprod_lotto_qCarica lotto per ID
Distintaprod_distinta_qDistinta componenti per produzione
Distintaprod_aggdist_qAggiorna qtaprod distinta
Barcodeprod_barcode_qBarcode per lotto/produzione
Evasioneprod_dett103_qDettagli ordine per articolo
Palletprod_pallet_qPallet attivo per team
Oreprod_presteam_qPresenze team per produzione

Mostrate 7 su 30. Il set completo include storico, seriali, note team e pianificazione.

Dal piano alla produzione

Produzione e Pianificazione condividono ProdTools e lo stesso Host.

Pianificazione →Laboratorio↑ Torna alla panoramica