Originariamente inviato da valeria75
Ho verificato la logica e c'è qualche cosa che non mi torna
nella funzione non credo che sia necessario passare il lotto (anche perchè il lotto devo cercarlo)
io devo cercare tutti i lotti "disponibili" (non esauriti) per l'articolo considerato (ordinati per data)
Nella SP invece dovrei fare un insert degli X lotti utilizzati per soddisfare la mia richiesta in una seconda tabella (tabella2) del tipo:
QtaUtilizzata
Lotto
dove, per ogni lotto, indico la quantità utilizzata
come già indicato il lotto potrebbe essere uno solo (se riesce a soddisfare tutta la mia richiesta) oppure piu lotti ...
Grazie ancora
...non so se ho capito bene qual'è il problema ,
ma come puoi notare dai dati di esempio che ho fatto in precedenza
ho ipotizzato che ad una stessa data possano esserci più
Lotti diversi con lo stesso articolo e che lo stesso Lotto
si possa ripetere in date diverse;
infatti nel caso in cui la Qta Richietsa (@QtaRic) sia 6 l'output che vedrai
nel query analizer - senza bisogno di sapere quale lotto passare alla funzione - è :
(non ho fatto l'insert nella tabella perchè mi sembra banale modificarlo in tal senso)
codice:
Data Lotto Qta da impegnare
----------- ------- ... ----------------
2006-01-01 Lotto01 3
2006-01-01 Lotto02 1
2006-01-01 Lotto05 1
2006-01-02 Lotto02 1
invece con questi altri dati in cui c'è un solo lotto per data
(e che forse rispecchiano meglio il problema)
e quantità richiesta pari sempre a 6
codice:
insert dbo.TabLotti values('Lotto01','art1', '20060101',5,2)
insert dbo.TabLotti values('Lotto02','art1', '20060102',2,2)
insert dbo.TabLotti values('Lotto03', 'art1','20060103',4,3)
insert dbo.TabLotti values('Lotto04', 'art1','20060104',6,2)
insert dbo.TabLotti values('Lotto05', 'art1','20060105',3,2)
insert dbo.TabLotti values('Lotto06', 'art1','20060106',3,2)
l'output sarà:
Data Lotto Qta da impegnare
----------- ------- ... ----------------
2006-01-01 Lotto01 3
2006-01-03 Lotto03 1
2006-01-04 Lotto04 2
...se il caso è il secondo tra quelli fatti sopra direi che le cose si semplificano
e, anche se mi sembra che già funzioni così com'è, si può migliorare;
....come già detto prova ad adattarla al tuo caso e se ci sono problemi
, tempo permettendo, vediamo il da farsi;
(ti ricordo anche che volendo puoi usare un cursore)