App Magazzino II
Eccoci nuovamente insieme 💪
Andiamo a riprendere il progetto del magazzino, come è andata con la prima parte ( QUI )? Trovato difficoltà, era tutto chiaro, dubbi? Era la parte più ostica quindi adesso dovremmo andare veloci come un treno e, se abbiamo capito bene la parte del dizionario, potremo lanciarci in qualsiasi personalizzazione. Let's go!
Se ricordiamo bene gli screen che ho realizzato nella Home Page ho volutamente lasciato minimale , con poche info sul magazzino, e con il tasto per la scansione. Un tasto con la stessa funzione di scan l'ho introdotto anche nella scheda prodotto in modo da iniziare subito una nuova ricerca senza dover tornare alla home, vediamo il loro codice.
Scan1 si trova in home e l'unica cosa che deve fare è far partire il lettore di barcode, l'altro invece, presente nella scheda prodotto, non solo farà partire la scansione ma renderà anche invisibile la scheda prodotto e visibile la home in modo da funzionare anche come tasto torna alla home. Sono scelte di progettazione, a me sembrava carino anche perché così torniamo a visualizzare i dati iniziali , cosa ne pensate?
Vediamo ora cosa succede dopo lo scan, sicuramente avremo due possibili strade: il prodotto esiste a magazzino o non esiste. Appena attivato il when After Scan andiamo a salvare il risultato in una variabile ( in alcuni casi potrebbe non servire ma visto che la personalizzazione è molto semplice ho voluto lasciare questo input) e impostiamo in nostro controllo. Se il codice a barre è presente nella lista allora salviamo i dati nelle varie label e apriamo la scheda prodotto per visualizzarla, da qui poi avremo la possibilità di fare un'altra scansione o caricare quantità per questo prodotto.
Per come ho impostato il database il blocco get keys (senza aggiunte lavora sul primo livello , quello più esterno) mi restituisce la lista di tutti i codici a barre , proprio quello che mi serve per la verifica. Adesso parte una semplice impostazione del testo da visualizzare nelle label, i blocchi del dizionario andranno a prelevare dal Db (database) utilizzando il componente get con il path , quindi se vediamo path sappiamo che possiamo navigare tra i livelli , entrare e uscire da ogni stanza 😂 Nel nostro caso la composizione è molto semplice, come primo elemento del make a list inseriremo la nostra variabile, il codice a barre, e come secondo elemento quello di cui abbiamo bisogno, quindi il nome, la quantità, data, il prezzo oppure qualsiasi campo abbiate messo per il vostro prodotto.
- Se la risposta è Carica, abbiamo selezionato le quantità e salvate poi nella variabile QuantitàProdotto, in questo caso andremo a sovrascrivere le quantità e la data del nuovo carico. Il blocco sarà set value for key path quindi barcode come primo elemento della lista e poi gli diciamo di andare nella stanza quantità per aggiornare. Nel mio caso la nuova quantità sarà da sommare a quella scritta nella label quindi non dovrò prelevare nessun dato dal mio database , se voi avete scelto una composizione differente probabilmente qui o in un'altra posizione dovrete prevedere il recupero dei dati. Il secondo blocco andrà ad aggiornare la data e non dimentichiamoci di salvare nel nostro TinyDb la variabile appena aggiornata così da non perdere dati call store value.Una notifica temporanea a video ci informa del carico avvenuto e andiamo a chiudere la scheda prodotto per tornare alla home ma prima di tutto dobbiamo ricalcolare il numero di prodotti a magazzino con la nostra super variabile locale ( eventualmente la puoi recuperare nel primo tutorial).
- Se la risposta è Crea, il prodotto non esiste quindi andiamo ad aprire la scheda crea prodotto nascondendo la home e contemporaneamente impostiamo il codice a barre nella sua label e la data. Io ho scelto di non dare la possibilità di modifica ma volendo con poco codice è possibile attivare la modifica con click sulla label visto che il blocco click è attivo. Proverai ad introdurre la modifica?
- Se la risposta è Confermo, siamo al riepilogo del nuovo prodotto quindi dobbiamo creare il nostro record nel database. Visto che lavoriamo nel livello più esterno ci basterà un set value for key senza andare a spasso per i corridoi e le stanze, la chiave sarà il codice a barre e i valori saranno introdotti da un make a dictionary e le quattro coppi di valori key-value. Salviamo subito nel nostro TinyDb e andiamo ad aggiornare le label della home, questa volta dovremo impostare sia la quantità delle tipologie ( size of dictionary ) perché abbiamo un nuovo prodotto ma anche la quantità totale prodotti con la nostra sommatoria. Notifica veloce e settiamo correttamente la visualizzazione delle schermate.
- Se la risposta è home, siamo nella scheda di creazione ma non ne abbiamo più voglia quindi usciamo senza salvare previa avviso. Settiamo la visualizzazione dei vari screen e facciamo partire la procedura pulisci campi, non l'ho dimentica, c'era anche al passaggio precedente.
Commenti
Posta un commento