Vai al contenuto

COGZ50 -- Stato Commessa (Laboratorio Odontotecnico)

Sorgente: cbl/cogz50.cbl | Tipo: Programma interattivo a griglia (testata + dettaglio fasi) | Program-ID: COGZ50

Menu:

  • Lab.Odont. > Operativo > Stato Commessa
  • Clinica > Gestione clinica > Commessa studio

Scopo

E' lo strumento centrale di gestione del ciclo di vita di una commessa di laboratorio odontotecnico. Visualizza un riassunto dello stato di avanzamento della commessa (cosa e' richiesto, cosa e' stato eseguito, a che punto e' la lavorazione) sotto forma di griglia di fasi, e funge da hub per lanciare i programmi che gestiscono le singole fasi (prescrizione, progetto, preparazione, preventivo, avanzamento, sub-fornitura, documento accompagnatorio, allegati, etichettatura, certificato di garanzia, archiviazione, ecc.).

Il programma identifica la commessa tramite prescrizione (studio/paziente/progressivo) oppure tramite numero commessa, ricostruisce lo stato leggendo numerosi archivi del laboratorio, e presenta una griglia di voci con la rispettiva descrizione e valore (Eseguita, In corso, Sospesa, Chiusa, Evasa, Richiesta, ecc.). Premendo Invio su una voce viene lanciato il programma corrispondente.

Puo' essere richiamato in modalita' standalone (da menu) oppure come sottoprogramma (campo z50-called = "COGZ50-CALLED"), con commessa/prescrizione gia' impostate dal chiamante (es. da COGZD1).


Interfaccia (linkage)

Il programma riceve stringhe (linkage standard wcont/wcont1) e usa l'area di interscambio utilz50.cpy (util-z50):

Campo Tipo Descrizione
z50-called x "COGZ50-CALLED" se invocato come sottoprogramma
z50-caller x(8) Program-ID del chiamante
z50-commessa x(10) Numero commessa da caricare
z50-prescrizione studio/paziente/pro Chiave prescrizione
z50-self-call x Impostato a "S" per ri-richiamarsi (flusso commessa-fast da COGZD1)

I dati ricevuti vengono copiati in w-dati-called (w-dc-called, w-dc-caller, w-dc-commessa, w-dc-prescrizione).


Struttura della maschera

La form (cogz50-01.scr) e' organizzata in quattro aree:

Area Contenuto
Barra strumenti Pulsanti custom (contestuali) caricati da bitmap labodonto, labodonto2, varie, clipot
Testata Campi identificativi commessa (tm-cli, tm-paziente, tm-pro, tm-num, dottore, date, data spedizione, RNC, blocco amministrativo)
Dettaglio Descrizione e valore della voce selezionata in griglia (e-tm-descr, e-tm-valore)
Griglia e-tm-tab -- elenco delle fasi (tab-voci, max k-td-voci-size = 16 voci)

La griglia e' gestita tramite GRIDADMN (personalizzazione colonne) e il sottoprogramma di gestione campi testata COGS98W (util-s98).

Voci della griglia (tab-voci)

Indice Voce Stato derivato da
1 Prescrizione sempre "Eseguita"
2 Pre-progettazione lcg-fl-fase-pre-prog (solo se tm-cfg-modalita-prog = "C")
3 Stesura Progetto lpm-fl-progetto, lct-fl-prg
4 Preparazione Commessa lpm-stato (A/U/C/F/E)
5 Stesura Preventivo lpm-fl-preventivo, raccordo COGRACBB tipo "CV"
6 Stampa Fasi di Lavorazione lct-fl-sta
7 Avanzamento Commessa lpm-stato (In corso/Sospesa/Chiusa/Evasa/Presso fornitore/Bloccata)
8 Sub-fornitura lpm-stato = "F" o ricerca LODSUBFR chiuse
9 Creazione Documento Accomp. raccordo COGRACBB tipo "CD"
10 Allegati lct-fl-all
11 Etichettatura lct-fl-eti
12 (k-td-voce-eti-disp-alt) Etichetta alternativa lct-fl-eti (solo se tm-cfg-eti-disp-alt = "S")
13 (k-td-voce-cert-gar) Stampa Certificato Garanzia lcg-fl-cert-gar (solo se tm-cfg-zd7-stampa = "S")
14 (k-td-voce-pdf-standard) Creazione Piano Standard lct-fl-std
15 (k-td-voce-arc-doc) Archiviazione Documenti lct-fl-arc
16 (k-td-voce-doc-mag) Documenti di magazzino solo se tm-cfg-scarico-automatico = "S"

TASK-5278 -- "Cliente su portale" (marcatori 230626)

Quando un cliente e' registrato sul portale Areagate (AreaAPP), lo Stato Commessa lo segnala a video con l'indicazione "Cliente su portale". La novita' introduce un nuovo campo di maschera e una lettura puntuale verso l'anagrafica di frontiera Areagate.

