Vai al contenuto

COGC44 -- Confronto Saldi Cont./Part.

Sorgente: cbl/cogc44.cbl | Program-ID: COGC44 | Tipo: Elaborazione con stampa

Menu: Contabilita' > Prima Nota > Stampe > Confronto Saldi Cont./Part. / Contabilita' > Bilancio > Chiusura/Riapertura Esercizio > Controllo Saldi Contabili/Partite


Scopo

Confronta i saldi contabili con i saldi partitari per tutti i conti a partite aperte. Scorre i conti configurati come partite aperte (COGTABEL tipo 45), calcola il saldo contabile da COGSLPCO (saldi per conto) e il saldo partitario da COGMOVPA (movimenti partitario) tramite COGPARTI, e stampa i conti che presentano differenze superiori alla soglia impostata.

Utilizza un file di transito (COGTRANS) per accumulare i saldi calcolati prima di confrontarli.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB (COGTABEL) Indicizzato Input Tabella generica (tipo 66: esercizio contabile, tipo 45: conti a partite aperte)
COGTRANS Indicizzato I-O File transito per accumulo saldi (creato in tmp dir)
COGPNCON Indicizzato Input Piano dei conti (via cogc44.select)
COGSLPCO Indicizzato Input Saldi per conto (via cogc44.select)
COGGEANA Indicizzato Input Anagrafica generale (via cogc44.select)
COGPARTI Indicizzato Input Partite aperte (via cogc44.select)
COGMOVPA Indicizzato Input Movimenti partitario (via cogc44.select)
FLSTA Sequenziale Output File di stampa

Struttura COGTRANS

trs-chia1:
  trs-con:
    trs-mastro         pic 9(02)    Mastro
    trs-conto          pic 9(02)    Conto
    trs-sconto         pic 9(06)    Sottoconto
  trs-tipo             pic x(01)    Tipo cliente/fornitore
  trs-consaldo         pic s9(12)v9(06)  Saldo contabile
  trs-parsaldo         pic s9(12)v9(06)  Saldo partitario

Copybook utilizzate

Copybook Descrizione
feurtab.fd SELECT della tabella COGTABEL
cogc44.select SELECT generati da Screens (COGPNCON, COGSLPCO, COGGEANA, COGPARTI, COGMOVPA)
cogc44.fd FD generata da Screens
cogc44.wrk Working-storage generata da Screens
cogc44.decla Declaratives per gestione errori I/O
cogc44-01.scr Screen principale
flsta.fd / flsta.cpy File di stampa
cogfiles.cpy Definizione record COGTABEL (euta-*)
k-u10.cpy Costanti per COGU10W
wgrave.cpy Variabili messaggi gravi
wnscr.cpy Variabili screen
wopenf.cpy Variabili apertura file
wstato.cpy Variabili di stato
cogazien.cpy Dati azienda corrente
cogconta.cpy Struttura contabilita' (conta-rec, conta-cones)
utils54.cpy Utility stampa (COGS54)
utilu10.cpy Utility conversione importi (COGU10W)
utilu20.cpy Utility input numerico
wcont.cpy / wcont1.cpy Struttura linkage standard

Struttura del programma

Flusso principale

  1. apri: inizializzazione, apertura file, creazione file transito COGTRANS nella tmp dir con nome #$COGC44.<operatore> (se gia' in uso, segnala errore e esce). Lettura esercizio (euta-tipo 66), anno contabile in wanno, lettura divisa conto.

  2. a4: inizializzazione maschera, default tm-fl-prov = "N".

  3. Parametri:

  4. a-tm-soglia-positiva: soglia di squadratura (pic 9(01)v9(02))
  5. a-tm-fl-prov: flag inclusione provvisori (S/N, gestito con COGS95)

  6. a-riga-fine: validazione, scelta destinazione stampa (COGS54).

  7. Fase 1 - Calcolo saldi contabili (a006): scorre COGTABEL tipo 45 (conti a partite aperte, fino a 99). Per ogni conto:

  8. calc-sald: legge COGSLPCO per mastro/conto dell'anno corrente (wanno), accumula dare-avere in saldo, gestisce conversione divisa (Lira->Euro con COGU10W), chiama scr-con per scrivere/aggiornare COGTRANS con il saldo contabile.
  9. rot-con: legge COGPNONC (prima nota contabilizzata) per mastro/conto, accumula saldo dai movimenti, chiama scr-con per aggiornare COGTRANS. Gestisce filtro provvisori.

  10. Fase 2 - Calcolo saldi partitari (a010 -> calc-part): scorre COGPARTI, per ogni partita legge i movimenti da COGMOVPA (aggio-20/aggio-40), accumula l'importo in base al segno (D/A), gestisce conversione divisa, chiama rot-par per scrivere/aggiornare il saldo partitario in COGTRANS.

  11. Fase 3 - Confronto e stampa (chk-saldo): scorre COGTRANS, per ogni conto confronta trs-consaldo e trs-parsaldo. Se la differenza (in valore assoluto) supera tm-soglia-positiva, stampa la riga con: conto, nome anagrafica, saldo contabile, saldo partitario.

Paragrafi chiave

Paragrafo Scopo
calc-sald / cr-20 Calcolo saldi contabili da COGSLPCO per l'anno
scr-con / scr-con-20 Scrittura/aggiornamento saldo contabile in COGTRANS
rot-con / rot-con-10 Accumulo saldi da COGPNONC (prima nota contabilizzata)
calc-part / aggio-20 / aggio-40 Calcolo saldi partitari da COGPARTI/COGMOVPA
rot-par / rot-par-20 Scrittura/aggiornamento saldo partitario in COGTRANS
chk-saldo Confronto e stampa differenze

Chiamate esterne

Programma Modalita' Scopo
COGS54 CALL Gestione stampa (anteprima/stampante)
COGU10W CALL Conversione/edita importi e cambio divisa (Lira/Euro)
COGS95 CALL (via perform z-s95-*) Gestione check-box (flag provvisoria)

Variabili principali

Variabile Tipo Descrizione
tab-maschera 01 Contiene: tm-soglia-positiva (pic 9(01)v9(02)), tm-fl-prov (pic x(01))
wanno 77 Anno esercizio corrente (da conta-cones)
saldo 77 Saldo accumulato (pic s9(12)v9(06))
wuta-p-conto 01 Conto di lavoro: wuta-p-mas, wuta-p-con, wuta-p-sco
wuta-p-tipo 77 Tipo conto partita (cliente/fornitore)
w-currency-conto -- Divisa del conto (da get-divisa-conto)

Formato di stampa

Conto Anagrafico                          Saldo Contabile    Saldo Partitario
________________________________________  ________________   ________________
 1/01/ 12345 Nome anagrafica             999.999.999,999999  999.999.999,999999

Ogni riga mostra mastro/conto/sottoconto, nome dell'anagrafica, saldo contabile e saldo partitario con il rispettivo segno.


Note

  • Il file transito COGTRANS viene creato nella directory temporanea e viene eliminato alla chiusura (delete file cogtrans).
  • Il programma usa PERFORM ... THRU in diversi punti (calc-sald thru ex-calc-sald, calc-part thru ex-calc-part, rot-con thru ex-rot-con, rot-par thru ex-rot-par, chk-saldo thru ex-chk-saldo, scr-con thru ex-scr-con): questo e' codice legacy che non segue le convenzioni correnti ma funziona correttamente.
  • La conversione Lira/Euro viene eseguita sia per i saldi contabili sia per i saldi partitari tramite COGU10W con operazione k-u10-cambio.
  • I movimenti con anno = 55555555 vengono ignorati (record di controllo).