Gestionale magazzino e lotto di produzione

martedì 02 ottobre 2012 - 09.22
Tag Elenco Tags  VB.NET

ridaria Profilo | Expert

Ciao Amici.

Sto sviluppando un gestionale per un supermercato ingrosso e dettaglio.

Il problema è quello della tracciabilità dei prodotti che si gestisce a mezzo dei lotti di produzione.
Prmesso che il cliente non è un produttore ma un distributore.

Lui riceve merci e nei documenti di acquisto gli viene indicato anche il lotto di produzione riferito ai beni che acquista.

QUello che lui deve fare è indicare il lotto di produzione quando vende ed emette fattura indicando in fattura per ogni articolo il lotto di produzione.

La problematica riguarda quindi l'associazione del lotto di uno o più articoli al codice articolo (codice a barre).

Qualcuno di voi ha già affrontato questa fattispecie??

Grazie
Riccardo D'Aria

DomA Profilo | Expert

Ciao Riccardo,
il problema è molto complesso. Immagino che quando la merce entra in magazzino viene caricata in un'apposita tabella del db. Una possibile soluzione potrebbe essere quella di fare una ricerca non in anagrafica ma negli articoli caricati così non solo ottieni il Lotto ma man mano che gli articoli escono si fa riferimento a quelli entrati prima GESTENDO COSI' IL MAGAZZINO CON IL LIFO (O FIFO SE VUOI).

---------------------------------------------------------------------------------------------------------------------------------------------------


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

ridaria Profilo | Expert

>il problema è molto complesso. Immagino che quando la merce entra
>in magazzino viene caricata in un'apposita tabella del db. Una
>possibile soluzione potrebbe essere quella di fare una ricerca
>non in anagrafica ma negli articoli caricati così non solo ottieni
>il Lotto ma man mano che gli articoli escono si fa riferimento
>a quelli entrati prima GESTENDO COSI' IL MAGAZZINO CON IL LIFO
>(O FIFO SE VUOI).

Ok vuoi dire che si caricano fisicamente tanti record quanti sono gli articoli entrati in magazzino e ogni record contiene anche il campo lotto di produzione in modo da poter eseguire ricerche sul lotto.

Se è questa una possibile soluzione, mi chiedo e ti chiedo, ma così facendo perdiamo la possibilità di usare il codice a barre dell'articolo, quello impresso dal produttore, perchè dobbiamo ricercare per lotto.

E dato che il numero del lotto da quello cho ho visto fin ora non è espresso come codice a barre ma sempre in numeri e lettere, dobbiamo imporre all'operatore alla cassa di leggere il lotto e digitarlo per comunicare al software di scaricare la qta di qull'articolo con quel preciso lotto.

Ma così significa impiegare tempo a iosa e accrescere l'errore umano, cioè un casino.

Dimmi se è questa la soluzione che ritieni suia l'unica.

GRAZIE infinite

Riccardo D'Aria

DomA Profilo | Expert

>>E dato che il numero del lotto da quello cho ho visto fin ora non è espresso come codice a barre ma sempre in numeri e lettere, dobbiamo imporre all'operatore alla cassa di leggere il lotto e digitarlo per comunicare al software di scaricare la qta di qull'articolo con quel preciso lotto.

>>Ma così significa impiegare tempo a iosa e accrescere l'errore umano, cioè un casino.

Cercherò di spiegarmi meglio.
Sicuramente nel gestionale hai una tabella adibita ad anagrafica prodotti. Del tipo:
ID
Cod Art
Cod Ean
Descrizione
....

a questo punto inserirei un'ulteriore tabella per il carico / scarico della merce. Tipo
ID
Data
Lotto
prezzo Unitario
Sconto
Quantità
...
IDArticolo (chiave esterna)

