In sintesi
Creiamo ora la procedura per la conferma dell'evasione della picking list.
Nota: questo video corso è stato realizzato con la versione 4 di Instant Developer. Anche se i contenuti sono ancora attuali e sono utili per imparare ad utilizzare Instant Developer, alcune affermazioni sono di fatto superate. Per i dettagli e le ultime novità sulle funzionalità illustrate vi rimandiamo alla sezione di reference che viene tenuta aggiornata giornalmente.
Quando un ordine sta per essere spedito è necessario eseguire la procedura di Conferma Ordine. Essa imposta correttamente le righe dell'ordine in base alle quantità effettivamente indicate nei movimenti di magazzino, che possono essere diverse da quanto calcolato durante la preparazione a causa di differenze inventariali.
Aggiungiamo allora una nuova procedura al progetto e la chiamiamo Order Confirmation.
Questa procedura deve essere eseguita solo se l'ordine è già stato preparato, allora copiamo con shift e control la query ed il controllo già introdotti nella procedura di preparazione, poi li adattiamo. Possiamo notare che anche i parametri e le variabili referenziate sono state copiate.
Dobbiamo ora leggere le quantità specificate nei movimenti legati a questo ordine. Creiamo allora un blocco FOR-EACH-ROW, poi tiriamo con SHIFT e CONTROL la tabella Stock Movement sulla query per aggiungere tutti i campi alla select list, infine tiriamo il parametro order to prepare sulla query con lo shift premuto per aggiungere la solita condizione di filtro.
Per ogni movimento aggiorniamo il dato della quantità spedita sulla riga d'ordine corrispondente. Aggiungiamo una operazione di aggiornamento tirando la tabella Order Details nella ciclo, poi tiriamo le variabili di cursore Order Details ID e Product ID nella query con lo shift premuto per aggiungere gli opportuni criteri di filtro.
Impostiamo allora la quantità spedita prendendola dal movimento. Tiriamo il campo movement quantity nella query e colleghiamolo al campo shipped quantity. Questo deve essere fatto solo se la quantità spedita è diversa dalla quantità in ordine; aggiungiamo allora un nuovo criterio di filtro con la seguente espressione.
Non ci rimane adesso che impostare correttamente lo stato dell'ordine. Copiamo la query di aggiornamento dalla procedura di preparazione ordini (control + shift) e modifichiamo il valore da dare allo stato in shipped.
Per migliorare la leggibilità modifichiamo il nome del parametro in Order To Confirm, poi controlliamo il codice e salviamo il lavoro.