Vai al contenuto

COGH06 -- Riclassificazione da Saldi

Sorgente: cbl/cogh06.cbl | Tipo: Programma interattivo + elaborazione batch | Program-ID: COGH06

Menu: Contabilita' > Bilancio > Riclass. IV Direttiva C.E.E. > Riclassificazione Da Saldi


Scopo

Produce i dati di riclassificazione bilancio IV Direttiva CEE partendo dai saldi contabili. Scansiona COGSLPCO (saldi per conto), integra la partita nota non contabilizzata (COGPNONC) e opzionalmente l'esercizio precedente (COGCOPRE/COGCOATT), quindi popola file di lavoro temporanei (lavsal, lavric, lavlav) usati dalla successiva stampa. Puo' essere chiamato anche da altri programmi (interfaccia utilcogh06.cpy).


File e Tabelle

File/Tabella Copybook Uso
COGTABEL feurtab.fd, cogfiles.cpy Tabella generica (tipo 66: esercizio, tipo AF: anni precedenti)
COGPCCEE cogh06.select, cogh06.fd Schema di riclassificazione CEE
COGSLPCO cogh06.select Saldi per conto -- input principale
COGPNONC cogh06.select Partita nota non contabilizzata
COGPNCON cogh06.select Piano dei conti (aggancio conti a voci CEE)
COGCOPRE cogcopre.fd, cogcopre.cpy Contabilizzata esercizio precedente (raffronto)
COGCOATT cogcoatt.fd, cogcoatt.cpy Contabilizzata esercizio attuale
lavsal (definito localmente) File lavoro saldi per conto con importi convertiti in divisa
lavric (definito localmente) File lavoro riclassificazione con dare/avere/saldo per voce CEE
lavlav (definito localmente) File lavoro elaborazione con descrizioni
filseq (definito localmente) File sequenziale di log errori (conti non collegati)

I file temporanei vengono creati nella directory ext-tmp-dir con nomi fissi: - #$sald.arc (lavsal) - #$ricl.arc (lavric) - #$oper.arc (lavlav) - #$ceesco_err_<operatore>.txt (filseq -- log errori)


Interfaccia utente

Maschera (tab-maschera)

Campo Tipo Descrizione
tm-modello 9(03) Codice modello di riclassificazione
tm-desc1 x(40) Descrizione modello
tm-quadro 9(02) Codice quadro (0 = tutti)
tm-desc2 x(26) Descrizione quadro
tm-data 9(08) Data situazione contabile (AAAAMMGG)
tm-raffr x(01) Raffronto anno precedente (S/N)
tm-provvisoria x(01) Include partita nota provvisoria (S/N)
tm-divisa x(02) Divisa di riferimento per conversione importi
tm-divisa-des x(25) Descrizione divisa
tm-r-anno-prec x(01) Flag raffronto (copia di tm-raffr per uso interno)
tm-a-data 9(08) Data alternativa per raffronto precedente
tm-esercizio-prec x(20) Descrizione esercizio precedente (aggiunta 171022)
tm-escl-ndoc1..4 9(06) x4 Numeri documenti di chiusura da escludere (letti da COGTABEL tipo "AF")

Struttura del programma

Flusso principale

  1. Inizializzazione (apri): apertura file temporanei (output -> i-o), lettura COGTABEL tipo 66 per esercizio corrente, apertura file P.N. contabilizzata tramite open-pn-contabilizzata, configurazione tasti (F3, F8-calendario, F8-aiuto)
  2. Modalita' chiamata esterna: se cogh06-called = k-program-id, carica parametri da utilcogh06 e salta a a032-a (bypass input manuale)
  3. Input parametri: a-tm-modello, a-tm-quadro, a-tm-data, a-tm-raffr, a-tm-provvisoria, a-tm-divisa
  4. Conferma (a-riga-fine): validazione globale, conferma utente, avvio elaborazione
  5. Fase 1 -- Saldi esercizio corrente (a017-a019): scan COGSLPCO per anno = anno-attuale, conversione importi tramite COGU10W, scrittura su lavsal
  6. Fase 2 -- Partita nota non contabilizzata (a020-a024): scan COGPNONC, filtro su pno-fl-pro e tm-provvisoria, conversione importi, aggiornamento saldi (agg-saldo/agg-conto)
  7. Fase 3 -- P.N. contabilizzata anno precedente (a026-a031, solo se tm-raffr = "S"): scan COGCOPRE con esclusione documenti di chiusura (letti da COGTABEL tipo "AF"), scan COGCOATT
  8. Fase 4 -- Riclassificazione (a032 in poi): abbina saldi ai conti CEE, popola lavric e lavlav
  9. Chiusura (fine): chiusura file, stampa report errori

Conversione importi (COGU10W)