Quando devi fare la fattura fai una una ricerca creando una JOIN tra le due tabelle ed usando un DISTINCT
In questo modo nella query hai sia il codice articolo / barre che il numero di Lotto. Non solo, se fatta bene puoi selezionare solo gli articoli la cui giacenza è > 0.
Come dicevo non è semplice ed è fondamentale un'accurata progettazione.
Di soluzioni ne esistono anche altre. Questa dovrebbe garantirti la tracciabilità in quanto, con una ricerca sul numero di lotto puoi risalire sia ai documenti di acquisto (memorizzati nel carico) che ai documenti di vendita (memorizzati nello scarico).

Spero di essere stato abbastanza chiaro.

--------------------------------------------------------------------------------------


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

ridaria Profilo | Expert

>Sicuramente nel gestionale hai una tabella adibita ad anagrafica
>prodotti. Del tipo:
>ID
>Cod Art
>Cod Ean
>Descrizione
>....
ESATTO
>a questo punto inserirei un'ulteriore tabella per il carico /
>scarico della merce. Tipo
>ID
>Data
>Lotto
>prezzo Unitario
>Sconto
>Quantità
>...
>IDArticolo (chiave esterna)
>
>Quando devi fare la fattura fai una una ricerca creando una JOIN
>tra le due tabelle ed usando un DISTINCT
ma la ricerca la faccio per codice EAN o per LOTTO?

e quando vendo alla cassa che faccio solo lo scontrino?
quale articolo scarico? devo andare a leggere il lotto su ogni articolo?

scusami ma faccio faica a capire che sia una cosa fattibile.

Perdonami, non voglio essere polemico, ma sto presentando la fattispece così come è nella realtà.

ci sono sia fatture che scontrini, e le casse sono 3, devo anche bdare, in primis, ai processi di lavoro che siano snelli e veloci.
Altrimenti in questo supermercato non ci va più nessuno. :-)


Hai skype?


Riccardo D'Aria

bludev Profilo | Newbie

Potrebbe accadere che in magazzino, per lo stesso articolo, puoi avere lotti diversi. Siccome però il codice a barre è identico indipendentemente dal lotto, la vedo dura nel momento che fai la fattura o scontrino identificare automaticamente (e con assoluta precisione) il lotto dell'articolo che stai passando sotto il lettore di codici a barre.
Con la tecnica FIFO (first in - first out) si suppone che dal magazzino esca la merce a partire da quella più vecchia. Quindi sarebbe semplice determinare il lotto, basta leggerlo dal movimento di carico del magazzino più vecchio e non ancora esaurito. Ma in un supermercato spesso capita di trovare merce alla rinfusa (io stesso, quando faccio la spesa, prendo gli articoli alimentari in fondo allo scaffale, che hanno date di preparazione più recenti), di fatto gli articoli che arrivano alla cassa non sono per forza quelli più vecchi.
Credo che l'unica strada "sicura" sia quella di codificare il numero di lotto, dal quale puoi senz'altro risalire al codice articolo.
---
Fabio Turrin - Bludev - http://www.bludev.it/

ridaria Profilo | Expert

>Potrebbe accadere che in magazzino, per lo stesso articolo, puoi
>avere lotti diversi. Siccome però il codice a barre è identico
>indipendentemente dal lotto, la vedo dura nel momento che fai
>la fattura o scontrino identificare automaticamente (e con assoluta
>precisione) il lotto dell'articolo che stai passando sotto il
>lettore di codici a barre.
>Con la tecnica FIFO (first in - first out) si suppone che dal
>magazzino esca la merce a partire da quella più vecchia. Quindi
>sarebbe semplice determinare il lotto, basta leggerlo dal movimento
>di carico del magazzino più vecchio e non ancora esaurito. Ma
>in un supermercato spesso capita di trovare merce alla rinfusa
>(io stesso, quando faccio la spesa, prendo gli articoli alimentari
>in fondo allo scaffale, che hanno date di preparazione più recenti),
>di fatto gli articoli che arrivano alla cassa non sono per forza
>quelli più vecchi.
>Credo che l'unica strada "sicura" sia quella di codificare il
>numero di lotto, dal quale puoi senz'altro risalire al codice
>articolo.
che intendi dire?
usare il numero di lotto per eseguire le ricerca articolo nel gestionale, giusto?