Componenti aggiunti

  • Campo maschera: tm-cliente-portale pic x(18) (in tab-maschera), visualizzato tramite display e-tm-cliente-portale.
  • Variabile di chiave anagrafica: w-ana-chia (w-ana-tipo pic x(01) + w-ana-cod pic 9(05)).
  • Configurazione: nuova chiave abilita / attiva-areaapp -> tm-cfg-attiva-areaapp (vedi sezione Configurazione).
  • Copybook: incluso utilagprg.cpy (area util-agprg), interfaccia di chiamata a SWN070.

Logica (paragrafo a-fine-dati, dopo x2-archiviazione-automatica)

      if tm-cfg-attiva-areaapp = "S"
         move k-ana-tipo-cli  to w-ana-tipo
         move tm-cli          to w-ana-cod
         initialize util-agprg
         move "AGPRG-CALLED"  to agprg-called
         move w-ana-chia      to agprg-key
         move "LETTURA-KEY"   to agprg-ope
         call "SWN070" using stringhe util-agprg ...
         cancel "SWN070"
         if agprg-rana-cliente-portale = "S"
            move "Cliente su portale" to tm-cliente-portale
            display e-tm-cliente-portale
         end-if
      end-if

La verifica avviene una sola volta, al caricamento dei dati della commessa (a-fine-dati), solo se la configurazione aziendale attiva-areaapp vale "S". La chiave passata e' tipo "C" + codice cliente (k-ana-tipo-cli da costanti-labod.cpy). SWN070 esegue, in modalita' LETTURA-KEY, una lettura diretta su ARPANAGR e restituisce nel campo agprg-rana-cliente-portale il flag rana-cliente-portale; se vale "S", lo Stato Commessa mostra l'etichetta. Il campo tm-cliente-portale viene azzerato a ogni reset maschera (a4).

Vedi anche SWN070 -- Clienti per il dettaglio dell'operazione LETTURA-KEY.


Programmi chiamati (CALL)

Programma Innesco Scopo
SWN070 a-fine-dati (se tm-cfg-attiva-areaapp = "S") Operazione LETTURA-KEY su ARPANAGR: restituisce il flag "cliente su portale" (TASK-5278)
COGS98W gestione campi testata (z-s98-tm-presc) Accept/validazione/visualizzazione campi commessa e prescrizione
GRIDADMN z-prepara-tm-grid, z-costruisci-grid, S-F4 Gestione/personalizzazione griglia
RNEWCONF x99-confi, x99-confi-operatore Lettura parametri di configurazione
COGZ40 F6 / Invio voce 1 Prescrizione medica
COGZ48 Invio voce 3 Stesura progetto
COGZDA Invio voce 2 (se tm-cfg-modalita-prog = "C") Macro/pre-progettazione
COGZ43 Invio voce 5 Stesura preventivo
COGZ45 / COGZ49 Invio voce 7 Avanzamento commessa (a step "ST" -> COGZ45, altrimenti COGZ49)
COGZB6 / COGZ84 Invio voce 6 Stampa fasi (Wilocs -> COGZB6, altrimenti COGZ84)
COGZAC Invio voce 8 Sub-fornitura
COGZ61 Invio voce 9 Creazione documento accompagnatorio
COGZ90 / COGZAJ Invio voce 11 / 12 Etichettatura / etichetta alternativa
COGZ52 Invio voce 14 Creazione piano standard
COGZ62 Invio voce 15 Archiviazione documenti
COGZAH Invio voce 16 (se tm-cfg-scarico-automatico = "S") Documenti di magazzino
COGZSD a1-allegati (voce 10) Stampa degli allegati della commessa
COGZ41 / COGZD1 / APOZD1 a3-preparazione Preparazione commessa (standard/evoluta/studio)
COGZS3 stato-commessa Verifica se l'etichettatura e' richiesta
WINZ04 / WINZ07 a3-preparazione Selezione/richiesta piano di fabbricazione (PDF)
COGZ39 F4 Gestione rapporti di non conformita' (RNC)
COGZ67 F5 Dati di chiusura commessa
COGZ54 F2 (materiale consegnato) Gestione materiali consegnati dal cliente
COGZAP F11 (cliente speciale) Visualizzazione autorizzazione sblocco cliente speciale
COGZ51 F7 Fascicolo tecnico digitale
COGZC8 F6 (su griglia) Pianificazione produzione (impegno)
COGY26 F9 (personalizzazione Lori) Gestione etichette pazienti
COGZD7 voce 13 Stampa certificato di garanzia
COGG32 S-F7 Gestione contatti dello studio
BROWSER S-F8 Apertura area riservata Odontosoft
GRIDADMN S-F4 Amministrazione colonne griglia
C$LIST-DIRECTORY x2-archiviazione-automatica Scansione cartella allegati da archiviare
RENAME a12-crea-archivio Rinomina file allegato per Dentalabor
DIALOGS accept-dialogs Scelta stampa/invio su disco