Per ogni saldo/movimento, se la divisa del conto (con-currency, pno-currency, pre-currency) differisce dalla divisa richiesta (tm-divisa), viene chiamato COGU10W con operazione k-u10-cambio per convertire l'importo.

Esclusione documenti di chiusura

Quando tm-raffr = "S" e si scansiona COGCOPRE per l'anno precedente, il programma legge da COGTABEL tipo "AF" (con codice = anno precedente) i numeri di documento da escludere: - euta-doc-reddito -> tm-escl-ndoc1 - euta-doc-patrimoniale -> tm-escl-ndoc2 - euta-doc-reddito2 -> tm-escl-ndoc1-2 (aggiunto 210115) - euta-doc-patrimoniale2 -> tm-escl-ndoc2-2 (aggiunto 210115) - euta-doc-patrimoniale3 -> tm-escl-ndoc2-3 (aggiunto 010621) - euta-doc-utile-perdita -> tm-escl-ndoc4 (aggiunto 130520)

Interfaccia di chiamata esterna (utilcogh06.cpy)

Campo Descrizione
cogh06-called k-program-id per attivare modalita' chiamata
cogh06-modello Modello da usare
cogh06-quadro Quadro da usare
cogh06-nome-file-saldi Path file lavoro saldi (sovrascrive nf-lavsal)
cogh06-raffr Flag raffronto anno precedente
cogh06-da-data Data inizio periodo di raffronto (aggiunto 250526 per TASK-5149). Se valorizzata, in calc-anno-prec viene usata al posto del 01/01 dell'anno precedente; in calc-pnota-provv rimpiazza la data 01/01. Se a zero il comportamento e' invariato.
cogh06-a-data Data alternativa (estremo superiore del periodo)
cogh06-anno Anno elaborazione
cogh06-pnota-prov Flag include provvisoria (aggiunto 111224)

Verifica P.N. non contabilizzata quadrata

Dopo aver elaborato COGPNONC, il programma verifica totdare = totavere. Se non coincidono, visualizza un avviso (non blocca l'elaborazione).


Programmi chiamati (CALL)

Programma Scopo
COGU10W Conversione importi tra divise (k-u10-cambio)
COGE22 Selezione divisa (F8 sul campo divisa)
COGS52W Calendario (F8 sui campi data)

Copybook utilizzate

Copybook Contenuto
cogh06.select SELECT dei file principali
cogh06.fd FD dei file
cogh06.wrk Working storage maschera
cogh06.decla Declaratives
cogh06-01.scr Maschera principale
cogfiles.cpy Record FD feurtab
cogcopre.cpy, cogcopre.fd Struttura P.N. contabilizzata precedente
cogcoatt.cpy, cogcoatt.fd Struttura P.N. contabilizzata attuale
k-u10.cpy Costanti COGU10W
cogazien.cpy Dati azienda
cogconta.cpy Struttura conti
utile22.cpy Interfaccia COGE22 (divisa)
utils52.cpy Interfaccia COGS52W (calendario)
utilu10.cpy Interfaccia COGU10W
utilopenfile.cpy Apertura file P.N. contabilizzata
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy Working storage comuni
wcont.cpy, utilcogh06.cpy, wcont1.cpy Linkage section

Note tecniche

  • I file temporanei lavsal, lavric, lavlav vengono ricreati a ogni elaborazione (open output + close + open i-o).
  • Il file di log errori filseq (sequenziale binario) contiene i conti presenti nei saldi ma non agganciati allo schema CEE.
  • Le righe con prefisso 210115, 130520, 010621, 171022, 111224 identificano modifiche storiche per gestire casi particolari nell'esclusione documenti di chiusura.
  • L'area save-cogh06-area (x(500)) viene usata per preservare il contenuto di util-cogh06 durante la modalita' chiamata esterna.
  • Il programma usa COGCOPRE (esercizio precedente) e COGCOATT (esercizio attuale) per il raffronto; entrambi vengono aperti in input.
  • TASK-5149 (250526): aggiunto parametro cogh06-da-data per consentire un raffronto su intervallo personalizzato. Quando il programma e' chiamato dal Bilancio (COG008) con bilancio parziale (tm-bil-parz = "S"), COG008 passa la "Da Data" del periodo. In calc-anno-prec il valore viene assegnato a w-raffr-da e poi viene decrementato di un anno (w-raffr-da-aa - 1) per ottenere il raffronto sull'anno precedente sulla stessa data; in calc-pnota-provv viene usato direttamente come estremo inferiore. Se a zero, mantiene il comportamento storico (01/01 dell'anno precedente). Il nuovo redefines w-raffr-da-r (suddiviso in aa/mm/gg) permette la manipolazione del solo anno.

Documentazione tecnica -- 2026-04-26 (aggiornato 2026-05-26 per TASK-5149)