Riccardo D'Aria

bludev Profilo | Newbie

>che intendi dire?
>usare il numero di lotto per eseguire le ricerca articolo nel
>gestionale, giusto?

Si
---
Fabio Turrin - Bludev - http://www.bludev.it/

ridaria Profilo | Expert

........
e a questo punto la cassiera che deve leggerlo e digitarlo per cercarlo, tanto vale che lo legge e lo digita per scriverlo nella descrizione del'articolo della fattura e non cambia niente e in fattura tengo traccia del lotto, ciò che vuole il mio cliente.

P.S.
che lavoro fai?

Io analisi e programazzione


ciao e grazie ti ricontatto domani
Riccardo D'Aria

DomA Profilo | Expert

Scusatemi se mi intrometto,
>>che intendi dire?
>>usare il numero di lotto per eseguire le ricerca articolo nel gestionale, giusto?

>>Si
------------------------------------------

>>FERMIAMOCI UN ATTIMO e facciamo un passo indietro:

>>ma la ricerca la faccio per codice EAN o per LOTTO?

La ricerca devi farla per codice EAN questo è chiaro (altrimenti a cosa servirebbe la JOIN)
il DISTINCT serve ad evitare numeri di lotto replicati.

Poi dev'essere il software ad imputare lo scarico a ciascuno lotto per il limite max.
Cerco di spiegarmi:
Premesso che stiamo scaricando 15 pz di un determinato articolo articolo i cui carichi siano stati effettuati così:


442x49 3Kb


in pratica il software dovrebbe essere in grado di imputare la q.tà max a ciascun lotto (a partire dai carichi più vecchi ---> F.I.F.O. oppure da quelli più recenti ---> L.I.F.O.).
Non è cosa facile ma questa è l'unica strada percorribile per ottenere la tracciabilità.

>>........e a questo punto la cassiera che deve leggerlo e digitarlo per cercarlo, tanto vale che lo legge e lo digita per scriverlo nella descrizione del'articolo della fattura e non >>cambia niente e in fattura tengo traccia del lotto, ciò che vuole il mio cliente.

Va bene che non siamo ai carrelli intelligenti, però ...
i clienti scapperebbero.

Scherzo, naturalmente. Sto cercando di alleggerirti dal duro compito che ti aspetta.











Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

Vinsent Profilo | Senior Member

Ad ogni articolo nella tabella anagrafica devi aggiungere un campo "tracciatura lotto" e legare una tabella, chiamiamola "dettaglio", con i campi "lotto" e "quantità".
Nel campo "lotto" devi prevedere tre righe ad esempio "magazzino", "negozio" e "NOlotto".

ACCETTAZIONE
Quando si fa il "controllo/accettazione" della merce con la bolla di accompagnamento:
1 - l' operatore carica il materiale inserendo il "codice articolo" e la q.tà totale
NB: potresti richiamare l' ordine al fornitore e visualizzare i codici ordinati,
l' operatore seleziona la riga ed inserisce solo
la q.tà ricevuta, così puoi inserire un controllo sulla q.tà ordinata, quella ricevuta e la data di consegna richiesta.
2 - clic su un button "carica"
3 - verifica "tracciatura lotto"
3_TRUE.0 - si apre una maschera con più righe "lotto" e "q.tà"
3_TRUE.1 - si inseriscono i dati
3_FALSE - si assegna in automatico la q.tà al lotto "magazzino"
4 - clic "ok"
5 - in caso di 3_TRUE verifichi che i parziali corrispondano al totale
5.0 - si legge la tabella "dettaglio" se ci sono lotti esistenti
5.1 - si aggiorna la q.tà o si crea un lotto nuovo
6 - si stampano le etichette riportanti "quantità", "n° ordine", "lotto", data (per il FIFO*) per ogni collo. Il tutto con barcode.
* ad esempio: settimana/anno

