COGE14 — Tabella date di fatturazione¶
Sorgente: cbl/coge14.cbl | Tipo: Programma GUI standalone (gestione tabella con griglia) | Program-ID: coge14
Menu: Vendite > Fatturazione > Tabelle [Date di Fatturazione] ; Lab.Odont. > Fatturazione > Tabelle [Date di Fatturazione]
Scopo¶
Gestisce la tabella delle date di fatturazione per un anno. Per ogni mese dell'anno selezionato definisce fino a tre giorni di fatturazione impostabili dall'operatore (1a, 2a, 3a fatturazione) piu' una quarta data calcolata automaticamente come fine mese. Queste date pilotano il ciclo di fatturazione periodica: sono la griglia temporale usata dai programmi di fatturazione per stabilire quando maturano i documenti da fatturare.
I dati sono conservati nella tabella generica COGTABEL con tipo 44 (date di fatturazione); la chiave codifica anno e mese, il record porta i quattro giorni (euta-gg-1 … euta-gg-4) e le quattro date complete (euta-data-1 … euta-data-4).
La maschera mostra una griglia di 12 righe (una per mese, da Gennaio a Dicembre) con le quattro date; il dettaglio consente di modificare i giorni delle prime tre fatturazioni.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTABEL | cogtabel.k01 |
Tabella generica, tipo 44: lettura, inserimento e riscrittura delle date di fatturazione per anno/mese (carica-dati, aggiorna) |
Struttura chiave/record usata (euta-*):
- chiave euta-cod = wo-chiave (filler + anno wc-anno + mese wc-mese), con euta-tipo = 44;
- euta-gg-1/2/3/4 = giorni delle quattro date; euta-data-1/2/3/4 = date complete GGMMAAAA.
Flusso principale¶
apri— init GUI,open-files,rd-azi, definizione tasti funzione, preparazione griglia (z-prepara-tm-grid).a4— reset maschera e griglia.a-tm-anno— accept dell'anno (gestito viaCOGS52, aiuto su F8); validazione inx-controlla-tm-anno(anno >= 1980). F3 conferma.a-inizio-dati→carica-dati— per l'anno indicato calcola l'anno bisestile (imposta il fine-mese di febbraio a 28/29) e legge daCOGTABEL(tipo 44) i 12 record mese per mese; se un mese non e' codificato imposta i default (giorni 7/15/22); la quarta data e' sempre il fine mese (tfm-gg). Popola i nomi mese e costruisce la griglia (z-costruisci-grid).a-grid/a-accept-grid— navigazione griglia; INVIO/doppio click su una riga entra in modifica (se abilitatow-abi-agg), s-F4 personalizza la griglia (GRIDADMN), F3 conferma l'aggiornamento.a-riga-dettaglio→a-tm-gg1/a-tm-gg2/a-tm-gg3— accept dei tre giorni di fatturazione del mese selezionato; validazionex-controlla-tm-gg*(giorno non oltre il fine-mesetfm-gg); ESC annulla le modifiche di riga.a-riga-dettaglio-fine— conferma la riga e la riporta nella griglia (Add-Record/Modify-Record viaGRIDADMN).aggiorna— su conferma F3 dalla griglia: per i 12 mesi rileggeCOGTABELtipo 44; se il record non esiste lo crea (wr-cogtabel), poi valorizzaeuta-data-1/2/3con le date modificate eeuta-data-4con la data di fine mese e riscrive (rwr-cogtabel).fine/z-chiudi— chiusura file e uscita.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
GRIDADMN (utilgdad.cpy) |
Gestore griglia: prepara, svuota, add/modify record, personalizzazione (s-F4) |
COGS52 (utils52.cpy) |
Gestore campo data (anno) con aiuto/calendario |
COGS99 (utils99.cpy) |
Gestore controllo (subroutine controlli maschera) |
COGW52 (utilw52.cpy) |
Utilita' data correlata |
I paragrafi rd-cogtabel, wr-cogtabel, rwr-cogtabel sono routine di I/O generate (gestore tabella generato).
Note¶
- La tabella e' organizzata per anno: si opera un anno alla volta; i 12 mesi vengono sempre letti/aggiornati in blocco.
- La quarta data (
gg4) non e' editabile: e' imposta automaticamente al fine mese (tab-fine-mese, con febbraio 28/29 secondo bisestile calcolato dawo-anno = tm-anno / 4). - Se un mese non e' ancora codificato in tabella,
carica-datipropone i default 7/15/22; l'aggiornamento crea il record mancante prima di riscriverlo. - I giorni delle prime tre fatturazioni sono validati contro il numero di giorni del mese; non e' imposto un vincolo di obbligatorieta' (i controlli su "giorno non significativo" sono commentati nel sorgente, quindi il valore zero e' ammesso).