Jump to content

BTW verkeerd afgerond


PaulNLD

Recommended Posts

Paul, je bent nogal vaag. Wat is verkeerd volgens jou? 

 

Prestashop rondt op het moment - in zijn laatste versies - af per product. Als je honderd producten met een afrondingsverschil van een halve cent hebt heb je dan ineens een verschil van 50 cent. Vervelend en soms moeilijk uit te leggen aan een klant. Maar of het echt "verkeerd" is...

Edited by musicmaster (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Er is inderdaad een afrondingsvershil. Dit komt enerzijds omdat de ex. btw prijs voor een product met te weinig decimalen word opgeslagen en deels omdat er bij het aanmaken van de order reeds word afgerond naar 2 decimalen tussen de winkelwagen en de order.

Ben momenteel bezig met een script om dit permanent op te lossen middels overrides (en wellicht dat ik de aangepaste code ook ga aanbieden op github)

Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...

kan ook de btw voor de verzending correct worden weergegeven?

nu staat die wel op de factuur maar nergens incl of excl btw daar op te bespeuren..de boekhouder ziet er geen goed oog in.

Dat is deels afhankelijk van je instellingen voor de verzendkosten en verzenders. Als je de verzender niet koppelt aan een btw tarief zal deze ook niet berekend worden.

Link to comment
Share on other sites

  • 2 weeks later...

Heb inmiddels naast een PS 1.5 webshop ook nog een PS 1.6 webshop gemaakt.
Dezelfde fout met afrondingsverschillen.

 

Op een factuur van 100 euro rond met 21% BTW, vermeld de factuur 100 euro incl. BTW, maar de BTW bedraagt 17 euro rond.

De Belastingdienst accepteert deze fout niet. Mij als ondernemer kost het nu in 2 webshops teveel geld én ook tijd.

 

Als tijdelijke oplossing heb ik het volgende gedaan voor beide webshops:

 

  • factuur verzenden naar klant per email: uitgeschakeld
  • BTW vermelden in winkelwagen: uitgeschakeld
  • élke bestelling die binnenkomt, handmatig een factuur aanmaken en meezenden met de bestelling.

Alleen op deze manier voorkom je foute facturen en afrondingsfouten. Ik ga mijn beklag over PrestaShop niet doen, ik denk dat men inmiddels wel weet hoe het zit. Mijn teleurstelling is groter dan mijn frustratie.

 

Ondertussen is mijn oog al gevallen op een tweetal andere gratis webshoppakketten, waarbij deze fout niet voorkomt.
Misschien ziet de site er wat minder mooi opgemaakt uit, maar het werkt wel 100%.

Link to comment
Share on other sites

  • 2 weeks later...

Een module voor het repareren van de afrondingsverschillen is in de maak. Hoop deze eind volgende week te kunnen publiceren.

Omdat er behoorlijk veel onderzoeks- en scripting uren in is gaan zitten zal deze module tegen een kleine vergoeding te downloaden zijn.

Momenteel nog even aan het testen op een testomgeving (kopie van een live shop) van een klant om te bekijken of de fix volledig correct verloopt. Als dat het geval is word de module in mijn shop gepubliceerd.

Link to comment
Share on other sites

De btw fix is getest en gereed.

Deze is te vinden op http://prestadev.nl/nl/mod/administratieve-tools/14-btw-reparatie.html

 

De module is uitgerust met een reparatie functie die tevens alle in de database aanwezige producten, orders, orderregels en facturen corrigeert.

De reparatie, die gestart kan worden vanuit de module configuratie, kan dus enige tijd duren afhankelijk van de database grootte.

Link to comment
Share on other sites

De module versie is 1.0.0. Is er iemand die het in alle gevallen en PrestaShop versies hebben getest?

 

The module version is 1.0.0. Is there anybody who have tested it in all cases and PrestaShop versions?

Link to comment
Share on other sites

De module versie is 1.0.0. Is er iemand die het in alle gevallen en PrestaShop versies hebben getest?

 

The module version is 1.0.0. Is there anybody who have tested it in all cases and PrestaShop versions?

the module is version 1.0.0, that is correct as its the first release. Prior versions below 1.0 were testversions. Both module and overrides have been tested on PS 1.5.3, PS 1.5.5 and PS 1.5.6 production enviroments and several test envirorments from 1.5.0.3 and above.

The module is not compatible with PS 1.4.x

Link to comment
Share on other sites

  • 1 month later...

the module is version 1.0.0, that is correct as its the first release. Prior versions below 1.0 were testversions. Both module and overrides have been tested on PS 1.5.3, PS 1.5.5 and PS 1.5.6 production enviroments and several test envirorments from 1.5.0.3 and above.

The module is not compatible with PS 1.4.x

heb de module geinstalleerd op 1.6.06, en werkt perfect. eindelijk de juiste btw bedragen, en geen foutmelding meer met mn Ideal module van targetpay. (deze werkt nu ook ineens zoals het hoort...)

 

installed this module om 1.6.06 and works flawless

Link to comment
Share on other sites

  • 1 month later...
  • 5 months later...

Zou erg prettig zijn.
Ik heb 1.5.6.2 live en die draait goed qua BTW dankzij een gratis Duitse module. :)
Voor 1.6.x zijn ze nog hard bezig, zodra die verkrijgbaar is, drop ik hier de link.
Ben offline met een 1.6.0.9 versie aan de slag, maar ook hier met testen nog steeds btw afwijkingen als standaard.

Link to comment
Share on other sites

In 1.6.0.9 is het btw-probleem niet opgelost. hier zit nog steeds een onjuiste vorm van afronden in de software. 

