Vai al contenuto

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 66conta-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

  1. apri — inizializzazioni, rd-azi, open-files, lettura configurazione (x99-confi), lettura esercizio (euta-tipo 66conta-rec, ricava date esercizio e data minima contabilizzazione). Se richiamato con cogb35-called/cogb35-silent = "S" esegue direttamente riempi-lav + b10-agg e restituisce il documento (ramo go to fine).
  2. a4 — reset maschera, default tipo giroconto "E", eventuale precompilazione dai parametri di chiamata (w-cogb35-called), impostazione ordinamento e filtro predefinito della griglia.
  3. 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-*); F8 calendario/aiuto anagrafiche (COGS65)/aiuto descrizioni (COGI93).
  4. a-richiesta-confermax-imposta-conferma + acc-conf.
  5. 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 !".
  6. 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 lancia b10-agg.
  7. b10-agg — per ogni riga flaggata ("X" totale o "Y" parziale): ottiene il numero documento da COGS25 (codice 5), scrive il record COGPNONC con mastro/conto/sottoconto dei riferimenti anagrafici e segno invertito rispetto alla partita, scrive il relativo COGMOVPA e richiama COGS77 (UPD-PARTI) per aggiornare la testata partita.
  8. crea-file-jdoc — solo se tm-cfg-cod-azi-jdoc valorizzato: 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 record AZI=/CMD=UPDATE/UTE=/EAN documento.
  9. a-fine-aggiornamenti — dialog di fine (DIALOGS) con opzioni Esc (nuovo giroconto) / F9 (stampa COGB36 o CAP061).
  10. 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 forzato tm-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 TO fra i paragrafi di accept e nei loop (b10-20, a028-*, crea-jdoc-*-loop) e di PERFORM ... 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-loop e' presente un continue usato come no-op all'interno di un if (non come skip di iterazione): il salto e' gestito da go to.
  • I riferimenti mastro/conto per le scritture sono presi dai campi ana-rifmas/ana-rifcon dell'anagrafica del fornitore o del cliente in base a t-gor-r-patipcli.
  • La modalita' silent (utilcogb35.cpy) e' usata da programmi chiamanti per generare girocontI automatici senza interazione.