Order genereren vanuit een offerte

Status
Niet open voor verdere reacties.

HJD1986

Gebruiker
Lid geworden
28 mrt 2017
Berichten
61
Beste forumleden,

Ik heb een nieuwe opzet gemaakt voor een systeem om o.a. offertes en orders in te verwerken.
Inmiddels is het offertesysteem bijna klaar en hoop ik aan de orders te beginnen.
Ik weet echter nog niet helemaal hoe ik e.e.a. in moet richten qua structuur.

Het is de bedoeling dat orders gegenereerd worden o.b.v. een uitgebracht offerte, dus het omzetten van een offerte in een order, en een order moet ook direct ingevoerd kunnen worden.
Hoe kan ik het beste een offerte omzetten naar een order? De offerte moet naderhand nog wel geraadpleegd kunnen worden, maar niet aangepast kunnen worden.

Ik ben benieuwd naar jullie ideeën.

Voorbeeldje database bijgevoegd.
 

Bijlagen

  • Test Database.zip
    103,8 KB · Weergaven: 51
Ik zie weinig verschil tussen een Offerte en een Order; kwestie van de status van de offerte omzetten. Desnoods kopieer je de offerte naar een offertetabel, als je ze gescheiden wilt houden.
 
In de meeste systemen worden bij bestelling de offertegegevens naar één of meerdere bestellingstabellen (bestelgegevens, detaillijnen) gekopieerd. Een bestelling is niet altijd compleet conform met de offerte: soms wordt maar een deel besteld, soms is bij bestelling een bepaald artikel niet meer beschikbaar en wordt het vervangen door een gelijkwaardig artikel, enzovoort. Door de bestelling in de tabel Bestellingen te noteren kan je die verschillen daar ingeven. In de bestellingstabellen kan je dan ook specifieke velden zoals besteldatum, leveringsdatum en betalingsgegevens toevoegen. Je kan hier ook deelleveringen voorzien als je met een aparte leveringstabel werkt.
Je offerte blijft dan in zijn oorspronkelijke vorm in de offerte tabel bestaan. Je kan hier wel de status aanpassen naar besteld, en ervoor zorgen dat eenmaal de offerte besteld is of de geldigheidsdatum verstreken is deze niet meer aangepast kan worden.
 
Hi NoellaG,

Bedankt voor je reactie.
In mijn oude database (de eerste die ik met Access heb gebouwd als beginneling) creeer ik een order door de velden van offerte en offerte inhoud toe te voegen aan tabel orders en orderregels. Dit d.m.v. een toevoeg query. Dit werkt op zich aardig, maar het gaat soms mis, bijv. de offerte inhoud wordt geplaatst bij een verkeerd order ID.

Hoe kan ik het beste de gegevens kopieren? Is dat idd door een toevoeg query te gebruiken of zijn er andere, betere mogelijkheden?
 
Dit d.m.v. een toevoeg query. Dit werkt op zich aardig, maar het gaat soms mis, bijv. de offerte inhoud wordt geplaatst bij een verkeerd order ID.
Hoe krijg je dát voor elkaar? Als je een Toevoegquery maakt, dan kopieer je de gegevens die je op dat moment actief hebt naar een nieuw record. Of dat in dezelfde tabel is, of een andere tabel, maakt niets uit. Het is onmogelijk, zou je zeggen, om dan in een bestaande record terecht te komen. Laat vooral zien (aan noella, ik bemoei me er uiteraard verder niet mee ;) ) wat je doet.
 
In een eerste toevoeg query voeg je de offertegegevens die je wil overzetten toe aan de tabel orders en daar maak je een nieuw order mee aan. Laten we voor het ID veld een autonumber nemen en het OrderID noemen. Zorg ervoor dat in de tabel Orders ook een veld is voorzien waarnaar je de ID van de offerte kan wegschrijven . Laat het ons bv. OfferteID noemen

Daarna ga je de orderlijnen aanmaken. Deze moeten natuurlijk aan de juiste order hangen. De offertelijnen zijn gekoppeld aan de offerte via het ID veld OfferID van de Offerte tabel en het FK veld in de OfferteInhoud tabel OfferteID. In je voorbeeld mis ik de relatie tussen Offerte.OfferID en OfferteInhoud.OfferteID maar ik vermoed dat het wel de bedoeling is dat in OfferteInhoud.OfferteID de ID staat van de bijbehorende offerte. In de toevoegquery voor de orderlijnen kan je een link maken tussen de tabellen Orders en OfferteInhoud op OfferteInhoud.OfferteID = Orders. OfferteID en daarmee de OrderID van de nieuw aangemaakte orderlijn ophalen . Deze kan je dan toevoegen aan het veld Orderlijnen.OrderID (of de naam die je aan het koppelveld Orders -> Orderlijnen gaat geven) zodat je de lijnen aan de juiste hoofding koppelt.
 
Bedankt Noella,

