Vai al contenuto

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-1euta-gg-4) e le quattro date complete (euta-data-1euta-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

  1. apri — init GUI, open-files, rd-azi, definizione tasti funzione, preparazione griglia (z-prepara-tm-grid).
  2. a4 — reset maschera e griglia.
  3. a-tm-anno — accept dell'anno (gestito via COGS52, aiuto su F8); validazione in x-controlla-tm-anno (anno >= 1980). F3 conferma.
  4. a-inizio-daticarica-dati — per l'anno indicato calcola l'anno bisestile (imposta il fine-mese di febbraio a 28/29) e legge da COGTABEL (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).
  5. a-grid / a-accept-grid — navigazione griglia; INVIO/doppio click su una riga entra in modifica (se abilitato w-abi-agg), s-F4 personalizza la griglia (GRIDADMN), F3 conferma l'aggiornamento.
  6. a-riga-dettaglioa-tm-gg1 / a-tm-gg2 / a-tm-gg3 — accept dei tre giorni di fatturazione del mese selezionato; validazione x-controlla-tm-gg* (giorno non oltre il fine-mese tfm-gg); ESC annulla le modifiche di riga.
  7. a-riga-dettaglio-fine — conferma la riga e la riporta nella griglia (Add-Record/Modify-Record via GRIDADMN).
  8. aggiorna — su conferma F3 dalla griglia: per i 12 mesi rilegge COGTABEL tipo 44; se il record non esiste lo crea (wr-cogtabel), poi valorizza euta-data-1/2/3 con le date modificate e euta-data-4 con la data di fine mese e riscrive (rwr-cogtabel).
  9. 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 da wo-anno = tm-anno / 4).
  • Se un mese non e' ancora codificato in tabella, carica-dati propone 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).