PRELIEVO (in fighettese...picking)
Inserisci una "causale" per distinguere il prelievo per il negozio o per l' ingrosso,
Quando si preleva dal magazzino bisogna leggere il barcode del "codice", "lotto" e inserire la "q.tà" per lo scarico, esistono dispositivi wireless con wince adatti allo scopo che velocizzano di molto l' operazione.
Se si preleva per "l' ingrosso" scarichi la q.tà dal lotto e precompili la fattura o crei una "packing list".
Se si preleva per il negozio sposti la q.tà del lotto indicato nel lotto "negozio".
In questo modo, sommando le q.tà x lotto escluso "negozio" sai quanta merce hai in magazzino, mentre la q.tà del lotto "negozio" e quella del negozio...
Ovviamente...alla cassa si scarica in automatico il lotto "negozio".

Devi prevedere delle "forzature":
1 - in assenza di lotto e se richiesto
1.0 - scarichi/aggiungi la quantità al lotto "NOlotto"
2 - scarico lotto inesistente
2.0 - aggiungi il lotto alla tabella dettaglio e la q.tà in negativo
3 - la q.tà scaricata è maggiore di quella assegnata al lotto
3.0 - mandi in negativo la q.tà assegnata al lotto
quindi aggiungi una funzione "controlla coerenza q.tà/lotto" che verifica se nelle tabelle ci siano lotti con q.tà in negativo o se "NOlotto" è diverso da zero, se l' esito è positivo bisogna andare a tirare le orecchie ai magazzinieri...

Forse è un pò complesso...ma è quanto posso dirti da magazziniere con le orecchie lunghe....

ciao!

ridaria Profilo | Expert

>Premesso che stiamo scaricando 15 pz di un determinato articolo
>articolo i cui carichi siano stati effettuati così:

>
>in pratica il software dovrebbe essere in grado di imputare la
>q.tà max a ciascun lotto (a partire dai carichi più vecchi --->
>F.I.F.O. oppure da quelli più recenti ---> L.I.F.O.).
>Non è cosa facile ma questa è l'unica strada percorribile per
>ottenere la tracciabilità.

IL PROBLEMA è CHE GLI ARTICOLI VENGONO PRIMA PRELEVATI DAL CLIENTE, E POI CONSEGNATI ALLA CASSA PER FAR FARE FATTURA O SCONTRINO.

A QUESTO PUNTO IL SOFTWARE NON DEVE DECIDERE LUI COSA SCARICARE IN ORDINE DI TEMPO lifo fifo, MA DEVE SCARICARE CIò CHE IL CLIENTE HA PORTATO AL BANCO. QUINDI CONVERRAI CON ME CHE BISOGNEREBBE LEGGERE DA OGNI ARTICOLO IL lotto E QUINDI SCARICARE LE QTA DA QUEL LOTTO.


Riccardo D'Aria

DomA Profilo | Expert

>>IL PROBLEMA è CHE GLI ARTICOLI VENGONO PRIMA PRELEVATI DAL CLIENTE, E POI CONSEGNATI ALLA CASSA PER FAR FARE FATTURA O SCONTRINO.
Il software non interviene quando il cliente arriva alla cassa?

>>A QUESTO PUNTO IL SOFTWARE NON DEVE DECIDERE LUI COSA SCARICARE IN ORDINE DI TEMPO lifo fifo, MA DEVE SCARICARE CIò CHE IL CLIENTE HA PORTATO AL BANCO. >>QUINDI CONVERRAI CON ME CHE BISOGNEREBBE LEGGERE DA OGNI ARTICOLO IL lotto E QUINDI SCARICARE LE QTA DA QUEL LOTTO.

Quindi conti di caricare l'articolo ogni volta che cambia il numero di lotto?
Soluzione semplice ma quanto costa in termini di tempo, probabili errori >>nellimmissione dei dati<< e spazio occupato nel db? Buona Fortuna!


-----------------------------------------------------------------------------------------------------------------





Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

ridaria Profilo | Expert


