Heb een vraag over factuurnummering

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martijn nvt

Martijn nvt

19/01/2014 20:57:50
Quote Anchor link
Goeden avond allemaal

Ik heb een vraag, ik ben bezig met een webwinkel.
ik heb mijn website bijna af, maar mis alleen nog een functie voor factuurnummers.
Ben al een tijdje bezig en op zoek naar een uitleg met MySQL,maar ik kom er echt niet meer uit.
Kan iemand mij misschien een zetje geven in de goeie richting?
Gewijzigd op 20/01/2014 10:43:37 door - Ariën -
 
PHP hulp

PHP hulp

27/04/2024 02:53:36
 
Christian k

christian k

19/01/2014 21:06:13
Quote Anchor link
Wat moet je precies doen met de factuurnummers?
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

19/01/2014 21:07:08
Quote Anchor link
Hoe wil je de facturen nummeren?
Het meest eenvoudige is een PK met een auto increment erop.
 
Martijn nvt

Martijn nvt

19/01/2014 21:20:32
Quote Anchor link
Als een klant een bestelling heeft gedaan, en op de knop bevestigen drukt.
Dat een script of mysql een nummer maakt.
Factuurnummer is het mooist met het jaar tal er voor en 4 nullen er achter.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/01/2014 10:23:40
Quote Anchor link
Dan splits je de PK op in twee kolommen, het jaar (b_year) en het volgnummer(b_seq_no).
Dan de sql:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
START TRANSACTION;
SET @billno = (SELECT COALESCE(MAX(b_seq_no), 0) + 1 FROM billing WHERE b_year = YEAR(CURRENT_DATE) FOR UPDATE);
INSERT INTO billing (b_year, b_seq_no, blabla) VALUES (YEAR(CURRENT_DATE), @billno, 'omschrijving');
COMMIT;
 
Ivo P

Ivo P

20/01/2014 10:37:13
Quote Anchor link
of gewoon de PK aanhouden als nummer, oneindig doorlopend.

Als de laatste factuur van 2013 was 2013-901
dan is de eerste van 2014-902

dan is het nummer gewoon de YEAR() van de factuurdatum + de PK (id)

Voordeel daarvan, is dat het ook precies duidelijk is dat er aan het einde van het jaar geen facturen verdwijnen.
Er zijn discussies te vinden op forums die dit ook zo stellen.

Want wie bewijst de belastingdienst dat er geen 2013-902 of zelfs 2013-999 bestond?
 
- Ariën  -
Beheerder

- Ariën -

20/01/2014 10:46:09
Quote Anchor link
Ik heb de titel van dit topic aangepast naar je vraagstelling. Zou je voortaan zelf een goede dekkende titel willen bedenken? Zo blijft het forum overzichtelijk.

Alvast bedankt.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/01/2014 10:47:09
Quote Anchor link
Dat hoeft ook helemaal niet bewezen te worden, ik ken zelfs bedrijven die op jaar/maand nummeren, en de belastingdienst heeft daar helemaal niets op tegen.
 
Ward van der Put
Moderator

Ward van der Put

20/01/2014 14:13:04
Quote Anchor link
Ger van Steenderen op 20/01/2014 10:47:09:
Dat hoeft ook helemaal niet bewezen te worden, ik ken zelfs bedrijven die op jaar/maand nummeren, en de belastingdienst heeft daar helemaal niets op tegen.

Dat het vaak anders wordt gedaan, maakt het nog geen "best practice": de Nederlandse Belastingdienst zegt wel degelijk dat je uitgereikte facturen bij voorkeur doorlopend nummert.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/01/2014 16:04:37
Quote Anchor link
Op jaarbasis de facturen nummeren is meer regel dan uitzondering, en ik denk dat je eerder in de problemen komt als je een factuurnummer hebt 2014.609 en 2013.608.
 
Ward van der Put
Moderator

Ward van der Put

20/01/2014 17:05:29
Quote Anchor link
Dat is waar Ger, maar vooral bij het opzetten van een nieuwe administratie is er geen reden om het niet direct goed te doen.

Handboek ondernemen 2013 pagina 39: “De ontvangen en uitgeschreven facturen moet u doorlopend en opeenvolgend nummeren.”
Gewijzigd op 20/01/2014 17:11:50 door Ward van der Put
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

20/01/2014 21:46:41
Quote Anchor link
Je kunt daar natuurlijk eindeloos over discussiëren, ik denk dat het ook een beetje met de omvang van je administratie te maken heeft.
Als je een paar duizend facturen per maand uit geeft, wil je toch wel overzicht houden.
 
Martijn nvt

Martijn nvt

26/01/2014 10:20:27
Quote Anchor link
Dank je wel Ger voor je hulp, eens kijken of ik hier mee verder kom :)

Toevoeging op 26/01/2014 10:21:50:

Sorry -Aar- zal er volgende keer omdenken.
 
Aad B

Aad B

26/01/2014 21:46:38
Quote Anchor link
Het handboek ondernemen en de belastingdienst komen steeds terug in discussies als deze. De belastingdienst maakt er geen issue meer van is mijn, overigens ruime, ervaring. Bij webshops blijft het een probleem, een koper kan zelfs tijdens de ideal transactie afhaken, de browser sluiten, de netwerkverbinding verliezen etc. Op welk moment maak je het opeenvolgende factuurnummer en de pakbon? Daarom eigenlijk niet in de webshop maar pas bij fysiek verzenden cq tijdens de verwerking in het backoffice/magazijn. Daar wordt ook de factuur verzonden. Maak je de factuur toch wel in de php-webshop dan is gesloten opeenvolging vrijwel niet mogelijk. Maak je er dus ook niet druk om. Gebruik bijvoorbeeld de methode zoals Ger adviseert.
Gewijzigd op 26/01/2014 21:47:48 door Aad B
 
Martijn nvt

Martijn nvt

29/01/2014 18:42:08
Quote Anchor link
Zal ik zeker doen Aad dank je wel voor de tip ;)
Maar wist niet dat MySQL zo ingewikkeld was.
:) newbie
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

29/01/2014 20:02:44
Quote Anchor link
MySQL is niet ingewikkeld, maar omdat je niet met een auto increment werkt, moeten er wat zekerheden ingebouwd worden. Vandaar de transacties.
Die heb ik erin gezet om rekening te houden met een Multi-user omgeving, heb je dat niet kan je het ook gewoon in je applicatie regelen.
 
Martijn nvt

Martijn nvt

04/02/2014 21:35:44
Quote Anchor link
Ger ik heb nog een vraagje, ik ben nu zo ver dat ik geen erros meer krijg om in te loggen in mijn MySQL en table.
En heb u voorbeeld gebruikt en aangepast.
Maar zo ver ik het nu begrijp, van u voorbeeld is dat het alleen nog maar het aansturen is van 'b_seq_no' om van 001 -> 002 te maken.
En dan moet ik via php het weer opvragen met $result?

Toevoeging op 05/02/2014 16:59:49:

$sql="SET b_seq_no = (SELECT COALESCE(MAX(b_seq_no), 0) + 1 FROM tabelnaam WHERE b_year = YEAR(CURRENT_DATE) FOR UPDATE)";
$sql="INSERT INTO tabelnaam (b_year, b_seq_no) VALUES (YEAR(CURRENT_DATE), tabelnaam, '".$b_factuurnummer."')";


Toevoeging op 05/02/2014 17:01:16:

Misschien rare vraag maar staat dit goed zo?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.