Vai al contenuto

COGZ33 — Statistiche Costi & Ricavi

Campo Valore
Sorgente cbl/cogz33.cbl
Program-ID cogz33
Tipo Visualizzazione statistica (griglia riepilogativa)
Posizione menu Lab.Odont. > Operativo > Visualizzazioni > Costi & Ricavi

Scopo

Calcola e visualizza il riepilogo di costi e ricavi delle commesse del laboratorio odontotecnico in un intervallo di date. Per ogni prescrizione selezionata somma i costi (mano d'opera e materiali) e i ricavi (prestazioni e materiali) e produce una griglia riepilogativa a 4 righe (Mano d'opera, Materiali, Prestazioni, Totale) con colonne Costi, Ricavi, Utile e percentuale. E' una funzione di consultazione dalla quale si accede al dettaglio della singola commessa (F8), alla scomposizione per reparto (F7) e al dettaglio economico (F5).

I filtri della testata sono: data inizio/fine consegna, studio (tm-stu-cod), tipo lavoro con inclusione/esclusione (tm-sel-tip-lav/tm-esc-tip-lav/tm-tip-lav) e stato commessa aperte/chiuse (tm-comm-aperte/tm-comm-chiuse).

Struttura e flusso

  • apri — init, open-files, rd-azi, costruzione dei nomi dei transiti temporanei (w-nome-trs = COGTRANS per commessa, w-nome-trs2 = COGTRANS2 per reparto), lettura divisa di conto via COGU10W (GetDivisaConto), definizione tasti funzione (SF4, F3, F8 aiuto/calendario, F5 dettaglio), bitmap/pulsanti custom (F8 Dettaglio Commessa, F7 Scomponi per reparto).
  • a4 — apre in output/i-o i transiti COGTRANS/COGTRANS2 con lock di funzione per operatore, imposta date di default (intervallo di 7 giorni da oggi tramite DTPRG/PRGDT) e i default dei filtri.
  • a-tm-data-ini / a-tm-data-fin / a-tm-stu-cod / a-tm-tip-lav / a-tm-comm-aperte / a-tm-comm-chiuse — accept dei filtri (date via COGS52/calendario, studio via COGS65W, flag via COGS95).
  • a-fine-intestazione — validazione, poi elabora; se non c'e' alcun valore avvisa "Nessun valore trovato".
  • elabora — cuore del programma: scandisce LODPRESC sulla chiave data (chia3) nell'intervallo, applicando i filtri stato/tipo lavoro/studio. Per ogni commessa selezionata chiama COGZS5 (che restituisce la scomposizione economica: zs5-costo-man-opera, zs5-costo-materiali, zs5-ricavo-prestazioni, zs5-ricavo-materiali, piu' i totali per reparto in zs5-tr-*). Accumula i totali generali (tm-costo-*/tm-ricavo-*/tm-differenza), scrive un record per commessa sul transito COGTRANS (con studio, descrizione da COGGEANA, reparto da LODCMTES) e aggiorna gli aggregati per reparto sul transito COGTRANS2.
  • z-costruisci-grid — costruisce la griglia riepilogativa a 4 righe (tab-des: Mano d'opera / Materiali / Prestazioni / Totale) con importi editati via COGU10W; la riga Totale e' evidenziata (gdad-row-hl).
  • a-grid / a-accept-grid — loop di griglia; F8 richiama COGZ34 (dettaglio commessa, passa w-nrec), F7 richiama COGZ35 (scomposizione per reparto), F5 richiama COGZCN (dettaglio economico), SF4 la personalizzazione colonne.
  • fine / z-chiudi — chiusura file, delete file dei due transiti, cancel di COGZS5, uscita.

File e tabelle

Tabella Accesso Descrizione
COGTRANS (trs-) temporaneo indicizzato, i-o (delete file) Un record per commessa: costi/ricavi (mano d'opera, materiali, prestazioni), totali, differenza, percentuale, studio, reparto. Chiave trs-commessa
COGTRANS2 (trs2-) temporaneo indicizzato, i-o (delete file) Aggregati per reparto (trs2-reparto)
LODPRESC (lpm-) lettura (chiavi .k03 per data, .k04) Prescrizione/commessa (stato, tipo lavoro, medico)
LODCMTES (lct-) lettura Testata commessa (reparto)
COGGEANA (ana-) lettura Anagrafica studio (nome)

Copybook principali

Copybook Ruolo
cogz33.select/.fd/.wrk/.prc/.decla, cogz33-01.scr Definizioni generate e screen section
k-u10.cpy, utilu10.cpy Costanti e interfaccia divisa/editing importi (COGU10W)
utilzs5.cpy Interfaccia a COGZS5 (scomposizione economica commessa)
utilz34.cpy, utilz35.cpy, utilcogzcn.cpy Interfacce a COGZ34, COGZ35, COGZCN
utils52, utils65, utilw80, utilgdad Gestori campo/aiuto/griglia
cogz33.decla, chiavi lodpresc.k03, lodpresc.k04, cogtrans.k01, cogtran2.k01 Declaratives e chiavi secondarie (a fine procedure division)
mmmask.cpy, cogazien.cpy, wstato, wopenf, wgrave, wnscr Infrastruttura maschera GUI

Programmi chiamati

Programma Interfaccia Scopo
COGZS5 util-zs5 Scomposizione costi/ricavi della commessa (nucleo di calcolo)
COGZ34 util-z34 Dettaglio commessa (F8)
COGZ35 util-z35 Scomposizione per reparto (F7)
COGZCN util-cogzcn Dettaglio economico commessa (F5)
COGU10W util-u10 Divisa di conto ed editing importi
COGS52 util-s52 Gestore campo data
COGS65W util-s65 Aiuto/ricerca studio
GRIDADMN util-gdad Personalizzazione griglia (SF4)
DTPRG / PRGDT Conversione data <-> progressivo giorni

Note

  • Il nucleo del calcolo economico non e' in COGZ33 ma nella subroutine COGZS5: COGZ33 orchestra la scansione delle prescrizioni, l'accumulo dei totali e la costruzione dei due transiti (per commessa e per reparto). Il parametro zs5-scrivi-dettaglio vale "S" per la prima commessa e "A" (accumula) per le successive.
  • I due transiti temporanei sono aperti in output all'ingresso per verificare che la funzione non sia gia' in uso dallo stesso operatore, e vengono cancellati in uscita.
  • Gli importi sono espressi nella divisa di conto (w-currency-conto) letta all'avvio da COGU10W.

Storico modifiche

  • 220508: la differenza per commessa nel transito e' ricalcolata come ricavi - costi (trs-differenza) anziche' copiata dal totale generale.
  • Autore: Andrea Parmeggiani (Eurosystem). Conversione Windows: Claudio, 24/02/2006.