Vai al contenuto

SWC016 - Scaricamento Analisi Scaduto Clienti x SW-ING

Intestazione

Campo Valore
Programma SWC016
Titolo Scaricamento Analisi Scaduto (clienti)
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Contabilita' > Analisi scaduto

Scopo e logica generale

SWC016 calcola la fotografia dello scaduto sui clienti a una determinata data e la scarica nelle tabelle BI di destinazione:

  • BINPACL2: sintesi per cliente (totali a scadere, scaduto a fasce, RiBa, fatturato corrente/12 mesi/anno precedente).
  • BINPADE2: dettaglio per partita (stesse fasce, riferite alla singola partita aperta).

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 BINPACL2/BINPADE2 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 #$binlav.<oper> e #$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 o se wo-parametro = "D" non impostato): tm-data-a = cgia-data-agg (se valorizzata) o datasis.
  4. Fase B (b-elabora): elaborazione dal partitario, 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 BINPACL2 (da lavoro) e BINPADE2 (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
BINPACL2 bpcl2-rec I-O Archivio BI sintesi scaduto per cliente (output)
BINPADE2 bpdt2-rec I-O Archivio BI dettaglio scaduto per partita (output)
LAVORO lav-rec I-O File indicizzato temporaneo: sintesi cliente
LAVPAR lavp-rec I-O File indicizzato temporaneo: dettaglio partita
COGPARTI par-rec Input Partitario clienti/fornitori (scansione clienti par-patipcli = "C")
COGMOVPA mov-rec Input Movimenti partita (per calcolo saldo e dare/avere)
COGGEANA ana-rec Input Anagrafica generale (clienti, agenti)
COGTABEL euta-rec Input Tabelle sistema (tipo 22: causali pagamento, tipo 66: esercizio contabile, tipo 68: tipi documento IVA)
COGTESBO tes-rec Input Testate documenti magazzino (bolle da fatturare)
COGMOMAG mag-rec Input Righe movimenti magazzino
COGFATTU fat-rec Input Fatture clienti
COGRITAC rit-rec Input Ritenute d'acconto
COGPNCON pco-rec Input Piano dei conti
COGPNONC pno-rec Input Prima nota non contabilizzata
NUTARIBA rib-rec Input RiBa in portafoglio (chiave 6 su partita)
NUTSRIBA - Input RiBa presentate
FEURTAB - Input Tabella file Eurosystem
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo modalita' batch)
FILELOG logg-rec Output Log testuale (#$logswc016.txt)

Copybook inclusi

Screen Designer

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

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binpacl2.cpy / binpade2.cpy Record BINPACL2 / BINPADE2
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
binpacl2-sql-ws.cpy / binpade2-sql-ws.cpy Interfaccia SQL BINPACL2/BINPADE2
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 (chiamate: x99-src-cfg, x99-src-cfg-agl)
SWGETS Recupero stringa di connessione SW-ING
DTPRG / PRGDT Conversione data <-> progressivo
COGU10W Arrotondamento/conversione divisa importi
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 scaduto e fatturato dal partitario

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

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 cliente: calcola RiBa in portafoglio (calc-rb), calcola fatturato annuo (calc-fatt), scrive un record nel file di lavoro lavoro (sintesi cliente).
  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 (COGRITAC): 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.

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

Fase C: scrittura su BI

  1. Cancellazione (c1-cancella): per il database PostgreSQL esegue una DELETE su BINPACL2 e BINPADE2 con filtro per data e azienda. Per C-Tree/DBmaker il file non viene preventivamente svuotato (le scritture sovrascrivono per chiave).
  2. Scrittura sintesi cliente: scansione sequenziale di lavoro, valorizzazione di bpcl2-rec (data, cliente, agente da COGGEANA, importi scaduto e fatturato), sub-cfg-wr-binpacl2.
  3. Scrittura dettaglio partita: scansione sequenziale di lavpar, valorizzazione di bpdt2-rec, sub-cfg-wr-binpade2.

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.