Articoli Taggati ‘solleciti’

Sollecito fornitori

nov
2009
06

scritto da | on , | 2 commenti

Una volta emesso l’ordine al fornitore potrebbe rendersi necessario sollecitare la consegna di codici che risultano essere scaduti o che siano divenuti urgenti per la produzione. Il punto di partenza è la tabella con gli ordini ancora inevasi che va incrociata con la tabella degli impegni per individuare le urgenze.
Per determinare le urgenze consideriamo la seguente tabella:
CODICE, DATA IMPEGNO,QT, GIACENZA, IMP CUM
L’impegno cumulato lo calcoliamo via codice in questo modo:

Function GIAC()
Dim DB As DAO.Database
Dim tabella As DAO.Recordset
Dim campo As DAO.Field
Dim code(900000)
DBEngine.SetOption dbMaxLocksPerFile, 9000000
 
'campi da modificare
CODICE = "CODICE"
TABCL = "Impegni"
GIACE = "IMP CUM"
MOVI = "QT"
 
'procedura calcolo giacenza
Set DB = CurrentDb
Set tabella = DB.OpenRecordset(TABCL, dbOpenDynaset)
Set campo = tabella.Fields(GIACE)
Do Until tabella.EOF
    c = c + 1
    code(c) = tabella.Fields(CODICE)
    m = tabella.Fields(MOVI)
    If code(c) <> code(c - 1) Then GIAC = m Else GIAC = GIAC + m
    tabella.Edit
    campo = GIAC
    tabella.Update
    tabella.MoveNext
Loop
tabella.Close
DB.Close
End Function

A questo punto incrociamo questa tabella con le giacenze per determinare la disponibilità:

SELECT [impegni].CODICE, [IMP CUM].DATA, [impegni].[IMP CUM], Giacenze.GIAC, [GIAC]-[IC] AS DISP, IIf([DISP]<0,"N","P") AS TD
FROM [impegni] INNER JOIN Giacenze ON [impegni].CODICE = Giacenze.CODICE;

Ora possiamo calcolare la data in cui si verifica la rottura di stock

SELECT [Disponibilità nel tempo].CODICE, MIN([Disponibilità nel tempo].DATA) AS DN
FROM [Disponibilità nel tempo]
WHERE ((([Disponibilità nel tempo].TD)="N"))
GROUP BY [Disponibilità nel tempo].CODICE;

A questo punto definiremo come codici da sollecitare quelli che risultano essere scaduti ed hanno una data di rottura di stock minore o uguale ad una settimana dalla data odierna.

News