Newsgroup: it.comp.appl.access
Titolo: Automatizzare nuovo listino vendita ricalcolando al volo i costi

Ciao a tutti,
ho cambiato titolo al post, e chiarito le idee, sperando che qlcn mi
legga
Il miodb calcola costo di prodotti.
I prodotti sono composti da
materie prime, quali il rame, che variano di giorno in giorno. Di qui
la necessità di avere un listino costi basato su data, cambio la data
e ho il costo del, ad. es., tubo di rame, il cui peso incide lo 0,005
al mm, per la lunghezza che sono 30 cm.
perciò il costo del rame del 01/01/07  al Kg. è di 6,15
6,15 * coefficiente 0,005 =  0,03075€ al mm.
0,03075x30mm. = 0,9225€
Questo è il costo di oggi del mio tubo di rame = articolo composto da
materie prime
Lavorazioni = A  questo tubo lo lavo 0,10€, lo curvo 0,005, lo saldo
0,048 = €0,153
Costi vari  = imballaggio 0,00258€ + levigatura 0,589€ = totale
0,59158
Totale (dist_tot3) = 0,9225 + 0,153+ 0,59158 = 1,66658
A questo poi devo aggiungere la % di scarto (3%)  e il costo di
trasporto (0,45) = €2,16657 [dist_tot4]
Il margine/utile 2%  =2.16657+(*2%)=   €0,043314
Prezzo di vendita = 2,16657+0,043314=    2.20990€
Logico che, se il rame diminuisce di prezzo, il cliente chiederà una
diminuzione di prezzo. Se il rame oggi vale 6.05, costo di materia
prima è sceso da 0,9225 a 0,9075  (il nuovo dist_tot4 è €2,1516424)
che in termini di margine vale €0,0430328,
il nuovo prezzo vendita sarebbe 2,1946752.
Il furbone quindi cosa fa? Mi chiede di calcolare il nuovo costo delle
materie prime, ma il margine non verrà + calcolato, ma mi tengo il
valore precedente, perciò  2,1516424 + €0,043314 = Prezzo di vendita
€2,1949564
Perciò ho preservato il margine, ma ho diminuito il prezzo in base al
calo dei costi del rame.
Ora, non ha produzione standard, fa tutto su misura, perciò mille
codice diversi per tanti clienti.
OBBIETTIVO
Devo permettergli di aggiornare il costo dei prezzi delle materie
prime.
Fargli decidere se tenere il margine precedente, o ricalcolarlo
Ma se ha 1000 prodotti per cliente, non deve entrare in ogni prodotto.
L'idea era quella di fargli selezionare per cliente, l'elenco
prodotti.
Da casella combinata sceglie la data di listino che + gli aggrada.
Gli presento i prezzi vecchi, quelli nuovi, gli dico se è aumentato o
diminuito, e gli faccio decidere se mantenere il margine o meno.
A questo punto, lui pigia un tasto, stampa il report che contiene il
listino prezzi di vendita aggiornato.
-------------------------------------------------------------------
STRATEGIA
Non so come impostare tutto il discorso, per iniziare,
Il calcolo del costo dell'articolo ((=rame x coefficiente)xlungh.) lo
faccio tramite query
Q_Smcosti
SELECT TBL_DART.dart_distid, TBL_DART.dart_id, TBL_ARTUM.artum_desc,
TBL_ART.art_desc, TBL_MP.mp_desc, TBL_DIST.dist_data,
TBL_CSTMP.cstmp_data AS DataCosti, TBL_DART.dart_qta,
(([cstmp_costo]*[cstmp_perc])+[cstmp_costo]) AS cstmpbase,
([cstmpbase]+[art_costo€]) AS cstartbase,
(([cstartbase]*[art_coeff])) AS cstartmm,
([cstartmm]*[dart_qta]) AS cstarticolo
FROM TBL_MP INNER JOIN
((TBL_CSTMP INNER JOIN TBL_DIST ON
TBL_CSTMP.cstmp_data=TBL_DIST.cstmp_data)
 INNER JOIN
   (TBL_ARTUM INNER JOIN
    (TBL_ART INNER JOIN TBL_DART ON
TBL_ART.art_id=TBL_DART.dart_artid)
   ON TBL_ARTUM.artum_id=TBL_ART.art_artumid)
 ON TBL_DIST.dist_id=TBL_DART.dart_distid) ON
