Vai al contenuto

SWC033 - Scaricamento Ordini Clienti per SW-ING

Intestazione

Campo Valore
Programma SWC033
Titolo Scaricamento Ordini Clienti su SW-ING
Posizione menu Statistiche > Estrazione dati vs B.I.Swing > Magazzino / Vendite > Ordini clienti

Scopo e logica generale

SWC033 estrae gli ordini cliente (tipo "C") e li scrive nell'archivio BINORDIN utilizzato dal sistema di Business Intelligence SW-ING.

Il programma supporta solo backend Postgres (tm-cfg-bin-tipo = "P"): la configurazione segnala errore per qualsiasi altro valore.

Modalita' di esecuzione:

  • Interattiva: l'operatore avvia l'elaborazione dalla maschera; nessun parametro di periodo richiesto (intervallo hard-coded, full-refresh).
  • Batch (chiamata da Aglancio): rilevamento via C$NARG/C$PARAMSIZE su util-agprg; output rediretto al log Aglancio tramite gesdebug.

Prima dell'elaborazione esegue cancella-bin-sub-tm-cfg-bin-tipo (TRUNCATE binordin), poi riesporta da zero. WRITE BINORDIN, in caso di duplicato fallback RWR.


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, init programma, apertura file Eurocoge, lettura azienda, divisa conto, configurazione (x99-src-cfg, x99-src-cfg-agl), inizializzazione connessione BI.
  2. Rilevamento modalita' Aglancio: se agprg-id-processo valido, modalita' batch.
  3. Maschera (solo interattivo): titolo "Scaricamento Ordini Clienti su SW-ING", attesa F3.
  4. Elaborazione (a-elabora-confermaelaborafase1):
  5. Cancellazione BINORDIN.
  6. Scan COGTESOR con tor-tipo = "C".
  7. Per ogni testata: lettura COGTORAG (dati aggiuntivi), scan COGRIGOR (righe ordine).
  8. Per ogni riga: lettura COGRORA2 (dati aggiuntivi riga), validazione date, calcolo importo netto (sconti applicati con arrotondamento via COGU10W), lookup commessa, preventivo origine, bolla collegata (COGU09), scrittura BINORDIN.
  9. Chiusura (fine/z-chiudi): chiusura file e connessione BI, riapertura DB AreaGate per aggiornare stato processo ARPSTPRC (solo modalita' batch).

File e tabelle acceduti

File logico Record Modalita' Uso
BINORDIN btor-rec I-O BI: ordini clienti (output principale)
COGTESOR tor-rec Input Testate ordini
COGTORAG tar-rec Input Dati aggiuntivi testata ordine
COGRIGOR ror-rec Input Righe ordine
COGRORA2 ra2-rec Input Dati aggiuntivi riga ordine (iva-cod, art-ese)
COGMERCI mer-rec Input Anagrafica merci (fallback codice IVA)
COGRIGCM rgc-rec Input Righe commesse (chiave2: tipo "OR" + chiave ror-chia1)
COGTESPR tpr-rec Input Testate preventivo (chiave3: rif-ord = tor-chia, ricerca preventivo origine)
ARPSTPRC a-stpr-rec I-O Stato processi Aglancio (solo batch)

Copybook inclusi

Screen Designer

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

Strutture dati

Copybook Contenuto
cogfiles.cpy FD feurtab
binordin.cpy Record BINORDIN
arpstprc.cpy Record ARPSTPRC
cogazien.cpy Dati azienda
k-personal.cpy Costanti personalizzazione
k-u10.cpy Costanti COGU10
getdcont.cpy Recupero divisa conto
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage comuni
sql-decla-ws.cpy Working storage connessione SQL/BI
binordin-sql-ws.cpy Interfaccia SQL BINORDIN
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
utils52.cpy Interfaccia COGS52 (calendario)
utils62.cpy Interfaccia COGS62 (differenza tempo, per SWLIVE)
utilu09.cpy Interfaccia COGU09 (cerca documento collegato all'ordine)
utilu10.cpy Interfaccia COGU10 (formattazione/arrotondamento importi)
utilcgiarea.cpy Linkage per chiamata BIENG-CALLED (CGI)

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazione (2 chiamate: src-cfg, src-cfg-agl)
SWGETS Recupero stringa di connessione SW-ING (modalita' batch)
COGS62 Calcolo differenza in secondi tra timestamp (per SWLIVE)
SWLIVE Keepalive processo Aglancio (ogni 30 secondi in modalita' batch)
COGU09 Ricerca documento di magazzino collegato all'ordine (cerca-magazzino)
COGU10W Arrotondamento prezzo e importo netto
AZVALIDA.COB Validazione date (decorrenza, scadenza, conferma)
C$NARG / C$PARAMSIZE Verifica presenza parametro util-agprg

Configurazione (RNEWCONF)

Chiamata x99-src-cfg (gruppo abilita):

# Gruppo Chiave Campo interno Descrizione
01 abilita bin-tipo tm-cfg-bin-tipo Tipo connessione BI: deve essere "P" (Postgres)
02 abilita bin-db-path tm-cfg-bin-path (non usato per Postgres)
03-05 abilita bin-db-conn-string (1-3) tm-cfg-bin-conn-string Stringhe di connessione Postgres
06 abilita bin-db-log-level tm-cfg-bin-log-level Log level connessione

Chiamata x99-src-cfg-agl (modalita' Aglancio):

# Gruppo Chiave Campo interno Descrizione
01 areaapp cod-azienda tm-cfg-cod-azienda Codice azienda AreaApp
02 areaapp db-log-level tm-cfg-bin-log-level-agl Log level connessione AreaGate
03 AREAAPP AGLANCIO-ATTIVO tm-cfg-aglancio-attivo "S" = nuova procedura Aglancio attiva

La stringa di connessione AreaGate e' restituita da SWGETS.


Logica di business

Fase 1: estrazione ordini

Scan di COGTESOR partendo da tor-tipo = "C" (ordini cliente). Esce dal loop appena tor-tipo cambia.

Per ogni testata ordine:

  1. Dati aggiuntivi testata: legge COGTORAG (chiave: tor-chia) → tar-rec.
  2. Scan COGRIGOR: per ogni riga ordine appartenente alla testata corrente:
  3. Legge COGRORA2 (chiave: tipo+anno+numero+progr+rig-pro).
  4. Valida tor-datdecorr via AZVALIDA.COB: se non valida o zero, usa datasis.
  5. Costruisce w-data-scad da tor-anscad/mescad/giscad; valida; default datasis.
  6. Costruisce bcfn-data da conferma cliente (tor-cnf-aa/mm/gg); valida; default datasis.
  7. Calcolo importo netto (tm-r-pre-net):
    • Prezzo unitario = ror-prez.
    • Applica ror-sconto-1 (con eccezione: 99,99 = sconto del 100%, hardcoded).
    • Applica ror-sconto-2.
    • Arrotondamento via COGU10W con u10-tipo-dato = "V" (vendita), divisa conto, data ordine.
    • tm-r-imp-net = tm-r-pre-net * ror-qtaord, arrotondato.
  8. Codice IVA: se ra2-iva-cod vuoto, prende mer-codiva dalla merce (COGMERCI).
  9. Commessa: scan COGRIGCM chiave2 con tip "OR" + chiave ror-chia1btor-tsc-com/btor-sot-com.
  10. Preventivo origine: scan COGTESPR chiave3 con tpr-rif-ord = tor-chiabtor-anno-prev/btor-numero-prev.
  11. Bolla collegata: chiama COGU09 con cerca-magazzino, u09-i-ordi = tor-chiabtor-documento da u09-o-mm-testa.
  12. WRITE BINORDIN; in caso di duplicato fallback RWR.

Modalita' BIENG-CALLED (CGI)

Il programma riceve util-cgiarea con flag cgia-called. Se "BIENG-CALLED" copia in w-dc-util-cgi (logica filtro periodo via CGI commentata).


Note

  • ID processo Aglancio: 50032.
  • Solo backend Postgres supportato.
  • L'intervallo date tm-daint-in/tm-daint-fi esiste nella tab-maschera ma gli accept sono commentati: full-refresh.
  • Lo sconto 99,99 e' interpretato come sconto 100% (riga omaggio).