echo btw en totaalprijs voor het verzenden werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jsun Dasburg

Jsun Dasburg

14/08/2014 21:48:34
Quote Anchor link
Hoi allemaal,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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: &euro; ".$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!
Gewijzigd op 14/08/2014 23:09:45 door - Ariën -
 
PHP hulp

PHP hulp

21/11/2024 22:13:05
 
- SanThe -

- SanThe -

14/08/2014 22:01:03
Quote Anchor link
Je zit lekker te rommelen met punten door komma's vervangen en dan weer terug.
Allemaal overbodig.
Maak eerst de berekening en zet het dan pas op het scherm.
Zie number_format() en money_format().
 
Jsun Dasburg

Jsun Dasburg

14/08/2014 22:34:22
Quote Anchor link
Ja ben wel lekker bezig zo (niet dus), maar zal number en money gebruiken, kijken of ik dan wel de btw weergave krijg. Bedankt.
 
- SanThe -

- SanThe -

14/08/2014 23:01:13
Quote Anchor link
Klein voorbeeldje:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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: &euro; '.number_format($product_prijs, 2, ',', '').' excl BTW<br/>';
echo 'BTW: ('.$btw_percentage.'%) &euro; '.number_format($btw_berekend, 2, ',', '').'<br/>';
echo 'Totaal: &euro; '.number_format($totaal, 2, ',', '').'<br/>';
?>


Subtotaal: € 200,00 excl BTW
BTW: (21%) € 42,00
Totaal: € 242,00
 
Ivo P

Ivo P

15/08/2014 14:53:19
Quote Anchor link
Dat je nu toevallig werkt met bedragen van honderdtallen (100, 200 etc), maakt in combinatie met een btw-percentage van een geheel getal, dat je uitkomt op hele euro's.

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.
 
Jsun Dasburg

Jsun Dasburg

15/08/2014 15:56:12
Quote Anchor link
Dat klopt helemaal Ivo P, SanThe heeft het lekker simpel gehouden. Bedankt daarvoor trouwens SanThe, want het werkt.
 
Ivo P

Ivo P

15/08/2014 16:06:18
Quote Anchor link
tip:

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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.