echo btw en totaalprijs voor het verzenden werkt niet
Ik heb een script dat in drie stappen werkt.
Stap 1: Klik op de foto en selecteer een certificaat. (werkt prima)
Stap 2: Geef de bestelling weer en vul de persoonsgegevens in
Stap 3: Ga naar iDEAL
Ik loop tegen een probleem aan in stap 2:. Hieronder de php.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
// bestelling verwerken
if ($product == "c1") {
$product_prijs = 100;
$product_omschrijving = "1 Certificaat";
}
elseif ($product == "c2") {
$product_prijs = 200;
$product_omschrijving = "2 Certificaten";
}
// totaalprijs berekenen
echo "<font face=\"verdana\" size=2>Uw bestelling:<br>";
echo $product_omschrijving."<br>\n Subtotaal: € ".$product_prijs.",00 excl BTW</font>";
$btw = $product_prijs/100*21;
$btw2 = round($btw, 2);
$btw2 = str_replace(".", ",", $btw2);
// De totaalprijs berekenen en voorbereiden voor weergave:
$checkproduct = explode(",",$product_prijs);
$lengte_product_prijs = strlen($checkproduct[1]);
if ($lengte_product_prijs == 0) {
$product_prijs = $product_prijs . ",00";
}
elseif ($lengte_product_prijs == 1) {
$product_prijs = $product_prijs . "0";
}
$checkbtw2 = explode(",",$btw2);
$lengte_btw = strlen($checkbtw2[1]);
if ($lengte_btw == 0) {
$btw2 = $btw2 . ",00";
} elseif ($lengte_btw == 1) {
$btw2 = $btw2 . "0";
}
$prijs = $btw + $product_prijs;
$prijs = round($prijs, 2);
$prijs = str_replace(".", ",", $prijs);
$checkprijs = explode(",",$prijs);
$lengte_prijs = strlen($checkprijs[1]);
if ($lengte_prijs == 0) {
$prijs = $prijs . ",00";
} elseif ($lengte_prijs == 1) {
$prijs = $prijs . "0";
}
$bestelnummer = rand(1,999);
?>
// bestelling verwerken
if ($product == "c1") {
$product_prijs = 100;
$product_omschrijving = "1 Certificaat";
}
elseif ($product == "c2") {
$product_prijs = 200;
$product_omschrijving = "2 Certificaten";
}
// totaalprijs berekenen
echo "<font face=\"verdana\" size=2>Uw bestelling:<br>";
echo $product_omschrijving."<br>\n Subtotaal: € ".$product_prijs.",00 excl BTW</font>";
$btw = $product_prijs/100*21;
$btw2 = round($btw, 2);
$btw2 = str_replace(".", ",", $btw2);
// De totaalprijs berekenen en voorbereiden voor weergave:
$checkproduct = explode(",",$product_prijs);
$lengte_product_prijs = strlen($checkproduct[1]);
if ($lengte_product_prijs == 0) {
$product_prijs = $product_prijs . ",00";
}
elseif ($lengte_product_prijs == 1) {
$product_prijs = $product_prijs . "0";
}
$checkbtw2 = explode(",",$btw2);
$lengte_btw = strlen($checkbtw2[1]);
if ($lengte_btw == 0) {
$btw2 = $btw2 . ",00";
} elseif ($lengte_btw == 1) {
$btw2 = $btw2 . "0";
}
$prijs = $btw + $product_prijs;
$prijs = round($prijs, 2);
$prijs = str_replace(".", ",", $prijs);
$checkprijs = explode(",",$prijs);
$lengte_prijs = strlen($checkprijs[1]);
if ($lengte_prijs == 0) {
$prijs = $prijs . ",00";
} elseif ($lengte_prijs == 1) {
$prijs = $prijs . "0";
}
$bestelnummer = rand(1,999);
?>
Toelichting van het probleem
Het resultaat wordt als volgt weergegeven:
Uw bestelling:
2 Certificaten
Subtotaal: € 200,00 excl BTW
Maar btw ($btw) € 42,00 en totaalprijs ($prijs) € 242,00 worden niet berekend en weergegeven op de website voordat het formulier wordt verzonden. Ik krijg deze bedragen pas na verzending in mijn mail te zien. Er Hoe los ik dit op?
Alvast bedankt voor het meedenken.
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 14/08/2014 23:09:45 door - Ariën -
Allemaal overbodig.
Maak eerst de berekening en zet het dan pas op het scherm.
Zie number_format() en money_format().
Ja ben wel lekker bezig zo (niet dus), maar zal number en money gebruiken, kijken of ik dan wel de btw weergave krijg. Bedankt.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$product_prijs = 200;
$btw_percentage = 21;
$btw_berekend = $btw_percentage/100*$product_prijs;
$totaal = $product_prijs+$btw_berekend;
echo 'Subtotaal: € '.number_format($product_prijs, 2, ',', '').' excl BTW<br/>';
echo 'BTW: ('.$btw_percentage.'%) € '.number_format($btw_berekend, 2, ',', '').'<br/>';
echo 'Totaal: € '.number_format($totaal, 2, ',', '').'<br/>';
?>
$product_prijs = 200;
$btw_percentage = 21;
$btw_berekend = $btw_percentage/100*$product_prijs;
$totaal = $product_prijs+$btw_berekend;
echo 'Subtotaal: € '.number_format($product_prijs, 2, ',', '').' excl BTW<br/>';
echo 'BTW: ('.$btw_percentage.'%) € '.number_format($btw_berekend, 2, ',', '').'<br/>';
echo 'Totaal: € '.number_format($totaal, 2, ',', '').'<br/>';
?>
Subtotaal: € 200,00 excl BTW
BTW: (21%) € 42,00
Totaal: € 242,00
als je je tarief aanpast naar 95 euro of naar 123 euro
danwel als het btw-percentage veranderd wordt naar 18.5% (is het ooit wel geweest), dan gaat je script onderuit als je overal ",00" achter de bedragen zet.
Test het dus ook altijd even met andere bedragen....
Zoals SanThe het voordoet, is duidelijk: eerst simpel rekenen en dan echo-en van de 3 getallen.
Dat klopt helemaal Ivo P, SanThe heeft het lekker simpel gehouden. Bedankt daarvoor trouwens SanThe, want het werkt.
frommel die 21 niet op veel plekken in je script, want als het percentage dan een keer aangepast moet worden, heb je een probleem om dat op alle plekken te vinden aan aan te passen.
Zet hem dus in je config files