(TBL_MP.mp_id=TBL_CSTMP.cstmp_mpid) AND
(TBL_MP.mp_id=TBL_ART.art_mpid);
Come vedi, la maggior parte sono campi calcolati.
Il primo passo è quello di ricavare questo costo articolo
(cstarticolo) tramite macro, per tutti i prodotti di quel cliente.
Perciò dovrei fare una macro dentro un ciclo for per nr. record...
solo che non l'ho mai fatto.
Ora faccio una ricerca su google
Logicamente se avete suggerimenti, sono ben accetti,
Grazie x aver avuto la pazienza di leggere sino a qui
Samantha

 Samantha
Apperò !
Non si può dire che manchino i dettagli !
Ho letto il post ieri appena dopo pranzo e, causa la mia digestione
pigra per
poco non mi addormentavo.
Poi siccome soffro anche d'insonnia ci ho pensato ....
Giusto per la cronaca le lettere accentate sono illeggibili.
E in + ho letto anche tutti e due i post(s) !
Scherzo naturalmente, non prendertela, ti prego.
Comunque hai già detto tutto tu.
E hai trovato la soluzione.
Io registrerei in tabella articoli solo il margine che utilizzerei poi 
direttamente nella query di calcolo del costo articolo.
Per registrarlo non dovrebbe servirti una macro.
Sfruttando direttamente la tua query dove calcoli il margine registri
il valore stesso in articoli tramite una query di aggiornamento.
Ciao
MArco
P.S. Scusa i tagli altrimenti il post non partiva
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 > PerciÃ² dovrei fare una macro dentro un ciclo for per nr. record...

Marco grazie un sacco pieno di sacchi!!!
non sai quanto piacere mi abbia fatto vedere una risposta stamattina.
Purtroppo, sono cosciente del fatto che non ho dono di sintesi.
Alla fine devo registrare tutti i totali
(materieprime,lavorazioni,costivari), sebbene il margine fosse la
soluzione migliore... xmostrare se anzichè cambiare il costo degli
acquisti cambiano le lavorazioni oppure...
Ora ho qualche diffficoltà a ricalcolare il costo dei prodotti,
credo di dover fare un ciclo for per recordset, dove recordset
rappresenta la query prodotti filtrare x clienti.
Quindi sto studiando recordset come funzia.
Farò poi delle domande + mirate.
Grazie Marco e buona giornata,
Samantha


Buongiorno NG,
Buongiorno Marco,
il post iniziale spiegava quale fosse il background del mio DB.
Difatto non avevo problemi con il margine, o il calcolo dei costi
cambiando listino all'interno della scheda prodotto.
Devo trovare una soluzione quando permetto all'utente, di ricalcolare
tutti i costi di acquisto, e stabilire tutti i prezzi di vendita,
senza obbligarlo ad entrare in ogni scheda prodotto. (I costi cambiano
giornalmente, i suoi listini di vendita sono trimestrali)
Nella maschera prodotto (chiamata distinta) ho la sottomaschera
SM_COSTIARTICOLI che mi calcola il costo delle materie prime, e altre
sottomaschere che mi calcolano il costo totale delle lavorazioni e
costi vari.
Nella  maschera Listini vendita invece, non avrò queste sottomaschere.
Pensavo di presentare  in una struttura a schede, da una parte i costi
fissati (valori che ho tabellato), e nell'altra scheda  i costi che
vengono calcolati al momento.
Problema: come calcolare i costi al volo?  Devo utilizzare una
struttura recordset? Pensavo di riutilizzare la query della
sottomaschera SMCOSTIARTICOLI, per gli altri fare una DSUM all'interno
delle tabelle, il tutto messo come evento all'apertura della form.
Hai altri suggerimenti?
Grazie,
Samantha

 Samantha
Buongiorno a te.
Non ti sarai rovinata il fine settimana, eh ?
Come calcolare? 
Risposta non semplice potendo solo immaginare la strutura.
Comunque tenterei di tabellare anche i costi che vengono calcolati 
"nell'altra scheda della maschera listini" sfruttando la query che
immagino
sia all'origine dati adattandola a query di creazione tabella (ad
esempio).
Il recordset sarebbe anche utilizzabile ma sempre conoscendo la
struttura.
Spero di essere stato almeno di sostegno morale.
Ciao
MArco 


 MArco
Grazie e buona serata,
Samantha