File e tabelle utilizzati

I file sono dichiarati in cogz50.select / cogz50.fd (gestione I/O standard tramite cogz50.prc).

File Copybook Scopo
LODPRESC lodpresc.cpy (+ lodpresc.k04) Prescrizioni: stato commessa, dottore, date, flag progetto/preventivo/estratta
LODCMTES testata commessa Flag eseguito (stampa fasi, allegati, etichette, archiviazione, std), blocco amministrativo (lct-att-amm), cassetta
LODCMAGG dati aggiuntivi commessa Flag pre-progettazione, certificato garanzia, data stampa, priorita', commessa-studio
LODCMAG2 dati aggiuntivi 2 Data/ora spedizione (lc2-data-sped/lc2-ora-sped), id prescrizione
LODCMRIG righe commessa Fasi/trasferimenti (data fine, sede consegna, stato)
LODRAPNC (+ lodrapnc.k02) Rapporti di non conformita'
LODSUBFR sub-forniture Stato sub-forniture
LODPFSTD (+ lodpfstd.k02) Piani di fabbricazione standard (per cliente/tipo dispositivo)
LODPDFPR prestazioni collegate al PDF (per decidere progettazione evoluta)
COGRACBB cogracbb.cpy Raccordi bollettini lotto (preventivo "CV", documento "CD")
COGMAGAZ cogmagaz.cpy Magazzini/sedi (multisede)
ARPANAGR -- Anagrafica di frontiera Areagate, consultata indirettamente via SWN070 (TASK-5278)

Configurazione (RNEWCONF)

Le configurazioni generali sono caricate in x99-confi con ncnf-pnt = 14 (pacchetto passato da 13 a 14 chiavi con TASK-5278). La suddivisione e' per magazzino (ncnf-tip-sud = "M", ncnf-sud = az-main-mag).

# Gruppo Chiave Variabile Effetto
1 ODONTO AVANZAMENTO-COMMESSA tm-cfg-tip-ava Tipo avanzamento ("ST" -> COGZ45)
2 ODONTO PERCORSO-INVIO-ALLEGATI tm-cfg-path-archivia Percorso invio allegati (Dentalabor)
3 ABILITA LABOD-PROGETTAZIONE tm-cfg-modalita-prog Modalita' progettazione (A/C)
4 LABPREPARA MODO-RICERCA-PIANI tm-cfg-ricerca-piani SELEZIONE / RICHIESTA piano
5 ODONTO MODO-STAMPA-ALLEGATI tm-cfg-modo-allegati Modo stampa allegati
6 ODONTO ZD7-STAMPA-CERTIFICATO-GARANZIA tm-cfg-zd7-stampa Abilita certificato garanzia (voce 13)
7 LABPREPARA COMMESSA-FAST tm-cfg-commessa-fast Flusso commessa-fast (self-call da COGZD1)
8 ABILITA LABOD-IMPEGNI tm-cfg-labod-impegni Abilita pulsante impegno (F6)
9 ODONTO SCARICO-MATERIALI-AUTOMATICO tm-cfg-scarico-automatico Abilita voce 16 / scarico magazzino
10 ODONTO STAMPA-ETICHETTA-DISP-ALT tm-cfg-eti-disp-alt Abilita etichetta alternativa (voce 12)
11 ABILITA LAB-ODONT-ORDINE tm-cfg-abilita-ordine Abilita ricerca ordine (F7)
12 labpresc path-archiviazione-auto tm-cfg-path-archiviazione-auto Percorso archiviazione automatica allegati
13 odonto gestione-multi-sede tm-cfg-multisede Gestione multisede (sedi trasferimento)
14 abilita attiva-areaapp tm-cfg-attiva-areaapp TASK-5278: se "S" abilita la verifica "Cliente su portale" via SWN070

Configurazione dipendente dall'operatore (x99-confi-operatore, ncnf-sud = wo-oper):

Gruppo Chiave Variabile Effetto
apo operatore-clinica-su-lab tm-cfg-clinica-ope Clinica assegnata all'operatore (controllo appartenenza commessa)

Copybook inclusi

Working Storage

feurtab.fd, cogfiles.cpy, cogz50.select, cogz50.fd, cogz50.wrk, k-personal.cpy, costanti-labod.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utildlg.cpy, utilbrws.cpy, utils52.cpy, utils54.cpy, utils93.cpy, utils98.cpy, utilz39.cpy, utilz62.cpy, utilzs3.cpy, utilwz04.cpy, utilwz07.cpy, utilcogzac.cpy, utilcogzah.cpy, utilcogzc8.cpy, utilapozd1.cpy, utilcogzap.cpy, utilcogzda.cpy, utilagprg.cpy (TASK-5278), acucobol.def, utilzsd.cpy, utilncnf.cpy

