Vai al contenuto

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-prestazione verifica 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 interna tm-tab (fino a k-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 globale b-aggiorna).
  • a-riga-dettaglio / a-tm-materiale / a-tm-um / a-tm-qta / a-tm-coeff-tempo: dettaglio riga; a-tm-materiale verifica il materiale (COGMERCI), imposta UM (eventuale UM di produzione da COGMERA2); a-tm-um valida l'UM (COGTABEL tipo 79) e converte via COGG31 se diversa dall'UM merce; a-tm-qta esige quantita' > 0; a-tm-coeff-tempo sceglie forfettario/unitario. a-fine-dettaglio conferma 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 e rwr-cogdbagg in caso di materiale ripetuto).
  • aggiungi-dati: importa da COGDBAGG i materiali della prestazione sorgente scelta con COGX40 (cogx40-merce), validandoli con x-controlla-dettaglio prima 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 in cogdbagg.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" e cogz19-caller valorizzato: in modalita' chiamata l'uscita (ESC) e la conferma (F3) tornano al chiamante invece di riproporre la maschera.
  • La costante k-max-ele-tab = 200 limita il numero di materiali per prestazione; al superamento viene mostrato un avviso.