Vai al contenuto

SWCV02 - Scaricamento Statistiche Vendita 'Agenzie Videopress' per SW-ING

Intestazione

Campo Valore
Programma SWCV02
Titolo Scaricamento Statistiche Vendita su SW-ING
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Procedura 'Agenzie' > Statistiche vendita
Sostituisce BI4002

Scopo e logica generale

SWCV02 estrae movimenti di vendita, note di accredito e ordini della procedura "Agenzie Videopress" e li scrive in BINVPAST nel BI SW-ING.

Le righe BINVPAST gia' presenti per il periodo (data fattura tra tm-daint-in e tm-daint-fi) vengono cancellate via DELETE prima della ricostruzione. La data di fine e' fissata internamente a 20501231: non viene chiesta all'operatore e funge da limite superiore "aperto".

Il programma supporta esclusivamente connessione "P" (Postgres): altri valori di bin-tipo portano a "Funzione non abilitata".

Il programma funziona in due modalita':

  • Interattiva: l'operatore inserisce data inizio (con calendario F8).
  • Batch (chiamata da Aglancio) o quando wo-parametro <> "D": data inizio = 01/01 anno precedente alla data di sistema.

Flusso principale

  1. Inizializzazione (apri): rilevamento modalita' Aglancio, ctr-abil, lettura azienda, apertura file, lettura RNEWCONF (x99-confi, x99-src-cfg, x99-src-cfg-agl), apertura log gesdebug, apertura connessione BI. Se sql-init-ok = no -> uscita.
  2. Setup maschera (interattivo): titolo "Scaricamento Statistiche Vendita su SW-ING".
  3. Inizializzazione date (a4): tm-daint-fi = 20501231; data inizio da operatore (modalita' interattiva con D) o calcolata.
  4. Accept parametri (interattivo): a-tm-daint-in con calendario F8.
  5. Conferma F3 (a-richiesta-conferma).
  6. Elaborazione (a-elabora-conferma -> elabora):
  7. fase1: cancellazione periodo + estrazione movimenti fatturati + estrazione movimenti non fatturati + estrazione note accredito.
  8. fase2: estrazione ordini.
  9. Chiusura (fine / z-chiudi): chiusura connessione BI, aggiornamento ARPSTPRC se batch, chiusura log.

File e tabelle acceduti

File logico Record Modalita' Uso
BINVPAST bvas-rec I-O Movimenti vendita agenzie BI (output unico)
VPACALDE cld-rec Input Calendario movimenti vendita (chiave4: data fattura)
VPATESOR vto-rec Input Testate ordine Videopress (chiave2: data per fase2)
VPARIGOR vro-rec Input Righe ordine Videopress (chiave1: tipo+anno+numero+progr.)
VPANACCR nac-rec Input Note accredito Videopress (chiave5: data)
COGFATTU fat-rec Input Fatture clienti (per recuperare dati fattura/pagamento)
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo modalita' batch)
FEURTAB - Input Tabella file Eurosystem

Copybook inclusi

Screen Designer

Copybook Contenuto
swcv02-01.scr Maschera principale
swcv02.select SELECT dei file (cogfattu, vpatabel, vpamezzi, vpatesor, vparigor, vpacalde, vpanaccr)
swcv02.fd FD dei file
swcv02.wrk Working storage maschera
swcv02.decla Declaratives

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binvpast.cpy Record BINVPAST
arpstprc.cpy Record ARPSTPRC
cogazien.cpy Dati azienda
k-u10.cpy / k-personal.cpy Costanti COGU10 / personalizzazione
sql-decla-ws.cpy Working storage connessione SQL/BI
binvpast-sql-ws.cpy Interfaccia SQL BINVPAST
arpstprc-sql-ws.cpy Interfaccia SQL ARPSTPRC
wstato.cpy/wgrave.cpy/wopenf.cpy/wnscr.cpy Working storage comuni

Chiavi secondarie

Copybook Uso
binvpast.k01 Chiave primaria BINVPAST
vpacalde.k04 Accesso VPACALDE per data fattura
vpanaccr.k05 Accesso VPANACCR per data nota accredito
arpstprc.k01 / arpstprc.k01-agg Chiavi ARPSTPRC

Utility

Copybook Contenuto
utilncnf.cpy Struttura parametri RNEWCONF
utilgesdebug.cpy Gestione debug/log Aglancio
utilswgets.cpy Interfaccia SWGETS
utilagprg.cpy Interfaccia parametri Aglancio (linkage + util-2gprg per sondaggio dinamico)
utils52.cpy Interfaccia COGS52 (calendario)
utilu09.cpy / utilu10.cpy Interfaccia COGU09 / COGU10W
utils01.cpy Interfaccia COGS01 (listino, in linkage)

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (3 chiamate: confi, src-cfg, src-cfg-agl)
SWGETS Recupero stringa di connessione AreaGATE
C$NARG / C$PARAMSIZE Verifica dinamica della presenza di util-agprg
COGS52 Calendario (selezione data interattiva, tramite copybook utils52)

Configurazione (RNEWCONF)

x99-confi (pacchetto "C")

1 chiave:

# Gruppo Chiave Campo interno Descrizione
01 BINT nr-mesi-bi0009 tm-cfg-nr-mesi Numero mesi (configurazione condivisa con SWC009; nel codice attuale e' letta ma non viene piu' utilizzata per il calcolo del periodo, che usa sempre "anno precedente")

x99-src-cfg (pacchetto "C", gruppo "abilita")

6 chiavi:

# Gruppo Chiave Campo interno Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione BI; SWCV02 supporta solo "P" (Postgres)
02 abilita bin-db-path tm-cfg-bin-path Percorso database file-based
03-05 abilita bin-db-conn-string (idx 1-3) tm-cfg-bin-conn-string (1-3) Stringa di connessione Postgres (3 segmenti)
06 abilita bin-db-log-level tm-cfg-bin-log-level Livello di log SQL

x99-src-cfg-agl (pacchetto "C", gruppo "areaapp")

3 chiavi (cod-azienda, db-log-level, AGLANCIO-ATTIVO) per la connessione ad AreaGATE.


Logica di business

Fase 1: movimenti vendita (cancellazione + fatturati + non fatturati + note)

Cancellazione periodo (cancella-postgres)

DELETE su BINVPAST per bvas_data_fat BETWEEN $1 AND $2 (tm-daint-in, tm-daint-fi). Se tm-daint-in = 0 viene forzata a 19000101; se tm-daint-fi = 0 a 20501231.

Movimenti fatturati (fase1 -> fase1-60)

Scansione VPACALDE chiave4 (data fattura) da tm-daint-in. Per ogni record: - Se cld-fat-num <> 0: lettura COGFATTU (fat-tip/ann/num), se non trovata si salta. - Lettura VPATESOR (vto-rec) con cld-vro-tip/ann/num; se non trovato si salta. - Lettura VPARIGOR (vro-rec) con tipo+anno+numero+progressivo; se non trovato si salta. - Inizializza bvas-rec con bvas-tip-rec = "F", bvas-data-fat = cld-data-fat, cliente, riferimenti ordine, mezzo (vro-mez), spazio (vro-spz), agente, agenzia, quantita', bvas-imp = cld-imp-fat-e, tipo movimento (cld-tip-mov), bvas-cnd-pag = cld-fl-fat, pagamento, riferimenti fattura, flag composizione (cld-fl-comp). - Scrittura BINVPAST (sub-cfg-wr-binvpast con fallback rwr se gia' presente).

