scritto da | on , , | Nessun commento

Un problema che si può porre nel caso vengano gestite delle lavorazioni esterne è quello relativo al bilanciamento dei magazzini dei terzisti nel caso si segua per alcuni materiali una politica di alimentazione del terzista a dotazione, in modo particolare per quei materiali di base, comuni a più lavorazioni per cui non conviene contare ogni singolo pezzo da inviare al terzista. In questo caso si può verificare che alcuni codici hanno una giacenza inferiore all’ordinato in certi depositi mentre in altri può verificarsi il caso opposto. In questa condizione potrebbe non essere conveniente alimentare dal magazzino centrale quei depositi con disponibilità di materiale negativa ma potrebbe essere più utile spostare dei codici da un magazzino ad un altro. Lo schema proposto permette di determinare quali spostamenti è conveniente effettuare.

Sono necessarie le seguenti tabelle

Saldi: CODICE, COSTO,GIACENZA, IMPEGNO, DISPONIBILITA (l’impegno è dato dall’ordinato più la scorta di sicurezza)

Costi trasporti: DEP PART, DEP ARR, COSTO (Costo è inteso come costo per un singolo viaggio, indipendente dalla qt trasportata)

Si determinano per prima i codici con disponibilità negativa e positiva con due query di selezione:

SELECT SALDI.CODICE, SALDI.DEP, SALDI.DISPONIBILITA
FROM SALDI
WHERE (((SALDI.DISPONIBILITA)<0))
ORDER BY SALDI.CODICE, SALDI.DISPONIBILITA;
 
SELECT SALDI.CODICE, SALDI.DEP, SALDI.DISPONIBILITA
FROM SALDI
WHERE (((SALDI.DISPONIBILITA)>0))
ORDER BY SALDI.CODICE, SALDI.DISPONIBILITA DESC;

tramite codice si determina la qt da spostare (si considera il codice con la disponibilità negativa e si scalano le qt dalle qt utilizzabili dai depositi con disponibilità positiva, nel caso si esaurisca la qt disponibile lo stesso codice o i codici successivi vanno posti a zero o per la differenza dellala qt da trasferire) ottenendo la seguente tabella

spostamenti: CODICE,COSTO, DEP ARR, DEP PAR, QT SPOST

si determina quindi tramite una query di selezione il valore dei viaggi:

SELECT SPOSTAMENTI.[DEP ARR], SPOSTAMENTI.[DEP PAR], SUM([QT SPOST]*[COSTO]) AS VALORE INTO [VALORE VIAGGI]
FROM SPOSTAMENTI
GROUP BY SPOSTAMENTI.[DEP ARR], SPOSTAMENTI.[DEP PAR];

Si incrocia la tabella valori viaggi con costi trasporto per determinare quali viaggi sia conveniente fare

SELECT [VALORE VIAGGI].[DEP ARR], [VALORE VIAGGI].[DEP PAR], [VALORE VIAGGI].VALORE, [COSTI TRASP].COSTO, [VALORE]-[COSTO] AS DIF
FROM [VALORE VIAGGI] INNER JOIN [COSTI TRASP] ON ([VALORE VIAGGI].[DEP PAR] = [COSTI TRASP].[DEP ARR]) AND ([VALORE VIAGGI].[DEP ARR] = [COSTI TRASP].[DEP PART]);

Il modello può essere ulteriormente raffinato introducendo la volumetria degli articoli e la volumetria massima trasportabile per viaggio in modo da valutare se il viaggio sia fattibile o meno, a questo punto si genera un ordine di trasferimento tra depositi.

Lascia un Commento

News