På et eller andet tidspunkt i løbet af de seneste måneder er der blevet ændret noget i den måde udenlandske momsnumre skrives på fakturaer. Tidligere blev der blot skrevet det der står i CVR-feltet, men nu trækkes kundens landekode automatisk med ind forrest (i hvert fald inden for EU).
Dette er i og for sig meget smart (det giver mulighed for kun at have selve momsnummeret stående på kunden, hvilket gør det lettere at overføre til Skat osv.), men den nuværende implementering giver problemer og ukorrekte momsnumre på fakturaer i nogle situationer: Hvis landekoden allerede indgår i momsnummeret på kundekortet (dette kan selvfølgelig rettes, men det skal rettes hver gang, og eftersom landekoden ikke tidligere blev automatisk tilføjet, står den der i rigtig, rigtig mange kunders momsnumre) – eller hvis en kunde har adresse i et land og momsnummer i et andet. Vi har f.eks. en kunde der har svensk momsnummer, men den adresse vi skal fakturere til, er i Finland (og leveringsadressen på de enkelte fakturaer kan være over hele Europa, så vi kan ikke bare bruge leveringsadressen til det finske kontor).
På kundekortet står momsnummeret som SE123456789012, men på fakturaen kommer der så nu til at stå FI-SE123456789012, hvilket i hvert fald ikke er korrekt. Selv hvis kundens land svarer til deres momsnummer, giver det problemer hvis landekoden er en del af momsnummeret på kundekortet (så står der bare f.eks. SE-SE123456789012 i stedet).
Er der en måde at undgå at inkludere landekoden når man skriver kundens momsnummer på fakturaen?
Lige nu ser det ud til at den rutine der præfigerer landekoden, blot tager kundens land, henter landekoden og sætter den foran, uanset hvad. Ideelt set burde den i stedet gøre følgende:
- Hente kundens lands landekode og gemme den i en variabel ($landekode)
- Fjern eventuelle bindestreger og mellemrum fra momsnummeret på kundekortet og gem det i en variabel ($momsnummer)
- Tjekke om $momsnummer begynder med to bogstaver
- Hvis ja, tjekke om de to bogstaver er lig landekoden i $landekode
- Hvis ja, slette de to bogstaver fra $momsnummer
- Hvis nej, slette de to bogstaver fra $momsnummer og gemme dem i $landekode
- Sætte "$landekode-" foran $momsnummer og outputte det på fakturaen
Det ville kræve ganske få linjers ekstra kode, men gøre at momsnumre bliver korrekt behandlet og give følgende resultat:
Kundens lokation |
Momsnummer på kundekort |
Momsnummer på faktura |
Sverige |
123456789012 |
SE-123456789012 |
Sverige |
SE123456789012 |
SE-123456789012 |
Finland |
123456789012 |
FI-123456789012 |
Finland |
SE123456789012 |
SE-123456789012 |