COGZDA -- Macro-progettazione commessa (laboratorio odontotecnico)¶
Sorgente: cbl/cogzda.cbl | Tipo: Programma interattivo a doppia griglia (Articoli + Sottoprodotti) | Program-ID: COGZDA
Menu: Lab.Odont. > Operativo > Varie [Macro-progettazione]
Scopo¶
COGZDA e' lo strumento di macro-progettazione (pre-progettazione ad alto livello) di una commessa di laboratorio odontotecnico. Consente, prima della progettazione di dettaglio, di definire per la commessa:
- gli articoli/prestazioni richiesti (griglia "Articoli", tabella
LODCMART), ciascuno collegato a un tipo di impianto/dispositivo; - i sottoprodotti che compongono ciascun articolo (griglia "Sottoprodotti", tabelle
LODCMASVeLODCMASI), esplosi automaticamente a partire dai piani di fabbricazione.
L'operatore seleziona la commessa (studio/paziente o numero) tramite COGS98W, poi lavora su due griglie GRIDADMN: nella prima aggiunge/modifica/elimina articoli e ne lancia (F1) l'esplosione dei sottoprodotti; nella seconda gestisce i sottoprodotti risultanti (sequenza, reparto/sottoreparto, impegno, priorita', quantita', evasione). Alla conferma (F3), l'aggiornamento riscrive le tre tabelle di dettaglio e marca la commessa come pre-progettata.
Puo' essere richiamato come sottoprogramma (cogzda-called = "COGZDA", linkage utilcogzda.cpy) con la commessa gia' impostata dal chiamante (es. da COGZ50, voce "Pre-progettazione").
Interfaccia (linkage)¶
util-cogzda (utilcogzda.cpy): quando cogzda-called = "COGZDA", il programma carica direttamente la commessa passata in cogzda-commessa (con l'operazione cogzda-ope), salta la selezione e va su a-avanti-2. In modalita' richiamata l'uscita torna sempre al chiamante (w-dc-called = "S").
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy |
Parametri generali azienda (rd-azi) |
| LODPRESC | cogzda.select (lodpresc.fd, lpm-rec) + lodpresc.k04 |
Prescrizione/commessa: stato (lpm-stato), scadenza (lpm-data-cns/lpm-ora-cns), tipo dispositivo (lpm-tip-dsp); lettura per numero via rd-lodpresc-chia4 |
| LODCMTES | cogzda.select (lodcmtes.fd, lct-rec) |
Testata commessa: piano (lct-piano), modalita' progettazione (lct-modo), blocco amministrativo (lct-att-amm) |
| LODCMAGG | cogzda.select (lodcmagg.fd, lcg-rec) |
Dati aggiuntivi: flag pre-progettazione eseguita (lcg-fl-fase-pre-prog), priorita' (lcg-priorita) |
| LODCMART | cogzda.select (lodcmart.fd, lca-rec) |
Articoli della commessa: articolo, quantita', denti, provenienza, flag cancellazione (lca-fl-canc); chiave lca-commessa/lca-prog |
| LODCMASV | cogzda.select (lodcmasv.fd, lcv-rec) + lodcmasv.k03 |
Sottoprodotti/sub-lavorazioni della commessa: piano (lcv-pdr-*), sequenza, reparto/sottoreparto, impegno, priorita', evasione |
| LODCMASI | cogzda.select (lodcmasi.fd, lci-rec) |
Impegni/istanze dei sottoprodotti (reparto, data impegno, evaso): scritto in parallelo a LODCMASV |
| LODPDFPR | cogzda.select (lodpdfpr.fd, pdr-rec) + lodpdfpr.k04 |
Prestazioni del piano di fabbricazione: impegno standard, reparto/sottoreparto, descrizione (via rd-lodpdfpr-chia4) |
| COGANRAG | cogzda.select (coganrag.fd, arag-rec) |
Anagrafica raggruppamenti: risalita dal codice articolo al tipo impianto/dispositivo padre (arag-id-padre), classe/categoria configurata, tipo "M" |
| COGMERCI | cogzda.select (cogmerci.fd, mer-rec) |
Merci: controllo che l'articolo sia codificato e sia una prestazione (mer-classe = "S") |
| COGGEANA | cogzda.select (coggeana.fd, ana-rec) |
Anagrafica cliente/studio: ragione sociale |
| COGTABEL | cogzda.select (cogtabel.fd, euta-rec, tipo 85) |
Descrizione reparto (euta-rp-des) |
| LODTABEL | cogzda.select (lodtabel.fd, lta-rec, tipo 11) |
Descrizione sottoreparto |
| t-tm-tab2 / t-tm-tab3 | cogzda.select (transito, t-gor-g2-* / t-gor-g3-*) |
Tabelle di transito indicizzate per le due griglie (Articoli / Sottoprodotti) |
Programmi chiamati¶
| Programma | Innesco | Ruolo |
|---|---|---|
| COGS98W | z-s98-tm-presc |
Selezione/validazione commessa (studio/paziente/numero), con aiuto F8 e ricerca F5 |
| COGZSB | griglia Articoli, F1 (RICERCA) |
Ricerca del piano di fabbricazione (PDF) associato a cliente + tipo dispositivo (cogzsb-o-pdf) |
| COGZDB | griglia Articoli, F1 | Elenco dei sottoprodotti del piano di fabbricazione (cogzdb-tab-sottoprod), esploso poi in x3-esplodi-sottoprod |
| GRIDADMN | z-gridadmn-prepara-*, S-F4, esporta |
Preparazione, personalizzazione ed esportazione Excel delle due griglie |
| COGU10W | get-divisa-conto |
Divisa di conto (u10-divisa-dato -> w-currency-conto) |
| RNEWCONF | x99-load-config |
Lettura dei parametri di configurazione |
Flusso principale¶
apri-- init, apertura file,x99-load-config, creazione delle tabelle di transito delle due griglie, lettura divisa di conto, creazione pulsanti custom e preparazione delle griglie. Se richiamato (cogzda-called), memorizza commessa e operazione.a4-- reset maschera e ricreazione/riordino delle tabelle di transito; se richiamato con commessa, carica LODPRESC/LODCMTES, controlla blocco amministrativo e stato (rifiuta commesse completate "C" o evase "E") e salta aa-avanti-2.a-tm-cli-- accept commessa via COGS98W (in modalita' interattiva); controlli su blocco amministrativo e stato commessa.a-avanti-2/a-fine-chiave-ins-- imposta data/ora scadenza e carica le due griglie (carica-dati->carica-griglia-2articoli,carica-griglia-3sottoprodotti).a-accept-grid2(Articoli) -- gestione interattiva: Ctrl+A aggiunge una riga (assegna progressivo rigalca-prog), Ctrl+E elimina, F1 esplode i sottoprodotti (COGZSB -> COGZDB ->x3-esplodi-sottoprod), S-F4 personalizza griglia, S-F5 esporta Excel, F3 conferma.x3-esplodi-sottoprod-- per ogni sottoprodotto del piano crea una riga di transito nella griglia "Sottoprodotti" con progressivo/sequenza, legame all'articolo padre (t-gor-g3-lca-prog), reparto/sottoreparto e descrizioni, impegno = impegno-prestazione * quantita' articolo, priorita' dalla commessa.a-accept-grid3(Sottoprodotti) -- gestione interattiva analoga: F1 ricarica per riordino sequenza, Ctrl+E elimina (se non gia' progettato), F3 conferma; le celle sono bloccate per righe gia' evase.b-aggiorna(F3) -- riscrive le tabelle di dettaglio confrontando il transito con gli archivi:b1-aggiorna-art-> LODCMART (insert/update/cancellazione logicalca-fl-canc = "C");b2-aggiorna-spr-> LODCMASV + LODCMASI (insert/update/cancellazione, con impegno/reparto/priorita'/qta sottoart);- imposta
lct-modo = "C"(progettazione a componenti) se ci sono sottoprodotti, marcalcg-fl-fase-pre-prog = "S", e valorizza il tipo dispositivo della prescrizione (lpm-tip-dsp) risalendo da COGANRAG l'articolo non fotografico.
Configurazione (RNEWCONF)¶
Pacchetto C, caricato in x99-load-config:
| Gruppo | Chiave | Variabile | Effetto |
|---|---|---|---|
| odonto | classe-categoria | tm-cfg-classe-categoria |
Classe di raggruppamento COGANRAG per risalire al tipo impianto dell'articolo |
| ABILITA | LABOD-PROGETTAZIONE | tm-cfg-modalita-prog |
Modalita' progettazione |
| labprepara | check-pulsante-articolo (occurs 1..7) | tm-cfg-check-merce-b1..b7 |
Articoli di "check fotografico" da escludere dall'assegnazione tipo dispositivo |
| odonto | gestione-multi-sede | tm-cfg-multisede |
Gestione multisede |
Note¶
- L'esplosione dei sottoprodotti si basa sul piano di fabbricazione (PDF) restituito da COGZSB per cliente + tipo dispositivo; se COGZSB non restituisce un PDF, viene usato quello di COGZDB.
- Cancellazioni bloccate: un articolo con provenienza "W" (Odontoconnect) o con sottoprodotti gia' selezionati (
tm-g2-proge = "S") non e' cancellabile; un sottoprodotto gia' progettato (tm-g3-proget = "S") non e' cancellabile. - La cancellazione e' logica (
lca-fl-canc/lcv-fl-canc/lci-fl-canc = "C"), non fisica. - Le griglie usano tabelle di transito indicizzate (
t-tm-tab2,t-tm-tab3) create per sessione; il pattern di aggiornamento confronta i record di transito con quelli su archivio per decidere insert/update/delete. - Le chiavi secondarie
lodpresc.k04,lodcmasv.k03,lodpdfpr.k04sono incluse manualmente in coda alla procedure division (non generate da Screens). - Copybook di interfaccia inclusi:
utilcogzdb.cpy,utilcogzsb.cpy,wgrid.cpy,utilgdad.cpy,utilu10.cpy,utilu20.cpy,utils52.cpy,utils68.cpy,utils93.cpy,utils98.cpy,utilgesstr.cpy,utildlg.cpy,utilncnf.cpy. Programma standalone (mmmask.cpy).
Documentazione tecnica -- 2026-08-05