[genropy] Re: Ed ora... sagra!!! ;-)

  • From: Giovanni Porcari <giovanni.porcari@xxxxxxxxx>
  • To: genropy <genropy@xxxxxxxxxxxxx>
  • Date: Thu, 7 Jan 2016 17:59:56 +0100


Il giorno 07 gen 2016, alle ore 17:40, Massimo Masson <max@xxxxxxxxxxxxxxx> 
ha scritto:

Ok il subject è un po' ingannevole, in verità la domanda è più di "approccio" 
(o di logica di funzionamento se volete) a Genropy.

Ad ogni modo, descrivo il contesto:
Sto facendo esperienza su un progettino il cui unico package è la gestione di 
una "sagra di paese" (da qui il subject). Strutturalmente molto simile al 
progetto fatturazione dello screencast del sito.
Il model è sostanzialmente:
- una tabella "tipo_piatto" (primo, secondo, contorno, non importa molto)
- una tabella "piatto" (concettualmente simile all'articolo)
- una tabella "ordine" (concettualmente simile alle testate fattura)
- una tabella "ordine_riga" (concettualmente simile alle righe fattura).

Fin qui funziona come previsto, ora mi stanno venendo in mente 
"complicazioni", una delle quali è che vorrei capire come gestire, con logica 
genropy, una cosa che si distacca dall'esempio fatturazione (almeno, così mi 
pare…)


Molto bene. Non dimenticare di dirci le date così passiamo ad assaggiare :D


.


Basta anche che mi indirizziate a qualcosa di già pronto da studiare, 
ovviamente.

Ad ogni modo, il "problema" è questo: voglio gestire le edizioni della sagra 
(giornate diverse in anni diversi), perché i piatti disponibili non sono 
sempre gli stessi.
Vorrei quindi fare una nuova tabella (nel model) che chiamerei "edizione" (o, 
"giornata", o qualcosa di simile). Il senso è stato prima accennato, non in 
tutti i giorni voglio siano disponibili tutti i piatti. Potrebbe essere che 
oggi c'è il piatto X e non Y, domani invece il contrario.
Dopo aver fatto questa tabella "edizione", la metterei in relazione con la 
tabella "piatto" (*nota1), poi metterei un campo "edizione_id" in relazione 
anche nella tabella "ordine", così da sapere quell'ordine a quale edizione si 
riferisce.

A questo punto, mi resta da capire come gestire l'edizione a livello di righe 
ordine.

In pratica, se decido che un certo ordine si riferisce ad una certa edizione 
(testata, tabella "ordine"), le righe dovrebbero consentire di selezionare 
solo i piatti che si riferiscono a quell'edizione. E' un dato che ho messo 
nel piatto, quindi ci dovrei riuscire.

La domanda "come", su due livelli:
- a livello di front-end (th_ direi...), come faccio a fare in modo che 
vengano selezionati solo i piatti (equivalente a prodotto) il cui campo 
"edizione" ha il valore che c'è in testata dell'ordine, oltre ad avere lo 
stesso id?

- a livello di model, come faccio a rendere "robusto" il tutto (ovvero non 
accettare una riga prodotto con codice edizione diverso da quello della 
testata)? Passo tramite onInserted/ing, onUpdate/ing, o c'è un modo più 
elegante?

Non so se mi sono spiegato bene, tra cene di Natale e fine anno e propositi 
di piatti di sagre varie, vanno su chili solo a leggerlo questo post... ;)


Ti sei spiegato benissimo.

Ora cerco di risponderti.

Hai identificato correttamente che ti serve una tabella edizione in cui mettere 
tra l'altro
data inizio, data fine, orario, sede, note ecc.

Una volta che hai la tua edizione dovrai aggiungere il campo edizione_id a 
tutte le tabelle che in qualche modo hanno a che fare con l'edizione.

Tu hai pensato di metterlo a piatti ma ti suggerirei di creare una tabella in 
più (ad esempio listino)
con id_piatto,id_edizione e prezzo

In questo modo l'archivio piatti può crescere a piacere e quando vuoi fare una 
nuova edizione 
puoi mettere nella form edizione una tabella listino (che seleziona solo le 
righe dell'edizione)
e un picker per trascinare i piatti che vuoi.

Trascinando i piatti la griglia listino si popolerà solo dei piatti che sono 
previsti per quella edizione e al prezzo di quella
edizione.

Andiamo ora alla vendita.

In base alla data sarai in gradi di assegnare automaticamente l'edizione_id 
alla testata dato che suppongo
che solo una edizione sia compatibile con la data voluta.

La riga di vendita a questo punto sarà in relazione con la riga listino invece 
che con la riga prodotto
e nella cella metterai anche la condition necessaria ovvero che la edizione_id 
della riga listino sia
uguale alla edizione_id della vendita

Questa strada è molto facile da gestire e semmai possiamo sentirci in skype per 
darti 
una mano ma è roba da 5 minuti.


Ciao

G


Casomai ditemi dove non mi sono spiegato bene.

Evidentemente non è certo una domanda urgente, essendo uno sviluppo "di 
studio" (ma non nascondo che se non viene male, propongo di usarlo agli 
organizzatori della sagra del paese vicino... :-) )

Ciao e grazie,
max.

---
*nota1: a farlo bene, la relazione tra piatti ed edizioni sarebbe una n:n, ma 
ora questo non mi interessa, faciamo finta che ad ogni edizione genero gli n 
piatti disponibili in quel giorno, tenendola di tipo 1:n. Mi complicherò la 
vita su questo successivamente...


Giovanni Porcari
giovanni.porcari@xxxxxxxxx




Other related posts: