Vai al contenuto

COGQ55 - Cancellazione Lotto di Produzione

Sorgente: cbl/cogq55.cbl | Tipo: Programma GUI (AcuCOBOL, Screens) | Program-ID: COGQ55

Menu: Magazzino > Produzione > Cicli di Lavorazione > Operativo > Cancellazione Lotto di Produzione


Scopo

Cancella un lotto di produzione identificato da anno + numero, eliminando in sequenza tutti i record correlati nelle tabelle cicli di lavorazione. Supporta chiamata diretta da altri programmi tramite la copybook utilcogq55.cpy (modalita' called).


File e Tabelle

File/Tabella Uso
FEURTAB Input - tabella generica (parametri, abilitazioni)
COGMERCI Input - anagrafica merci (decodifica articolo)
COGGEANA Input - anagrafica generica (decodifica cliente)
CLCDISEG Input - disegni/cicli (lettura disegno del lotto)
CLCCCTES I-O - testata lotto produzione (lettura + cancellazione)
CLCCCRIG I-O - righe fasi del lotto (scan + cancellazione)
CLCCCCNS I-O - consuntivo di produzione (scan + cancellazione)
CLCCCDAY I-O - consuntivo giornaliero (scan + cancellazione)
CLCCCDET I-O - dettaglio consuntivo in tempo reale (scan + cancellazione)
CLCSTAMP I-O - collegamento con stampi (scan + cancellazione)
CLCDALAV I-O - dati aggiuntivi lavorazione (lettura + cancellazione)

File aperti tramite cogq55.select / cogq55.fd generati da Screens.

Programmi chiamati

Programma Scopo
COGP13S Cancellazione del lancio di produzione collegato al lotto (op. "cancella-tutto")

Copybook principali

  • cogq55.select / cogq55.fd / cogq55.wrk — generati da Screens
  • cogq55-01.scr — screen principale
  • cogq55.decla — declaratives per gestione I/O
  • cogq55.prc — paragrafi standard I/O (rd-, st-, del-) per tutti i file
  • utilcogq55.cpy — struttura di linkage per chiamata esterna (parametri: cogq55-called, cogq55-lotto)
  • utils52.cpy — utility date
  • utils68.cpy — utility display merce (COGS68)
  • utilp13s.cpy — utility interfaccia COGP13S
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy — standard working-storage
  • wcont.cpy / wcont1.cpy — area comunicazione chiamante

Logica di Elaborazione

Inizializzazione (apri)

  • Rileva il numero di argomenti (C$NARG): se 1 (chiamata da menu), inizializza util-cogq55; se 2 (chiamata da programma esterno), copia i parametri ricevuti.
  • Verifica abilitazioni (ctr-abil), legge dati azienda (rd-azi), apre i file.
  • Se richiamato con cogq55-called = "COGQ55-CALLED", pre-carica il numero di lotto e salta direttamente alla richiesta di conferma.
  • Imposta titolo maschera "Cancellazione Lotto di Produzione".

Input dati (a4, a-tm-lot-ann, a-tm-lot-num)

  • Accept del campo anno lotto (tm-lot-ann): validazione >= 1996.
  • Accept del campo numero lotto (tm-lot-num): validazione > 0; verifica esistenza del lotto in CLCCCTES.

Presentazione dati e richiesta conferma (a-richiesta-conferma)

  • Legge COGMERCI per decodifica articolo (cct-db = chiave merce del lotto).
  • Legge CLCDISEG per il disegno associato.
  • Legge COGGEANA (tipo 'C') per il nominativo del cliente.
  • Mostra quantita' del lotto (campo cct-qta, formattato come zetaqta).
  • Controllo avanzamento: scansione di CLCCCRIG (chia1: ann+num+fas); se almeno un record ha stato diverso da "A" (da avviare), imposta fl-iniziata = "S".
  • Messaggio "Confermi Cancellazione Lotto?"; se confermato con F3:
  • Verifica CLCDALAV: se il lotto ha un record con dlv-mac <> " ", il lotto e' ancora in macchina e la cancellazione viene bloccata.
  • Se fl-iniziata = "S": seconda richiesta di conferma "Confermi Cancellazione Lotto Gia' Iniziato?".

Elaborazione cancellazione (b-elabora)

Cancellazione in sequenza per anno+numero lotto:

  1. CLCCCDET (consuntivo tempo reale): scan su chia1 (ann+num), DELETE per ogni record trovato.
  2. CLCSTAMP (collegamento stampi): scan, DELETE per ogni record.
  3. CLCDALAV (dati aggiuntivi): lettura diretta + DELETE se esiste.
  4. CLCCCDAY (consuntivo giornaliero): scan, DELETE per ogni record.
  5. CLCCCCNS (consuntivo produzione): scan, DELETE per ogni record.
  6. CLCCCRIG (righe fasi): scan su chia1, DELETE per ogni record.
  7. CLCCCTES (testata lotto): lettura diretta + DELETE.
  8. Chiamata a COGP13S con operazione "cancella-tutto" passando i dati di collegamento al lancio (p13s-cns-*, p13s-merce, p13s-qta-prd, p13s-data). Se COGP13S restituisce un codice errore non vuoto, viene mostrato un messaggio di avviso (ma l'elaborazione prosegue).
  9. Messaggio "Cancellazione eseguita!!!".

Chiusura

  • Se richiamato in modalita' called (w-argomenti=2), copia util-w-cogq55 in util-cogq55 al ritorno.
  • z-close-files, close window, z-99-exit-program.

Note tecniche

  • Il programma distingue due modalita' operative tramite w-argomenti (da C$NARG): standalone (da menu, 1 argomento) e called (da altro programma, 2 argomenti con util-cogq55 nel linkage).
  • Il blocco sulla cancellazione per lotto in macchina e' basato sul campo dlv-mac di CLCDALAV: se diverso da spazio indica lavorazione in corso.
  • Il controllo fl-iniziata si basa sullo stato delle righe CLCCCRIG: stato "A" = da avviare (mai iniziata); qualsiasi altro stato indica fase gia' avviata o completata.
  • La copybook utilcogq55.cpy viene inclusa due volte nella working-storage con alias (REPLACING util-cogq55 -> util-w-cogq55) per separare i dati ricevuti dai dati di lavoro interni.
  • COGP13S gestisce la cancellazione del lancio collegato nel modulo produzione (COGMOMAG e strutture correlate): il parametro fl-silent = "S" sopprime l'output a video di COGP13S.