>Poi dev'essere il software ad imputare lo scarico a ciascuno
>lotto per il limite max.
>Cerco di spiegarmi:
>Premesso che stiamo scaricando 15 pz di un determinato articolo
>articolo i cui carichi siano stati effettuati così:
>
>
>
>in pratica il software dovrebbe essere in grado di imputare la
>q.tà max a ciascun lotto (a partire dai carichi più vecchi --->
>F.I.F.O. oppure da quelli più recenti ---> L.I.F.O.).
>Non è cosa facile ma questa è l'unica strada percorribile per
>ottenere la tracciabilità.


scusami forse non mi sono spiegato:

è un supermercato!!! dove la gente prende la roba con le proprie mani dagli espositori e la porta alla cassa, e poi dice:
voglio lo scontrino o la fattura.

ripeto quindi come hai detto tu il software non puo: essere in grado di imputare la
>q.tà max a ciascun lotto (a partire dai carichi più vecchi --->
>F.I.F.O. oppure da quelli più recenti ---> L.I.F.O.). perché che ne sai l'articolo che è arrivato alla cassa di quale lotto è? Devi solo leggerlo fisicamente dalla confezione! hai capito?

cioè a scegliere è la gente che può portare alla cassa due articoli uguali di lotti diversi!!!!




Riccardo D'Aria

DomA Profilo | Expert

Grazie

>>cioè a scegliere è la gente che può portare alla cassa due articoli uguali di lotti diversi!!!!
se guardi bene l'esempio che ho fatto trattasi appunto dello stesso articolo con 2lotti diversi.

Guarda bene l'img (in particolare Cod EAN e Lotto)


442x49 3Kb


>>scusami forse non mi sono spiegato:

>>è un supermercato!!! dove la gente prende la roba con le proprie mani dagli espositori e la porta alla cassa, e poi dice: voglio lo scontrino o la fattura.

Che è un supermercato è chiaro; cosa fa la gente normale anche.

Il software è collegato alla cassa?

cmq anch'io ho il mio bel da fare.


Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.

http://www.infomidia.it

Domenico

MarcelloFioravanti Profilo | Newbie

Ho anche io un problema simile, vorrei provare a sviluppare qualcosa ad hoc, ma la vedo troppo complessa, forse l'alternativa migliore è proporre un gestionale magazzino (tipo: http://www.monamisb.it/gestionale-magazzino-programma-di-magazzino.html) già pronto. Non ho capito bene poi come avete risolto il discorso dei lotti di produzione...

ridaria Profilo | Expert

NON si uò a meno di una gestione del magazzino che rispetti sequenze e ritmi dettati dal software.


CIAO
Riccardo D'Aria

dompa72 Profilo | Senior Member

Dalla mia esperienza sei costretto ad utilizzare due metodi diversi:
1. per lo scontrino (non penso che serva il numero di lotto, considerando se compro un cellulare sullo scontrino non viene inserito l'imei) metodo fifo
2. per la fattura (in questo caso l'operatore deve perdere un po' di tempo scegliendo il lotto) precisione

l'unico problema puoi averlo in caso di lotto/seriale esaurito dal metodo fifo, in questo caso dovrai scrivere una routine che sistema il metodo fifo con il lotto scelto

Ciao

emarketer14 Profilo | Newbie

Sono alle prese con lo stesso problema e capisco la possibile soluzione di codificare i lotti, ma faccio fatica a venirne fuori nella spiegazione!
Emanuele Fati - Programmatore presso gestionale magazzino presso http://www.magia3.it

ridaria Profilo | Expert

ciao sono l'autore del post.

Ho dimenticato la problematica.

Tu che problema/bisogno hai?

Ciao
Riccardo D'Aria

MaxMag Profilo | Newbie

Devi inserire il lotto nel codice a barre. Puoi scegliere magari di scrivere la radice del barcode nel record della tabella del fornitore e al momento che lo carichi a magazzino lo concateni con la parte riferita al lotto. Stampi poi le etichette per quel lotto e quando scarichi sai esattamente a chi hai dato la merce e da chi proveniva.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5