Ik ben nog niet zover, maar hoop daar snel mee te kunnen beginnen.
Ik worstel nog met Dsum functie voor het marge totaal (zie reactie op mijn post hierover). Als dit is opgelost kan ik weer door ;-)
 
Ik worstel nog met Dsum functie voor het marge totaal (zie reactie op mijn post hierover).
En ik maar denken dat ik dat al voor je had opgelost? Ik denk dat ik jullie maar zelf laat doormodderen, dan steek ik mijn tijd in personen die dat wél waarderen :).
 
Dag Octafish, dat heb je inderdaad al voor me opgelost , en ik kan je vertellen dat ik dat enorm waardeer .

Zoals ik in de reactie op t probleem al aangaf, ik wil graag dingen leren EN onthouden. Dsum wil ik graag begrijpen aangezien er vermoedelijk situaties zijn waar dit de enige oplossing is.

Dus ik hoop van harte dat je je tijd ook in mijn vragen wilt blijven stoppen, anders kan ik er beter mee stoppen vrees ik

Als blijk van waardering: bij deze bedankt
 
Dsum wil ik graag begrijpen aangezien er vermoedelijk situaties zijn waar dit de enige oplossing is.
Je wilt graag leren? Dan is dit mijn bijdrage: er zijn nooit situaties waar D-functies de enige oplossing zijn. Of de snelste. Of de beste :).
 
Dsum wil ik graag begrijpen aangezien er vermoedelijk situaties zijn waar dit de enige oplossing is.
Je wilt graag leren? Dan is dit mijn bijdrage: er zijn nooit situaties waar D-functies de enige oplossing zijn. Of de snelste. Of de beste :).
 
Hi Octafish, NoellaG

Het is me allemaal eindelijk gelukt. Ik heb e.e.a. ingericht o.b.v. jouw oplossing, n.l. de query.
In eerste instantie kreeg ik de boel niet werkend en zag ik door de bomen het bos niet meer. Ben er vandaag even goed voor gaan zitten.
Persoonlijk vind ik het subformulier o.b.v. gegevensweergave een stuk prettiger werken.

Dsum is uiteindelijk ook gelukt, maar heb dit toch ervaren als wat complex.

Hartelijk dank voor jullie heldere uitleg.

Ik ga nu aan de slag met het kopiëren van gegevens naar een ordertabel.
 
Persoonlijk vind ik het subformulier o.b.v. gegevensweergave een stuk prettiger werken.
Dan heb je nog nooit een goed doorlopend formulier ontworpen. Tabelweergave is in mijn ogen ronduit afschuwelijk :). Ik loop er met de grootst mogelijke boog omheen, en heb het in 40 jaar Access nog nooit gebruikt.
 
Dat is het mooie aan de meeste software, Octafish, iedereen kan zijn eigen manier van werken ontwikkelen. Misschien wat vastgeroest na 40 jaar werken met hetzelfde programma?
 
Mee eens, iedereen heeft denk ik ook zo zijn persoonlijke voorkeuren. Als het voor mij perfect werkt, zie ik geen reden om dit aan te passen.
Maar zoals ik al zei, een ieder heeft zo zijn voorkeur.
 
Als het voor mij perfect werkt, zie ik geen reden om dit aan te passen.
Moet je ook zeker blijven doen. En je komt vanzelf bij HelpMij terug als het dan tóch weer niet lekker blijkt te werken :D.
 
In een eerste toevoeg query voeg je de offertegegevens die je wil overzetten toe aan de tabel orders en daar maak je een nieuw order mee aan. Laten we voor het ID veld een autonumber nemen en het OrderID noemen. Zorg ervoor dat in de tabel Orders ook een veld is voorzien waarnaar je de ID van de offerte kan wegschrijven . Laat het ons bv. OfferteID noemen

Daarna ga je de orderlijnen aanmaken. Deze moeten natuurlijk aan de juiste order hangen. De offertelijnen zijn gekoppeld aan de offerte via het ID veld OfferID van de Offerte tabel en het FK veld in de OfferteInhoud tabel OfferteID. In je voorbeeld mis ik de relatie tussen Offerte.OfferID en OfferteInhoud.OfferteID maar ik vermoed dat het wel de bedoeling is dat in OfferteInhoud.OfferteID de ID staat van de bijbehorende offerte. In de toevoegquery voor de orderlijnen kan je een link maken tussen de tabellen Orders en OfferteInhoud op OfferteInhoud.OfferteID = Orders. OfferteID en daarmee de OrderID van de nieuw aangemaakte orderlijn ophalen . Deze kan je dan toevoegen aan het veld Orderlijnen.OrderID (of de naam die je aan het koppelveld Orders -> Orderlijnen gaat geven) zodat je de lijnen aan de juiste hoofding koppelt.

Hi NoellaG,

Betekend dit dat ik dus uiteindelijk 2 toevoegquery's moet maken: 1 voor het toevoegen van de order, en 1 voor het toevoegen van de orderinhoud?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan