Newsgroup: it.comp.lang.visual-basic
Titolo: ?Storno della merce scaricata

Ho questo problema: Il cliente mi ha chiesto di poter modificare le fatture
già emesse.
Ho detto che è illegale ma, il cliente paga!!!!!!!!!
Inserendo una nuova fattura, lo scarico avviene cosi:
vScarico = (RSMagazzino!Scarico + vQta)
vScorta = (RSMagazzino!Carico - vScarico)
Come faccio a stornare in magazzino la merce precedentemente scaricata?
Carmelo


Monsieur de la palisse wrote:
All'incontrario di come l'hai scaricata!
:-)
-- 
Il Wodkino Nazionale è a : 
www.martek.it
Pagina Vb/Bestiario/Lamer Experience :
http://www.martek.it/go.asp?portamia=2
 New Entry nel bestiario!
:-)

 scaricata?
Wodka ti ha risposto in maniera corretta.
Inverti i segni dei movimenti...
Io in realtà creo un movimento nuovo, con causale del tipo 'storno del
movimento xyz' e segno opposto al movimento xyz, di modo che sia possibile
ricostruire la storia qualora qualcuno mi dica "ma io ho guardato ieri e non
era disponibile, adesso c'è, e nessun fornitore l'ha consegnato!!"
Ciao
Alberto

 movimento xyz' e segno opposto al movimento xyz, di modo che sia
Questo mi piace :-)
-- 
Alex
"Un uomo saggio impara dall'esperienza,
un uomo ancora più saggio impara dall'esperienza degli altri." (Saggio
Cinese)

 mag).
Si parla di storno, non di rettifica.
Sono cose diverse.
Alberto

[Albe V° = 
circa_vac...@hotmail.com
 in
c2hjmo$1qp2q0$
1...@ID-222113.news.uni-berlin.de
] ha scritto:

mmm, mica poi tanto. Partendo dal post originario, la variazione di una
fattura è una rettifica, lo storno del magazzino è tale indipendentemente
dalla quantità.
Personalmente, ogni volta che l'operatore registra una riga già esistente,
ne storno integralmente gli effetti con i valori allo stato prima della
modifica e ne aggiorno integralmente gli effetti con i valori allo stato
dopo la modifica. La prima parte (solo) anche in caso di eliminazione di una
riga, la seconda parte (solo) in caso di una nuova riga. In tal modo taglio
la testa a più di un toro.

 ha scritto nel messaggio
news:c2hjmo$1qp2q0$1...@ID-222113.news.uni-berlin.de...

Scusate ma è la prima volta che faccio questo genere di applicazione e forse
ho sbagliato ad esprimermi, ma qual'è la differenza tra storno e rettifica,
perchè io dovrei poter correggere una fattura come dice Alex.
Se ho inserito come qtà 250 Kg, e dopo devo modificare in 150 Kg.
che condizione devo mettere nel codice affinchè mi modifichi il segno.
Mi spiego:
Se inserisco una nuova fattura, al momento che la salvo verifico se è una
nuova fattura quindi fa questo.
Per una modifica cosa devo verificare?
Carmelo

 Per una modifica cosa devo verificare?
Con tutto il (massimo e sincero) rispetto per Albe, hai sbagliato il post
cui rispondere... ;-)

 di una nuova riga. In tal modo taglio la testa a più di un toro.
Hai ragione.
In effetti Carmelo ha chiesto di poter effettuare una variazione di una
fattura (e in questo caso abbiamo uno storno parziale o un movimento
addizionale, molto più lineare da gestire rispetto ad una rettifica
inventariale).
Io avevo osservato solo la parte finale, in cui Carmelo chiede come
'stornare' una fattura, nel qual caso il movimento originale, in entrata o
in uscita che sia, va stornato integralmente.
Di fatto Carmelo ha chiesto due cose diverse nello stesso post, e io mi ero
concentrato solo su una.
Non ho seguito bene il tuo ragionamento su come gestisci la modifica, ma io
cerco di limitare le rettifiche (diciamo 'inventariali') allo stretto
necessario, in quanto sono fonte di immani difficoltà quando qualcosa non
quadra.
Se, ad esempio, l'utente modifica una uscita numero xyz di 10pz in una
uscita di 7pz, io effettuo uno storno parziale, del movimento 'uscita'
num.xyz
, di 3pz.
In caso di incongruenza all'inventario, per elementi poco movimentati si
capisce con una sola occhiata cosa è successo e, soprattutto, quale
operatore ha fatto cosa.
ciao
Alberto

 ha scritto nel messaggio
