COGZ1A — Gestione impegni su commessa (Impegni Semplificati)
| Campo |
Valore |
| Sorgente |
cbl/cogz1a.cbl |
| Program-ID |
cogz1a |
| Tipo |
Maschera GUI con griglia editabile |
| Posizione menu |
Lab.Odont. > Operativo > Impegni > Impegni Semplificati > Gestione impegni su commessa |
Scopo
Consente di gestire manualmente gli impegni di produzione di una singola commessa nell'ambito della gestione "Impegni Semplificati". A partire dalla prescrizione/commessa selezionata, mostra in griglia le righe di impegno (una per sede/reparto/mansione/data con il relativo numero di elementi) e permette di aggiungere, modificare o cancellare righe; calcola il minutaggio impegnato per riga e il totale della commessa. Facoltativamente puo' innescare (F9) il ricalcolo/generazione automatica degli impegni per reparto/data tramite COGZ1B.
La funzione e' attiva solo quando la configurazione labimp / is-modo vale "B" (gestione impegni semplificata); altrimenti il programma esce con un avviso.
Puo' essere avviato dal menu o richiamato da altro programma (cogz1a-called = program-id) passando commessa o prescrizione in linkage.
Struttura e flusso
- apri: init standard,
rd-azi, lettura configurazione (x99-confi) e verifica di is-modo = "B"; open-files; se richiamato legge commessa/prescrizione dalla linkage (util-cogz1a); attiva i tasti funzione (F1 configura, F3 conferma/aggiorna, F8 aiuto, F9 ricerca avanzata, aggiungi/elimina riga, esporta Excel, personalizza griglia); costruisce menu contestuale, bitmap e pulsante custom "Commessa (F5)"; prepara la griglia.
- a4: inizializza; se richiamato carica la prescrizione (
LODPRESC chiave chia4 per commessa, oppure chiave primaria per studio/paziente/progressivo) e l'anagrafica cliente (COGGEANA); imposta l'ordinamento predefinito (data, sede) e carica l'eventuale filtro di default.
- a-tm-cli: accept della prescrizione delegato alla subroutine
COGS98W (z-s98-tm-presc); l'esito ("exit"/"prev"/"next") governa il flusso.
- x-controlla-commessa: verifica che la commessa (
tm-num) esista su LODPRESC (chiave chia4).
- a-leggi-dati: apre il transito di griglia, lo crea (
z-grid-det-crea-transito) e lo riordina.
- z-grid-det-crea-transito: scandisce
LODCARSP per commessa (csp-com = tm-num) e per ciascun impegno popola la griglia (z-grid-det-riempi-campi-t-gor): descrizione sede (COGMAGAZ), reparto (COGTABEL tipo 85), mansione/sottoreparto (LODTABEL tipo 11), impegno massimo unitario (LODIMPRS, irs-imp-max); calcola i minuti (elementi * imp-max) e accumula il totale (tm-impegno-tot9).
- a-grid: gestione griglia. Colonne editabili validate riga per riga (
x-controlla-tm-r-sede/rep/srp/data/impegno); aiuti su sede (send-w36), reparto (send-w80 tipo 85), mansione (send-wz19). CTRL-A aggiunge una riga (default sede corrente e data odierna), CTRL-E marca/smarca la cancellazione (flag tm-r-fl-agg = "C").
- F3 (aggiorna): valida tutte le righe (
x-controlla-grid-det-tutto), chiede conferma e salva (b-aggiorna).
- b-aggiorna: per ogni riga di transito, se marcata "C" cancella il record
LODCARSP (c-cancella); se la chiave sede/reparto/mansione/data e' invariata modifica l'impegno (b-aggiorna-record); altrimenti cancella il vecchio e inserisce il nuovo (b-inserisci-record). Se ci sono stati aggiornamenti, azzera il flag "estratta" della prescrizione (lpm-fl-estratta = "N") per forzare la riestrazione B.I.
- F9 (ricerca avanzata / COGZ1B): per la riga corrente (sede/reparto/data significativi) conteggia i sottoreparti presenti (
f91-conteggio), chiama COGZ1B passando la tabella sottoreparto/elementi, e riporta in griglia le modifiche/inserimenti (f92-aggio-griglia), marcando come cancellate le righe residue senza mansione.
- fine / z-chiudi: chiude e cancella il transito,
cancel "COGS98W", distrugge il menu, esce.
File e tabelle
| Tabella |
Accesso |
Descrizione |
LODCARSP (csp-) |
Lettura/scrittura/riscrittura/cancellazione (chiave csp-com) |
Impegni su commessa: commessa, sede, reparto (csp-rep), sottoreparto (csp-srp), data, numero elementi (csp-impegno) |
LODPRESC (lpm-) |
Lettura (chiave primaria e chia4), riscrittura con lock |
Prescrizione/commessa: cliente, paziente, numero commessa, flag estratta B.I. |
LODIMPRS (irs-) |
Lettura |
Impegno massimo unitario per sede/reparto/sottoreparto (irs-imp-max) |
COGMAGAZ (magz-) |
Lettura |
Anagrafica sede/magazzino (nome) |
COGMAGAG (magg-) |
Lettura |
Dati aggiuntivi magazzino: flag "sede operativa" (magg-fl-sede-operativa) |
COGTABEL (euta-) |
Lettura |
Descrizione reparto (tipo 85) |
LODTABEL (lta-) |
Lettura |
Descrizione mansione/sottoreparto (tipo 11) |
COGGEANA (ana-) |
Lettura |
Anagrafica cliente (nome) |
t-grid-det |
File transito di griglia (i-o) |
Righe della griglia (una per impegno, con valori "old" per il diff in salvataggio) |
Copybook principali
| Copybook |
Ruolo |
cogz1a.select / cogz1a.fd / cogz1a.wrk / cogz1a.tm / cogz1a.prc / cogz1a.decla / cogz1a-01.scr |
Componenti generati da Screen Designer |
cogz1a.imppredf / cogz1a.imppredf-wrk / utilimppredf.cpy |
Filtri predefiniti |
k-tipi-cogtabel.cpy |
Costanti tipo tabella (es. tipo cliente) |
wgrid.cpy, utilgdad.cpy |
Infrastruttura griglia + GRIDADMN |
utils52.cpy, utilwz19.cpy, utilw36.cpy, utilw80.cpy, utils98.cpy, utilu10.cpy, utilu20.cpy |
Interfacce utility / aiuti |
utilncnf.cpy |
Lettura configurazioni |
utilcogz1b.cpy |
Linkage di COGZ1B (tabella sottoreparto/elementi) |
utilcogz1a.cpy |
Linkage di chiamata (commessa/prescrizione) |
lodpresc.k04 |
Chiave secondaria LODPRESC (per numero commessa) |
sendw36, sendwz19, sendw80 |
Routine di aiuto sede/mansione/reparto |
wstato, wopenf, wgrave, wnscr, cogazien |
Working storage standard + dati azienda |
grave, mmmask, opengen, stato, stato1, winmsg |
Copybook di fine procedure |
Programmi chiamati
| Programma |
Interfaccia |
Scopo |
COGS98W |
utils98.cpy (util-s98) |
Ricerca / selezione prescrizione-commessa |
COGZ1B |
utilcogz1b.cpy (util-cogz1b) |
Calcolo/generazione impegni per reparto+data da una lista di mansioni (F9) |
COGW36 (via send-w36) |
utilw36.cpy |
Aiuto sede |
COGW80 (via send-w80) |
utilw80.cpy |
Aiuto reparto (tipo 85) |
COGWZ19 (via send-wz19) |
utilwz19.cpy |
Aiuto mansione/sottoreparto |
GRIDADMN |
utilgdad.cpy |
Personalizzazione/gestione griglia |
RNEWCONF |
utilncnf.cpy |
Lettura configurazioni |
Configurazioni (RNEWCONF)
| Gruppo |
Chiave |
Uso |
labimp |
is-modo (sudd. az-main-mag) |
Deve valere "B" (gestione impegni semplificata) perche' la funzione sia attiva (tm-cfg-is-modo) |
Note
- Il salvataggio in griglia usa un pattern "diff": ogni riga di transito conserva i valori "old" (sede/reparto/mansione/data) per decidere se aggiornare in place, cancellare+inserire o cancellare il record
LODCARSP.
- Il controllo "sede operativa" e' passato da
magz-fl-sede al nuovo campo magg-fl-sede-operativa di COGMAGAG (TASK-4553, 07/04/2026); in precedenza era stato disattivato per l'esigenza di piu' magazzini sotto un'unica sede (TASK-1157, 05/05/2025). Sono presenti come marcatori a margine nel sorgente.
- Il minutaggio impegnato per riga e'
elementi * imp-max (impegno massimo unitario da LODIMPRS), sommato in tm-impegno-tot.
COGZ1B e' il modulo di supporto che, dato reparto/sede/data e una tabella di mansioni con relativi elementi, restituisce la ripartizione degli impegni riportata poi in griglia.