COGZ19 - Collegamento materiali a prestazione¶
Sorgente: cbl/cogz19.cbl | Program-ID: COGZ19 | Tipo: Programma interattivo con griglia (distinta base servizio, richiamabile da chiamante)
Menu: Lab.Odont. > Archivi > Materiali/Prestazioni > Collegamenti Prestazione->Materiale
Scopo¶
Definisce, per una prestazione (merce di classe "S", servizio), l'elenco dei materiali consumati con la relativa unita' di misura, quantita' e modalita' di calcolo del tempo standard (forfettario/unitario). E' di fatto la distinta base della prestazione per il laboratorio odontotecnico.
I collegamenti sono memorizzati in COGDBAGG con tipo record "L" (dbg-tip = "L"): la chiave lega la prestazione (dbg-db) al materiale componente (dbg-comp); nella redefine "L" del record sono conservati quantita' (dbg-l-qta), unita' di misura (dbg-l-um) e coefficiente tempo (dbg-l-coeff-tempo).
L'operatore seleziona la prestazione (subroutine di ricerca merce COGS68W), il programma legge da COGDBAGG i materiali gia' collegati e li mostra in griglia; permette inserimento/modifica/eliminazione riga e, con F3, riscrive l'intero blocco (b-aggiorna: cancella i vecchi record "L" e reinserisce quelli correnti). E' presente la funzione SF1 "copia da" che, tramite COGX40, importa i materiali di un'altra prestazione (aggiungi-dati).
Il programma e' richiamabile da altri moduli tramite UTILCOGZ19.CPY (cogz19-called = COGZ19): in tal caso entra direttamente sulla prestazione passata (cogz19-prestazione) e, all'uscita/aggiornamento, ritorna al chiamante anziche' ripresentare la maschera.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda (cogfiles.cpy) |
| COGDBAGG | ISAM | I-O | Dati aggiuntivi distinta base; qui tipo "L" prestazione->materiale (dbg-db, dbg-comp, dbg-l-qta, dbg-l-um, dbg-l-coeff-tempo) |
| COGMERCI | ISAM | Input | Anagrafica merci: verifica prestazione (classe "S") e materiali, recupero descrizione/classe/UM (mer-chia, mer-classe, mer-um, mer-descr) |
| COGMERA2 | ISAM | Input | Dati merce aggiuntivi: UM di produzione del materiale (ma2-merce, ma2-um-prod) |
| COGTABEL | ISAM | Input | Tabelle generiche: validazione unita' di misura (euta-tipo = 79, euta-cod) |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
cogz19.select, cogz19.fd, cogz19.wrk, cogz19-01.scr, cogz19.decla, cogz19.prc |
Screen Designer |
feurtab.fd, cogfiles.cpy |
FEURTAB |
wgrave, wnscr, wopenf, wstato, cogazien |
Working storage standard + dati azienda |
wgrid, utilgdad, utilgrid |
Gestione griglia (GRIDADMN) |
utild89 |
Linkage COGD89 (aiuto unita' di misura, F8) |
utilg31 |
Linkage COGG31 (conversione unita' di misura) |
utils68 |
Linkage COGS68W (ricerca merce prestazione/materiale) |
utilu20 |
Linkage subroutine utility (accept quantita') |
utilcogx40 |
Linkage COGX40 (copia materiali da altra prestazione) |
utilcogz19 |
Linkage di chiamata dal programma chiamante (cogz19-called, cogz19-prestazione) |
wcont, wcont1 |
Linkage di chiamata |
grave, mmmask, opengen, stato1, stato, winmsg |
Copybook di fine procedure |
Logica¶
- apri / main: init, lettura eventuali dati di chiamata da
UTILCOGZ19(cogz19-called/cogz19-caller/cogz19-prestazione), tasti (SF1 copia-da, invio-modifica, F3 aggiorna/conferma, SF4 griglia, ctrl-A aggiungi, ctrl-E elimina, F8 aiuto, F9 ricerca avanzata), prepara le ricerche COGS68W su prestazione e materiale,z-prepara-tm-grid,z-costruisci-controlli. - a4: reset griglia e maschera; se chiamato porta la prestazione passata e la valida (
x-controlla-tm-prestazione);z-carica-controlli,z-costruisci-grid. - a-tm-prestazione: accept della prestazione via COGS68W;
x-controlla-tm-prestazioneverifica che la merce esista e sia di classe "S" (servizio). - a-fine-dati:
x-controlla-dati, poi legge da COGDBAGG (st-cogdbagg-notmin+rdnxt-cogdbagg) tutti i record "L" della prestazione, ricava per ciascuno descrizione/classe/UM da COGMERCI e popola la tabella internatm-tab(fino ak-max-ele-tab= 200 righe). - a30 / a-grid / a-accept-grid: costruisce e mostra la griglia, ne accetta gli eventi; SF4 (personalizza griglia GRIDADMN), invio (modifica riga), ctrl-A (inserimento), ctrl-E (eliminazione con compattamento tabella), SF1 (
COGX40+aggiungi-dati), F3 (conferma globaleb-aggiorna). - a-riga-dettaglio / a-tm-materiale / a-tm-um / a-tm-qta / a-tm-coeff-tempo: dettaglio riga;
a-tm-materialeverifica il materiale (COGMERCI), imposta UM (eventuale UM di produzione da COGMERA2);a-tm-umvalida l'UM (COGTABEL tipo 79) e converte viaCOGG31se diversa dall'UM merce;a-tm-qtaesige quantita' > 0;a-tm-coeff-temposceglie forfettario/unitario.a-fine-dettaglioconferma e aggiorna la griglia. - b-aggiorna / b1-cancella: al F3 globale cancella tutti i record "L" della prestazione (
del-cogdbagg) e reinserisce le righe correnti (wr-cogdbagg, con avviso erwr-cogdbaggin caso di materiale ripetuto). - aggiungi-dati: importa da COGDBAGG i materiali della prestazione sorgente scelta con COGX40 (
cogx40-merce), validandoli conx-controlla-dettaglioprima di accodarli. - fine / z-chiudi:
z-close-files, chiusura finestra,z-99-exit-program,exit program; se richiamato da chiamante l'uscita torna al chiamante.
CALL¶
| Programma | Scopo |
|---|---|
GRIDADMN |
Gestione/personalizzazione della griglia (prepara, add/modify record, svuota) |
COGX40 |
Selezione della prestazione sorgente da cui copiare i materiali (SF1) |
COGD89 |
Aiuto/ricerca unita' di misura (F8 su UM) |
COGG31 |
Conversione tra unita' di misura del materiale (convert.um) |
COGS68W |
Ricerca merce (prestazione e materiale), attivata via copybook utils68 |
Note¶
- I collegamenti sono record
dbg-tip = "L"di COGDBAGG (distinte base): la stessa tabella ospita altri tipi ("N" note, "S" sostituti, "A" allegati di vendita, ecc.) documentati incogdbagg.cpy. - La prestazione deve essere una merce di classe "S" (servizio); un materiale non puo' coincidere con la prestazione stessa e non puo' essere ripetuto nella lista.
- Il coefficiente tempo (
tm-coeff-tempo) e' inizializzato a "F" (forfettario) in inserimento e visualizzato come "Forfettario"/"Unitario" in griglia. - Richiamabile da chiamante via
cogz19-called = "COGZ19"ecogz19-callervalorizzato: in modalita' chiamata l'uscita (ESC) e la conferma (F3) tornano al chiamante invece di riproporre la maschera. - La costante
k-max-ele-tab = 200limita il numero di materiali per prestazione; al superamento viene mostrato un avviso.