Vai al contenuto

SWC019 - Scaricamento Partitario Fornitori x SW-ING

Intestazione

Campo Valore
Programma SWC019
Titolo Scaricamento Partitario Fornitori
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Contabilita' > Partitario fornitori

Scopo e logica generale

SWC019 calcola la fotografia del partitario fornitori a una determinata data e la scarica nelle tabelle BI di destinazione:

  • BINPAFOR: sintesi per fornitore (totali a scadere, scaduto a fasce, monte acquisti, fatturato corrente/12 mesi/anno precedente).
  • BINPADEF: dettaglio per partita (stesse fasce, riferite alla singola partita aperta, con data valuta e data fattura).

E' il pendant di SWC016 (clienti), con logica analoga.

Il programma funziona in due modalita':

  • Interattiva: l'operatore indica la data fine analisi tramite maschera; al termine vengono mostrati i contatori di record letti/scritti.
  • Batch (chiamata da Aglancio): la data viene presa dal flag cgia-data-agg (data di aggiornamento azienda) o dalla data di sistema; l'output e' rediretto al log di processo Aglancio tramite gesdebug.

Prima della scrittura su BI il programma cancella i record BINPAFOR/BINPADEF gia' presenti per la stessa data e per l'azienda corrente (procedura c1-cancella).


