COGE49 -- Situazione a Saldo
Sorgente: cbl/coge49.cbl | Program-ID: COGE49 | Tipo: Interattivo GUI (stampa)
Menu: Contabilita' > Clienti a Part.Aperte > Stampe > Situazione a Saldo / Contabilita' > Fornit. a Part.Aperte > Stampe > Situazione a Saldo
Scopo
Programma per la stampa della situazione a saldo di clienti o fornitori. Raccoglie i movimenti delle partite aperte tramite COGS77, li legge dal file transito COGWPNO e produce un report sintetico con una riga per soggetto che riporta saldo precedente, dare, avere e saldo risultante. Include totali finali.
Il parametro wo-parametro discrimina: "C" = clienti, "F" = fornitori.
File e tabelle
| File/Tabella |
Tipo |
Modalita' |
Descrizione |
| COGWPNO |
wpn-rec |
I-O |
Working prima nota (transito da COGS77) |
| COGPNCON |
pco-rec |
Input |
Piano dei conti |
| COGTABEL |
euta-rec |
Input |
Tabelle di sistema (tipo 66: esercizio) |
| COGGEANA |
ana-rec |
Input |
Anagrafica generale |
| FLSTA |
- |
Output |
File stampa |
| FEURTAB |
- |
Input |
Tabella generica Eurosystem |
Copybook utilizzate
Screen Designer
| Copybook |
Descrizione |
coge49-01.scr |
Maschera principale (screen section) |
coge49.select |
SELECT dei file |
coge49.fd |
FD dei file |
coge49.wrk |
Working storage maschera |
coge49.decla |
Declaratives |
Strutture dati
| Copybook |
Descrizione |
cogfiles.cpy |
FD feurtab |
cogwpno.cpy |
Working prima nota |
cogazien.cpy |
Dati azienda |
cogconta.cpy |
Struttura conti |
cogpnonc.cpy |
Prima nota non contabilizzata |
flsta.cpy |
File stampa |
k-u10.cpy |
Costanti COGU10 |
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy |
Working storage comuni |
Utility e interfacce
| Copybook |
Descrizione |
utils52.cpy |
Interfaccia COGS52 (calendario) |
utils54.cpy |
Interfaccia COGS54 (stampa) |
utils65.cpy |
Interfaccia COGS65 (ricerca anagrafica) |
utils77.cpy |
Interfaccia COGS77 (ricerca partite) |
utilu10.cpy |
Utility divisa/formattazione |
Linkage
| Copybook |
Descrizione |
wcont.cpy |
Struttura stringhe |
wcont1.cpy |
Struttura stringhe estesa |
Struttura del programma
Flusso principale
apri: inizializzazione, apertura file, lettura azienda, configurazione tasti funzione (F8 aiuto, F3 conferma, F8 calendario, F9 ricerca avanzata), lettura esercizio contabile (COGTABEL tipo 66), lettura divisa conto, display maschera
a4: reinizializzazione maschera, caricamento tipo C/F e label soggetto (partenza/arrivo), ricerca parametri partite (cerca-wuta), impostazione visibilita' campi provvisori
- Accept parametri:
a-tm-mastro -> a-tm-conto -> a-tm-prov (P.Nota provvisoria) -> a-tm-cli-cod-da (soggetto partenza) -> a-tm-cli-cod-a (soggetto arrivo) -> a-tm-data-da -> a-tm-data-a
a-richiesta-conferma: validazione globale, conferma utente, selezione stampante via COGS54, inizializzazione totalizzatori
- Elaborazione: chiamata COGS77 per generare file COGWPNO con flag
s77-fl-storia = "S" e s77-storiche = "S" per includere partite storiche, apertura COGWPNO
tra-51: loop di lettura record da COGWPNO:
- Filtro per mastro/conto e range soggetti (
tm-cli-cod-da -> tm-cli-cod-a)
- Calcolo saldo precedente: se data movimento <
tm-data-da, accumula importo in saldo-prec (segno D positivo, segno A negativo)
- Se data nell'intervallo: accumula in
saldodare / saldoavere
- Conversione divisa tramite COGU10W se necessario
tot-cli: alla rottura di soggetto (mem-cli <> pno-paclie):
- Salta soggetti con tutto a zero
- Legge ragione sociale da COGGEANA
- Calcola saldo risultante:
saldo-prec + saldodare - saldoavere
- Determina segno: "D" se positivo, "A" se negativo
- Stampa riga con: codice, descrizione, saldo precedente, dare, avere, saldo, segno
- Accumula in totali globali (
cli-dare, cli-avere, tot-prec)
tot-fin: al termine della scansione, stampa riga totali finali con somma di saldo precedente, dare, avere e saldo complessivo
saltop: salto pagina con ristampa intestazione (azienda, tipo, periodo, pagina)
fine-sta: chiusura stampa con COGS54, ritorno ai parametri
fine: chiusura file, exit
Righe di stampa
| Riga |
Contenuto |
st1 |
Intestazione pagina (azienda, tipo C/F, periodo, pagina) |
st2 |
Intestazione colonne (Codice, Ragione Sociale, Saldo precedente, Dare, Avere, Saldo, D/A) |
st2-s |
Linea separatrice (108 underscore) |
d1 |
Dettaglio soggetto: codice (z5), ragione sociale (x35), saldo prec (x14), dare (x14), avere (x14), saldo (x14), segno (x1) |
Chiamate esterne
| Programma |
Modalita' |
Scopo |
| COGS77 |
CALL |
Ricerca partite aperte con storico, genera file COGWPNO |
| COGS54 |
CALL |
Gestione stampa (selezione stampante, formato) |
| COGS52W |
CALL |
Calendario (date picker) |
| COGS65W |
CALL |
Ricerca anagrafica clienti/fornitori |
| COGU10W |
CALL |
Formattazione importi, conversione divise |
Variabili di stato principali
| Variabile |
Descrizione |
dep-tipo |
Tipo soggetto: "C" = clienti, "F" = fornitori |
tm-mastro / tm-conto |
Codici piano dei conti |
tm-cli-cod-da / tm-cli-cod-a |
Range codici soggetto (0/99999 = tutti) |
tm-data-da / tm-data-a |
Range date |
tm-prov / tm-869 |
Flag inclusione P.Nota provvisoria e sequenza 8-6-9 |
saldo-prec |
Saldo precedente (signed) per soggetto corrente |
saldodare / saldoavere |
Accumulatori dare/avere per soggetto corrente nel periodo |
cli-dare / cli-avere |
Accumulatori totali dare/avere |
tot-prec |
Accumulatore totale saldo precedente |
w-totale |
Saldo finale calcolato (signed) |
mem-cli |
Codice soggetto memorizzato per rottura chiave |
fl-pno-pro |
Flag P.Nota provvisoria: "P" provvisoria, "O" operativa |
fl-vis-provv |
Flag visibilita' campo provvisoria: "S" non visibile |
k-chr-stampa |
Larghezza stampa: 132 colonne |
Note
- Programma relativamente semplice (1.364 righe), focalizzato sulla generazione di un report sintetico
- A differenza di COGE48 (partitario), non mostra il dettaglio dei movimenti ma solo il saldo complessivo per soggetto
- La richiesta delle partite a COGS77 include il flag
s77-fl-storia = "S" e s77-storiche = "S" per garantire il calcolo corretto del saldo precedente sommando anche i movimenti storici antecedenti alla data inizio
- Il campo
tm-prov non e' visibile se az-ges-ip non e' "S" (gestione inter-provvisoria non attiva)