Il lotto d’acquisto determina la QT che risulta economicamente conveniente acquistare tenendo conto di alcuni parametri. In questo caso utilizzeremo il modello di wilson per il calcolo del lotto d’acquisto, tale informazione presente in anagrafica consente all’MRP di accorpare più richieste d’acquisto in un unico acquisto secondo dei parametri prestabiliti. Tale dato va pertanto mantenuto in anagrafica con periodicità che varia a seconda di come cambiano i parametri utilizzati nel modello. Per il calcolo abbiamo bisogno delle seguenti informazioni estratte dal gestionale ed organizzate nel modo seguente:
ANAGRAFICA:Codice, Costo,Fornitore, Confezione
FORNITORI: Fornitore, CostoOrdine
MOVIMENTI: Codice, Causale, Data, QT
Nella tabella fornitori il costo dell’ordine sarà calcolato imputando le spese del centro di costo ufficio acquisti ed utilizzando come driver il tempo dedicato all’emissione degli ordini a seconda del fornitore.
Per prima cosa calcoliamo il consumo medio per articolo partendo dalla tabella dei movimenti (in questo caso filtriamo unicamente le causali di vendita, produzione interna e lavorazione esterna):
SELECT MOVIMENTI.Codice, SUM(MOVIMENTI.QT) AS Consumo FROM MOVIMENTI WHERE (((MOVIMENTI.Data)>=#1/1/2009# AND (MOVIMENTI.Data)<=#12/31/2009#) AND ((MOVIMENTI.Causale)="VE" OR (MOVIMENTI.Causale)="PP" OR (MOVIMENTI.Causale)="LA")) GROUP BY MOVIMENTI.Codice; |
SELECT MOVIMENTI.Codice, Sum(MOVIMENTI.QT) AS Consumo FROM MOVIMENTI WHERE (((MOVIMENTI.Data)>=#1/1/2009# And (MOVIMENTI.Data)<=#12/31/2009#) AND ((MOVIMENTI.Causale)="VE" Or (MOVIMENTI.Causale)="PP" Or (MOVIMENTI.Causale)="LA")) GROUP BY MOVIMENTI.Codice;
A questo punto calcoliamo il lotto economico arrotondandolo alla confezione:
SELECT ANAGRAFICA.Codice, ANAGRAFICA.Costo, ANAGRAFICA.Confezione, ANAGRAFICA.Fornitore, FORNITORI.CostoOrdine, Consumi.Consumo, Sqr((2*([Consumo]/12)*[CostoOrdine])/([I]*[Costo])) AS Lotto, (Round([Lotto]/[confezione],0))*[confezione] AS EOQ FROM (ANAGRAFICA INNER JOIN FORNITORI ON ANAGRAFICA.Fornitore = FORNITORI.Fornitore) INNER JOIN Consumi ON ANAGRAFICA.Codice = Consumi.Codice; |
SELECT ANAGRAFICA.Codice, ANAGRAFICA.Costo, ANAGRAFICA.Confezione, ANAGRAFICA.Fornitore, FORNITORI.CostoOrdine, Consumi.Consumo, Sqr((2*([Consumo]/12)*[CostoOrdine])/([I]*[Costo])) AS Lotto, (Round([Lotto]/[confezione],0))*[confezione] AS EOQ FROM (ANAGRAFICA INNER JOIN FORNITORI ON ANAGRAFICA.Fornitore = FORNITORI.Fornitore) INNER JOIN Consumi ON ANAGRAFICA.Codice = Consumi.Codice;