Vai al contenuto

COGV99 - Note fisse su documenti

Sorgente: cbl/cogv99.cbl | Tipo: Programma interattivo GUI (maschera a campi) | Program-ID: COGV99

Menu:

  • Sistema > Configurazione > Note Fisse su Documenti

Scopo

Gestisce le note libere/fisse da stampare sui documenti (fatture, ricevute fiscali, DDT, tentata vendita, ordini fornitore, ordini cliente). Le note sono memorizzate nell'archivio descrizioni COGDESCR con tipo SD ("Note fisse su documenti"): l'operatore seleziona a quale documento e a quale livello di dettaglio applicare la nota (tipo documento, sottotipo, causale, cliente/fornitore specifico) e ne modifica il testo tramite l'editor note.

La logica chiave e' la granularita' della chiave nota (tm-cde-cod): a seconda dei campi valorizzati la nota vale per tutti i documenti di quel tipo, oppure solo per un sottotipo/causale/anagrafica specifica. Il flag tm-cde-fl-1 governa la ricerca progressiva (se trovando una nota di dettaglio il sistema deve cercare anche le note generiche o fermarsi - vedi cde-fl-1 in cogdescr.cpy).

L'editing del testo avviene tramite la subroutine COGZDEW (editor note), che scambia il testo con un file di lavoro temporaneo (#$BOGE08.<operatore> nella tmp dir); il travaso tra COGDESCR e il file di lavoro passa da un archivio temporaneo LODTMDES locale al programma.


Struttura del programma

Maschera classica a campi (non a griglia) con controlli abilitati/resi visibili dinamicamente in base al tipo documento scelto. La struttura di lavoro tab-maschera contiene la chiave nota (tm-cde-cod con documento, tipo, causale, chiave anagrafica) e i testi note (tm-note per la maggior parte dei documenti, tm-note-ordcli per gli ordini cliente).

Inizializzazione (apri / a4)