Linkage Section

wcont.cpy, utilg32.cpy, utilz40.cpy, utilz41.cpy, utilz43.cpy, utilz45.cpy, utilz48.cpy, utilz49.cpy, utilz50.cpy, utilz51.cpy, utilz52.cpy, utilz54.cpy, utilz61.cpy, utilz67.cpy, utilz82.cpy, utilz84.cpy, utilz89.cpy, utilz90.cpy, utilzaj.cpy, utilzb6.cpy, utilzd1.cpy, utilzd7.cpy, utily26.cpy, wcont1.cpy

Procedure Division

cogz50.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogz50.prc, utilgrid.cpy, e le chiavi secondarie lodpresc.k04, lodrapnc.k02, lodpfstd.k02


Paragrafi chiave (PROCEDURE DIVISION)

Paragrafo Scopo
apri Inizializzazione: apre file, carica configurazioni (x99-confi/x99-confi-operatore), crea pulsanti custom, prepara griglia
a4 Reset completo maschera (tab-maschera, incluso tm-cliente-portale)
a-tm-cli Accept campi testata (studio/paziente/pro/num) tramite COGS98W; gestione F6 (nuova prescrizione), F1 (config), S-F8 (browser)
a-fine-intestazione Controllo intestazione (x-controlla-intestazione)
a-fine-dati Cerca prescrizione, archiviazione automatica e verifica "Cliente su portale" via SWN070 (TASK-5278)
x2-archiviazione-automatica Scansione cartella per allegati da archiviare (C$LIST-DIRECTORY)
cerca-presc Carica la prescrizione/commessa, controllo clinica, date, data spedizione, multisede; chiama stato-commessa
stato-commessa Ricostruisce lo stato di tutte le voci della griglia leggendo gli archivi; promozione automatica a "Evasa"
a-pre-grid / a-grid / a-accept-grid Costruzione e gestione interattiva della griglia, tasti funzione, Invio sulle voci
a1-allegati Stampa allegati via COGZSD; aggiorna flag su LODCMTES/LODPRESC/LODCMAG2
a3-preparazione Sceglie il programma di preparazione (COGZ41/COGZD1/APOZD1) in base a configurazione e modalita'
a4-sblocca-commessa Rimozione blocco amministrativo (F2 con cliente speciale)
x99-confi Carica le 14 chiavi di configurazione tramite RNEWCONF
x99-confi-operatore Carica la configurazione clinica dipendente dall'operatore
accept-data-stampa Accept della data stampa allegati (F10)
call-zd7 Stampa certificato di garanzia (COGZD7) e aggiorna flag su LODCMAGG
fine / z-chiudi Chiusura file, cancellazione COGS98W, uscita programma

Regole di business principali

  1. Identificazione commessa: per prescrizione (studio/paziente/pro) o per numero commessa; se chiamato con commessa ma senza studio, risale alla prescrizione via LODPRESC chiave 4.
  2. Controllo clinica: in ambienti di gruppo, se l'operatore e' assegnato a una clinica (tm-cfg-clinica-ope), la commessa viene mostrata solo se i primi due caratteri del numero corrispondono alla clinica.
  3. Stato fasi: ogni voce della griglia deriva il proprio valore da flag specifici degli archivi del laboratorio (vedi tabella voci).
  4. Evasione automatica: se lpm-stato = "C", allegati eseguiti e (etichetta eseguita o non richiesta), lo stato viene promosso a "E" (Evasa) e riscritto su LODPRESC.
  5. Fasi condizionali: pre-progettazione, etichetta alternativa, certificato garanzia e documenti di magazzino sono visibili solo con la rispettiva configurazione.
  6. Cliente su portale (TASK-5278): se attiva-areaapp = "S", al caricamento della commessa viene interrogato ARPANAGR via SWN070 (LETTURA-KEY); se il cliente risulta registrato sul portale Areagate (rana-cliente-portale = "S"), compare l'etichetta "Cliente su portale".

Storico modifiche

Data Descrizione
2026-06-24 TASK-5278 "Cliente su portale": aggiunto campo maschera tm-cliente-portale, variabile chiave w-ana-chia, copybook utilagprg.cpy e nuova chiave di configurazione abilita/attiva-areaapp (tm-cfg-attiva-areaapp, pacchetto RNEWCONF da 13 a 14 chiavi, indice 14). In a-fine-dati, dopo l'archiviazione automatica, se la configurazione e' attiva si interroga SWN070 con operazione LETTURA-KEY (chiave = tipo "C" + codice cliente) per leggere ARPANAGR; se agprg-rana-cliente-portale = "S" viene mostrata a video l'indicazione "Cliente su portale".