Vai al contenuto

SWA039 - Sincronizzazione scontistica

Logica generale Import/export delle tabelle interessate alla scontistica: * ARPGRUPPISCONTI -> testata gruppi sconto * ARPSCONTI -> dettaglio sconti tra gestionale e database KPN Al momento è previsto solo l'esportazione da gestionale. L'esportazione verrà effettuata verificando se è stato effettuato un aggiornamento sulla testata del gruppo sconto. Configurazioni possibili

Gruppo Parametro Note

Elaborazione A - Esportazione raggruppamenti aggiornati Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "COGGRSCT"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "COGGRSCT"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO 1

Qui otterremo due informazioni importanti: * Data/ora ultima esportazione da gestionale a postgres (A_SYN_DA_GES_DATA e A_SY_DA_GES_ORA) * Prossimo ID sincronizzazione da memorizzare sulla tabella (A_SYN_ID_SINCRO) Id-sincro x Arpsconti Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPSCONTI"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPSCONTI"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO 1

Qui otterremo il prossimo ID sincronizzazione da memorizzare sulla tabella ARPSCONTI (A_SYN_ID_SINCRO) Ricerca record da esportare Esportazione di tutti i gruppi sconto aggiornati dopo l'ultimo aggiornamento (COGGRSCT). Per ciascun letto considerare solo quelli dove GST-DA-DATA+GST-DA-TIME sono >= a A_SYN_DA_GES_DATA+A_SYN_DA_GES_ORA (fare il confronto normalizzando e unendo i campi in un unico campo di 8+4 caratteri: AAAAMMGGHHMI) A.1 - Esportazione gruppo sconto * Per ciascun record valido cercare su ARPGRUPPISCONTO l'esistenza di un record avente:

Nome campo Note
A_GST_AZIENDA Codice azienda
A_GST_TIPO GST-TIP
A_GST_GRUPPO GST-COD

Se non esiste, inserirlo. Se esiste, aggiornarlo: Informazioni con cui inserire/aggiornare un record su ARPANRAG:

Nome campo Note
A_GST_AZIENDA Codice azienda
A_GST_TIPO GST-TIP
A_GST_GRUPPO GST-COD
A_GST_DES GST-DES
A_GST_DATA_DA GST-DATA-DA
A_GST_DATA_A GST-DATA-A
A_GST_FL_GENERICO GST-FL-GENERICO
A_GST_ID_SINCRO Ultimo id sincro + 1
A_GST_FL_CANC GST-VAL

In questa fase tenere memoria di data+ora dell'ultimo record aggiornato. A.1.1 - Esportazione dettaglio sconti per il gruppo Elaborazione non necessaria, se il gruppo sconto è cancellato (A_GST_FL_VAL = "C") Cancellare il dettaglio sconti presente ARPSCONTI per il gruppo sconto in elaborazione: DELETE FROM arpsconti WHERE A_SCC_azienda = azienda attiva and A_SCC_tipo_gruppo = A_GST_tipo and A_SCC_gruppo = A_GST_gruppo Poi, ora l'elaborazione si diversifica a seconda del tipo di gruppo sconto trovato: * "P": A.1.1.2 - Esportazione dettaglio promozione * <> "P": A.1.1.1 - Esportazione dettaglio gruppo sconto A.1.1.1 - Esportazione dettaglio "Gruppi sconto" Scorrere il dettaglio del gruppo sconto su COGSCONT, per tutti i record del gruppo

Nome campo Note
SCC-TIP Se GST-TIP vale


SCC-ANA GST-COD, se GST-TIP = "C"
SCC-GRUPPO-SCONTO GST-COD, se GST-TIP = "G"

Per ciascun record trovato, inserire un record su ARPSCONTI:

Nome campo Note
A_SCC_AZIENDA Codice azienda
A_SCC_TIPO_GRUPPO GST-TIP
A_SCC_GRUPPO GST-COD
A_SCC_TIPO_DETTAGLIO Tipo di dettaglio:


A_SCC_CLASSE Se A_SCC_TIPO_DETTAGLIO:



Se A_SCC_TIPO_DETTAGLIO vale:


A_SCC_PREZZO SCC-PRE
A_SCC_SCONTO1 SCC-SCO-1
A_SCC_SCONTO2 SCC-SCO-2
A_SCC_SCONTO3 SCC-SCO-3
A_SCC_ID_SINCRO Id sincro ARPSCONTI + 1
A_SCC_VAL SCC-VAL

A.1.1.2 - Esportazione dettaglio promozione Scorrere il dettaglio della promozione su COGGRSCD, per tutti i record collegati

Nome campo Note
GSCD-TIP GST-TIP
GSCD-COD GST-COD

Per ciascun record trovato, se GSCD-VAL <> "C" inserire un record su ARPSCONTI:

Nome campo Note
A_SCC_AZIENDA Codice azienda
A_SCC_TIPO_GRUPPO GST-TIP
A_SCC_GRUPPO GST-COD
A_SCC_TIPO_DETTAGLIO GSCD-FL-APPLICO-A
A_SCC_CLASSE Se A_SCC_TIPO_DETTAGLIO:



Se A_SCC_TIPO_DETTAGLIO vale:


A_SCC_PREZZO GSCD-PREZZO
A_SCC_SCONTO1 GSCD-SCONTO-1
A_SCC_SCONTO2 GSCD-SCONTO-2
A_SCC_SCONTO3 GSCD-SCONTO-3
A_SCC_QTA_DA GSCD-QTA-DA
A_SCC_QTA_A GSCD-QTA-A
A_SCC_MERCE_OMAGGIO GSCD-MERCE-OMAGGIO
A_SCC_OM_QTA_SOGLIA GSCD-OM-QTA-SOGLIA
A_SCC_OM_QTA_OMAGGIO GSCD-OM-QTA-OMAGGIO
A_SCC_ID_SINCRO Id sincro ARPSCONTI + 1
A_SCC_VAL GSCD-VAL

A.2 - Identificazione dei gruppi sconto cancellati Attraverso una apposita query scorrere tutti i record non cancellati di ARPGRUPPISCONTO; per ciascun record trovato, cercare se esiste ancora il record corrispondente lato gestionale, con una lettura di COGGRSCT:

Dato Contenuto
GST-TIP A_GST_TIPO
GST-COD A_GST_GRUPPO

Se il record non esiste, è necessario marcare come cancellato il record su ARPGRUPPISCONTO, aggiornando contemporaneamente l'id di sincronizzazione:

Dato Contenuto
A_GST_FL_CANC "C"
A_GST_ID_SINCRO Ultimo id sincro + 1

B Aggiornamento id syncro contratto Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "COGGRSCT"
A_SYN_DA_GES_DATA Data/ora dell'ultimo record aggiornato
A_SYN_DA_GES_ORA
A_SYN_DA_ID_SINCRO Ultimo ID sincro aggiornato
Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPSCONTI"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA
A_SYN_DA_ID_SINCRO Ultimo ID sincro "ARPSCONTI" aggiornato

Estratto da documentazione interna ClickUp