COGK77 -- Riapertura Conti in Divisa Estera¶
Sorgente: cbl/cogk77.cbl | Tipo: Programma interattivo + elaborazione | Program-ID: COGK77
Menu: Contabilita' > Bilancio > Operazioni Post Apertura > Riapertura Conti in Divisa Estera
Scopo¶
Genera gli articoli di prima nota di riapertura dei conti in divisa estera per il nuovo esercizio. Scansiona COGCOPRE (P.N. contabilizzata esercizio precedente) e identifica i conti patrimoniali (non di reddito) con saldo in valuta estera aperto. Per ciascun conto accumula dare/avere per divisa, calcola il saldo netto e scrive un record su COGTRANS (file transito). Successivamente, dalla lettura di COGTRANS, genera i movimenti di apertura su COGCOATT (esercizio attuale) tramite la funzione registra.
Produce anche un report stampato riepilogativo (tramite COGS54).
File e Tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTABEL | feurtab.fd, cogfiles.cpy | Tabella generica contabilita' |
| COGCOPRE | cogcopre.fd, cogcopre.cpy | P.N. contabilizzata esercizio precedente -- input principale |
| COGCOATT | cogcoatt.fd, cogcoatt.cpy | P.N. contabilizzata esercizio attuale -- scrittura articoli apertura |
| COGPNCON | cogk77.select | Piano dei conti -- verifica flag reddito (pco-reddito) |
| COGTRANS | (definito localmente) | File transito temporaneo per saldi per conto/divisa |
| FLSTA | flsta.fd, flsta.cpy | File di stampa |
Il file COGTRANS viene creato in ext-tmp-dir con nome #$COGK77.<operatore>, aperto in output/i-o e cancellato (delete file) alla chiusura.
Struttura COGTRANS (locale)¶
trs-chia1:
trs-pre-con:
trs-pre-mastro pic 9(2)
trs-pre-conto pic 9(2)
trs-pre-sconto pic 9(6)
trs-dati occurs 10:
trs-pre-sigla pic x(02) Codice divisa
trs-pre-divimpo-dare pic 9(12)V999999
trs-pre-divimpo-avere pic 9(12)V999999
Interfaccia utente¶
Maschera (tab-maschera)¶
| Campo | Tipo | Descrizione |
|---|---|---|
tm-art-chiusura |
9(06) | Numero articolo di chiusura esercizio precedente |
tm-art-apertura |
9(06) | Numero articolo di apertura esercizio attuale |
Validazioni¶
| Condizione | Messaggio |
|---|---|
tm-art-chiusura = 0 |
"Art.Chiusura deve essere significativo !!" |
tm-art-apertura <= tm-art-chiusura |
"Art.Apertura deve essere maggiore di Art.Chiusura.." |
tm-art-apertura = 0 |
"Art.Apertura deve essere significativo !!" |
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri): controllo abilitazione, lettura azienda, apertura file, configurazione tasti (F3-conferma, F3-aggiorna, F8-aiuto), lettura data sistema - Input parametri:
a-tm-art-chiusura,a-tm-art-apertura - Validazione (
a-fine-dati):x-imposta-conferma - Selezione stampante (
a002): chiamata COGS54 per scegliere la stampante; ESC/F2 tornano all'input, F3 conferma e prosegue - Caricamento dati (
carica-dati): apertura P.N. (ATT e PRE), apertura/creazione COGTRANS, scansione COGCOPRE - Registrazione (
registra): lettura COGTRANS, scrittura articoli su COGCOATT - Chiusura (
fine/z-chiudi): chiusura file, cancellazione COGTRANS, stampa finale COGS54
Fase carica-dati: scansione COGCOPRE¶
Struttura di elaborazione:
leggi-cogcopre -> tratta-cogcopre -> tratta-conto-mastro
-> tratta-conto-con (ripetuto per stessa chiave mastro/conto)
-> scrivi-cogtrans
tratta-cogcopre: verifica se il mastro e' di reddito (pco-reddito = 'R'). Se reddito,flag-escludi-reddito = 'S'e i movimenti vengono ignorati.tratta-conto-con: per ogni movimento conpre-sigla not = spacesepre-sigla not = 'E 'epre-docum not = tm-art-chiusuraenot escludi-reddito, chiamacarica-tab-divisa.carica-tab-divisa: accumula dare/avere per divisa nella tabellaw-tab-divisa(max 10 divise per conto). Se si superano le 10 divise, segnala all'utente.scrivi-cogtrans: scrive su COGTRANS solo i conti con almeno una divisa intrs-pre-sigla(1).
Condizioni di esclusione di un movimento:
- pre-sigla = spaces (nessuna divisa estera)
- pre-sigla = 'E ' (divisa euro)
- pre-docum = tm-art-chiusura (e' il documento di chiusura stesso)
- mastro di reddito (escludi-reddito)
Fase registra: scrittura COGCOATT¶
Due passate su COGTRANS:
Prima passata (tratta-cogtrans):
- Per ogni conto in COGTRANS, conta-val conta le divise con saldo sbilanciate (dare != avere).
- segnala-err per divise con saldo = 0 (segnalazione su stampa).
- loop-elabora per ogni divisa con saldo diverso da zero: scrive articolo su COGCOATT (riapertura).
Seconda passata (tratta-cogtrans-1):
- Analoga alla prima, genera gli articoli speculari (bilanciamento).
Report di stampa¶
Il report usa il formato rint1/rint2/rint3/rdet1:
| Riga | Contenuto |
|---|---|
rint1 |
Intestazione: azienda, titolo "RIAPERTURA CONTI IN DIVISA ESTERA", data, pagina |
rint2 |
Intestazione colonne: N.Conto, N.Documento, Divisa, Saldo, D/A, Descrizione |
rint3 |
Separatore (82 "=") |
rdet1 |
Dettaglio: mastro/conto/sottoconto, articolo, valuta, saldo, D/A, descrizione conto |
Paginazione: ctrri = 90 righe per pagina, ctrpa contatore pagine.
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGS54 | Selezione stampante e gestione stampa report |
| COGU10W | Eventuale conversione importi divisa (tramite utilu10.cpy) |
Copybook utilizzate¶
| Copybook | Contenuto |
|---|---|
cogk77.select |
SELECT dei file principali |
cogk77.fd |
FD dei file |
cogk77.wrk |
Working storage maschera |
cogk77.decla |
Declaratives |
cogk77-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 |
flsta.fd, flsta.cpy |
File di stampa |
k-u10.cpy |
Costanti COGU10W |
cogazien.cpy |
Dati azienda |
utillogo.cpy |
Gestione logo stampa |
utils52.cpy |
Interfaccia calendario |
utils54.cpy |
Interfaccia COGS54 (stampante) |
utilu10.cpy |
Interfaccia COGU10W |
utilw12.cpy |
Interfaccia WIN012 |
utilw36.cpy |
Interfaccia WIN036 |
utilzde.cpy |
Utility ZDE |
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy |
Working storage comuni |
wcont.cpy, wcont1.cpy |
Linkage section |
Note tecniche¶
- COGTRANS e' un file temporaneo indicizzato con chiave
trs-chia1(mastro+conto+sottoconto). Viene eliminato condelete filealla chiusura del programma. - Il limite di 10 divise per conto (
w-ele-divisa occurs 10) e' controllato esplicitamente: se superato, il programma notifica ma elabora solo le prime 10. - Il flag
flag-escludi-redditoviene reimpostato a "S" all'inizio di ognitratta-cogcopre, poi impostato a "N" se il mastro non e' di reddito. L'impostazione predefinita "S" garantisce che i movimenti di reddito vengano ignorati anche se la lettura del piano dei conti fallisce. - Il parametro
tm-art-chiusuraviene usato come discriminante per escludere il documento di chiusura dalla scansione: i movimenti conpre-docum = tm-art-chiusuranon vengono elaborati. - Il programma apre sia COGCOPRE (precedente) sia COGCOATT (attuale) in modalita' i-o per consentire sia la lettura che la scrittura.
Documentazione tecnica -- 2026-04-26