Buongiorno ragazzi,
innanzitutto vi voglio ringraziare per il tempo dedicato, vi dico solo che stanotte nel sonno ho avuto l'illuminazione, quindi stamattina pensavo di modificare il post prima che qualcuno mi rispondesse, anche perché in realtà la questione è un po più complessa della domanda formulata in maniera frettolosa, ma la vs. operosità mi ha davvero colpito!
L'esigenza che ho è quella di scrivere una funzione che ragioni come un magazziniere che deve registrare un carico di magazzino e che quindi va a cercarsi le righe d'ordine fornitore da evadere, cercando di lasciare meno spezzature possibili; nello specifico il problema si pone quando nell'ordine sono presenti più righe con lo stesso codice, ma nell'automatismo che sto creando il sistema gestionale vuole sapere con esattezza quale riga deve evadere, però per fare questo penso sia meglio calcolarsi un indice di priorità di evasione...
Esempio:
Bolla del fornitore Rif Vs. Ordine 5.88
CodArt | Qtà
MELE | 6
PERE | 24
Ordine a fornitore 5.88
Idriga | CodArt | Qtà BackOrder | Priorità evasione
01 | MELE | 6 | 1 > e qui sono = quindi no problem, salda questa
06 | PERE | 14 | 1 > qui deve evadere sia questa riga che la riga 66
58 | MELE | 48 | 3 > se la riga 1 e 84 sono evase, evade 1 pz qui e 5 pz sulla riga 93
66 | PERE | 10 | 1 > qui deve evadere sia questa riga che la riga 6
84 | MELE | 7 | 2 > se la riga 1 è evasa, evade 6 pz da qui, lasciando 1 in backorder
93 | MELE | 5 | 3 > se la riga 1 e 84 sono evase, evade questa riga e 1 pz sulla riga 58
Quindi la funzione che dovrò scrivere, qualcosa del tipo GetRowToProcess(IDordine, CodiceArticolo, QtaSpedita) penso che sarà suddivisa in 3 parti, la 1° se sono uguali, la 2° per gli interi (caso delle MELE), la 3° per le spezzature (caso delle PERE), e questa funzione restituirà per ogni combinazione passata l'IDriga o gli IDriga da evadere con le relative quantità.
Spero di essermi spiegato meglio, appena posso provo a buttar giù qualcosa e vi aggiorno...
Voi gestireste questa problematica in maniera più semplice? Come?
Grazie