news:c2hnaf$1toe98$1...@ID-174464.news.uni-berlin.de...

Mi pare di capire che fai lo scarico subito dopo aver inserito la riga? o
sbaglio?
E se alla fine non si vuole salvare la fattura?
Carmelo

 Carmelo
se storni in pratica "azzeri"...il movimento!
ad esempio se faccio una registrazione di 100 Euro in dare....ne faccio una
analoga di 100 in avere
come si dice dalle mie parti
"poggio e buca ...fa pari"
alla fine nulla si crea ...tutto si trasforma....e tutto ritorna a zero....
E' la maniera canonica e "lecita" per correggere gli errori....
ad es.
ops ho registrato un movimeto di una banca in un altra e non posso
cancellare i movimenti.....
faccio dei "movimenti di storno"....
Un manuale di ragioneria ti aiuta più delle mie parole!
TU invece vuoi modificare......
ROBA che c'entra poco con la contabilità e molto con "altre cose"!!!
Il metodo diventa non più fiscale ma logico...ed ognuno fa la strada che la
sua capacità, il suo programma, la situazione contingente consente!
L'ideale sarebbe (ma IMHO come vedi i pareri son discordi) AZZERARE e
ripartire a pulito.....
ossia faccio il percorso a ritroso (compreso purtroppo i movimenti di
magazzino se li hai fatti...li c'è la parte più casinosa)e mi ritrovo come
se non avessi registrato nulla....poi faccio la registrazione corretta!
MA è un arzigogolo molto "pasticcione"...mi fa un po storcere il naso....lo
fa storcere anche ai berrettini grigi...
etc etc
QUINDI
usa la matematica e la logica
che ti fa questo?
vScarico = (RSMagazzino!Scarico + vQta)
vScorta = (RSMagazzino!Carico - vScarico)
in Vqta e Vscarico la roba da scaricare?
metti  in Vrettifica la tua quantità.....
vScarico = (RSMagazzino!Scarico - vRettifica)
vScorta = (RSMagazzino!Carico + vRettifica)
e oplà!
Non ti tornerà un cazzo in contabilità...povero il tapino che si becca un
programma così fatto...c'avrai (forse) movimenti di magazzino zoppi...ad un
controllo impallinano il tuo cliente come un tordo....
ma ho risposto al tuo post!
Buon lavoro
...e auguri (al tuo cliente...ne avrà bisogno!)
;-)


 E se alla fine non si vuole salvare la fattura?
La fattura è già nata (pur con un numero interno e di comodo, non quello
fiscale di emissione). Non può non salvarla, la può solo eliminare. In quel
caso storno tutte le righe, come se le cancellassi una per una.

 Non sbagli, lo faccio in tempo reale.
perchč?
per evitare che qualcuno ti porti via gli articoli sotto il naso?
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 operatore ha fatto cosa.
Mi piace molto l'dea di generare un movimento per ogni modifica, per
giustificare a chicchessia che i totali risultanti non se li è inventati la
macchina o il programma. Purtroppo ... ormai è tutto fatto (ma me lo annoto)
;-)
Gestisco le modifiche come dicevo e, aggiungo, in tempo reale. Storno il
vecchio (se c'è) e aggiorno il nuovo (se c'è). Non deposito un movimento di
"variazione algebrica", cambio solo i dati del movimento variato ai loro
nuovi valori e ne gestisco al volo gli effetti (come dicevo, vecchi e nuovi)
sui vari prograssivi dell'articolo interessato (carichi, scarichi, etc.).
Ovvio che se qualcosa si impianta (ma questo credo sia un problema di
tutti), per avere coerenza fra progressivi e movimenti, devo lanciare una
procedura che azzera tutti i progressivi e li riconteggia "riaggiornando"
tutti i movimenti, come se questi ultimi venisseri caricati tutti in quel
momento. Ci vuole del tempo, lo so, ma le eccezioni non mi preoccupano.

 per evitare che qualcuno ti porti via gli articoli sotto il naso?
