Avatar billede nemlig Professor
15. oktober 2007 - 14:48 Der er 13 kommentarer og
1 løsning

System til fakturanummerering

Hej.
Jeg har et eksisterende udlejningssystem, hvor der pr. lejeaftale kan blive udstedt op til ialt 4 fakturaer.
Hidtil har jeg blot anvendt det automatiske tildelte ID-nr. som fakturanr, hvilket betyder, at de 4 fakturaer pr. lejeaftale har samme numre.
Nu vil jeg gerne lave et system, hvor jeg laver fortløbende numre, men er usikker på, hvordan det skal laves.
Jeg forestiller mig en ekstra tabel, som tildeler de fortløbende fakturanumre via ID-nr. med autoincrement, men er dog usikker på, om der er noget mere jeg skal være opmærksom på.
Avatar billede noob2003 Nybegynder
15. oktober 2007 - 15:11 #1
Kan du ikke lave det så den laver 1 hovedeID alá "1234" og resten subID alá "1234a" med henvisning til hovedeID
Avatar billede nemlig Professor
15. oktober 2007 - 15:17 #2
Det har jeg faktisk også overvejet, men hælder nok til en løsning, hvor der er fortløbende numre på alle fakturaer.
Jeg mener, at ToldSkat i visse sammenhænge stiller krav om fortløbende numre, men er ikke sikker. Blot noget jeg er blevet fortalt.
Avatar billede fsconsult.dk Nybegynder
15. oktober 2007 - 16:28 #3
SKAT kræver fortløbende fakturanumre, det gælder stadig..
Avatar billede ffsoft Praktikant
15. oktober 2007 - 20:31 #4
tblLejeAftale
  AftaleID (PK) autonummer
  ... øvrige felter ...

tblFaktura
  FakturaID (PK) autonummer
  FakturaDato
  ....  øvrige felter ....
  AftaleID (FK)

AftaleID
100

FakturaID  FakturaDato  AftaleID
50001234  1-1-2007    100
50001235  1-3-2007    100
50001236  1-6-2007    100
50001237  1-9-2007    100


På den måde kan du have 0 eller mange faktura tilknyttet een
lejekontrakt

Select * From tblFaktura Where AftaleID = 100

Hvordan det skal implementeres afhænge af hvad du bruger som frontend.
Avatar billede nemlig Professor
15. oktober 2007 - 21:56 #5
ffsoft: Som jeg forstår det, giver det ikke fortløbende fakturanumre, som SKAT kræver.
Avatar billede kasper.h Nybegynder
16. oktober 2007 - 00:36 #6
Du må gerne have flere fortløbende serier, f.eks en pr. kunde. De skal bare være fortløbende.
Avatar billede fsconsult.dk Nybegynder
16. oktober 2007 - 05:23 #7
kasper_h: det er ikke hvad jeg har fået at vide.  de skal være fortløbende. puhktum.
Avatar billede nemlig Professor
16. oktober 2007 - 08:42 #8
Nu har jeg talt med SKAT. Meldingen er, at fakturanumre skal være fortløbende. Det fremgår af vejledning E27 for virksomheder.
Der står bl.a. følgende:

En almindelig faktura skal have følgende indhold:
- et fortløbende nummer, der bygger på én eller flere serier, og som identificerer fakturaen (fakturanummer)

Jeg spurgte samtidig, om der må laves 1 serie pr. kunde. Svaret var, at det ikke var meningen med reglen. Måske OK, hvis man har nogle meget få kunder, som hver i sær får mange fakturaer.
Avatar billede ffsoft Praktikant
16. oktober 2007 - 08:47 #9
FakturaID
50001234 
50001235 
50001236 
50001237 

Jeg mener faktisk at disse numre er fortløbende, start nummeret kan du jo selv vælge.
Avatar billede nemlig Professor
16. oktober 2007 - 10:25 #10
Jeg forstod din kommentar sådan, at der arbejdes med én nr-serie pr. lejeaftale - altså hvis 250 lejeaftaler - så er der 250 nr-serier.
Avatar billede ffsoft Praktikant
16. oktober 2007 - 14:20 #11
Hvis du har en kontrakt der hedder 20070801 og en anden der hedder 20070901. Det er lige meget hvad de hedder, så kan du f. eks. have disse fakturaer:

Faktura nummer
12 peger på 20070801
13 peger på 20070901
14 peger på 20070801
15 peger på 20070901
16 peger på 20070901
17 peger på 20070901

Faktura nummeret er fortløbende (her 12 til 17), men peger på den aktuelle lejekontrakt.

Der skal blot være en relation imellem de to tabeller.

tblFaktura.AftaleID = tblLejeAftale.AftaleID
Avatar billede nemlig Professor
16. oktober 2007 - 15:37 #12
ffsoft: OK - så forstår jeg, hvad du mener. Det er jeg opmærksom på, jeg er også med på, hvordan jeg laver relationen.
Men så lidt mere konkret:
Ved du hvordan jeg henter det højeste tal i et felt - altså hvordan jeg laver MySQl-udtrækket.

Jeg vil gøre det sådan her:
1. Select i fakturatabel den post, der har det højeste nr.
2. Læs nummeret
3. Tildel fakturanr som højeste nr. fra fakturatabel + 1
4. INSERT INTO fakturatabel med det nye nr. og relationen til lejekontrakt-tabelen.
Avatar billede nemlig Professor
16. oktober 2007 - 16:40 #13
ffsoft: Jeg tror det virker nu.
Jeg henter sidste ID-nr. med:

$sql = "SELECT id FROM fakturanumre AS last_id ORDER BY id DESC  LIMIT 0 , 1";

Og så lægger jeg 1 til og smider resultatet i fakturatabellen.

Send et svar så jeg kan give dig point.
Avatar billede ffsoft Praktikant
16. oktober 2007 - 18:09 #14
Nice
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester