Vai al contenuto

COGB30 - Home Banking: Scadenzario

Scopo

Gestisce lo scadenzario dell'home banking: costruisce l'elenco delle partite aperte (clienti, fornitori o "altri soggetti") con relativo saldo e scadenza, lo presenta in una griglia editabile e consente all'operatore di selezionare le partite da pagare/incassare per generare le disposizioni bancarie. I dati di scadenza sono ricavati aggregando i movimenti di partita (COGMOVPA), la prima nota provvisoria consortile (CAPPNOPR), le ritenute d'acconto (COGRITAC) e le fatture (COGFATTU/COGFATT2/CAPFATTU) e vengono materializzati in un file di transito indicizzato temporaneo (COGTRANS). Il programma e' richiamato con util-p41 e ritorna il totale selezionato al chiamante tramite COGB41. E' inoltre possibile importare la selezione da un file esterno Excel/CSV (JDOC).

Contabilita' > Home banking > Scadenzario

File e tabelle

File Tipo Descrizione
FEURTAB Parametri File parametri di ambiente / anagrafica azienda (con blocco CAP per consorzi)
COGTABEL Indicizzato Tabelle generiche; tipo 66 = tabella generica contabilita' (date di chiusura), tipo 22 = tipi pagamento, tipo 85 = servizi; chiave euta-key
COGPARTI Indicizzato Partite contabili (scadenze); chiave par-chia1 (par-patipcli, par-paclie, par-panno, par-patipo, par-panpart, par-paprogsca); campi par-fl-chiu, par-tipag, par-age
COGMOVPA Indicizzato Movimenti di partita; chiave mov-partita; campi mov-importo, mov-segno, mov-data-valuta, mov-paprogrca, mov-currency, mov-nfatt
CAPPNOPR Indicizzato Prima nota provvisoria (solo consorzi, az-consorzi = "S" e az-ges-ip = "S"); chiave pnp-partita; campi pnp-importo-e, pnp-segno, pnp-dataval
COGRITAC Indicizzato Ritenute d'acconto; chiave rit-chia; campi rit-totritac, rit-ritac, rit-alritac, rit-currency
COGFATTU / COGFATT2 / CAPFATTU Indicizzato Testate fatture (numero fattura fornitore, EAN documento, anticipi/cauzioni/ammassi per consorzi)
COGGEANA Indicizzato Anagrafica generale clienti/fornitori; chiave ana-tipo/ana-cod; campo ana-rb (tipo pagamento)
COGANAPP / COGANCAP / COGAPPOG Indicizzato Anagrafiche di appoggio: collegamento cliente↔fornitore (aap-rif-cf), dati bancari e IBAN (app-abi, app-cab, app-c-corr, app-iban-*, anc-iban-estero)
NUTBANAS Indicizzato Tabella banche (ABI/descrizione); chiave ban-chia; usata per il riepilogo ABI
NUTALTRI Indicizzato Anagrafica "altri soggetti"; chiave als-cod; dati bancari/IBAN
COGTRANS Indicizzato temporaneo File di transito con le partite dello scadenzario (#$n49.<oper>-<ora> in ext-tmp-dir); chiave primaria trs-chia1 e chiave alternata trs-chia2 con duplicati; contiene importo, segno, valuta, flag anticipi/cauzioni/ritenute/sospese, dati bancari, selezione
SORTO Indicizzato temporaneo File di ordinamento per la stampa (sor-chia: agenzia, nome, fornitore, progressivo)
HOMEBA Indicizzato temporaneo Archivio home banking con chiave alternata hom-chia1 (nome, valuta, chiave)
FILSEQ Sequenziale (line) File Excel/CSV in ingresso per l'importazione JDOC
FILELOG Sequenziale (binary) Log dell'importazione (#$cogb30<data><ora>.txt)

Copybook

File e select

  • feurtab.fd, cogfiles.cpy, flsta.fd, flsta.cpy
  • cogb30.select, cogb30.fd, cogb30.wrk, cogb30-01.scr, cogb30.decla
  • SELECT dichiarate manualmente: cogtrans, homeba, sorto, filseq, filelog (tabelle/file temporanei)
  • cogb30c (identificativo report di stampa passato a COGS54)

Costanti

  • k-u10.cpy — operazioni cambio/edit divisa

Working-storage standard

  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, capazien.cpy (blocco anagrafica consorzi — non presente in cpy/, verificarne l'origine)

Utilita'

  • wgrid.cpy, utilgdad.cpy — gestione griglia (GRIDADMN)
  • utilcogpa3.cpy — modelli Area Report
  • utilu06.cpy, utilu10.cpy — conversione/edit importi (COGU10W)
  • utils25.cpy, utils51.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utils92.cpy, utils54.cpy — subroutine di gestione campi/date/stampa
  • utilw01.cpy, utilw36.cpy, utilw62.cpy — window/dettaglio (WIN062)
  • utilu20.cpy, utilu22.cpy — combo/help (tipo pagamento)
  • utilncnf.cpy — configurazioni (x99-confi)
  • utilf28.cpy — help tipo pagamento su cella (COGF28)
  • utilestrxls.cpy — conversione Excel→testo (ESTRXLS)
  • l-copiaf.cpy, utilopenfile.cpy, utildlg.cpy, opensave.def — gestione file client/server, dialog, open/save box
  • cogconta.cpy — record tabella generica contabilita'

Linkage

  • wcont.cpy, wcont1.cpy, u-copiaf.cpy, utilp41.cpy (parametro d'ingresso)
  • utilcogr20.cpy, utilcogb35.cpy — redefines di user-area per COGR20 e COGB35
  • redefines locali util-cogb40 e util-cogb41 di user-area per lo scambio con COGB40/COGB41

Procedure

  • mmmask.cpy (programma standalone), grave.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogb30.prc

CALL

Programma Descrizione
COGU10W Conversione degli importi in divisa ed edizione formattata
COGS51 Verifica stato di sospensione della partita (s51-sosp)
COGS52W Gestione ed edit delle date (data da/a, valuta)
COGS54 Selezione parametri di stampa ed esecuzione (report scadenzario e distinte)
COGB35 Giro conto tra anagrafica e collegata (S-F7)
COGB41 Ritorno al chiamante con la selezione (via send-scr-3, redefine util-cogb41)
COGF28 Help tipo pagamento sulla cella della griglia
WIN062 Dettaglio della partita/scadenza selezionata (F8)
GRIDADMN Gestione/amministrazione della griglia di dettaglio
WIN162 (WIN062) (vedi WIN062)
ESTRXLS Conversione del file Excel di importazione in file testo
COPIAF Copia/risoluzione nomi file tra client e server (importazione JDOC)
OPENFILE Apertura lato client del log di importazione
DIALOGS Dialog di scelta a fine importazione JDOC
C$OPENSAVEBOX / C$JUSTIFY Selezione file di importazione e allineamento stringhe

Il chiamante viene passato come util-p41; COGB40 e' referenziato solo come redefine di linkage (scambio totali). COGR20 e' referenziato via utilcogr20.cpy (redefine di user-area).

Logica di elaborazione

  1. apri: inizializza abilitazioni (ctr-abil), z-99-init-program, legge l'anagrafica azienda (per i consorzi copia il blocco CAP), apre i file, legge la configurazione (x99-confitm-cfg con aliquota ritenuta consorzi, conto, soglia scaduto, codice azienda JDOC, delimitatore); carica le bitmap e i pulsanti custom (F4 immagine, S-F5 seleziona tutto, F5 scadenze, S-F7 giro conto, F7 trova file, F5 importa JDOC).
  2. a4: inizializza la maschera con i default (tipo "F" fornitori, tutti i tipi pagamento, ordinamento "N"); legge la tabella generica contabilita' (COGTABEL tipo 66) per le date di chiusura; carica in tabban la tabella banche NUTBANAS.
  3. Accept della maschera (a-tm-tipo, a-tm-non-cli/for/alt, a-tm-tipag, a-tm-data-da/a, a-tm-ord, a-tm-nr-rif, a-tm-valuta, a-tm-importo): selezione di tipo soggetto, codice, tipo pagamento, intervallo date, ordinamento e filtri; ogni campo passa per x-controlla-tm-* con segnalazioni sui dati bancari/IBAN mancanti dell'anagrafica.
  4. a-richiesta-conferma: conferma finale (x-imposta-conferma che rivalida tutti i campi). Se tipo = "A" (altri) esegue gestione-altri; altrimenti procede alla costruzione dello scadenzario.
  5. apri-cogtrans: apre in I-O il file di transito temporaneo COGTRANS (nome univoco con operatore e ora).
  6. scrivi-cogtrans: scorre le partite COGPARTI filtrando per tipo/codice/tipo pagamento e stato aperto (par-fl-chiu); per ciascuna partita esegue a027-a041.
  7. a027-a041: aggrega i movimenti di partita COGMOVPA (dare/avere, valuta, numero fattura via COGFATTU), la prima nota provvisoria CAPPNOPR (solo consorzi), verifica lo stato di sospensione via COGS51, calcola anticipi/cauzioni (CAPFATTU per consorzi) e ritenute d'acconto (COGRITAC), e se il saldo non e' pareggiato e ricade nell'intervallo date registra il record di transito in riempi-1.
  8. riempi-1: scrive su COGTRANS il record aggregato con saldo (dare-avere), segno, valuta, importi accessori, dati bancari (ABI/CAB per pagamento "B"), EAN documento (COGFATT2) e totalizza il saldo dare/avere.
  9. a-apri-fine: se l'anagrafica e' collegata ne recupera anche il saldo (cerco-altro-saldo) e visualizza i due saldi.
  10. carica-tab: legge COGTRANS via chiave alternata (chia2) e popola la tabella/griglia tm-tab (codice, ragione sociale, documento, tipo pagamento, importo, valuta, flag A/C/R/S). conteggia-selezionato totalizza le righe selezionate.
  11. Griglia (a-grid/a-accept-grid): gestione degli eventi e dei t.f. — Invio seleziona/deseleziona una riga (con controlli su dati bancari/IBAN e "scaduto" del collegato via x3-verif-scaduto); F4 immagine ottica; F8 dettaglio (WIN062); S-F5 seleziona tutto; S-F7 giro conto (COGB35, ricostruisce COGTRANS); F5 scadenze (calc-scad+send-scr-10); F9 stampa (COGS54 + calc-scad + stampa); S-F4 amministrazione griglia (GRIDADMN); F3 conferma la selezione e ritorna al chiamante (send-scr-3 → COGB41).
  12. Importazione JDOC (a-tm-nome-inp/xf5-importa-dati): selezione di un file Excel/CSV (C$OPENSAVEBOX), copia/conversione lato server (COPIAF/ESTRXLS), lettura riga per riga di FILSEQ, incrocio con le partite e selezione automatica delle righe corrispondenti, con log su FILELOG e dialog finale (DIALOGS).
  13. fine/z-chiudi: chiude ed elimina il file di transito (chiudi-cogtrans, con delete file), chiude i file e termina.

Note tecniche

  • COGTRANS e' una tabella temporanea indicizzata dichiarata manualmente (SELECT/FD nel sorgente) con chiave primaria trs-chia1 (partita) e chiave alternata trs-chia2 con duplicati usata da carica-tab; il nome del file include operatore e ora per l'univocita' ed e' cancellato in chiusura. Una nota nel sorgente avverte che modifiche al tracciato COGTRANS vanno riportate anche in COGB41.
  • Le funzionalita' legate ai consorzi (az-consorzi = "S") — prima nota provvisoria CAPPNOPR, anticipi/cauzioni/ammassi da CAPFATTU, ritenuta calcolata su tm-cfg-ali — sono condizionate anche a az-ges-ip = "S" e tipo = "F".
  • La selezione di un fornitore e' bloccata se mancano i riferimenti bancari/IBAN (ABI/CAB, C/C, IBAN) o se il cliente collegato ha uno "scaduto" oltre soglia (x3-verif-scaduto, tm-cfg-soglia-scaduto); per la personalizzazione az-personal = "PC" il tipo pagamento viene forzato a "B" (bonifico) aggiornando COGPARTI.
  • Tutti gli importi in divisa diversa da quella del conto sono convertiti tramite COGU10W (z-u10); lo stato di sospensione delle partite e' determinato da COGS51.
  • L'importazione JDOC e' abilitata solo per tipo = "F" quando tm-cfg-cod-azi-jdoc e' valorizzato; il file puo' essere .xls/.xlsx (convertito via ESTRXLS), .csv o testo, con delimitatore configurabile.
  • Il chiamante e' identificato tramite util-p41; il ritorno della selezione (totale, continua/interrompi) avviene tramite la redefine di linkage util-cogb41 verso COGB41.