SWA029 - Sincronizzazione ordini¶
Logica generale Import/export delle ordini di vendita tra gestionale e database KPN Il programma nasce principalmente per l'importazione degli ordini da e-commerce, potrà essere espanso in futuro. Vedi Esempi operativi sincronizzazione con e-commerce Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| ecommerce | causale-ordine | |
| ecommerce | magazzino-ordine | |
| ecommerce | tipo-pagamento-pagato | |
| ecommerce | cond-pag-pagato | |
| ecommerce | brand | |
| ecommerce | ricalcolo-prezzi-ordini | |
| ecommerce | shop-attivo | |
| commesse | codifica-automatica | |
| commesse | tipo-dossier-commessa | |
| preventivi |
Importazione ordini A - APSTATOSYN Aggiornare il record APSTATOSYN relativo a:
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPORTES" |
Se il record non esiste crearlo. Qui si potrà prelevare l'id sincronizzazione, potrà servire in fase di esportazione ordini verso Postgres, quando implementato. B - Importazione nuovi ordini Come prima cosa viene innescato SWA030 - Importazione nuovi clienti: renderà disponibili i nuovi clienti sul gestionale. Scorrere ARPORTES eseguendo una apposita query che permetta di restituire gli ordini non ancora importati dal gestionale (A-ORTES-TOR-CHIA = " "). Filtri * Gli ordini non devono essere in stato "I" (Invalidato) (usato per la Pasticceria Modenese) -> Nel programma non c'è questo controllo, perchè? * Gli ordini non devono essere in stato (a_ortes_stato) = "V" (da vistare): sono ordini creati dalla APP clienti che devono essere validati (APP clienti Pieri) * I "Pre-ordini" (A-ORTES-ORD-TIP = "P") verranno acquisiti solo per Pieri Come prima cosa, verificare se il cliente associato all'ordine è presente (A-ORTES-CLIENTE <> " "): se presente saltare il punto B.1.1 B.0.1 - Destinazione provvisoria su cliente definitivo L'ordine potrebbe essere collegato ad una destinazione provvisoria: in questo caso ci sarà: * A-ORTES-DST-ID-DISP > 0 * A-ORTES-DST-IDD-PROG > 0 In questo caso prima di procedere verifichiamo se la destinazione è effettivamente ancora provvisoria, tramite una lettura diretta su APCOGDESTI:
| Dato | Contenuto |
|---|---|
| A-DST-AZI | Azienda |
| A-DST-ID-DISPOSITIVO | A-ORTES-DST-ID-DISP Attenzione alla conversione!! Per un errore di definizione tabella, A-DST-ID-DISPOSITIVO è alfanumerico. Quindi è necessario togliere gli "0" non significativi |
| A-DST-IDD-PROG | A-ORTES-DST-IDD-PROG |
| A-DST-ANA | A-ORTES-CLIENTE |
| A-DST-ID-TIP | " " |
| A-DST-ID-IDX | 0 |
B.0.1.1 - Destinazione ancora provvisoria Se il record esiste, la destinazione è ancora provvisoria. Quindi, dando per scontato che al rilascio di questa modifica sarà a rilascio anche la nuova sincronizzazione destinazioni SWN041, in questo caso skippiamo l'ordine mettendo una segnalazione sul log. B.0.1.2 - Destinazione diventata definitiva Altrimenti cerchiamo l'id ufficiale della destinazione, che nel frattempo sarà già stata trasformata in definitiva anche su KPN. In questo caso usiamo una query: SELECT * FROM apcogdesti WHERE a_dst_azi = azienda AND a_dst_id_dispositivo = ' ' A_ND_ a_dst_idd_prog = 0 A_ND_ a_dst_id_tip = 'M' A_ND_ a_dst_ana = A-ORTES-CLIENTE AND a_dst_idd_orig = A-ORTES-DST-ID-DISP AND a_dst_idd_prog_orig = A-ORTES-DST-IDD-PROG La query dovrebbe restituire 1 solo record: se trovato impostiamo * A_ORTES_DST-IDX = A_DST_ID_IDX e proseguiamo con l'importazione al punto B.1 Se invece la query non restituisce nessun record segnalare sul log come errore critico-es2000 e skippiamo il record B.1 - Creazione ordine su gestionale Come prima cosa, verificare se il cliente associato all'ordine è presente (A-ORTES-CLIENTE <> " "): se presente saltare il punto B.1.1 B.1.1 - Importazione cliente Operazione da eseguire quando si sta inserendo un ordine su un cliente nuovo (non ancora acquisito). In questo caso sull'ordine ci sarà A-ORTES-CLIENTE vuoto, e sarà invece presente A-ORTES-ID-UTENTE Quindi, eseguire una lettura su ARPCLIECOM, per vedere a quale cliente ora risulta associato l'utente che ha creato l'ordine (il cliente ora dovrebbe essere presente, poichè abbiamo lanciato SWA030 all'inizio del programma):
| Dato | Contenuto |
|---|---|
| A-CLCOM-AZI | Azienda |
| A-CLCOM-ID-UTENTE | A-ORTES-ID-UTENTE |
Se il record esiste e A-CLCOM-CLIENTE è significativo, allora salvarlo su ARPORTES e proseguire. Altrimenti registrare una segnalazione opportuna sul file di log e saltare l'ordine. B.1.1.1 - Nuovo cliente con nuova destinazione Se A-ORTES-ID-UTENTE-USA-DEST = 1, significa che il nuovo cliente era stato codificato con una nuova destinazione, che sarà stata acquisita da SWA030 alla pari del cliente. In questo caso sull'ordine forzare: * A-ORTES-DST-IDX = 1 e proseguire Criticità: in rari casi potrebbe succedere che l'ordine viene inserito nel tempo che intercorre tra l'esecuzione di SWA030, e questa fase... Sarebbe bene ripristinare l'esecuzione di SWA030 anche qui. E' stato commentato ma non so perchè. B.1.1.2 - Nuova commessa-nuovo dossier Se A-ORTES-FL-CREA-COMMESSA = 1, durante l'inserimento ordine è stato richiesto di creare una commessa-dossier da collegare all'ordine. Quindi se c'è questa esigenza proseguire per questa strada Attenzione: se la configurazione codifica-automatica è diversa da "A", segnalare nel log "La numerazione commesse configurata non è compatibile con l'inserimento automatico" e skippare questa parte B.1.1.2.1 - Attribuzione numero commessa e creazione testata Inserire un record su COGTESCM
| Dato | Contenuto |
|---|---|
| TSC-COD | Diamo per scontato che sia configurata la codifica automatica progressiva delle commesse (vedi sopra) Quindi cerchiamo il numero commessa dall'apposito numeratore, vedi COGG52 |
| TSC-PROGETTO | " " |
| TSC-DES-BREVE | "Ordine: " chiave editata ordine |
| TSC-ANA | A-ORTES-CLIENTE |
| TSC-DATA-ACQ | Data sistema |
| TSC-DATA-APE | Data sistema |
| TSC-DATA-CHI | 0 |
| TSC-DATA-CNT | 0 |
| TSC-STATO | "A" |
| TSC-FL-CONS | "N" |
| TSC-FL-LOTTO | "N" |
| TSC-DIVISA | Divisa di conto |
| TSC-IMP-PRV | 0 |
| TSC-TIPO | " " (per ora) |
| TSC-SOT-DEF | " " |
| TSC-SOT-OBB | "N" |
| TSC-DATA-CONS | 0 |
| TSC-DATA-ESTR | 0 |
| TSC-RAGGR | " " (per ora) |
Inserire un record su COGTCMAG
| Dato | Contenuto |
|---|---|
| TSCA-COD | TSC-COD |
| TSCA-CLI-ASS-TIP | " " |
| TSCA-CLI-ASS-COD | 0 |
| TSCA-DST-TIP | Se A-ORTES-DST-IDX > 0, impostare "D", altrimenti " " |
| TSCA-DST-IDX | A-ORTES-DST-IDX |
| TSCA-DATA-INI-EFF | 0 |
| TSCA-DATA-FIN-EFF | 0 |
| TSCA-TOT-MANODOPERA | 0 |
| TSCA-AGENTE | Prelevato dal cliente TOR-CLIFOR Se pero' A-ORTES-AGENTE-COD è significativo, sarà usato in modo prevalente. (vedi TOR-AGENTE (1)) |
B.1.1.2.2 - Creazione dossier Chiamata a CRMS10:
| Dato | Contenuto |
|---|---|
| CRMS10-OPE | "SCRIVI" |
| CRMS10-NOM | 0 |
| CRMS10-ANA | A-ORTES-CLIENTE |
| CRMS10-TDO | tipo-dossier-commessa |
| CRMS10-ID | "COM-" + TSC-COD |
| CRMS10-DES | "Ordine: " chiave editata ordine |
| CRMS10-NOM-2 | 0 |
| CRMS10-DATA-APE | Data sistema |
B.1.1.2.3 - Modifica riferimenti commessa su ARPORTES Ora su ARPORTES aggiorniamo alcuni campi:
| Dato | Contenuto |
|---|---|
| A-ORTES-FL-CREA-COMMESSA | 2 |
| A-ORTES-COMMESSA | TSC-COD |
| A-ORTES-SOTTOCOMMESSA | " " |
In questo momento non è necessario aggiornare, poichè verrà fatto anche successivamente B.1.2 COGTESOR
| Dato | Contenuto |
|---|---|
| TOR-VALIDITA | Validità ordine Verificare se usato |
| TOR-TIPO | "C" |
| TOR-ANNO | Anno ordine prelevato da A-ORTES-DATA |
| TOR-NUMERO | Numero prelevato dall'apposito numeratore |
| TOR-PROGR | 0 |
| "C" | |
| A-ORTES-CLIENTE | |
| TOR-ANNO | |
| A-ORTES-DATA | |
| TOR-CODPAG1 | Se A-ORTES-PAGAMENTO vale |
| TOR-RIFLIS | Prelevato dal cliente TOR-CLIFOR |
| TOR-VET-COD | Prelevato dal cliente TOR-CLIFOR |
| TOR-TRA-TIP | " " |
| TOR-STATO-WEB | "1" |
| TOR-RB | Se A-ORTES-PAGAMENTO vale |
| TOR-CAUSALE | Da configurazione causale-ordine |
| TOR-PORTO | Prelevato dal cliente TOR-CLIFOR; se vuoto: "FRANCO" |
| TOR-ACURA | Prelevato dal cliente TOR-CLIFOR |
| TOR-VETTORE1 | Riempire con i dati del vettore, se presente |
| TOR-VETTORE2 | |
| TOR-VETTORE3 | |
| TOR-DOVE | "T" |
| TOR-DESCR | A-ORTES-NOTE-ORDINE |
| TOR-DESCR1 | |
| TOR-DESTINA | 0 |
| TOR-DASCAD | TOR-DATDECOR |
| TOR-VALUNI | "A" |
| TOR-CHIU | " " |
| TOR-RAGRFAT | 0 |
| TOR-IMPEGNO | "SI" |
| TOR-MAGAZ | az-main-mag |
| TOR-OFFERTA | "N" |
| TOR-CURRENCY | W-CURRENCY-CONTO |
| (elemento 1) | |
| Prelevato dal cliente TOR-CLIFOR Se pero' A-ORTES-AGENTE-COD è significativo, sarà usato in modo prevalente. |
|
| Se l'agente è significativo, dalla tabella agenti (vedi HTIM01) | |
| TOR-OPE | Operatore attivo |
| TOR-DATA-OPE | Data odierna |
| TOR-OPE-INS | Operatore attivo |
| TOR-PRV-CONV | |
| TOR-DST-ID-TIP | Se A-ORTES-DST-IDX > 0, impostare "D", altrimenti " " |
| TOR-DST-ID-IDX | A-ORTES-DST-IDX |
| TOR-ORD-TIP | A-ORTES-ORD-TIP |
| TOR-DESCR TOR-DESCR1 |
A-ORTES-NOTE-ORDINE |
| TOR-CNF-NUM TAR-CNF-NUM |
A-ORTES-CONFERMA |
| TOR-CNF-DATA | A-ORTES-DATA-CONFERMA |
B.1.2.1 COGTORAG
| Dato | Contenuto |
|---|---|
| TAR-TESTA | TOR-CHIA |
| TAR-SPED-UNITARIA | "N" |
| TAR-BRAND | Da configurazione brand |
| TAR-ID-WEB | A-ORTES-ID-PUB |
| TAR-MODO-VENDITA | A-ORTES-MODO-VENDITA |
| TAR-PROVENIENZA | A-ORTES-PROVENIENZA |
| TAR-BLOCCO-AMM | A-ORTES-BLOCCO-AMM |
| TAR-BLOCCO-COM | A-ORTES-BLOCCO-COM |
| TAR-ORD-LISTINO-SCONTI | A-ORTES-TOR-LISTINO-SCONTI |
B.1.2.2 COGGENER Se i dati A-ORTES-CIG e/o A-ORTES-CUP sono significativi, importarli in un apposito record di COGGENER:
| Dato | Contenuto |
|---|---|
| GNR-TIP | "OI" |
| GNR-PARTE-1 | TOR-CHIA |
| GNR-PARTE-2 | " " |
| GNR-DES | Unire il contenuto di A-ORTES-CIG e A-ORTES-CUP |
(vedi COGO55W) B.1.2.3 COGDESCR Se il dato A-ORTES-NOTE-COMMERCIALI è significativo, salvarlo nelle apposite "Note operative" dell'ordini, vedi COGO55W; corrisponde ad un record di COGDESCR:
| Dato | Contenuto |
|---|---|
| CDE-TIP | "OO" |
| CDE-COD | TOR-CHIA |
| CDE-PRO | 0 |
| CDE-LEN | La lunghezza del contenuto di A-ORTES-NOTE-COMMERCIALI |
| CDE-DES | A-ORTES-NOTE-COMMERCIALI |
Se il dato A-ORTES-NOTE-LOGISTICA è significativo, salvarlo nelle apposite "Note magazzino" dell'ordine, vedi COGO55W; corrisponde ad un record di COGDESCR:
| Dato | Contenuto |
|---|---|
| CDE-TIP | "OO" |
| CDE-COD | TOR-CHIA |
| CDE-PRO | 1 |
| CDE-LEN | La lunghezza del contenuto di A-ORTES-NOTE-LOGISTICA |
| CDE-DES | A-ORTES-NOTE-LOGISTICA |
B.1.4 dettaglio Eseguire un'estrazione di tutti i record di collegati al record ARPORTES in elaborazione. Per ciascun record creare COGRIGOR
| Dato | Contenuto |
|---|---|
| ROR-TESTA | TOR-CHIA |
| ROR-MERCE | A-ORDET-MERCE |
| ROR-RIG-PRO | Numero progressivo di riga all'interno dell'ordine Ora viene usato direttamente A-ORDET-ID-CARRELLO, che dovrebbe essere progressivo all'interno dell'ordine |
| ROR-QTAORD | A-ORDET-QTA |
| ROR-QTACONS | 0 |
| ROR-CURRENCY | TOR-CURRENCY |
| ROR-PREZ | A-ORDET-PREZZO-LORDO |
| ROR-SCONTO-1 | A-ORDET-SCO-1 |
| ROR-SCONTO-2 | A-ORDET-SCO-2 |
COGRORAG
| Dato | Contenuto |
|---|---|
| TOR-CHIA | |
| ROR-RIG-PRO |
COGRORA2
| Dato | Contenuto |
|---|---|
| RA2-TESTA | TOR-CHIA |
| ROR-RIG-PRO | |
| RA2-IMPORTO | Importo totale riga ordine |
| RA2-CAUSALE-PRODOTTO | A-ORDET-CAUSALE-PRODOTTO |
| RA2-TIPO-OMAGGIO | A-ORDET-TIPO-OMAGGIO |
| RA2-FL-PROMO | A-ORDET-FL-PROMO |
| RA2-FL-SCONTO-AGENTE | A-ORDET-SCONTO-AGENTE |
| RA2-MOTIVAZIONE-RESO | A-ORDET-MOTIVAZIONE-RESO |
| RA2-SCONTO-AGENTE | A-ORDET-SCONTO-AGENTE |
| RA2-CAMPAGNA-SEL | A-ORDET-CAMPAGNA-SEL |
COGDESOR Se il campo A-ORDET-NOTE è significativo, importarlo su COGDESOR. Come prima cosa si divide in righe usando GESSTR, operazione "SCOMPONI-NOTE".
Quindi ogni riga risultante viene registrata su COGDESOR:
| Dato | Contenuto |
|---|---|
| DOR-TIP | "O" |
| DOR-KEY | ROR-CHIA |
| DOR-PRO | Progressivo di riga |
| DOR-DES | Riga di note |
B.1.4.1 Ricalcolo prezzi Se la configurazione ricalcolo-prezzi-ordini vale "S", prima di memorizzare COGRIGOR effettuare il ricalcolo dei prezzi con una chiamata a COGS01, identica a quella fatta in COGO05W. Dopodichè aggiornare i dati:
| Dato | Contenuto |
|---|---|
| ROR-PREZ | S01-PREZZO |
| ROR-SCONTO-1 | S01-SCO-1 |
| ROR-SCONTO-2 | S01-SCO-2 |
In questo caso aggiornare anche ARPORDET con i prezzi ricalcolati:
| Dato | Contenuto |
|---|---|
| A-ORDET-PREZZO-LORDO | S01-PREZZO |
| A-ORDET-SCO-1 | S01-SCO-1 |
| A-ORDET-SCO-2 | S01-SCO-2 |
| A-ORDET-PREZZO-NETTO | S01-PRE-NET |
NB: Per il momento il ricalcolo non tiene conto dello sconto agente, poichè è nato solo con lo scopo di esportarlo sul db frontiera. B.1.4.2 Impegno merce Per ciascuna riga eseguire una chiamata a COGU12 con cui aggiornare la quantità impegnata per la merce. Vedi COGU12. B.1.4.3 Collegamento a commessa Se A-ORTES-COMMESSA è significativo, l'ordine dovrà essere collegato alla commessa indicata,e e di conseguenza le singole righe. In questo caso quindi inserire un record su COGRIGCM:
| Dato | Contenuto |
|---|---|
| RGC-TSC | A-ORTES-COMMESSA |
| RGC-SOT | A-ORTES-SOTTOCOMMESSA |
| RGC-TIP | "OR" |
| RGC-CHIAVE | ROR-CHIA1 |
B.1.5 Consegna Per l'inserimento della consegna, effettuare una chiamata a COGO16C:
| Dato | Contenuto |
|---|---|
| O16-OPE | "ins-auto" |
| O16-TIP | TOR-TIPO |
| O16-ANN | TOR-ANNO |
| O16-NUM | TOR-NUMERO |
| O16-PRO | TOR-PROGR |
B.1.5.1 Gestione data consegna Se una delle due date: * A-ORTES-DATA-CONS-GENERICA * A-ORTES-DATA-CONS-TASSATIVA sono diverse da "00010101" (verificare!!), allora scorrere le righe consegna create (COGCONOR) usando COR-CHIA2, e per ciascuna aggiornare:
| Dato | Contenuto |
|---|---|
| COR-DATA | A-ORTES-DATA-CONS-GENERICA |
| COR-DATA-GAR | A-ORTES-DATA-CONS-TASSATIVA |
B.1.6 Elementi di fatturazione Eseguire un'estrazione di tutti i record di ARPORELFT collegati al record ARPORTES in elaborazione. Per ciascun record creare COGDELFT
| Dato | Contenuto |
|---|---|
| DEFT-DOC-CLASSE | k-doc-tip-ordine-cliente |
| DEFT-DOC-KEY | TOR-CHIA1 |
| DEFT-ELFT-CODICE | A-OEFT-ELFT-CODICE |
| DEFT-PERCENTUALE | A-OEFT-PERCENTUALE |
| DEFT-IMPORTO | A-OEFT-IMPORTO |
| DEFT-VAL | A-OEFT-VAL |
B.3 - Aggiornamento ARPORTES Aggiornare il record di origine impostando:
| Dato | Descrizione |
|---|---|
| A-ORTES-ID-SINCRO | Ultimo id sincro + 1 |
| A-ORTES-ACK-GEST | 1 |
| A-ORTES-TOR-CHIA | TOR-CHIA |
C - Esportazione aggiornamento ordini Si dovranno esportare tutti gli ordini aggiornati a partire dall'ultima sincronizzazione (A-SYN-DA-GES-DATA+A-SYN-DA-GES-ORA). Ora l'esportazione viene effettuata per tutti gli ordini, senza valutare la provenienza. * Scorrere quindi COGTESAP (COGTORAG) usando TAR-CHIA3, partendo dalla data/ora ultima sincronizzazione. * Per ciascun record cercare l'esistenza del record corrispondente su ARPORTES: * Se esiste eseguire C.1.1 (cancellazione) * Poi in tutti i casi C.1.2 (inserimento/reinserimento) * Alla fine di questa fase eseguire C.2 per la gestione degli ordini cancellati C.1.1 - Esportazione ordini aggiornati Aggiornare ARPORTES:
| Dato | Descrizione |
|---|---|
| A-ORTES-ID-SINCRO | Ultimo id sincro + 1 |
| A-ORTES-STATO | |
| A-ORTES-CONFERMA | TOR-CNF-NUM TAR-CNF-NUM |
C.1.2 - Esportazione ordini non esistenti Ordine creato da AREA; occorre creare la struttura su ARPORTES/ARPORDET Questa fase va eseguita se la configurazione shop-attivo vale "S". C.1.2.1 - Ricerca id pubblico Eeguire una lettura su APSTATOSYN:
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPORTES" |
Verificare se il flag "semaforo" è libero: se A-SYN-SEMAFORO = "A" significa che è in corso una esportazione da APP o WEB, quindi è necessario attendere: * Attendere 1 secondo e ritentare -> Segnalare sul log * Ritentare fino a 10 volte, poi uscire con un errore sul log Quando il semaforo è libero: * Prelevare A-SYN-ID-PUB attuale * Aggiornare APSTATOSYN
| Dato | Contenuto |
|---|---|
| A_SYN_ID_PUB | Numero attuale + 1 |
| A_SYN_SEMAFORO | "G" |
Per avere la certezza che l'id pubblico prelevato non esiste, tramite una query effettuare una lettura su ARPORTES:
| Dato | Contenuto |
|---|---|
| A-ORTES-AZI | Codice azienda |
| A-ORTES-ID-PUB | Id pubblico attuale |
Se esiste almeno un record, significa che nel frattempo l'id è stato usato; quindi ripetere dall'inizio il punto C.1.2.1 C.1.2.2 - Inserimento ARPORTES
| Dato | Contenuto |
|---|---|
| A-ORTES-AZI | Codice azienda |
| A-ORTES-ID-PUB | Id pubblico attuale |
| A-ORTES-TOR-CHIA | TOR-CHIA |
| A-ORTES-CONFERMA | TOR-CNF-NUM TAR-CNF-NUM |
| A-ORTES-ID-INT | 0 |
| A-ORTES-ACK-STORE | 0 |
| A-ORTES-ACK-GEST | 1 |
| A-ORTES-ACK-APP | 0 |
| A-ORTES-PROV-TIPO | "G" |
| A-ORTES-PROV-ID | 0 |
| A-ORTES-AUTORE-TIPO | "O" |
| A-ORTES-AUTORE-COD | TOR-OPE-INS Solo se in precedenza era vuoto |
| A-ORTES-ID-SINCRO | Ultimo id sincro + 1 |
| A-ORTES-DATA | TOR-DATDECOR |
| A-ORTES-ID-UTENTE | 0 |
| A-ORTES-CLIENTE | TOR-TIPO1 + TOR-CLIFOR |
| A-ORTES-PAGAMENTO | "S" |
| A-ORTES-MSG-PAYPAL | " " |
| A-ORTES-DST-IDX | TOR-DST-ID-IDX |
| A-ORTES-STATO | |
| A-ORTES-DIVISA | TOR-CURRENCY |
| A-ORTES-DATA-ACQ | TOR-DATDECOR |
| A-ORTES-ORA-ACQ | 0 |
| A-ORTES-MODO-VENDITA | "1" |
| A-ORTES-CIG | " " |
| A-ORTES-CUP | " " |
| A-ORTES-ORD-TIP | " " |
| A-ORTES-NOTE-ORDINE | TOR-DESCR + TOR-DESCR1 |
| A-ORTES-NOTE-COMMERCIALI | Da COGDESCR, vedi B.1.2.3 |
| A-ORTES-MAGAZZINO | "1" |
| A-ORTES-DATA-CONS-GENERICA | COR-DATA (*) |
| A-ORTES-DATA-CONS-TASSATIVA | COR-DATA-GAR (*) |
| A-ORTES-COMMESSA | RGC-COM (#) |
| A-ORTES-SOTTOCOMMESSA | RGC-SOT (#) |
| A-ORTES-ORD-LISTINO-SCONTI | TAR-ORD-LISTINO-SCONTI |
(*) Cercare la prima riga consegna collegata all'ordine. (#) Cercare il collegamento a una commessa per la prima riga ordine C.1.2.3 - Inserimento ARPORDET Per ciascuna riga ordine inserire un record su ARPORDET
| Dato | Contenuto |
|---|---|
| A-ORDET-AZI | Codice azienda |
| A-ORDET-ID-PUB | A-ORTES-ID-PUB |
| A-ORDET-ID-CARRELLO | 0 |
| A-ORDET-RIGA | ROR-RIG-PRO |
| A-ORDET-MERCE | ROR-MERCE |
| A-ORDET-QTA | ROR-QTA |
| A-ORDET-QTA-EVASA | ROR-QTACONS |
| A-ORDET-PREZZO-LORDO | ROR-PREZ |
| A-ORDET-SCO-1 | ROR-SCONTO-1 |
| A-ORDET-SCO-2 | ROR-SCONTO-2 |
| A-ORDET-PREZZO-NETTO | Da calcolare in base a prezzo lordo - sconti |
| A-ORDET-IMPORTO | RA2-IMPORTO |
| A-ORDET-IVA-COD | MER-CODIVA (prelevato da A-ORDET-MERCE) |
| A-ORDET-TIPO-OMAGGIO | RA2-TIPO-OMAGGIO |
| A-ORDET-FL-PROMO | RA2-FL-PROMO |
| A-ORDET-SCONTO-AGENTE | RA2-FL-SCONTO-AGENTE |
| A-ORDET-RIGA-PADRE | 0 |
| A-ORDET-MOTIVAZIONE-RESO | RA2-MOTIVAZIONE-RESO |
| A-ORDET-CAUSALE-PRODOTTO | RA2-CAUSALE-PRODOTTO |
| A-ORDET-SCONTO-AGENTE | RA2-SCONTO-AGENTE |
| A-ORDET-NOTE | Descrizioni aggiuntive riga ordine, trovate su COGDESOR |
C.1.2.4 - Inserimento ARPORELFT Effettuare la ricerca dei record di COGDELFT collegati all'ordine:
| Dato | Contenuto |
|---|---|
| DEFT-DOC-CLASSE | k-doc-tip-ordine-cliente |
| DEFT-DOC-KEY | TOR-CHIA |
Per ciascun record trovato inserire un record su ARPOREFT
| Dato | Contenuto |
|---|---|
| A-OEFT-AZI | Codice azienda |
| A-OEFT-ID-PUB | A-ORTES-ID-PUB |
| A-OEFT-ELFT-CODICE | DEFT-ELFT-CODICE |
| A-OEFT-PERCENTUALE | DEFT-PERCENTUALE |
| A-OEFT-IMPORTO | DEFT-IMPORTO |
| A-OEFT-VAL | DEFT-VAL |
C.1.2.4 - Sblocco semaforo Aggiornare nuovamente APSTATOSYN:
| Dato | Contenuto |
|---|---|
| A_SYN_SEMAFORO | " " |
C.2 - Esportazione ordini cancellati Si dovranno esportare tutti gli eventi di cancellazione degli ordini; scorrere COGEVLOG usando chiave EVL-CHIA4, impostando
| Dato | Descrizione |
|---|---|
| EVL-TIP | K-EVL-CANC-COGTESOR (copy costanti-cogevleg.cpy) |
| EVL-VISTO | "N" |
Per ciascun record: EVL-CHIAVE contiene la chiave dell'ordine cancellato; quindi cercare su ARPORTES il record corrispondente, usando una select diretta; se il record esiste aggiornarlo impostando:
| Dato | Descrizione |
|---|---|
| A-ORTES-ID-SINCRO | Ultimo id sincro + 1 |
| A-ORTES-STATO | "X" |
Poi variare il record COGEVLOG impostando
| Dato | Descrizione |
|---|---|
| EVL-VISTO | "S" |
D - Aggiornamento APSTATOSYN Aggiornare il record APSTATOSYN relativo a:
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPORTES" |
e aggiornare i dati:
| Dato | Contenuto |
|---|---|
| A_SYN_AZIENDA | Codice azienda |
| A_SYN_TABELLA | "ARPORTES" |
| A_SYN_DA_GES_DATA | Data/ora di aggiornamento maggiore trovata sui record esportati |
| A_SYN_DA_GES_ORA | |
| A_SYN_DA_ID_SINCRO | Ultimo id sincro salvato su ARPORTES + 1 |
| A-SYN-SEMAFORO | " " |
Estratto da documentazione interna ClickUp