Vai al contenuto

COGZB5 — Stampa consuntivo commessa (modulo commessa con tempi)

Sorgente: cbl/cogzb5.cbl | Program-ID: cogzb5 | Tipo: Programma di stampa grafica (HP-GL/2) su spool

Menu: Lab.Odont. > Statistiche > Stampa consuntivo commessa


Scopo

Stampa il modulo di consuntivo di una commessa di laboratorio odontotecnico, riportando per ogni riga/azione il lavoro eseguito con i relativi tempi di esecuzione. Per ogni azione della commessa vengono stampati controlli, prestazioni, materiali (selezionati/automatici a seconda che la riga sia evasa o meno), l'operatore che l'ha eseguita, la data e il dettaglio dei tempi (paragrafo b44-tempi), oltre al tempo totale calcolato via COGZS8.

Il programma e' derivato da COGZ84 (con cui condivide la copybook di linkage utilz84.cpy) per differenziarne l'accesso e non appesantirlo. Puo' essere lanciato in modalita' standalone (l'operatore sceglie la prescrizione/commessa) oppure richiamato da COGZ84 (z84-called = "COGZ84-CALLED"), nel qual caso riceve gia' i dati della prescrizione e salta la fase di selezione. Supporta anche una modalita' "Archivia" (via z84-archivia/z84-fl-cogz50) in cui COGS54 viene usato solo per aprire il file di stampa.

L'output e' una stampa in linguaggio HP-GL/2 (comandi SP, PU, PD, EA, LB, SD...) composta riga per riga tramite la routine di stampa feurtab/s54, con posizionamento assoluto dei disegni (rettangoli, righe separatrici, etichette).


File e tabelle

File Copybook Accesso Scopo
feurtab cogfiles.cpy / cogzb5.fd Lettura Tabella archivi (open dinamico dei file)
LODCMTES (via .select/.fd) Lettura (chia2, lk) Testata commessa laboratorio; imposta flag stampa lct-fl-sta
LODCMAGG Lettura Dati aggiuntivi commessa (coeff., progressivo agg.)
LODCMRIG Lettura sequenziale/diretta Righe commessa (azioni, stato, minuti, piano)
LODCMCTR Lettura sequenziale Controlli eseguiti sulle righe commessa
LODCMDET Lettura sequenziale (chia) Dettaglio esecuzione righe (data/ora inizio-fine, minuti, operatore)
LODCMMTA Lettura sequenziale Materiali aggiuntivi consumati per prestazione (mpa-)
LODPNTES Lettura Testata piano di fabbricazione (descrizione)
LODPNRIG Lettura Righe piano di fabbricazione (sequenza, flag check consegna)
LODPNMAT Lettura sequenziale Materiali/prestazioni del piano (tipo "P"/"M")
LODCONTR Lettura Anagrafica controlli (lcn-)
LODRACCO Lettura sequenziale Raccordi azione-controllo (tipo "AC")
LODAZION Lettura Anagrafica azioni (descrizione)
LODDESCR Lettura sequenziale Descrizioni progetto/riga (tipo "T1", "P2")
LODRAPNC Lettura sequenziale (chia6) Rapporti di non conformita' per riga commessa
LODPRESC (via COGS98) Prescrizione medica
COGMERCI Lettura Anagrafica merci (descrizione, unita' di misura)
COGMAGAZ Lettura Intestazione azienda/magazzino (indirizzo)
COGTABEL Lettura Tabelle (operatore tipo 36 mag "O")
PRNTOPER Lettura Operatori (validita' logica)
LODTMDES lodtmdes.cpy I/O temporaneo File temporaneo descrizioni caricate (blocco descrizioni)
LODTRDES lodtrdes.cpy Input File di lavoro descrizioni (righe testo da COGZDEW)
flsta flsta.cpy Stato file

Programmi chiamati (CALL)

Programma Scopo
COGS54 Gestione file/dispositivo di stampa (apertura, s54-after-print)
COGS98W Selezione/ricerca prescrizione medica (subroutine schermata)
COGFNT Calcolo lunghezza frase, taglio a misura, adattamento font per la stampa grafica
COGZDEW Estrazione descrizioni di progetto/riga su file di lavoro (zde-ope = "E")
COGZS8 Calcolo tempo totale di esecuzione della riga commessa
RNEWCONF Lettura parametri di configurazione
ENCRYPT (rimosso — gestione azienda criptata disattivata da PBUG-1925)

Copybook incluse

Working Storage

cogzb5.wrk, wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, cogazien.cpy, utilfnt.cpy, utils54.cpy, utils98.cpy, utilzde.cpy, utilzs8.cpy, utilncnf.cpy

Linkage Section

wcont.cpy, utilz84.cpy, wcont1.cpy

Screen Section

cogzb5-01.scr

Procedure Division (finali)

stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy, cogzb5.prc, lodcmtes.k02, lodrapnc.k06, lodtmdes.k01, lodtrdes.k01


Parametri di configurazione (RNEWCONF)

Gruppo Chiave Variabile interna Effetto
odonto Formattazione-portrait tm-cfg-formatta Stringa di formattazione emessa in testa a ogni pagina (comando iniziale di orientamento/setup stampante)

Logica di elaborazione

  1. Inizializzazione (apri): apre i file, carica configurazione, definisce i tasti funzione e il pulsante custom "Commessa (F5)", compone i nomi dei file temporanei (#$COGZB5.oper per LODTMDES, #$COGZDE.oper per il file descrizioni). Se richiamato da COGZ84 imposta i dati della prescrizione da linkage.
  2. Selezione commessa: in modalita' standalone (a-tm-cli) l'operatore indica studio/paziente/prescrizione/numero commessa via COGS98W; x-controlla-commessa verifica l'esistenza della prescrizione. cerca-presc legge la testata commessa (LODCMTES) e verifica che sia gia' stata aperta.
  3. Apertura stampa (a-90): chiamata a COGS54 per scegliere il dispositivo (salvo modalita' "Archivia" con COGS50).
  4. Stampa (b-stampa): legge intestazione azienda da COGMAGAZ, piano di fabbricazione, e carica in tabella interna le righe commessa (LODCMRIG) con stato "C" (chiuse) o "S", incluse le date di consegna (flag check "C"). Per ciascuna azione (b4-azione) carica controlli (LODCMCTR, o dall'anagrafica azione via LODRACCO se la riga e' ancora aperta), prestazioni (LODPNMAT tipo "P"), materiali (LODPNMAT tipo "M" + LODCMMTA), calcola l'ingombro e stampa una pagina nuova se necessario (b2-testa).
  5. Dettaglio tempi (b44-tempi): per ogni riga stampa le esecuzioni (LODCMDET) con data/ora inizio-fine, minuti e operatore; alla fine stampa il tempo totale via COGZS8.
  6. Note di riga: se esistono descrizioni sulla riga (COGZDEW su chiave num+riga) le stampa da LODTRDES.
  7. Chiusura (z-chiudi): chiude e cancella i temporanei, chiude la finestra, cancella i sottoprogrammi.

Paragrafi chiave

Paragrafo Scopo
apri Inizializzazione, tasti funzione, pulsante custom, nomi temporanei
a-tm-cli Accept dello studio/prescrizione (via COGS98W)
cerca-presc Lettura testata commessa e verifica apertura
a-90 / a-90-ok Apertura stampa COGS54 e avvio b-stampa
b-stampa Intestazione azienda, caricamento righe commessa e consegne, ciclo azioni
b2-testa Stampa intestazione pagina (riquadri, dati commessa, PDF)
b21-int-completa Intestazione completa della prima pagina (riquadri e dati anagrafici)
b4-azione Elaborazione di una singola azione: carica controlli/prestazioni/materiali e stampa
b41-controlli / b42-prestazioni / b43-materiali Stampa delle righe di dettaglio di ciascun tipo
b44-tempi Stampa esecuzioni (LODCMDET) e tempo totale (COGZS8)
b5-controllo Stampa di una fase di tipo "controllo utente"
x2-set-ea / x2-set-pd / x2-set-lb / x2-set-pu Routine di posizionamento e disegno HP-GL/2
x3-carica-des Carica un blocco di descrizioni (LODDESCR → LODTMDES)
cerca-rnc Verifica esistenza rapporto di non conformita' sulla riga
x99-confi Lettura configurazione Formattazione-portrait

Note

  • Il programma non usa una griglia: e' un generatore di stampa grafica. Le tabelle interne (w-righe-commessa, w-consegne, w-controlli, w-materiali, w-prestazioni) hanno limiti fissi (500 righe, 20 consegne/controlli/prestazioni, 50 materiali) e vengono segnalati messaggi di superamento.
  • La gestione dell'azienda criptata (chiamate a ENCRYPT) e' stata rimossa con PBUG-1925 (02/07/2024): ora tm-int riceve semplicemente az-int.
  • Il sorgente usa ancora PERFORM ... THRU e GO TO; e' codice legacy pre-convenzioni.