Door
Chris PHP
op 15-01-2014 15:36
gewijzigd op 15-01-2014 15:37
6.210 views
Heren,
Ik kan er niet helemaal uitkomen wat nu de beste structuur is voor facturen. Ik zal hieronder laten zien hoe ik het nu heb, maar dit zorgt voor ingewikkelde queries lijkt me.
verkoop_facturen
vfactnr (uniek auto increment)
klantnr
vfactdatum
vfactvervaldatum
inkoop_facturen
ifactnr (uniek auto increment)
klantnr
ifactdatum
ifactvervaldatum
join_facturen
joinid (uniek auto increment)
vfactnr
ifactnr
artid
Mijn idee was om in join_facturen dus de juiste factuurnummers zetten met artiekelid's. Echter wanneer ik dus de factuur wil weergeven moet ik gegevens hebben uit 3 a 4 tabellen! Namelijk: klanten, vfactuur/ifactuur, artiekelen en join_facturen.
Mij lijkt dit nogal omslachtig en wellicht een zware query, wat is jullie idee?
Dat heet "verzamelfactuur". Soms is het handig om niet per order te factureren, maar per tijdsperiode, bijvoorbeeld wekelijks of maandelijks. Je kan dan alle orders die in die periode zijn geplaatst op 1 factuur zetten. Apple doet dat bijvoorbeeld met iTunes. Als ik vandaag een app koop en morgen nog een, dan is de kans groot dat die op dezelfde factuur komen te staan.
Zo zie je maar weer, je leert elke dag.
Zelf nog nooit mee te maken gehad, maar inderdaad is dat wel een mogelijkheid. In dat geval wil je dus een linktabel hebben tussen orders en facturen, omdat je nu een many-to-many relatie krijgt.
Zelf hanteer ik altijd de regel: een factuur met een negatief bedrag is een creditfactuur. Op die manier kun je creditfacturen in je gewone factuurstroom verwerken. Wettelijk gezien moet op een creditfactuur dezelfde informatie worden opgenomen als op een debetfactuur, dus het enige verschil is het feit dat er een negatief bedrag onder de streep staat.
@Willem,
Dat is een mooie regel maar, dan krijg je geen uniek credit nummer. Dan zal hij gewoon een factuurnummer krijgen met een negatief bedrag.
Ik scheid mijn debit en credit facturen namelijk ook met verschillende nummers die unique auto_increment zijn, wat niet zal werken als ik het negatieve bedrag ga hanteren in de huidige structuur die Erwin nu heeft opgemaakt.