Vai al contenuto

COGQA2 - Consultazione e avanzamento lotti per lavorazione (Trimming)

Sorgente: cbl/cogqa2.cbl | Program-ID: COGQA2 | Tipo: Programma interattivo GUI (griglia + avanzamento)

Menu: Magazzino > Produzione > Stampaggio > Trimming


Scopo

Mostra in un'unica griglia tutti i lotti aperti per una lavorazione (tipicamente lav. 102 = trimming) e consente avanzamento rapido (quantita' prodotte/scartate/chiusura), modifica priorita' e note. Personalizzazione Area Admin per Artic Seals.

Autore: Andrea Parmeggiani - Eurosystem2000.


File e tabelle

Tabella primaria gestita dallo screen designer (cogqa2.select/.fd/.wrk). Le entita' principali coinvolte sono:

File/Tabella Tipo Modalita' Descrizione
COGLAVOR ISAM Input Lotti di lavorazione (scan via st-coglavor-notmin-chia9 con cla-fl-cls = "A")
CLCCCTES ISAM Input Testata commessa (esclude se cct-stato = "C")
COGTESOR ISAM Input Testata ordini (esclude se tor-chiu = "C")
COGCONOR ISAM I-O Consegne ordine (chiave 2 e 5)
COGRIGOR ISAM I-O Righe ordine (chiave 3)
COGGCDOC ISAM I-O Generic doc (chiave 4) per collegamento riordini
COGGEANA ISAM Input Anagrafica clienti
COGMERCI ISAM Input Anagrafica articoli
COGRACMC ISAM Input Raccordo merce/CMA (chiave 2)
COGSLMAG ISAM Input Saldi magazzino (giacenza impegnata)
CLCLAVOR / CLCANAMA ISAM Input Lavorazioni / macchine
CLCCCRIG ISAM I-O Riga lavorazione (stato/priorita')
CLCCCRAG ISAM I-O Note di riga lavorazione
CLCCCCNS ISAM I-O Consuntivo fase
CLCCCDAY / CLCCCDET ISAM I-O Dettaglio giornaliero / dettaglio consuntivo
CLCMOVDC ISAM I-O Movimento di controllo (via COGQS6)
COGTRANS ISAM (temp.) I-O File di transito per la griglia, chiave trs-chia1 (lotto), chiavi 2 (trs-priorita + trs-data-cns) e 3 (trs-priorita + trs-cma) per ordinamenti

Copybook utilizzate

Copybook Descrizione
cogqa2.select, cogqa2.fd, cogqa2.wrk, cogqa2.tm, cogqa2.prc, cogqa2.decla, cogqa2-01.scr Screen designer
cogtrans.k01/k02/k03 Chiavi file di transito
coglavor.k09, cogconor.k02/k05, coggcdoc.k04, cogrigor.k03, cogracmc.k02 Chiavi secondarie
wgrave, wnscr, wopenf, wstato, cogazien Working storage standard
wgrid, utilgdad Griglia e GRIDADMN
utilu20, utils52, utils65, utils68 Utility
utilq05, utilq08, utilq65 Utility COGQ05 (lavorazioni), COGQ08 (macchine), COGQ65 (dettaglio commessa)
utilu23 Utility COGU23 (ricerca prima consegna utile per articolo)
utilncnf Lettura RNEWCONF
utilcogq44 Linkage COGQ44 (situazione produzioni)
utilcogqs7 Audit modifiche (x-cogqs7-aggiorna)
utilcogqs0 Linkage COGQS0 (ricerca articolo/macchina default)
utilcogqs6 Linkage COGQS6 (movimento di controllo)
proc-cogqs7.cpy Procedure utility audit
wcont, wcont1, utilcogqs6 (linkage) Linkage standard
mmmask, opengen, grave, stato, stato1, winmsg Infrastruttura standard

Logica di elaborazione

Inizializzazione (apri)

  • z-99-init-program, ctr-abil, rd-azi, open-files.
  • Compone il nome del file di transito: <tmp-dir>/#$COGQA2_<oper>.
  • Carica 2 bitmap custom (varie.bmp, produz.bmp) e crea 2 pulsanti custom: "Refresh griglia" (F1, idx 7) e "Situazione produzione" (F9, idx 25).

Maschera (a4 -> a-tm-lav -> a-tm-ord -> a-tm-mac -> a-tm-cli-ric -> a-tm-data-ric)

  • tm-lav-cod (default 102 trimming) - aiuto F8 via COGQ05.
  • tm-ord - via COGS60 (combo).
  • tm-mac-cod - aiuto F8 via COGQ08.
  • tm-cli-ric-cod - aiuto F8 via COGS65W (tipo "C").
  • tm-data-ric - aiuto F8 via COGS52.

F3 conferma -> a-fine-dati-inizio -> a-elabora.

Creazione transito (b-crea-transito)

Riapre cogtrans in output (rileva se file in uso da altro operatore). Scan coglavor filtrato cla-fl-cls = "A": 1. Esclude se cct-stato = "C" o tor-chiu = "C". 2. Cerca la lavorazione richiesta nel ciclo del lotto (b-cerca-lavorazione-scelta): scan inverso (rdprv) clcccrig -> calcola b-qta-stamp (somma ccc-qta-prd per lav 100 stampaggio), b-qta-fase (somma per lavorazione richiesta), b-qta-prec (somma per lavorazione precedente; se la corrente e' tornitura -> precedente = conteggio 101). 3. Verifica macchina di default via COGQS0 (filtro tm-mac-cod). 4. Scrive cogtrans (b-scrivi-cogtrans): - Determina la data consegna: - Se l'ordine e' del cliente interno (az-cli-int): b2-cerca-consegna-cliente chiama COGU23 cercando la prima consegna cliente utile per quell'articolo. Se i filtri tm-cli-ric-cod/tm-data-ric non passano -> esclude. - Altrimenti usa cor-data ed esclude se tm-cli-ric-cod non corrisponde al cliente dell'ordine. - Calcola trs-qta-dif = qta-prec - qta-att e legge la giacenza impegnata da COGSLMAG.

Caricamento griglia (z-carica-dettaglio)

Scan di cogtrans con chiave 2 o 3 a seconda di tm-ord ("D" data consegna, "C" CMA), popola tm-grid-det-dati-ele.

Avanzamento (F3 sulla griglia -> c-avanzamento)

Cicla su tutte le righe della griglia. Per ciascuna con qta-ava <> 0 o qta-sca <> 0 o fl-cls = "S" esegue c-avanza-riga: 1. Aggiorna clcccrig (stato C/P, ccr-data-fin-prv). 2. Aggiorna/crea consuntivo fase clccccns (somma quantita' prodotta/scartata, stato C/A, data fine). 3. Aggiorna/crea dettaglio giornaliero clcccday e dettaglio consuntivo clcccdet. 4. Audit via x-cogqs7-aggiorna. 5. Crea movimento di controllo via COGQS6 (aggiungi-mdc, doc tipo "L", quantita' avanzata).

Modifica diretta priorita'/note (c-aggiorna-lavorazione)

Su modifica di tm-r-priorita (i) o tm-r-note (i) viene aggiornato in tempo reale clcccrig (priorita'), clcccrag (note) e il record cogtrans corrispondente.

Auto-chiusura

In x-controlla-tm-r-qta-ava se qta-att + qta-ava > qta-prec il flag tm-r-fl-cls (i) viene forzato a "S" (la riga viene marcata per chiusura).

Chiamate a sottoprogrammi

Programma Utilizzo
COGQ05 Aiuto F8 lavorazioni
COGQ08 Aiuto F8 macchine
COGS65W Aiuto F8 cliente richiedente
COGS52 Selezione data
COGS60 Combo ordinamento
COGQ65 Dettaglio commessa (F8 sulla griglia)
COGQ44 Situazione produzione (F9 / pulsante custom)
COGU23 Ricerca prima consegna cliente utile per articolo
COGQS0 Ricerca macchina default per articolo
COGQS6 Creazione movimento di controllo (mdc)
COGQS7 Audit log modifiche
GRIDADMN Personalizzazione griglia (S-F4)

Note implementative

  • Personalizzazione Artic Seals: costanti k-lav-stampaggio = 100, k-lav-conteggio = 101, k-lav-tornitura = 102. Per tornitura la fase precedente forzata e' "conteggio".
  • Lavorazione 1 (assemblaggio) e' inclusa anche se marcata chiusa (ccr-stato <> "C" or ccr-lav = 1).
  • k-max-ele-tab = 800: dimensione griglia massima.
  • File transito per-operatore: <tmp-dir>/#$COGQA2_<oper>. Riapertura in output con controllo "Funzione gia' in uso".
  • Esiste anche una versione alternativa di ricerca consegna (b2-cerca-consegna-cliente-collegata) basata sui collegamenti coggcdoc ma e' marcata "NON UTILIZZATA" nel sorgente.
  • Il programma rispetta in larga parte le convenzioni del codebase (PERFORM senza THRU, IF flat, EXIT PERFORM CYCLE) ma usa ancora alcuni GO TO nei paragrafi accept (a-tm-lav, ecc.).