No, per avere (per quanto possibile) le giacenze reali in ogni istante.
Ovvio che mi riferisco a un ambiente di più postazioni concorrenti.
Non ho specificato perchè mi pareva ovvio: fermo restando che uno può creare
una fattura quando vuole e fare contestualmente l'eventuale (se riguarda
articoli) scarico di magazzino, nella realtà e normalmente le fatture sono
"trasparenti", ovvero nascono da un raggruppamento bolle anche a distanza di
settimane dall'effettiva movimentazione dei materiali. In altre parole, le
bolle "fotografano" la movimentazione nel momento in cui fisicamente (e
gestionalmente) avviene (naturalmente compatibilmente con l'immediatezza con
cui l'operatore le registra), le fatture no perchè, appunto, si limitano
all'emissione di un documento fiscale che raggruppa delle bolle "vecchie".

 interessato (carichi, scarichi, etc.).
Pongo un caso:
Ieri mattina sono usciti 10pz, ne restano 0
Ieri pomeriggio Pippo cerca la scorta, e non ne trova.
Stamattina, modifico il movimento di ieri, e ne risultano 3 a magazzino.
Oggi Pippo cerca la scorta, ne trova 3, e si incazza perchè ieri non
c'erano. Da dove arrivano?
Possibilità 1:
- Pippo analizza i movimenti, vede una uscita di 10pz di ieri e uno storno
parziale di 3pz stamattina. Capisce cosa è successo e vede chi ha operato.
Può chiedere chiarimenti.
Possibilità 2:
- Pippo analizza i movimenti, vede una uscita di ieri di 7pz, eppure ha una
stampa di ieri pomeriggio con giacenza 0. "E' sicuramente un bug di questo
software gestionale del cazzo".
Aggiungo che anche una rettifica 'a brutto grugno', ossia imponendo una
nuova giacenza (tipico caso, l'inventario in cui si trovano scatole che non
risultano), è per me un movimento di magazzino. Solo che non è un movimento
con risultato=Precedente+movimentato, ma con risultato=valore_movimento.
Nella tabella dei possibili movimenti, un semplice campo indica se il
movimento è un movimento classico (segno + o segno -), se è uno storno di un
movimento precedente (il cui segno sarà l'opposto del movimento di
riferimento), o se è una rettifica 'assoluta' (e qui non 'è segno, è così e
basta).
Ciao
Alberto

 scatole che non risultano), è per me un movimento di magazzino.
Sì, anche per me. In sintesi, ogni progressivo deve essere giustificato da
uno o più movimenti o anche nessun totale/progressivo deve poter essere
modificato se non con un movimento.

 ha operato. Può chiedere chiarimenti.
Albe, abbi pazienza, ma mi sfugge una cosa: Immaginiamo di parlare di un
movimento di bolla di scarico.
Per me è anche una riga della stessa, il record è insomma unico.
Mi è chiaro, dal punto di vista logico e di "storia documentale", che il 10
e il -3 "raccontano" quel che è accaduto e che la loro somma algebrica
giustifica il complessivo +7 sugli scarichi dell'articolo interessato.
Mi sfugge come gestire questi due movimenti come singola riga di documento,
per esempio in stampa dello stesso. Insomma, ho due righe e, ai fini della
stampa della riga su documento, nessuna delle due è "vera" (7), nè mi
piacerebbe stampare le due righe... Ok, potrei in qualche modo "raggruppare"
i records che rappresentano la storia (movimenti) di una singola riga e
mandare in stampa la quantità risultante, ma mi sembra piuttosto complesso e
non di immediata soluzione, specialmente se pensiamo che una variazione può
riguardare anche altre cose, come una descrizione, un valore unitario, uno
sconto, etc. e ... le variazioni sulla stessa riga possono essere più d'una,
fatte in tempi diversi, fra altre variazioni di altre righe...
Puoi illuminarmi? Grazie.

 Per me è anche una riga della stessa, il record è insomma unico.
Beh, è un vincolo che ti sei imposto, ma lo trovo poco pratico.
Il movimento di magazzino può essere collegato ad un documento (è un campo
del record del movimento), ma può anche esserne slegato, così come più
movimenti possono generare una unica riga del ddt.
Quindi, una tb Movimenti e una tb Dettaglio_DDT. In caso di storno o
modifica, i movimenti (originale e 'altro movimento') faranno riferimento ad
una stessa riga del ddt, la cui qtà sarà quella che vuoi stampata (in linea
di principio, la somma algebrica dei movimenti).
Considera, comunque, che se il ddt è già stato dato al destinatario, per
correttezza va stampato un nuovo ddt.
Ciao
Alberto

 come più movimenti possono generare una unica riga del ddt.
Ok, chiaro. Grazie.