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.