Vai al contenuto

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

  1. Inizializzazione (apri): controllo abilitazione, lettura azienda, apertura file, configurazione tasti (F3-conferma, F3-aggiorna, F8-aiuto), lettura data sistema
  2. Input parametri: a-tm-art-chiusura, a-tm-art-apertura
  3. Validazione (a-fine-dati): x-imposta-conferma
  4. Selezione stampante (a002): chiamata COGS54 per scegliere la stampante; ESC/F2 tornano all'input, F3 conferma e prosegue
  5. Caricamento dati (carica-dati): apertura P.N. (ATT e PRE), apertura/creazione COGTRANS, scansione COGCOPRE
  6. Registrazione (registra): lettura COGTRANS, scrittura articoli su COGCOATT
  7. 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 con pre-sigla not = spaces e pre-sigla not = 'E ' e pre-docum not = tm-art-chiusura e not escludi-reddito, chiama carica-tab-divisa.
  • carica-tab-divisa: accumula dare/avere per divisa nella tabella w-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 in trs-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 con delete file alla 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-reddito viene reimpostato a "S" all'inizio di ogni tratta-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-chiusura viene usato come discriminante per escludere il documento di chiusura dalla scansione: i movimenti con pre-docum = tm-art-chiusura non 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