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…)
.
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... ;)
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...