Gestione Ordini e Magazzino

di il
16 risposte

Gestione Ordini e Magazzino

Ciao a tutti ragazzi,
sto intraprendendo una nuova esperienza di programmazione su Access.
Attualmente sto creando un gestionale per la mia azienda. Dopo aver creato tabelle e maschere per quanto riguarda il magazzino e gli ordini,
volevo sapere se fosse possibile (sicuramente lo sarà) fare in modo che, ogni volta che vado a creare un nuovo ordine, automaticamente nella tabella del magazzino va a togliersi la quantità del/dei prodotti presenti nel magazzino. è una banalità probabilmente ma dovrebbe essere un sorta di:
Magazzino.[Qt iniziali] - Ordine.[Quantità] = Magazzino.[Qt rimanenti]
Inoltre al raggiungimento della soglia minima prestabilita dall'utente,
far uscire un messaggio d'avviso.
La tabella magazzino è così strutturata:
ID
Lotto
Codice Articolo
Nome Articolo
Qt Iniziale
Qt Rimanente
Scorta minima

La tabella ordine è invece così:
ID
Codice Articolo
Nome Articolo
Quantità

Ve ne sarei molto grato, dato che i vari tutorial visti su internet finora non sono proprio eccezionali.

16 Risposte

  • Re: Gestione Ordini e Magazzino

    Vari errori:
    1. Nomina sempre al PLURALE i nome-tabella
    2. Nomina più esplicitamente i campi ID, ossia IDOrdine, IDArticolo...
    3. Vedo campi ripetuti in entrambe le tabelle. E' un errore di normalizzazione.

    Consiglio: prima di affrontare il problema del MAGAZZINO, prova a dare un'occhiata generale al database di esempio NorthWind, riportato in molti manuali di base.
  • Re: Gestione Ordini e Magazzino

    Il concetto che un Ordine tolga le quantità dal Magazzino è sbagliato a prescindere.
    Le quantità vanno tolte quando si emette un DDT.
    Fino a quel momento, al massimo, le quantità potrebbero essere 'impegnate' da un Ordine.
  • Re: Gestione Ordini e Magazzino

    Hai ragione Gibra.
    Mi potresti spiegare lo stesso, anche utilizzando come esempio la mia tabella ordine, come è possibile fare questa riduzione?
    Nel mentre vado a creare la maschera e tabella DDT.
  • Re: Gestione Ordini e Magazzino

    OsvaldoLaviosa ha scritto:


    Vari errori:
    1. Nomina sempre al PLURALE i nome-tabella
    Non è che sia poi così fondamentale.
    Ad esempio nel caso di microarchivi quasi sempre c'è UN magazzino (in quelle più ampi più magazzini).
    2. Nomina più esplicitamente i campi ID, ossia IDOrdine, IDArticolo...
    suggerisco di metterli tutti minuscoli. non capiterà mai di portare verso qualcosa di diverso (mysql) e ancor meno su un mysql con file per tabella a 1 che gira su una macchina linux.
    ma non si sa mai
    3. Vedo campi ripetuti in entrambe le tabelle. E' un errore di normalizzazione.
    non è affatto detto.
    non è neppure detto che normalizzare sia male.
    Consiglio: prima di affrontare il problema del MAGAZZINO, prova a dare un'occhiata generale al database di esempio NorthWind, riportato in molti manuali di base.
    consiglio: prima di "partire in quarta", soprattutto con tempi delicati come normalizzazione, sarebbe bene capire PERCHE' si normalizza, PERCHE' NON si normalizza.
    Che pregi e che difetti ci sono.

    La normalizzazione nasce in un "mondo" arcaico, in cui non esistevano i database, le macchine avevano la memoria che oggi ha una calcolatrice tascabile, si usavano dispositivi di massa lenti come qualcosa che oggi non esiste più.
    Nell'applicazione -banale- a questi progettini va sempre bilanciato ed analizzato l' UTILIZZO del database.
    Perchè esso è un MEZZO (il database) per un FINE.
    Non è il FINE
    ---
    Sull'argomento specifico MAGAZZINO si apre un mondo intero, da qualche parte ho già postato ma sono troppo pigro per cercarlo.
    In estrema sintesi puoi avere un magazzino da ricalcolare ogni volta, cioè dove i SALDI sono determinati dalla somma algebrica delle righe (carichi e scarichi) - per inciso normalizzato - oppure no, con tabella saldi (che poi tipicamente è quella degli articoli).
    Nel primo caso la gestione è più semplice, e non avrai errori, ma ogni singola volta tocca fare una query di raggruppamento che può essere veloce, o molto lenta, a seconda di quanti dati hai (ragionevolmente, nel tuo caso, ne hai pochissimi).
    Nel secondo servono accorgimenti più attenti, sia lato programma, che talvolta lato database (coi trigger, ammesso che esistano in Access).
    Poi c'è il terzo caso, che è un "combo" dei primi due con shard verticale, ma è la fascia "programma serio da industria".
  • Re: Gestione Ordini e Magazzino

    gibra ha scritto:


    Il concetto che un Ordine tolga le quantità dal Magazzino è sbagliato a prescindere.
    Le quantità vanno tolte quando si emette un DDT.
    Fino a quel momento, al massimo, le quantità potrebbero essere 'impegnate' da un Ordine.
    ... o da una fattura accompagnatoria.
    Comunque il rilievo è giusto: tipicamente si mette un campo nella riga di magazzino per specificare di cosa si tratta.
    vendita vera e propria, autoconsumazione, impegno e così via con la relativa DATA.
    in tal modo puoi avere i saldi "reali" (cioè quelli che dovresti avere fisicamente in azienda, per i magazzinieri) e "futuri" (per eventuali riaprovvigionamenti dell'ufficio acquisti)
  • Re: Gestione Ordini e Magazzino

    ... EDIT... mi son reso conto che quello che hai messo è un approccio del secondo tipo, lo davo per scontato ma meglio chiarire.

    Per un "niubbo" come te ci rifletterei a fondo, perchè spesso - soprattutto in caso di rettifiche, resi da cliente eccetera - la questione diventa non immediata, e rischi di avere un disallineamento.

    Partirei dall'approccio (1), cioè dalle righe di movimento (datate e taggate)
  • Re: Gestione Ordini e Magazzino

    Cortesemente potreste dirmi come si fa a fare quel lavoro lì? E' un programmino molto soft che sto provando a fare. Vi sto chiedendo come fare una cosa che per me risulta attualmente complicata e per voi una cosa di 5 minuti probabilmente. Non voglio essere scortese assolutamente, ma finora nessuno ha realmente risposto alla mia domanda. Più avanti lo migliorerò quando sarò più esperto, ma attualmente mi serve urgentemente. La mia azienda è chiusa per ferie e riapre a metà settembre. Ora sto creando soltanto una base poi col tempo andrò ad apportare modifiche più dettagliate. Grazie infinite.
  • Re: Gestione Ordini e Magazzino

    In base al regolamento del forum (ti invito a leggerlo):
    - nessuno può fare il lavoro per te (pappa pronta)
    - è richiesta una conoscenza minima di base della applicazione.

    Il mio punto di vista è che tu hai sbagliato approccio iniziale. Con quelle sole 2 tabelle che hai mostrato non vai da nessuna parte. La normalizzazione delle tabelle/database è un argomento molto importante e di base che non va trascurato. Per questo motivo ti ho invitato a dare un'occhiata al database di esempio NorthWind.
  • Re: Gestione Ordini e Magazzino

    cappe9810 ha scritto:


    Cortesemente potreste dirmi come si fa a fare quel lavoro lì? E' un programmino molto soft che sto provando a fare. Vi sto chiedendo come fare una cosa che per me risulta attualmente complicata e per voi una cosa di 5 minuti probabilmente. Non voglio essere scortese assolutamente, ma finora nessuno ha realmente risposto alla mia domanda. Più avanti lo migliorerò quando sarò più esperto, ma attualmente mi serve urgentemente. La mia azienda è chiusa per ferie e riapre a metà settembre. Ora sto creando soltanto una base poi col tempo andrò ad apportare modifiche più dettagliate. Grazie infinite.
    Chiaramente non hai le competenze per farlo, ma non è così grave.

    Quello che ti suggerisco è indicare COSA vuoi ottenere (il FINE). Poi si ragionerà sul MEZZO (come farlo).
    Partire "a testa bassa" è, consentimelo, il tipico errore del dilettante, o principiante ch dir si voglia.

    ---
    Tornando al punto: se capisco bene (cioè mi invento il problema, sulla base della mia esperienza) vuoi fare in modo che la somma degli ordini sia di quantità < della disponibilità di magazzino.
    O controllare che, per ogni ordine, sia disponibile in magazzino il relativo materiale.

    Se è QUESTO il problema, allora non ha (praticamente) nulla a che fare con una gestione del magazzino.
    Quest'ultimo, ad esempio, da dove arriva?
    Cioè una persona fisica carica le giacenze di magazzino, per ogni articolo, ad una certa data?
    E chi, materialmente, varia il magazzino? Cioè è sempre il magazziniere che, manualmente, ogni TOT rifà l'inventario ed aggiorna i dati, oppure vuoi un qualche metodo automatico di aggiornamento?
    Nel secondo caso ti serve "ben altro" che quelle 2 tabelle.
    Niente di fantascientifico, ma di sicuro più complesso.
  • Re: Gestione Ordini e Magazzino

    Qui vedo un problema... anzi 2.
    Prima cosa in 2 ti hanno dato indicazioni chiare di come concettualmente dovresti ragionare sulla gestione dei dati... e mi pare tu ti aspettassi qualche cosa di già calato nel tuo problema che risolvesse tutto.
    Questo è un concetto impossibile per 2 motivi, il primo perché non è banale, il secondo perché da quanto si evince quello che ti è stato detto non ti è di aiuto perché tu non conosci le basi del prodotto... e forse nemmeno la teoria... quindi dovremmo guidarli passo passo con la sicure incomprensioni banali dovute alle lacune.
    Quindi dopo le indicazioni puoi provare a strutturare un modello di base del DB in senso relazionale con le tabelle minime e Com e ti ha suggerito +m2+ l'approccio semplificato di calcolo al volo almeno per ora..

    AnagraficaArticoli
    AnagraficaClientiFornitori
    Fattura
    DettaglioFatture

    Con questi registri i movimenti in DettaglioFatture ed i movimenti in entrata verranno sommati e quelli in uscita sommati con segno meno.
    Per il calcolo delle giacenze fai query raggruppate per CodiceArticolo con il segno ed il risultato sarà la giacenza.
    Ricorda lo stock iniziale lo puoi interpretare come un entrata o trova tu la causale.

    Devi costruirti le basi e l'esperienza minima anche per capire i suggerimenti ma soprattutto perché nessuno fara il lavoro al tuo posto.

    Ultima cosa giusto per essere chiari subito... dici di non voler essere "scortese"... ma francamente fatico a capire quale motivo potrebbe esserci per giustificare un atteggiamento scortese.
    Nessuno mi pare lo sia stato con te ed il fatto tu non abbia capito i suggerimenti rimane più un problema tuo... non di chi si è proposto ad aiutarti.
    Quindi se ci sono atteggiamenti "pretenziosi"... suggerisco di cambiare idea o di chiudere subito il 3d perché di polemiche con il caldo non se ne fanno.
  • Re: Gestione Ordini e Magazzino

    Vorrei soffermarmi un attimo su questo
    ogni volta che vado a creare un nuovo ordine, automaticamente nella tabella del magazzino va a togliersi la quantità del/dei prodotti presenti nel magazzino. è una banalità probabilmente ma dovrebbe essere un sorta di:
    Magazzino.[Qt iniziali] - Ordine.[Quantità] = Magazzino.[Qt rimanenti]
    In questa ipotesi, come ho cercato di spiegare, dovrai gestire TUTTI i casi che vadano a modificare le disponibilità.
    Cosa succede, ad esempio, se hai un reso cliente (per non conformità, o quello che vuoi?)
    ---
    Da "qualche parte" nel programma dovresti fare una funzione "carica reso cliente" che ha il risultato di AUMENTARE (non diminuire) le giacenze.

    E se hai che so un conto visione? Inizialmente dovrai DIMINUIRE il magazzino, ma poi lo dovrai REINTEGRARE.
    Se se hai una fiera dove spedisci l'inverosimile?
    E se...

    Come vedi gli "...e se..." sono davvero numerosi.
    Questo è il motivo per il quale ti suggerisco di mantenere un elenco di TUTTI i movimenti, a qualsiasi titolo, con dei campi in cui registrerai.
    "+ 10 bottiglie di coca cola per RESO CLIENTE TIZIO"
    "- 5 bottiglie coca cola per SPEDIZIONE CLIENTE CAIO"
    "- 3 bottiglie coca cola per IMPEGNO CLIENTE SEMPRONIO AL 15/08/2018"

    Poi per i saldi li sommerai, magari con un WHERE del tipo "SOLO MOVIMENTI VERI" (così hai i saldi fisici).
    "CON IMPEGNI" (così vedi se vai in negativo col materiale).
    "SOLO IMPEGNI" (vedi gli ordini dei clienti)
    ---
    Insomma torniamo al punto precedente: parti da COSA vuoi, e poi si ragiona COME.
    Iniziare "adesso vado a fare la tabella DDT" non può funzionare, poichè è la correlazione tra le tabelle a darti "il risultato finale".

    PS non fare una tabella DDT, è inutile, fai una tabella DOCUMENTI che contiene i DDT, e le fatture.
    E già che ci sei disegnala, ovviamente, come vuole l'agenzia delle entrate (per le fatture elettroniche), così ti risparmierai un sacco di fatica nel giro di qualche mese.
  • Re: Gestione Ordini e Magazzino

    Premetto che non voglio la pappa pronta e mi scuso se non mi sono spiegato bene. So di non avere le conoscenze teoriche dietro ma sono uno che preferisce applicare sin da subito in qualsiasi cosa io faccia anche se sono consapevole che non si fa così.
    Vi spiego in breve in cosa consiste il mio programma. Si tratta di un gestionale d'azienda per controllare i movimenti del magazzino e l'inventario, gestire ordini, DDT, Fatture e pacchetti promozionali.
    Finora sono riuscito, non lo nego grazie ad alcuni tutorial e letture qua e la, a creare le tabelle che secondo me erano necessarie con tanto di maschere ecc. Ho sistemato in modo efficiente la parte riguardante i pacchetti promozionali, il magazzino (a parte quella parte che aimè non so fare), il DDT e le fatture. Ci sto lavorando da giorni nel tempo libero e pian piano sto imparando le varie funzioni. Di base ho delle conoscenze dei vari C++, C#, SQL e VS ma in modo non eccellente.
    Il mio problema attuale è (grazie a suggerimento di Gibra)
    quando vado a fare il DDT e inserisco la quantità dell'articolo venduto, è possibile fare in modo che si riduca la quantità rimanente in magazzino di quel prodotto?
    Esempio
    in magazzino ho a disposizione 10 bulloni e 14 viti
    nel ddt inserisco che sono stati spediti 4 bulloni e 7 viti
    quando vado a vedere nel magazzino vorrei trovare la quantità aggiornata ossia 6 bulloni e 7 viti.
    Spero di essere stato il più chiaro possibile. Perdonatemi per l'ignoranza..
  • Re: Gestione Ordini e Magazzino

    +m2+ apprezzo molto la tua disponibilità
  • Re: Gestione Ordini e Magazzino

    cappe9810 ha scritto:


    ...
    Esempio
    in magazzino ho a disposizione 10 bulloni e 14 viti
    nel ddt inserisco che sono stati spediti 4 bulloni e 7 viti
    quando vado a vedere nel magazzino vorrei trovare la quantità aggiornata ossia 6 bulloni e 7 viti.
    Spero di essere stato il più chiaro possibile. Perdonatemi per l'ignoranza..
    Capisci che ti sono arrivati suggerimenti in una dieezione e tu non solo non hai cercato di applicarli al tuo modello ma stai ancora chiedendo come vedere il conteggio corretto....
    Insomma cosa non capisci della gestione degli scarichi e delle query raggruppate per calcolare totali al volo per somma di movimenti...?
    Lo chiedo perche stai facendo lo slalom e questa é la risposta alla tua domanda... quindi se continui a farla vorrei capire cosa non capisci.

    Perché da quello che dici nemmeno si capisce come gestisci i totali e se li gestisci nella tabella anagrafica materiali... la questione diventa veramente più complicata per essere sicuri che i conti tornino...

    Quindi prima di andare avanti fai un minuto di riflessione...
Devi accedere o registrarti per scrivere nel forum
16 risposte