Newsgroup: it.comp.appl.access
Titolo: dritte su gestione carico - scarico

ho un db access che mi sono fatto per gestire la mia attività (sistemista 
e ogni tanto un pò d hw...) e adesso vorrei mettere a posto la parte 
relativa a carichi e scarichi.
lavorandoci un pò sopra, m'è venuta la pensata di una struttura del 
genere:
tbl_ana_articoli <-> tbl_magazzino <-> tbl_fatture_vendita
    	    	    	    	     ^
                          |
                          V
    	    	    	tbl_fatture_acquisto
tengo l'anagrafica articoli in una tabella apposta, collegata con la 
tbl_magazzino in cui ho effettivamente le quantità dei singoli pezzi.
ogni riga del magazzino, è associata alla fattura con cui è entrata.
il mio problema, è che con ogni fattura potrei acquistare più di un pezzo 
per articolo: per lo scarico come faccio?
p.es
:
in-> fatt2004/01  'hd maxtor 120 gb' qta 5
se vendo tutti i dischi con una sola fattura, no problem, ma se li vendo 
a 5 persone diverse?
come soluzione, ho pensato che potrei aggiungere in magazzino una riga 
per ogni pezzo acquistato (5 hard disk = 5 righe in tbl_magazzino, anche 
se la fattura d'ingresso è unica) e quindi associare poi le singole righe 
alla fattura d'uscita corretta.
solo che mi sembra una soluzione un pò macchinosa...
siccome contabilità & affini non sono esattamente il mio campo, mi 
potreste dare qualche dritta su tutto l'accrocchio?
secondo voi ho 'elaborato' una soluzione sensata?
tenete presente che quanto sopra è più per sfizio personale che altro, 
dato che con le quantità che maneggio io, riesco a campare anche facendo 
il tutto a mano, solo che mi trovo con un pò di tempo libero e quindi...
:-)
tia
    	paolo
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
| (fake address in reply-to field!)
+-------

 ha scritto nel messaggio news:Xns949C887CAAB60paoloopg@janick...

potresti aggiungere un campo  alla tabella magazzino che incrementi ad ogni conferma articolo:
es:
data|tipo|q_acquisto|q_uscite|q_residuo
12/12/1212|6|0|6
quindi se oggi vendi
aggiorni aumentando del numero di articoli venduti la q_uscite e ricalcoli il residuo.
se il residuo è <0 allora reimposti la q_ucite al valore del residuo precedente
quidni controlli se ci sono altri artcoli con disponibilità
se trovi l'articolo aggiorni la quantià e il relativo residuo
se non ci sono più articoli blocchi la fattura perchè non puoi (in teoria) vendere qualcosa che non
hai in magazzino :-)
ciao Nick

 ha scritto nel messaggio
news:Xns949C887CAAB60paoloopg@janick...

Io direi che dovresti proprio fare come hai ipotizzato tu: "...5 hard disk =
5 righe in tbl_magazzino...".
Se non ti interessa sapere quale tipo di hd stai caricando (marca o
n.testine e simili) puoi generalizzare il carico: "hard disk" = 5 pezzi.
Certo che se ti serve reperire anche la capacità e/o la velocià di rotazione
allora è un altro discorso...
Ciao.
--
Sergio MAZZA