Flusso principale

  1. Inizializzazione (m-00): controllo abilitazione, lettura azienda, apertura file, lettura configurazione RNEWCONF (x99-src-cfg, x99-src-cfg-agl), inizializzazione connessione BI (init-bin-sub-tm-cfg-bin-tipo), preparazione file di lavoro temporanei #$swc019_binlav.<oper> e #$swc019_binpar.<oper>.
  2. Accept parametri (modalita' interattiva): a-tm-data-a (data fine analisi) con supporto calendario COGS52.
  3. Calcolo automatico della data (modalita' Aglancio/batch): tm-data-a = cgia-data-agg (se valorizzata) o datasis.
  4. Fase B (b-elabora): elaborazione dal partitario fornitori, scrittura sui file di lavoro lavoro e lavpar.
  5. Fase C (c-elabora): cancellazione dei record BI del periodo (c1-cancella), poi scansione dei file di lavoro e scrittura in BINPAFOR (da lavoro) e BINPADEF (da lavpar).
  6. Chiusura (z-chiudi): chiusura file, chiusura connessione BI, aggiornamento stato processo ARPSTPRC (solo modalita' Aglancio).

File e tabelle acceduti

File logico Record Modalita' Uso
BINPAFOR bpfor-rec I-O Archivio BI sintesi partitario per fornitore (output)
BINPADEF bpdef-rec I-O Archivio BI dettaglio partitario per partita (output)
LAVORO lav-rec I-O File indicizzato temporaneo: sintesi fornitore
LAVPAR lavp-rec I-O File indicizzato temporaneo: dettaglio partita (con data valuta e data fattura)
COGPARTI par-rec Input Partitario clienti/fornitori (scansione fornitori par-patipcli = "F")
COGMOVPA mov-rec Input Movimenti partita (per calcolo saldo e dare/avere)
COGGEANA ana-rec Input Anagrafica generale (fornitori)
COGTABEL euta-rec Input Tabelle sistema (tipo 22 causali pagamento, 66 esercizio, 68 tipi documento IVA)
COGTESBO tes-rec Input Testate documenti magazzino
COGMOMAG mag-rec Input Righe movimenti magazzino
COGFATTU fat-rec Input Fatture
COGPNCON pco-rec Input Piano dei conti
COGPNONC pno-rec Input Prima nota non contabilizzata
FEURTAB - Input Tabella file Eurosystem
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo modalita' batch)
FILELOG logg-rec Output Log testuale

Copybook inclusi

Screen Designer

Copybook Contenuto
swc019-01.scr Maschera principale
swc019.select SELECT dei file
swc019.fd FD dei file
swc019.wrk Working storage maschera
swc019.decla Declaratives

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binpafor.cpy / binpadef.cpy Record BINPAFOR / BINPADEF
arpstprc.cpy Record ARPSTPRC
logfile.cpy File log testuale
cogazien.cpy Dati azienda
cogconta.cpy Dati esercizio contabile
k-u10.cpy Costanti COGU10
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage comuni
sql-decla-ws.cpy Working storage connessione SQL/BI
binpafor-sql-ws.cpy / binpadef-sql-ws.cpy Interfaccia SQL BINPAFOR/BINPADEF
arpstprc-sql-ws.cpy Interfaccia SQL ARPSTPRC

Utility

Copybook Contenuto
utilncnf.cpy Struttura parametri RNEWCONF
utilgesdebug.cpy Gestione debug/log
utilswgets.cpy Interfaccia SWGETS
utilagprg.cpy Interfaccia Aglancio processo
utilckiva.cpy Controllo IVA
utilu10.cpy Interfaccia COGU10W
utils52.cpy Interfaccia COGS52 (calendario)
utils62.cpy Interfaccia COGS62 (delta tempo per SWLIVE)
utilcgiarea.cpy Linkage area CGI

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (x99-src-cfg, x99-src-cfg-agl)
SWGETS Recupero stringa di connessione SW-ING
COGS62 Calcolo differenza in secondi tra due timestamp (per SWLIVE)
SWLIVE Keepalive processo Aglancio (ogni 30 secondi in modalita' batch)

Configurazione (RNEWCONF)

Lette in x99-src-cfg (pacchetto "C"):

# Gruppo Chiave Campo interno Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione BI: "P" PostgreSQL, "C" C-Tree, "D" DBmaker, "N" disabilitato
02 abilita bin-db-path tm-cfg-bin-path Percorso file BI (per C-Tree)
03-05 abilita bin-db-conn-string (1-3) tm-cfg-bin-conn-string Stringa di connessione PostgreSQL
06 abilita bin-db-log-level tm-cfg-bin-log-level Livello di log SQL
07 PROGCOGV97 gestione-riba tm-cfg-rib-tip Tipo di gestione RiBa

La configurazione Aglancio e' letta da x99-src-cfg-agl (gruppo "areaapp": cod-azienda, db-log-level, AGLANCIO-ATTIVO). La stringa di connessione AreaGATE e' recuperata da SWGETS.


Logica di business

Fase B: calcolo partitario fornitori

Scansione di COGPARTI in chiave primaria filtrando per par-patipcli = "F" (fornitori).

Per ogni partita:

  1. Lettura causale pagamento (COGTABEL tipo 22) per determinare se considerare la data valuta (euta-cp-no-valuta).
  2. Su rottura di fornitore: calcola monte acquisti e fatturato annuo (fat-10, reg-lav), scrive un record nel file di lavoro lavoro (sintesi fornitore).
  3. Per ogni partita, scansione di COGMOVPA: somma DARE e AVERE per ottenere il saldo, considera la data valuta del primo movimento, calcola le fasce di scaduto/scadere in base alla differenza tra data movimento e tm-data-a.
  4. Considera le ritenute d'acconto: sottratte normalmente, sommate se il documento e' una nota di accredito (euta-segnotiva = "-" su tabella 68).
  5. Scrive il dettaglio della partita nel file di lavoro lavpar, includendo data valuta e data fattura.

I file lavoro e lavpar sono file indicizzati temporanei specifici dell'operatore (#$swc019_binlav.<oper>, #$swc019_binpar.<oper>).

Fase C: scrittura su BI

  1. Cancellazione (c1-cancella): per il database PostgreSQL esegue una DELETE su BINPAFOR e BINPADEF con filtro per data e azienda. Per C-Tree/DBmaker il file non viene preventivamente svuotato.
  2. Scrittura sintesi fornitore: scansione sequenziale di lavoro, valorizzazione di bpfor-rec (data, fornitore, importi scaduto, monte acquisti, fatturato), sub-cfg-wr-binpafor.
  3. Scrittura dettaglio partita: scansione sequenziale di lavpar, valorizzazione di bpdef-rec (con data valuta e data fattura per ogni partita), sub-cfg-wr-binpadef.

Keepalive Aglancio

In modalita' batch, ogni 30 secondi viene chiamato SWLIVE per evitare che il motore di scheduling termini il processo per inattivita'. Il delta tempo e' misurato con COGS62.