COGC79 - Contabilizzazione con filtro data effettiva¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGC79 |
| Titolo | Contabilizza Prima Nota - solo documenti con data effettiva |
| Modulo | Contabilita' - Bilancio |
| Posizione menu | Contabilita' > Bilancio > Chiusura/Riapertura Esercizio > Contabilizz. solo doc. con data eff. |
Scopo e logica generale¶
COGC79 e' una variante della contabilizzazione di chiusura esercizio che processa solo i movimenti di prima nota con data effettiva valorizzata e di competenza dell'esercizio precedente (cioe' con pno-dataeff <= conta-conchiupre9). I movimenti privi di data effettiva o con data effettiva di competenza corrente vengono saltati.
Per ogni movimento processato:
- I saldi vengono aggiornati su COGSLPCO a livello di sottoconto, conto e mastro (paragrafi
aggiornasaldo,aggiornaconto,aggiornamastr) - Se il movimento ha data effettiva (
pno-effa <> zero) e appartiene a un conto di reddito (pco-reddito = "R"), il conto viene sostituito con il conto di transito daconta1-mastro/conto/sconto(tabella generica contabilita') - Il record viene scritto sull'archivio movimenti corrente (
farc) e sul giornale bollato (feurlav) - Se il movimento ha data effettiva, viene scritto anche sull'archivio movimenti dell'anno precedente (
farcpre) con data movimento = data effettiva e data effettiva azzerata - Il record viene eliminato dall'archivio non contabilizzato (
cogpnonc)
Flusso principale¶
- Inizializzazione: apertura file, costruzione path archivi (GIORNA#$.ARC per giornale bollato, unipno.arc e unislpco.arc per personalizzazione "UN")
- Maschera introduttiva: visualizzazione esercizio corrente, richiesta conferma salvataggio archivi (SI/NO)
- Input data limite: accettazione data tramite COGS52 (con calendario), controllo che sia
<= conta-conchiuatt9 - Conferma elaborazione: riepilogo criteri (data limite + data effettiva attesa), conferma SI/NO
- Ciclo elaborazione: scan sequenziale di
cogpnonca partire dalla chiavepnt-chia3; per ogni record: filtro data effettiva, aggiornamento saldi, scrittura archivi, eliminazione da cogpnonc - Verifica quadratura: confronto totale dare/avere; errore grave se non coincidono
- Aggiornamento tabella esercizio: riscrittura record COGTABEL (tipo 66) senza modificare
conta-dachiur - Chiusura: chiusura tutti i file
File e tabelle acceduti¶
| File | FD/Select | Modalita' | Uso |
|---|---|---|---|
| COGTABEL | cogtabel |
Input | Lettura parametri esercizio (conta-rec, tipo 66) |
| FEURTAB | feurtab |
I-O | Tabella generica (apertura/riscrittura al termine) |
| COGPNCON | cogpncon |
Input | Piano dei conti (lettura tipo conto: reddito/patrimoniale) |
| COGSLPCO | cogslpco |
I-O | Saldi per sottoconto, conto, mastro |
| COGPNONC | cogpnonc |
I-O | Prima nota non contabilizzata (lettura + delete) |
farc |
archivio dinamico | Output | Prima nota contabilizzata anno corrente |
farcpre |
archivio dinamico | Output | Prima nota contabilizzata anno precedente |
feurlav |
GIORNA#$.ARC | Output sequenziale | Giornale bollato |
funipno |
unipno.arc | I-O | Parcheggio per personalizzazione "UN" (Unione Agricoltori) |
funisal |
unislpco.arc | I-O | Parcheggio saldi per personalizzazione "UN" |
| COGE01.SEQ | masch |
Input | Maschera di sfondo (file sequenziale) |
Copybook principali¶
| Copybook | Scopo |
|---|---|
feurtab.fd |
SELECT e struttura file tabella euristica |
cogtabel.fd |
SELECT COGTABEL |
cogpncon.fd |
SELECT COGPNCON |
cogslpco.fd |
SELECT COGSLPCO |
wstato.cpy |
Variabili di stato file |
wnscr.cpy |
Gestione schermo |
wopenf.cpy |
Apertura file generica |
wgrave.cpy |
Gestione errori gravi |
cogconta.cpy |
Struttura record COGTABEL (conta-rec, conta-cones, conta-conchiupre9, conta-conepre9, conta-conchiuatt9, conta-conepre, conta1-mastro/conto/sconto) |
cogcont1.cpy |
Struttura record COGTABEL alternativa |
cogpnonc.cpy |
Struttura record prima nota (pno-rec, pno-dataeff, pno-datamov, pno-effa/effm/effg, pno-mastro, pno-conto, pno-sconto, pno-importo, pno-segno, pno-currency, pno-anno) |
cogazien.cpy |
Dati azienda (az-personal, az-ges-ip) |
utils52.cpy |
Utility COGS52 (calendario/data) |
utilu10.cpy |
Utility COGU10 (conversione valuta/editing numeri) |
k-u10.cpy |
Costanti COGU10 |
WCONT.CPY / WCONT1.CPY |
Linkage section (stringhe) |
Paragrafi chiave¶
| Paragrafo | Scopo |
|---|---|
a000 |
Inizializzazione, apertura file, costruzione path |
a005 |
Maschera: esercizio, richiesta conferma salvataggio |
a006-a007 |
Accettazione risposta SI/NO per il salvataggio |
a010-a020 |
Input data limite tramite COGS52 |
a120-a121 |
Conferma criteri di elaborazione |
a200-a215 |
Avvio ciclo: apertura giornale bollato, controllo gestione IP (ctr-prov) |
a220 |
Lettura sequenziale cogpnonc, filtro pno-dataeff e pno-datamov |
a223 |
Aggiornamento saldi (chiama aggiornasaldo, aggiornaconto, aggiornamastr) |
a225 |
Eventuale sostituzione conto con conto di transito per conti reddito con data effettiva |
a227-a250 |
Scrittura su farc, farcpre, feurlav; delete da cogpnonc |
a800 |
Verifica quadratura dare/avere, visualizzazione totali |
a850-a865 |
Aggiornamento COGTABEL (riscrittura tipo 66) |
a999 |
Chiusura file |
aggiornasaldo |
Aggiornamento saldo a livello sottoconto (con gestione valuta e doppia scrittura per data effettiva) |
aggiornaconto |
Aggiornamento saldo a livello conto |
aggiornamastr |
Aggiornamento saldo a livello mastro |
apri / ex-apri |
Sotto-procedura di apertura file (chiamata con PERFORM THRU) |
cstato / ex-cstato |
Gestione stato file (retry su 99) |
ctr-prov / ex-ctr-prov |
Controllo provisioning gestione IP (solo se az-ges-ip = "S") |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
COGS52 |
Input data con calendario |
COGU10 (via z-u10) |
Conversione valuta e editing numeri |
Logica di filtro (criterio chiave)¶
Il ciclo su cogpnonc (riga a220) applica due condizioni di filtro prima di processare un record:
if pno-dataeff = zero or
pno-dataeff > conta-conchiupre9
go to a220 (salta il record)
if pno-datamov > datacor
go to a800 (fine elaborazione)
pno-dataeff: data effettiva del movimento; se assente o successiva alla chiusura precedente, il record viene ignoratoconta-conchiupre9: data di chiusura dell'esercizio precedente in formato 9(8) (da COGTABEL)datacor: data limite inserita dall'operatore (in formato 9(8))
Gestione conti di reddito con data effettiva¶
Quando un movimento ha pno-effa <> zero (data effettiva valorizzata) e il conto e' classificato come reddito (pco-reddito = "R"), il conto di destinazione viene sostituito con quello di transito configurato (conta1-mastro, conta1-conto, conta1-sconto). Questo permette di transitare il saldo sul conto di chiusura dell'esercizio, anziche' lasciarlo sul conto di reddito originale.
Aggiornamento doppio saldi per data effettiva¶
Per i movimenti con pno-effa <> zero, aggiornasaldo aggiorna i saldi due volte:
- Sui saldi dell'esercizio corrente (
pno-anno), usandopno-movmcome indice mese - Sui saldi dell'esercizio precedente (
conta-conepre9), usandopno-effmcome indice mese
Lo stesso movimento viene quindi contabilizzato nel mese di competenza dell'anno precedente.
Personalizzazione "Unione Agricoltori" (az-personal = "UN")¶
Quando az-personal = "UN":
- Vengono aperti due archivi aggiuntivi (
funipno,funisal) - I movimenti con mastro=28 e conto=01 vengono duplicati su
funipnoe i relativi saldi sufunisal
Note implementative¶
- Il programma usa
PERFORM THRUin alcuni punti (es.apri thru ex-apri,cstato thru ex-cstato,aggiornasaldo thru ex-aggiornasaldo) — comportamento legacy, non modificare senza verifica - Non aggiorna
conta-dachiur(riga commentata***ZZ move datacor to conta-dachiur) a differenza della contabilizzazione ordinaria - La data limite viene acquisita con COGS52 e memorizzata in
dataco/datacor(formato 9(8)) - Il giornale bollato (
GIORNA#$.ARC) viene creato nella directoryext-arc-dir - Linkage section:
stringhedaWCONT.CPY/WCONT1.CPY