Lo start su chiave4 con data zero (in fase1-60) seguito da scansione fino a quando cld-data-fat > 0 permette di intercettare i record "in sospeso" (non ancora fatturati). Il filtro cld-data < 20190101 esclude i movimenti pre-2019.

Movimenti non fatturati (fase1-61-loop)

Per le righe con cld-data-fat = 0 e cld-data >= 20190101: stessa logica del flusso fatturati, ma: - bvas-data-fat = cld-data (data documento). - bvas-imp-prog = cld-imp-e (importo a progressivo, non fatturato).

Note di accredito (fase1-65)

Scansione VPANACCR chiave5 (data) da tm-daint-in. Per ogni nota: - Lettura COGFATTU (nac-nac-tip/ann/num), VPATESOR e VPARIGOR (con riferimenti ordine nac-ord-*). - bvas-tip-rec = "F", bvas-data-fat = nac-data, cliente da vto-cli, riferimenti ordine, importo negato (bvas-imp = nac-imp-e * -1), bvas-cnd-pag = "S", bvas-fl-comp = nac-fl-comp, riferimenti fattura da fat-*.

Fase 2: ordini

Scansione VPATESOR da tm-daint-in (chiave2: data) tramite start key is not <. Per ogni testata: - Scansione VPARIGOR per ogni progressivo della testata (start + read next finche' la chiave matcha). - Inizializza bvas-rec con bvas-tip-rec = "O", bvas-data-fat = vro-data, cliente da vto-cli, riferimenti ordine, mezzo/spazio, agente, agenzia, bvas-qta = vro-qta, bvas-imp-ord = vro-imp-e, bvas-tip-mov = "O", bvas-cnd-pag = vto-fl-fat, nessun pagamento. - Scrittura BINVPAST.

Apertura connessione BI (init-bin-sub-tm-cfg-bin-tipo)

Solo "P" (Postgres) e' supportato; altri valori -> sql-init-ok = no con conseguente uscita "Funzione non abilitata".