het hele probleem zit er waarschijnlijk in, dat de afrondingen toegepast in alle voorgaande versies van prestashop bij elk product op 2 decimalen wordt gedaan. hierdoor krijg je, als er veel van 1 product besteld wordt, al snel flinke afwijkingen in de belastingen. Dit is nu blijkbaar aangepast in 1.6.0.11. Hier zijn ze al enkele maanden mee bezig, en in deze versie zit nog veel meer aanpassingen. lees het artikel bij de link in mijn vorige bericht maar eens door. daar kun je 1.6.0.11 ook downloaden om vast uit te proberen

Edited by frank de beer (see edit history)
Link to comment
Share on other sites

  • 3 months later...

BTW probleem in Prestashop 1.5.6. is redelijk simpel op te lossen (voor degene die nog op 1.5.6 draait - of wellicht oudere 1.5 versies = niet getest)

 

Voor de standaard thema van 1.5.6.x is het:

 

1) Open classes/product.php

2) Ga naar regel: 2775

 

Vervang: $price = Tools::ps_round($price, $decimals);

Voor: $price = $price;

 

Voor aangepast thema kan dit anders zijn. (heb hetzelf moeten aanpassen voor andere thema's)

 

Uiteraard wel handig om een backup te maken!

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Helaas zit er in Prestashop 1.6.14 ook weer een afrondings fout.

Voorbeeld:
Ik koop 2 producten die kosten: 5,95 ex btw = €11,90
Ik hanteer €7,50 ex. btw verzendkosten

Alles samen is: 11,90 + 7,50 = €19,40 ex btw
Inclusief btw zou dit moeten zijn: €23,474 (dus €23,47)

Prestashop maakt er: €23,48 van. (zie screenshot)
Blijkbaar is het afronden op totaal dus exclusief verzendkosten en is er weer een verschil.

 

 

De volgende snelle (niet de mooiste) oplossing heb ik hiervoor gevonden. Beter is om een override te gebruiken.

Ik heb dit alleen getest op de standaard theme!

Maak van deze 3 bestanden een backup!

 

Vervang de zwarte regels door de groene:

 

Classes/Cart.php

 

$shipping_cost = (float)Tools::ps_round((float)$shipping_cost, 2);
$shipping_cost = (float)Tools::ps_round((float)$shipping_cost, 6);

 

Classes/Tools.php

 

$c_decimals = (int)$currency['decimals'] * _PS_PRICE_DISPLAY_PRECISION_;

$c_decimals = (int)$currency['decimals'] *  2;

$c_decimals = (int)$currency->decimals * _PS_PRICE_DISPLAY_PRECISION_;

$c_decimals = (int)$currency->decimals * 2;

$price = Tools::ps_round($price, $c_decimals);

$price = Tools::ps_round($price, 6);

 

Classes/Controller/Froncontroller.php

 

'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_,

'priceDisplayPrecision' => 2,

 

Pas in de backend de volgende optie aan:

Instellingen > Algemeen > Zet aantal decimalen op 6

 

 

Volgens mij zit de fout in prestashop door continue met 2 cijfers achter de komma te rekenen.

Beter is om te rekenen met 6 of 8 cijfers achter de komma, en af te ronden op 2 cijfers achter de komma.

post-374941-0-10506900-1433523192_thumb.jpg

Edited by Keron83 (see edit history)
Link to comment
Share on other sites

Hallo Keron83.

 

De standaard Prestashop instellingen bij 1.6.1 (betaversie) zijn:

 

- Manier van afronden: Afronden naar boven als het over de helft is (aanbevolen)

- Type afronding: Afronden op elke lijn

 

Als ik daarmee jouw voorbeeld test, is het resultaat juist: € 23,47

Link to comment
Share on other sites

  • 1 year later...

classes/Cart.php is anders in 1.6.1.5 en na uitpluizen en aanpassen werkt deze fix niet helaas.

 

 

 

 

Helaas zit er in Prestashop 1.6.14 ook weer een afrondings fout.

Voorbeeld:
Ik koop 2 producten die kosten: 5,95 ex btw = €11,90
Ik hanteer €7,50 ex. btw verzendkosten

Alles samen is: 11,90 + 7,50 = €19,40 ex btw
Inclusief btw zou dit moeten zijn: €23,474 (dus €23,47)

Prestashop maakt er: €23,48 van. (zie screenshot)
Blijkbaar is het afronden op totaal dus exclusief verzendkosten en is er weer een verschil.

 

 

De volgende snelle (niet de mooiste) oplossing heb ik hiervoor gevonden. Beter is om een override te gebruiken.

Ik heb dit alleen getest op de standaard theme!

Maak van deze 3 bestanden een backup!

 

Vervang de zwarte regels door de groene:

 

Classes/Cart.php

 

$shipping_cost = (float)Tools::ps_round((float)$shipping_cost, 2);
$shipping_cost = (float)Tools::ps_round((float)$shipping_cost, 6);

 

Classes/Tools.php

 

$c_decimals = (int)$currency['decimals'] * _PS_PRICE_DISPLAY_PRECISION_;

$c_decimals = (int)$currency['decimals'] *  2;

$c_decimals = (int)$currency->decimals * _PS_PRICE_DISPLAY_PRECISION_;

$c_decimals = (int)$currency->decimals * 2;

$price = Tools::ps_round($price, $c_decimals);

$price = Tools::ps_round($price, 6);

 

Classes/Controller/Froncontroller.php

 

'priceDisplayPrecision' => _PS_PRICE_DISPLAY_PRECISION_,

'priceDisplayPrecision' => 2,

 

Pas in de backend de volgende optie aan:

Instellingen > Algemeen > Zet aantal decimalen op 6

 

 

Volgens mij zit de fout in prestashop door continue met 2 cijfers achter de komma te rekenen.

Beter is om te rekenen met 6 of 8 cijfers achter de komma, en af te ronden op 2 cijfers achter de komma.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...