[PHP] Bijhouden factuurnummer per jaar

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig met een factureringssysteem nu moet voor elke factuur dynamisch een factuurnummer gegenereerd worden. Dat moet een uniek nummer zijn op basis van een volgnummer en het jaar waarin het factuur is gemaakt. Bijvoorbeel de 33 factuur van 2005 wordt 5005033 of de 3 factuur van 2004 is 4004003. Het volgnummer wordt in de database bijgehouden. Maar dit nummer moet op nul gezet worden als het jaar om is zodat elk jaar het volgnummer weer bij een begint. Nu heb ik zelf al wat dingen geprobeerd. Ik sla het jaar ook op in de database en vergelijk het elke keer als er een factuur gemaakt wordt of dit klopt met het huidige jaar is dit niet zo dan wordt het volgnummer op 0 gezet. Maar is dit wel de juiste manier om het aan te pakken of zien jullie een betere manier ?

Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 21:10

pietje63

RTFM

Ik snap sowieso je nummering nit.. 5005033? Waar dient die eerste 5 voor? Ik had hier of 200533 of 05033 verwacht..

Let er verder op dat dit systeem NIET meer dan 1000 facturen per jaar aan kan.

Verder zie ik ook niet een andere optie dan eerst het opvragen van de oudste huidige factuur. Daarvan het jaar met het huidige jaar vergelijken. Is dat gelijk, dan het nummer met een verhogen, s dat ongelijk, dan het nummer op 1 (of 0 als je dat liever hebt) zetten.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 20-09 21:46

Koetjeboe

Boe, zegt de koe

Factuur tabel:
factuur nummer
factuur jaar

Nieuwe factuur volgnummer wordt:
SELECT MAX(nummer)+1 WHERE jaar = dit_jaar

Zo'n constructie?

Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
Je kan "dit jaar" beter door de server zelf laten genereren. Je vraagt om fouten als je zelf het jaar gaat opslaan. Je kan het jaar gewoon pakken met
SQL:
1
DATE_FORMAT(NOW(), %Y)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
pietje63 schreef op maandag 15 januari 2007 @ 10:56:
Ik snap sowieso je nummering nit.. 5005033? Waar dient die eerste 5 voor? Ik had hier of 200533 of 05033 verwacht..
Het is niet mijn nummering ik ben hier op stage bezig het is een nummering die ze al tijden gebruiken.
Het de eerste nummers worden gebasseerd op het laatste cijfer van het jaartal. dus die twee 5en komen voort uit 2005. Ik heb nu zon soort opzet. twee tabbellen genaamd volgnummer en jaartal.
jaartal is in dit geval 7 van 2007 en volgnummer is het getal van het aantal aangemaakt facturen.

PHP:
1
2
3
4
5
6
7
8
9
10
$jaar = date('y');
        $jaar = $jaar{1};

        if($klant->factuur_volgnummer != $jaar)
        {
            $klant->factuur_jaarnummer = $jaar;
            
            $klant->factuur_volgnummer = 0;
            $klant->update();
        }

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

pietje63 schreef op maandag 15 januari 2007 @ 10:56:
Ik snap sowieso je nummering nit.. 5005033? Waar dient die eerste 5 voor? Ik had hier of 200533 of 05033 verwacht.
Het is niet altijd wenselijk dat je klanten zien dat zij precies de 33e factuur van 2005 hebben. Daarom kan je de boel een beetje ophusselen :P. Het is alleen door de Belastingdienst verplicht om er een oplopende reeks in te hebben; zodat zij kunnen controleren of er geen facturen missen. Een geheel random nummer als factuurnummer mag dus niet.
Pagina: 1