COSO12 - Riapertura posizioni Soci¶
Scopo¶
Trasferimento dei saldi contabili per causale dall'esercizio precedente a un nuovo esercizio. Elabora COGPNONC riassumendo i movimenti per mastro/conto/causale ed esporta il risultato in archivi temporanei usati nel post-apertura bilancio. Utilizzato in fase di apertura nuovo esercizio per riaprire le posizioni soci.
File e tabelle¶
| File | Tipo | Descrizione |
|---|---|---|
| COGPNONC | Indicizzato | Movimenti contabili (lettura sequenziale per mastro/conto, scrittura record di saldo con data effettuazione = 0) |
| COGTABEL | Indicizzato | Tabelle generiche (parametri vari) |
| FUNIPNO | Indicizzato | File parcheggio prima nota Unione Soci |
| FEURTAB | Indicizzato | Configurazione aziendale |
| #$caupno.arc | Temporaneo | Accumulatore interno per raggruppamento causali (chiave cau-riep = mastroC + contoC + scontoC + causale + tipo + num) |
Copybook¶
| Copybook | Sezione | Utilizzo |
|---|---|---|
| coso12.wrk / .fd / .select | tutte | Strutture generate da Screens |
| cogconta.cpy | WORKING-STORAGE | Variabili esercizi e mastri |
| cogazien.cpy | WORKING-STORAGE | Dati azienda |
| wopenf.cpy | WORKING-STORAGE | Gestione apertura file |
| wstato.cpy | WORKING-STORAGE | Gestione stato file |
| wnscr.cpy | WORKING-STORAGE | Variabili screen |
CALL¶
Nessuna CALL significativa oltre alle utility standard generate dallo screen designer.
Logica di elaborazione¶
Flusso principale¶
- Accetta i parametri esercizio-precedente, esercizio-nuovo, mastro, conto, sottoconto e fino a 30 causali da raggruppare.
- Apre COGPNONC e legge i movimenti partendo da mastro/conto specificati, filtrando per data effettuazione = 0 (movimenti dell'esercizio precedente).
- Per ciascun movimento accumula i totali Dare/Avere nei file temporanei (#$caupno.arc, #$caupno1.arc) con chiave MASTROC/CONTOC/SCONTOC/CAU.
- Mantiene tre livelli di raggruppamento (ACCORP1/2/3, array di 10 elementi ciascuno).
- Al termine della scansione, riscrive su COGPNONC i record di saldo per causale con data effettuazione = 0 e marca esercizio nuovo.
- Stampa a video il riepilogo dei totali Dare/Avere elaborati.
Note tecniche¶
- I file temporanei in
tmp/hanno nomi generati da timestamp + codice operatore per evitare conflitti su esecuzioni concorrenti. - Il controllo di blocco verifica la presenza obbligatoria di mastro/conto: se mancanti l'elaborazione si interrompe.
- Mantiene la chiave di lettura COGPNONC fino al cambio mastro per minimizzare le riletture.
Note operative¶
- E' un programma di servizio per la fase di apertura nuovo esercizio: va eseguito dopo COGC01 (creazione saldi nuovo esercizio) e prima di riprendere l'operativita' sulle posizioni soci.
- L'elaborazione e' idempotente solo se i file temporanei sono stati ripuliti: ripeterla senza pulizia puo' duplicare i saldi.
Storico modifiche¶
Maggio 2026 — Semplificazione consolidamento causali¶
Riscritto il paragrafo ripulisci che consolida i movimenti di prima nota per causale:
- Eliminato il file di appoggio
fcau1pno(#$caupno1.arc) e tutta la sua FD/SELECT (~80 righecau1-rec). La doppia scansione su due file temporanei diversi e' stata ridotta a una scansione singola con accumulatore in memoria. - Nuovo algoritmo a rottura: il paragrafo
ripulisciora scorrefcaupnosequenzialmente e cumulacau-importoinw-importofinche' la chiave di raggruppamento (mastroC/contoC/scontoC/causale) non cambia. Al cambio chiave il paragrafonew-causcrive il record consolidato e ripulisce i precedenti. - Tolleranza errori: il test di errore in
ripulisci-atte' stato rilassato daif stato not = "00"aif stato = "23" or stato = "10"— solo "record not found" e "duplicate key" sono ora considerati ammissibili, gli altri errori non interrompono piu' il loop di consolidamento. - Rimossa la variabile
w-doc(progressivo documenti) non piu' utilizzata.