Vai al contenuto

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.