ctr-abil, z-99-init-program, x-carica-lingua, rd-azi, open-files, get-divisa-conto. Predispone i tasti funzione (F3 conferma, F3 aggiorna, F4 cancella, F8 aiuto, F8 calendario) e costruisce il nome del file di lavoro w-ltd-nome (#$BOGE08.<w-oper>). In a4 inizializza la chiave con documento F (fattura) e tipo anagrafico cliente, prepara la combo dei tipi documento (prepara-tm-da-tipo) e attiva i controlli.

Selezione parametri chiave (paragrafi a-tm-*)

Sequenza di accept con navigazione F2/F3 sui campi che compongono la chiave della nota:

  • a-tm-documento - tipo documento macro (F fattura, R ricevuta fiscale, D DDT, V tentata vendita, O ordine fornitore, C ordine cliente), gestito via S60; determina il tipo anagrafico (k-ana-tipo-cli/k-ana-tipo-for).
  • a-tm-da-tipo - tipo documento IVA di dettaglio (combo popolata da prepara-tm-da-tipo leggendo COGTABEL tipo 68, filtrato sui euta-clifotiva che iniziano per C), gestito via COGS60W2.
  • a-tm-cde-tip-doc-d1 - sottotipo documento (per DDT: D/I/B/R...), via S60.
  • a-tm-causale - causale (F8 richiama l'help causali via send-w01, controllo su COGTABEL tipo 15).
  • a-tm-cde-ana-cod-c / a-tm-cde-ana-cod-f - cliente / fornitore specifico, gestiti via COGS65W (help F8, restituisce codice e nome).
  • a-tm-cde-fl-1 - flag ricerca note su livelli precedenti (ricerca progressiva), via S60; proposto da proponi-fl-1 in base alle note gia' presenti.

La visibilita'/abilitazione dei campi cliente, fornitore, nome e flag e' governata dai paragrafi z-cambia-tm-* in funzione della combinazione documento / tipo anagrafico / sottotipo / causale.

Composizione chiave e caricamento note (a-fine-dati / a-tm-pre-note)

x-imposta-conferma valida i campi. a-tm-pre-note compone la chiave definitiva della nota (tm-cde-cod-bis) mappando il documento sulla stringa descrittiva ("FATTURA", "RICEV.FISC.", "D.D.T.", "ORD.FOR", "ORD.CLI", ...) e riportando tipo, causale e chiave anagrafica. Apre in esclusiva LODTMDES (segnala "Funzione gia' in uso" se non riesce), travasa le descrizioni da COGDESCR a LODTMDES (carica-des) e carica il testo nell'editor tramite COGZDEW (operazione Da-file-a-zde-note), riversandolo in tm-note o tm-note-ordcli.

Editing note (a-tm-note / a-tm-note-ordcli)

Accetta il testo nota (campo multilinea). F3 conferma e salva: canc-des (cancella le note esistenti su COGDESCR) + ins-des (reinserisce dal testo editato). F4 cancella le note esistenti. La navigazione resta sul campo note fino a conferma/uscita.

Salvataggio (canc-des / ins-des)

  • canc-des: scandisce COGDESCR sulla chiave SD + tm-cde-cod-bis e cancella i record (rd-cogdescr-lk + del-cogdescr).
  • ins-des: riversa il testo dall'editor COGZDEW (operazione Da-zde-note-A-file) al file di lavoro, quindi da LODTMDES scrive i record descrizione su COGDESCR (wr-cogdescr), propagando il flag cde-fl-1 dalla scelta tm-cde-fl-1.

Chiusura (fine / z-chiudi)

z-close-files, chiusura window, chiusura e cancellazione del file temporaneo LODTMDES (delete file), cancel "COGZDEW", z-99-exit-program.


Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema (aperta via cogfiles.cpy)
COGDESCR primaria cde-chia1 (cde-tip + cde-cod + cde-pro); accesso dinamico Archivio descrizioni; qui gestito il tipo SD = note fisse su documenti (cde-fl-1 = flag ricerca progressiva)
LODTMDES primaria ltd-chia1 (ltd-tip + ltd-cod + ltd-pro); file temporaneo locale Archivio temporaneo di travaso descrizioni tra COGDESCR e l'editor note; aperto in esclusiva, cancellato in uscita
COGTABEL euta tipo 68 (tipi documento IVA), tipo 15 (causali) Popolamento combo tipo documento IVA e validazione causale (euta-cb-des, euta-cb-cli-for)

COPY incluse

Working-Storage

cogv99.wrk, k-u10.cpy, wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, wtipidoc.cpy, cogazien.cpy, utilrcnf.cpy, utilcn18.cpy, utilu01.cpy, utilu11.cpy, utilu12.cpy, utils65.cpy, utilzde.cpy, utilw01.cpy, utils52.cpy, utils54.cpy, utilu10.cpy, utilncnf.cpy, utils60w2.cpy

File section

cogv99.fd (con cogv99.select), lodtmdes.fd / lodtmdes.cpy, cogfiles.cpy

Linkage

wcont.cpy, wcont1.cpy

Procedure Division

cogv99.decla, cogv99-01.scr (screen), utipidoc.cpy, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, sendw01.cpy, lodtmdes.k01, cogv99.prc, getdcont.cpy, readconf.cpy

Le routine di I/O su COGDESCR, LODTMDES, COGTABEL (st-, rdnxt-, rd-, wr-, del-) sono incluse tramite la catena di COPY generata. La copy lodtmdes.k01 (chiave primaria della tabella temporanea) e' aggiunta manualmente, in quanto LODTMDES non e' gestita da Screens.


CALL a sottoprogrammi

Programma Scopo
COGZDEW Editor delle note (testo multilinea): scambia il testo con il file di lavoro (operazioni Da-file-a-zde-note / Da-zde-note-A-file)
COGS60W2 Gestione combo tipo documento IVA (z-s60-tm-da-tipo1)
COGS65W Help/selezione e gestione campo cliente / fornitore (z-s65-tm-cde-ana-cod-c/f)
cogu10w Determinazione divisa di conto (get-divisa-conto)

Sono inoltre usate le subroutine standard di gestione controlli GUI (S52, S54, S60, S68, S93, S95, U10) e l'help causali via send-w01 (sendw01.cpy, richiama WIN001).


Configurazioni RNEWCONF

Il programma non legge chiavi RNEWCONF nel flusso operativo. Le copy readconf.cpy, utilrcnf.cpy e utilncnf.cpy sono incluse ma i relativi paragrafi (readconf-*) non sono richiamati e la variabile ri-cfg-mod non e' utilizzata: si tratta di residui del modello di partenza non attivi.


Note tecniche

  • Granularita' della chiave nota: la chiave su COGDESCR (tm-cde-cod-bis) e' composta dinamicamente da documento + sottotipo + causale + chiave anagrafica; i campi non valorizzati vengono azzerati per ottenere note "generiche". Il flag tm-cde-fl-1 (salvato in cde-fl-1) abilita la ricerca progressiva a runtime nei programmi di stampa documenti.
  • File temporaneo esclusivo: LODTMDES e' aperto in output per verificare l'esclusivita' ("Funzione gia' in uso dall'operatore!!") e poi riaperto in I/O; il nome del file di lavoro dell'editor include l'operatore (#$BOGE08.<w-oper>). Il file viene cancellato in uscita.
  • Salvataggio distruttivo: la conferma esegue sempre canc-des seguito da ins-des (cancella tutte le note della chiave e le riscrive dal testo editato); la cancellazione (F4) esegue solo canc-des.
  • Due campi note: tm-note (2000 char) e' usato per la maggior parte dei documenti; tm-note-ordcli (8000 char) per gli ordini cliente. La visibilita' determina quale ramo di accept viene attivato (a-tm-note vs a-tm-note-ordcli).