Vai al contenuto

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:

  1. I saldi vengono aggiornati su COGSLPCO a livello di sottoconto, conto e mastro (paragrafi aggiornasaldo, aggiornaconto, aggiornamastr)
  2. 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 da conta1-mastro/conto/sconto (tabella generica contabilita')
  3. Il record viene scritto sull'archivio movimenti corrente (farc) e sul giornale bollato (feurlav)
  4. 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
  5. Il record viene eliminato dall'archivio non contabilizzato (cogpnonc)

Flusso principale

  1. Inizializzazione: apertura file, costruzione path archivi (GIORNA#$.ARC per giornale bollato, unipno.arc e unislpco.arc per personalizzazione "UN")
  2. Maschera introduttiva: visualizzazione esercizio corrente, richiesta conferma salvataggio archivi (SI/NO)
  3. Input data limite: accettazione data tramite COGS52 (con calendario), controllo che sia <= conta-conchiuatt9
  4. Conferma elaborazione: riepilogo criteri (data limite + data effettiva attesa), conferma SI/NO
  5. Ciclo elaborazione: scan sequenziale di cogpnonc a partire dalla chiave pnt-chia3; per ogni record: filtro data effettiva, aggiornamento saldi, scrittura archivi, eliminazione da cogpnonc
  6. Verifica quadratura: confronto totale dare/avere; errore grave se non coincidono
  7. Aggiornamento tabella esercizio: riscrittura record COGTABEL (tipo 66) senza modificare conta-dachiur
  8. 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 ignorato
  • conta-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:

  1. Sui saldi dell'esercizio corrente (pno-anno), usando pno-movm come indice mese
  2. Sui saldi dell'esercizio precedente (conta-conepre9), usando pno-effm come 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 funipno e i relativi saldi su funisal

Note implementative

  • Il programma usa PERFORM THRU in 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 directory ext-arc-dir
  • Linkage section: stringhe da WCONT.CPY/WCONT1.CPY