COGB35 — Giroconto tra partite Clienti/Fornitori¶
Sorgente: cbl/cogb35.cbl | Tipo: interattivo a maschera con elaborazione batch | Program-ID: cogb35
Menu: Contabilita' > Clienti a Part.Aperte > Giro C.to Clienti/Fornitori ; Contabilita' > Fornit. a Part.Aperte > Giro conto Fornitori/Clienti
Scopo¶
Genera un articolo di prima nota di giroconto che compensa partite aperte di un cliente contro quelle di un fornitore (o cliente/fornitore, cliente/cliente, fornitore/fornitore). L'operatore imposta il tipo di giroconto (tm-tipo-gc: "C" cliente, "F" fornitore, "E" entrambi), il fornitore e/o il cliente, il periodo (tm-data-da/tm-data-a), la data movimento/valuta, il tipo operazione (causale) e la descrizione; il programma carica in una griglia le partite aperte dei nominativi selezionati e permette di flaggarle (totalmente "X" o parzialmente "Y") fino a pareggiare Dare e Avere.
Alla conferma (b10-agg) crea per ogni riga selezionata una scrittura in COGPNONC (prima nota non contabilizzata) con segno invertito rispetto alla partita, un movimento in COGMOVPA e aggiorna la testata partita richiamando COGS77 (funzione UPD-PARTI). Al termine propone la stampa del giroconto (COGB36, oppure CAP061 per aziende consorzio). Se la configurazione lo prevede (tm-cfg-cod-azi-jdoc valorizzato) genera anche i file di esportazione per l'archiviazione documentale JDOC (crea-file-jdoc), un file .exp per ogni fattura fornitore che risulta saldata dal giroconto.
Il programma puo' essere richiamato in modalita' silent (cogb35-silent = "S", copybook utilcogb35.cpy): in tal caso salta la maschera, riempie il lavoro e aggiorna direttamente restituendo anno/numero documento generato.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
COGTABEL (feurtab) |
cogfiles.cpy |
Tabella esercizio (euta-tipo 66 → conta-rec) e tipi operazione/causali (euta-tipo 65) |
COGPNONC |
cogpnonc.cpy |
Prima nota non contabilizzata: scrittura del giroconto (wr-cogpnonc) |
COGMOVPA |
cogmovpa.cpy |
Movimenti di partita generati (wr-cogmovpa), uno per riga di p.nota |
COGPARTI |
cogparti.cpy |
Testata partite (lettura) |
COGGEANA |
coggeana.cpy |
Anagrafica cliente/fornitore: nome e riferimenti mastro/conto (ana-rifmas/ana-rifcon) |
COGANAPP |
coganapp.cpy |
Dati aggiuntivi anagrafica |
COGFATTU / COGFATT2 |
cogfattu.cpy / cogfatt2.cpy |
Testata fattura: recupero fat2-arcdoc-ean per il nome file JDOC |
COGDESOR |
cogdesor.cpy |
Descrizioni |
PRNTOPER |
prntoper.cpy |
Anagrafica operatore stampante (descrizione per il record JDOC) |
T-GRID-DET |
t-grd-filtri.cpy, wgrid.cpy |
File di transito della griglia partite (t-gor-r-rec) |
filejdoc |
inline (jdoc-rec) |
File .exp di esportazione JDOC (binary sequential) |
Copybook di working/servizio: cogazien.cpy, capazien.cpy, cogconta.cpy, utilu10.cpy/k-u10.cpy (importi in divisa), utils25.cpy (numerazione COGS25), utils52.cpy (date), utils65.cpy (aiuto anagrafiche), utils77.cpy (partite COGS77), utils99.cpy (tipi operazione), utili93.cpy (aiuto descrizioni COGI93), utilimppredf.cpy/utilgdad.cpy (griglia e filtri), utildlg.cpy (dialog), l-copiaf.cpy. Linkage: utilcogb35.cpy (chiamata da altri programmi).
Flusso principale¶
apri— inizializzazioni,rd-azi,open-files, lettura configurazione (x99-confi), lettura esercizio (euta-tipo 66→conta-rec, ricava date esercizio e data minima contabilizzazione). Se richiamato concogb35-called/cogb35-silent = "S"esegue direttamenteriempi-lav+b10-agge restituisce il documento (ramogo to fine).a4— reset maschera, default tipo giroconto "E", eventuale precompilazione dai parametri di chiamata (w-cogb35-called), impostazione ordinamento e filtro predefinito della griglia.a-tm-data-da...a-tm-des— accept dei campi di testata (periodo, tipo giroconto, fornitore, cliente, date movimento/valuta, tipo operazione, descrizione) con validazione campo per campo (x-controlla-*);F8calendario/aiuto anagrafiche (COGS65)/aiuto descrizioni (COGI93).a-richiesta-conferma—x-imposta-conferma+acc-conf.a-leggi-dati/a-grid-ini— apertura e caricamento del transito griglia con le partite aperte (z-grid-det-crea-transito); se vuoto avvisa "Non ci sono partite aperte !".a-grid— gestione griglia: flag delle partite, calcolo totali Dare/Avere (x1-totali), export Excel (s-f5), amministrazione colonne (s-f4). Alla conferma (f3) verifica che Dare = Avere e diverso da zero, chiede conferma e lanciab10-agg.b10-agg— per ogni riga flaggata ("X" totale o "Y" parziale): ottiene il numero documento daCOGS25(codice 5), scrive il recordCOGPNONCcon mastro/conto/sottoconto dei riferimenti anagrafici e segno invertito rispetto alla partita, scrive il relativoCOGMOVPAe richiamaCOGS77(UPD-PARTI) per aggiornare la testata partita.crea-file-jdoc— solo setm-cfg-cod-azi-jdocvalorizzato: per ogni fattura fornitore selezionata ricalcola il saldo movimenti (COGMOVPA); se il saldo e' zero (fattura chiusa) genera il file.exp(x1-creo-filejdoc) con recordAZI=/CMD=UPDATE/UTE=/EAN documento.a-fine-aggiornamenti— dialog di fine (DIALOGS) con opzioni Esc (nuovo giroconto) / F9 (stampaCOGB36oCAP061).fine/z-chiudi— chiusura file, cancellazione transito griglia, uscita.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
COGS25 |
Attribuzione numero documento prima nota (numerazione, codice 5) |
COGS52W |
Editing/validazione date |
COGS65W |
Aiuto/ricerca anagrafiche cliente/fornitore |
COGS77 |
Aggiornamento testata partita (funzione UPD-PARTI) |
COGI93 |
Aiuto/scelta descrizioni predefinite (F8 su descrizione) |
COGB36 |
Stampa del documento di giroconto |
CAP061 |
Stampa giroconto per aziende consorzio (az-consorzi = "S") |
GRIDADMN |
Amministrazione colonne griglia (S-F4) |
DIALOGS |
Dialog di fine elaborazione |
Note¶
- L'importo effettivamente girocontato (
w-impo) e' il minimo tra totale Dare, totale Avere ed eventuale importo forzatotm-impo; le scritture di p.nota sono generate con segno opposto a quello della partita ("D" partita → "A" scrittura e viceversa). - Il sorgente e' scritto in stile legacy: uso estensivo di
GO TOfra i paragrafi di accept e nei loop (b10-20,a028-*,crea-jdoc-*-loop) e diPERFORM ... THRU(es.b10-agg thru ex-b10,crea-file-jdoc thru ex-crea-file-jdoc). Da non replicare nel nuovo codice. - Nel paragrafo
crea-jdoc-20-loope' presente uncontinueusato come no-op all'interno di unif(non come skip di iterazione): il salto e' gestito dago to. - I riferimenti mastro/conto per le scritture sono presi dai campi
ana-rifmas/ana-rifcondell'anagrafica del fornitore o del cliente in base at-gor-r-patipcli. - La modalita' silent (
utilcogb35.cpy) e' usata da programmi chiamanti per generare girocontI automatici senza interazione.