Newsgroup: it.comp.appl.access
Titolo: Come memorizzate le esistenze degli articoli?

Supponete di avere il classico gestionale che fa ddt/fatture/ordini ecc
Supponete di avere piu' depositi nei quali il materiale/prodotto viene 
tenuto dall'acquisto fino alla vendita, deposito1, deposito2, deposito3
Deve essere ovviamente disponibile, rapidamente, l'informazione relativa 
all'esistenza attuale di ogni articolo sia su ogni deposito che il 
valore totale (in questo caso la somma dei tre depositi)
 
Bon, detto questo, la domanda e': come fareste a tenere traccia 
dell'esistenza attuale di ogni articolo su ogni deposito?
 
Chiedo questo perche' vedo che si usano diversi metodi, c'e' chi 
aggiorna l'esistenza direttamente su un campo del record articolo, c'e' 
chi ricalcola al volo partendo dalle righe dei documenti, c'e' chi 
memorizza separatamente dei 'movimenti di magazzino' in corrispondenza 
di ogni riga documento, ecc...
Per ogni sistema ci sono dei pro e dei contro
Che metodo usate voi per tenere aggiornata l'esistenza di ogni articolo?


per i miei scenari di utilizzo sempre calcolate al volo
 
parlo tipo di cliente con 80.000 articoli
1000/1500 fatture anno 3000/4000 ddt
 
be sqlserver
multimagazzino
 
non lamentano rallentamenti
 
BFS
 


'Calcolate al volo' vuol dire che se devi visualizzare l'esistenza di un 
articolo vedi l'ultima volta che e' stato inventariato e da quel momento 
in poi tutte le righe dei documenti dove appare?
Non mi sembra una procedura da poco, parlo in termini di tempi


io ho strutturato tutto tramite distinte carico scarico.
 
un ddt mi genera una distinta di scarico in automatico
idem una fattura accompagnatoria
 
un carico manuale mi genera una distinta di carico
etc etc
 
mi bastano due tabelle
 
 
id: id del movimento
datamov : data del movimento
tipomov : (c/s)  carico o scarico
magazzino : n° del magazzino (di solito ne hanno uno solo)
...
frizzi e lazzi
 
relativa tabella con gli articoli
 
idmov
idriga
codarticolo
pz
...
frizzi e lazzi
 
 
un bel indice sql server su tipomov/datamov e codarticolo e non ho 
problemi di prestazioni per il volume di dati dei miei clienti
 
per avere l'esistenza è una semplice somma/sottrazione dei vari movimenti
 
interrogando quelle due tabelle vedo anche tutti i dettagli dei 
movimenti di un articolo
tipo tra date
solo carichi
solo di un certo magazzino
legati a un cliente
etc etc
 
statistiche con l'analisi indici di rotazione
 
 
BFS
 
 
 
 


Ah ho capito, quindi tu usi la tabella separata per i movimenti di magazzino
Per un ddt di vendita oltre a testate e righe del documento tieni una 
tabella separata che mantiene le informazioni della movimentazione 
articoli che appaiono sulle righe del documento
Quindi se un ddt di vendita ha 10 righe articoli, ci saranno altrettante 
10 righe nella tabella 'distinte carico scarico' che io chiamo 
'movimenti di magazzino'
 
Ma se vuoi vedere l'esistenza attuale di un articolo, tieni 
l'informazione da qualche parte (e la aggiorni ad ogni movimentazione di 
quell'articolo) o fai sempre la somma 'al volo' di tutti i carichi e gli 
scarichi relativi a quell'articolo?
 
Per ultimo, hai mai pensato di accorpare le informazioni relative alle 
'distinte di carico scarico' sulle righe stesse dei documenti?
Chiedo questo perche' anch'io tengo la tabella 'movimentimagazzino' 
separata dai documenti, sostanzialmente come fai tu, ma sto pensando che 
molte informazioni sono comuni tra 'movimenti magazzino' e 
'righedocumenti' e quindi aggiungere qualche campo sulle righe documenti 
al fine di tenere traccia della movimentazione articoli potrebbe evitare 
la tabella 'movimentimagazzino'
 

 
 
si ma...
molte attività non hanno sempre un rapporto uno a uno con vendite 
documentate/scarico
 
a buon intenditor...
 
:-)
 
BFS
 
 


Ah gia', non ci avevo pensato
Cosi' puoi avere una gestione diciamo piu' flessibile

 la tabella 'movimentimagazzino'
 
Io (anzi, noi) lavoriamo così.
 
Saluti


E per le esigenze 'strane' cui faceva riferimento BFS ?
Nel senso, potrebbero esserci dei carichi o degli scarichi non collegati 
a nessun documento, come fate?
 

 a nessun documento, come fate?
 
?
Fammi capire cosa non si possa scaricare con un Documento "Bolla di scarico" generico.
 
Saluti
 


Certo, con una 'bolla di scarico' si puo' scaricare di tutto
Il punto e' che per le piu' disparate esigenze, questo documento 
potrebbe non essere presente in archivio, e le quantita' vanno 
movimentate lo stesso per allinearle alla reale esistenza a deposito
Ed in questo caso la memorizzazione dei 'movimentidimagazzino' parallela 
alle righe documenti e' indispensabile

 alle righe documenti e' indispensabile
 
Allora, se intendi eventuali gestioni "parallele" trovo strano che tu abbia in gestione ditte del genere, a me perfino il dentista non accetta più pagamenti in black!
Comunque nel caso nostro, a seconda dei gusti dei committenti, affrontammo la cosa in 2 modi diversi:
 
1) Attraverso un Flag sulle Causali, possiamo codificare Documenti che durante il salvataggio vengono trasferiti su DB esterno e rimossi da quello ufficiale.
Poi, da un programma adibito, si possono eseguire statistiche unificate tra i 2 DB.
 
Oppure
 
2) Tutti i Documenti, ufficiali e non, vengono inseriti nel DB aziendale: in caso di necessità s'invoca un programma d'eliminazione rapida che rimuove i Documenti relativi a Causali 'indesiderate'.
In seguito, una utility di sincronizzazione ne permette il ripristino da un DB di backup (si presume da penna USB).
 
'Gestioni' che nacquero 1000 anni anni fa per qualche temerario, ma credo inutilizzate da lustri.
Non conosco altre "disparate esigenze".
 
Saluti