Momsuträkning i webshop

Publicerad

Fråga

Hej!

Jag har en webshop med Accessdatabaskoppling där artiklarnas pris finns i en kolumn [ArtPris] och artikelns momsvärde i en kolumn [ArtMoms]. Eftersom jag skapar PDF-fakturor utifrån Accessdatabasen vill ha ett fält i fakturan där summan av momsvärdet för artiklar med 6% moms hamnar och ett fält för artiklarna med 25% moms. Eftersom det inte framgår i databasen om [ArtMoms] är 25% eller 6% av artikelns pris så måste jag programmera så att den i första hand avgör om det är 25% moms eller 6% moms som gäller för att senare stoppa in fältet i fakturan. Har ni några tips på algoritmer om hur den kan komma fram till detta?

Tacksam all hjälp!

Svar

Hej Poya

För att räkna ut moms kan man använda denna formel, förutsatt att [ArtPris] är exklusive moms

Moms i % = [ArtMoms] / [ArtPris] * 100?

Om du har heltal i databasen så bör du använda denna formel istället,

Moms i % = [ArtMoms] * 100 / [ArtPris]

annars riskerar du att tappa precision, dvs tal efter decimaltecknet försvinner. Skulle det vara så att [ArtPris] är inklusive moms bör du istället använda denna formel,

Moms i % = [ArtMoms] * 100 / ([ArtPris] - [ArtMoms])

Eftersom du riskerar att få tal som inte blir 6 eller 25 kan du införa en toleransnivå. Nedan följer en enklare algoritm för det här,

[pseudo]
moms = [ArtMoms] * 100 / ([ArtPris] - [ArtMoms])
IF (moms > 4) AND (moms < 8)
moms = 6
ELSE IF (moms >= 8)
moms = 25
ELSE
invalid value warn user
[/psuedo]

Dock avråder vi dig från dessa förslag, det finns en bättre lösning som är snyggare och enklare. Genom att lagra momsen som procent istället för kronor så halverar du antalet kolumner som behövs uppdateras om priset ändras. Formeln nedan beräknar slutsumman inkl moms. Någon algoritm för toleransnivåer behövs inte tack vare att man lagrat i procent istället för kronor.

[summainklmoms] = ([ArtPris] * ([ArtMoms] + 100)) / 100

För att snygga till utdatan kan det vara trevligt att avrunda till närmaste tioöring. För att avrunda kan du använda metoden

round(siffra,decimaler)

Som antal decimaler kan du ange 1 och sedan skriva ut nya talet med två decimaler.

Lycka till med webshopen och hoppas det löser sig.

On
Off

0 kommentarer

Läs mer

  • Senaste
  • Mest läst
  • Mest kommenterat

Kom in i diskussionen

Detta innehåll är skapat av Datormagazins besökare

Fladdrig pekare

1 kommentar

Tomas: På de maskiner vi har haft med liknande symptom, HP Spectre och Macbook, har det tyvärr varit plattan i sig som har gett upp.

Månadens fråga

  • Vad använder du för skrivare hemma?

Artikelkommentarer

Nyhetsbrevet Uppsnappat

Uppsnappat har i över tio år levererat de senaste IT-nyheterna till tiotusentals läsare. Som prenumerant får du nyhetsbrevet varje tisdag och torsdag.
Uppsnappat är helt gratis, så varför inte teckna en prenumeration redan idag?



För dig som vill veta mer: prenumerera

Datormagazin är datortidningen för dig som vill veta mest. Vår ambition är att göra en tidning med djupare och mer avancerade artiklar än vad du hittar i andra datortidningar. Samtidigt väjer vi inte för att på ett handfast sätt förklara hur saker och ting fungerar. Du ska alltid känna att du har nytta av tidningen.
Välkommen till Sveriges största tidskrift för avancerade datoranvändare!

Beställ prenumeration och betala direkt online

  • Datormagazin 13-2014

  • Datormagazin 12-2014

  • Datormagazin 11-2014

  • Datormagazin 10-2014

  • Datormagazin 9-2014

  • Datormagazin 8-2014

  • Datormagazin 7-2014