Ciao,
posso permettermi.... stò facendo una cosetta simile per la gestione di un
magazzino, allora la mia idea:
1. nella tabella magazzino aggiungi un campo quantità (che la setti in
automatico uguale alla quantità della fattura di acquisto che tu inserirai)
poi metti un campo Movimento che lo compili in automatico con il valore
CARICO quando sei in modalità carico magazzino e con il campo SCARICO quando
sei in modalità vendita.
2. per avere la consistenza del magazzino per un determinato prodotto fai
una query sulla tabella magazzino che raggruppa per articolo e somma le
quantità con campo CARICO, una query che raggruppa per articolo e sommi le
quantità con campo SCARICO, alla fine compatti tutto con una query basata su
le altre due che raggruppano per prodotto e fanno la differenza fra CARICO e
SCARICO...
che ne dici/dite.
ciao luca
P.S.: scusate se no  faccio il quoting ma il mio news server non lo
supporta. ciao luca

 
c'avevo pensato...
solo che oggi rimuginando sul problema, sono arrivato alla conclusione 
che con la mia pensata, la verifica delle giacenze per articolo, data una 
tbl_magazzino così:
idArt-> dall'anagrafica
fattIn-> fattura d'acquisto (obbligatorio)
fattOut-> fattura di vendita (predefinito=null)
progr-> autonumber per distinguere articoli uguali nella stessa fattura
è una sola query del tipo:
SELECT COUNT(*), idArt 
FROM tbl_magazzino 
WHERE fattOut IS NULL 
GROUP BY idArt
(fatti salvi errori di sintassi, ovviamente...)
in più, non c'è il rischio che sbagliando e modificando la qta di uno 
scarico già inserito si sballi tutto: o la riga per l'uscita c'è, o non 
c'è.
e poi, usando le relazioni, posso fare in modo che sia impossibile 
cancellarla a meno di non aver prima cancellato la fattura d'uscita 
(credo...).
devo studiare un pò la relazione tra magazzino e fatture in uscita...


 
:-)
per adesso, vedo di fare il minimo, mettendo semplicemente un id per ogni 
articolo e un campo descrizione.
per eventuali categorie o simili, vedrò più avanti, una volta che tutto 
l'accrocchio sarà un pò più definito.


 
c'è però il problema degli errori di modifica: se per sbaglio imposto 
q_residuo a un valore errato, non me ne accorgo subito e il sistema non mi 
blocca, dato che la verifica non è automatica ma devo farla io via codice.
e siccome io e sono molto creativo in fatto di errori...
:-)
è lo stesso problema che mi salta fuori con la soluzione di magic surfer.


 ha scritto nel messaggio
news:Xns949C887CAAB60paoloopg@janick...

Non pensare mai... che riuscendo a racchiudere più operazioni possibili in
meno tabelle o query sia la soluzione migliore.....o che viceversa creare
molte tabelle o molte query sia sempre la soluzione peggiore...
  comunque   "5 righe per 5 hard disk"" è la direzione giusta....
            anche se è pur vero che per arrivare a questo dalla
tbl_fatture_acquisto è necessaria (almeno così faccio
io) una query SQL di inserimento che ti duplichi i record in relazione al
valore quantità.
                    Gli svantaggi sono : la non diretta dipendenza delle due
tabelle cioè sarebbe a dire che se dopo aver
caricato una fattura di 50 Hard Disk (quindi 50 righe in magazzino) , ti
accorgi che la fattura era                                 per 49...
Dovresti in teoria andare prima nella Fattura e correggerla ... e poi andare
nella                                         tabella magazzino cercare gli
articoli che si riferiscono alla fattura ed eliminarne uno.... (un pò
complicato ma si può gestire con delle query).
                                       E' pur vero che se uno si mette a
pensare ai casi limite... lasciamo stare...

 genere:
se ti può essere utile potrei mandarti uno schema di database....

 ha scritto nel messaggio
news:c2aeh1$qsu$1...@lacerta.tiscalinet.it...

Scusami, io sarei interessato :)
potresti mandare anche a me la struttura?
sono alle prese con un programmino per gestire un magazzino (se così si può
chiamare un magazzino che gestisce 10 articoli con 20-30 movimenti al
mese..)
ho creato le tabelle movimenti, causali e articoli... qualcosa ho fatto ma
avrei bisogno di capire meglio come si potrebbe gestire un magazzino..
quindi ti sarei molto grato se potessi spedire anche a me qualcosa su cui
"studiare" :)
Grazie e scusami ancora!
Ciao

 ha scritto nel messaggio
news:lpc2c.54178$FJ6.1...@twister1.libero.it...

Ok  fra qualche giorno però