Vai al contenuto

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

  1. Accetta i parametri esercizio-precedente, esercizio-nuovo, mastro, conto, sottoconto e fino a 30 causali da raggruppare.
  2. Apre COGPNONC e legge i movimenti partendo da mastro/conto specificati, filtrando per data effettuazione = 0 (movimenti dell'esercizio precedente).
  3. Per ciascun movimento accumula i totali Dare/Avere nei file temporanei (#$caupno.arc, #$caupno1.arc) con chiave MASTROC/CONTOC/SCONTOC/CAU.
  4. Mantiene tre livelli di raggruppamento (ACCORP1/2/3, array di 10 elementi ciascuno).
  5. Al termine della scansione, riscrive su COGPNONC i record di saldo per causale con data effettuazione = 0 e marca esercizio nuovo.
  6. 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 righe cau1-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 ripulisci ora scorre fcaupno sequenzialmente e cumula cau-importo in w-importo finche' la chiave di raggruppamento (mastroC/contoC/scontoC/causale) non cambia. Al cambio chiave il paragrafo new-cau scrive il record consolidato e ripulisce i precedenti.
  • Tolleranza errori: il test di errore in ripulisci-att e' stato rilassato da if stato not = "00" a if 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.