Wizard Home | Fasi sincronizzazione completa

Cod. Ultima revisione Wiki Note
665 2018/12/10 - MA Additional Data

La sincronizzazione completa dei dati è composta da varie fasi relative all'aggiornamento dei vari moduli attivi nell'app, di seguito esempi dell'interfaccia

L'aggiornamento degli ordini è composto da vari step descritti di seguito.


Indicazioni tecniche delle fasi di scaricamento (Step aggiornamento)
## Sequenza operazioni
- UploadItems
- DownloadList
- Reset
- DownloadItems
- ImportData
***
### UploadItems
Vengono inviati al server tutti gli ordini nuovi o modificati.
Dal server vengono registrati ("order_status" o "management_status") e "transfer_message".
### DownloadList
Viene richiesta la lista degli ordini da scaricare passando l'ultimo "hash" (Data ultimo aggiornamento) registrato.
Gli ordini possono essere non presenti nell'iPad oppure da aggiornare.
La lista viene registrata in "ordersCurrentList".
### Reset
Se la lista "ordersCurrentList" contiene il parametro "reset" 
(serve per aggiornare completamente la lista ordini nel device, è un setting gestibile solo dagli amministratori su richiesta in caso di anomalie) allora:
1) Viene inizializzata la lista "ordersDownloadList" con la lista "ordersCurrentList".
2) Viene inizializzato il file di supporto "ordersDownloadRange" con l'indice a zero.
3) Dal DB interno vengono cancellati tutti gli ordini che non sono da sincronizzare.
altrimenti:
1) In "ordersDownloadList" vengono aggiunti gli ordini da "ordersCurrentList" non presenti.
### DownloadItems
Viene ripetuto il ciclo:
1) Calcolo totale degli ordini da scaricare in "ordersDownloadList".
2) Prelevamento indice corrente in "ordersDownloadRange".
3) Calcolo range : indice corrente + lunghezza. Attualmente la lunghezza è impostata a 20.
4) Estrazione sotto lista di "ordersDownloadList" con elementi in range calcolato.
5) Estrazione degli ordini presenti in DB con entityID delle sotto lista per eventuale aggiornamento.
6) Richiesta al server dell'ordine presente in sotto lista con comando "orders" o "updated_orders".
7) Viene rimossa la json dell'ordine richiesto registrata sull'iPad.
8) Viene aggiornato l'indice degli ordini scaricati.
9) Alla fine del ciclo viene registrato l'indice corrente nel file "ordersDownloadRange".
Se qualcosa non va a buon fine o se l'operazione viene interrotta:
1) L'indice corrente viene decrementato.
Il ciclo si ripete fino a che l'indice corrente non supera il totale degli ordini da scaricare.
### ImportData
1) Estrazione degli ordini presenti in DB con entityID in "ordersDownloadList" per eventuale aggiornamento.
Per ogni elemento in "ordersDownloadList":
1) Verifica se la json è presente.
2) Verifica se presente nel DB.
3) Inserimento nel DB se nuovo.
4) Aggiornamento del DB se già presente.
5) Viene svuotato il file "ordersDownloadList".
6) Viene inizializzato il file di supporto "ordersDownloadRange" con l'indice a zero.