korting over alleen bedragen met vinkje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Freakme

Freakme

27/08/2006 14:46:00
Quote Anchor link
Beste PHP-ers,

Ik ben geen ervaren php-er, maar stuit tegen het volgende probleem. Ik ben bezig met een soort van facturatie-tool. En wil alleen de bedragen optellen met de korting geselecteerd is:

mijn code voor de berekening van het subtotaal:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php  $subtotaal+= $row_Recordset ['prijs'] ;?>


Het subtotaal werkt ... maar nu wil ik zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $bedragkorting += $row_Recordset2['prijs'] ; ?>
( nu komt mijn visie) if ...row_recordset2 ['korting'] ==ja.

Dus als er bij korting ja staat moet hij alleen die bedragen optellen.

Wie kan mij helpen...

Nog even de korting code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php if ($row_Recordset2['korting'] == 0) { echo "nee"; }else { echo "ja"; }?>


Deze korting wordt ook opgeslagen in de mysql-database. Wie op wie biedt mij de helpende hand..

Alvast bedankt.

Freakme
 
PHP hulp

PHP hulp

27/11/2021 00:36:36
 
Kalle P

Kalle P

27/08/2006 15:01:00
Quote Anchor link
Korting gaat er toch altijd af?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($row_Recordset2['korting'] == 0){
   $subtotaal += $row_Recordset ['prijs'];
}

else{
   $bedragkorting = $row_Recordset2['prijs'] - $korting;
}

?>
 
Freakme

Freakme

27/08/2006 15:15:00
Quote Anchor link
Hahahaha,

ja korting gaat er altijd vanaf. Maar bedankt voor je input...top! Nu gaat dit goed ...ik heb hem nog iets aangepast:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
if($row_Recordset2['korting'] == 0){
   $subtotaal += $row_Recordset ['prijs'];
}

else{
   $bedragkorting += $row_Recordset2['prijs'] - $korting;
}

?>


Maar nu heb ik nog een laatste vraag, in de database staan een kortingspercentage bij sommige klanten bij de is dat het 0 en de andere bijvoorbeeld 20 (20%) hoe kan ik die korting over dat bedragkorting geven.

Dus bedragkorting = totaal aantal prijzen opgeteld met korting-vink en daarna moet hij zeggen hij klant a = 20 (20%) korting dna moet bedragkorting met 20%= totale korting

korting komt uit database

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $row_Recordset1['kortingspercentage']; ?>


Ik hoop dat je mij daar nog bij kan helpen.

Greetings,
freakme
 
Kalle P

Kalle P

27/08/2006 17:23:00
Quote Anchor link
Hoe heb je het er in gezet 20% of 20? Het lijkt mij 20, iig ik zou dat doen.

Je omschrijft het niet erg duidelijk voor mij, maar dit is wat ik denk dat je bedoelt, en opzich is de manier van het doen het zelfde
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
<?php
//1 min het kortingspercentage delen door 100
//vb: 1 - 20 / 100 = 0,8

$kortings_percentage = 1 - $row_Recordset1['kortingspercentage'] / 100;


//bk =$bedragkorting en kp= kortingspercentage
//dus in feite staat er $bedragkorting_minus_kortingspercentage

$bk_minus_kp =  $bedragkorting * $kortings_percentage;

//maar kan ook wat korter, op de manier hoe jij het steeds doet

$bedragkorting *=  1 - $row_Recordset1['kortingspercentage'] / 100;

?>
 
Freakme

Freakme

27/08/2006 17:45:00
Quote Anchor link
Hey Kalle,

Onwijze bedankt voor je reactie. Ik begrijp jouw wel ....maar ik zie dat mijn uitleg toch wat onduidelijk was. Mijn excuses hiervoor.

Ik probeer beter uit te leggen:

Dat bedrag van alle producten met korting laat hij prima zien wordt eenmaal met een echo weer opgevraagt. ($bedragkorting)

Over dit bedrag moet er een korting worden gegeven. Deze korting staat inderdaad met 10 of 20 in de database als: $row_Recordset1['kortingspercentage'] dus als kortingspercentage.

Nu wil ik dat hij de reeds eerder ingegven korting (20) over het bedrag van alle producten met korting geeft ($bedragkorting)

Dat is hem ....ik hoop dat deze duidelijker is.
Nogmaals alvast erg bedankt voor hulp!

Ik zie je reactie wel tegemoet.

Greetings,
freakme
 
Kalle P

Kalle P

27/08/2006 18:19:00
Quote Anchor link
Je bedoelt dus de korting die is gegeven over $bedragkorting, dat die wordt achterhaald.
Hmm ja ik moet het doen met enkele regeltjes code, dus dat zou ik niet precies kunnen zeggen.
Als dat het is wat ik zeg, moet je alle prijzen die gekoppeld zijn aan de producten minus $bedragkorting doen.

Wat ik niet snap aan je uitleg is:
"Over dit bedrag moet er een korting worden gegeven."
"Nu wil ik dat hij de reeds eerder ingegven korting (20) "
Moet ik de eerste zin lezen als reeds eerder ingegeven korting? Het lijkt mij wel, tenzij jij 2 x korting heft.

edit:
Ik heb ff de tekst gelezen van een voorgaande topic die over het zelfde gaat, daar leg je het begrijpelijk uit. Ik zal ff kijken.

edit2:
Je zegt
"Dit doe ik doormiddel van in een formulier te kiezen voor nee of ja. Dit komt dan in de database te staan als een 0 en een 1"

Ik zou daarvoor niet kiezen, maar juist voor 'korting', wanneer klanten geen korting hebben dan zet je daar 0 bij. Zo hoef je niet te checken op ja en nee. Ik denk dat je probleem ook al oplost.
Gewijzigd op 01/01/1970 01:00:00 door Kalle P
 
Frank -

Frank -

27/08/2006 18:25:00
Quote Anchor link
Vraagje: Waarom laat je de database niet het rekenwerk voor je doen?
 
Kalle P

Kalle P

27/08/2006 18:31:00
Quote Anchor link
@frank
ja dat wilde ik daarmee ook zeggen, met die laatste edit.
Hoe je dat moet doen weet ik niet. Maar ten 1e door je database het te laten doen, scheelt dat weer wat tijd.
En wanneer je dus daar kortingpercentage hebt staan in je database hoef je niet eerste te controleren op ja(1) of nee(0).
 
Freakme

Freakme

27/08/2006 18:35:00
Quote Anchor link
Hey,

Ik begrijp dat mijn uitleg ten wensen overlaat.

Ik probeer het nog eens:

In de aan te maken factuur heb ik een aantal uitgevoerde orders staan, bijvoorbeeld 10. Van deze 10 stuks zijn er alleen 4 die gebruik mogen en moeten maken van de korting. Bij het invullen van de uitgevoerde order geef ik dus alleen aan ja of nee korting. In de eerste stap telt hij dus sowieso het subtotaal op en het totaal van de uitgevoerde opdrachten met korting (ja).

Prima zo ver. Nu moet hij over het totaal bedrag van alle opdrachten met korting een eerder ingegeven kortingspercentage berekenen.

Deze kortingspercentage geven wij aan bij het aanmaken van een nieuwe klant. Hij geeft dus alleen in stap 1 het totaal aan van de producten waar de korting nog over berekend moet gaan worden.

Ik hoop dat dit beter is.

Ik zie graag een berict terug... hij geet dus geen 2 x korting. Hij zegt eerst totaal van producten met korting. Daarna korting over totaal.

greetings,

freakme
 
Kalle P

Kalle P

27/08/2006 18:51:00
Quote Anchor link
Ik snap het.
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
<?php
//VB:
//$totaal_met_korting = 50
//$kortingspercentage = 20
//$totaal_alles = 70

//50 * (20/100) = 10 <-- de korting
//10 / 70 * 100 = 14.2857143
//Als je nog wilt afronden, bv naar beneden:
//http://nl2.php.net/floor


$korting_over_totaal = $totaal_met_korting * ($kortingspercentage / 100) / $totaal_alles *100;

?>


edit: // bij de link

edit2:
Ff het verhaal erbij voor verduidelijking:

Eerst bereken je het kortingsbedrag over het totaal bedrag van de kortingen(ja). Dat deel je door het totaal bedrag van alles (ja en nee) en maal 100. Dat is het kortingspercentage over alles.

Ik denk dat ik je nu wel heb begrepen, anders hoor ik het wel.
Gewijzigd op 01/01/1970 01:00:00 door Kalle P
 
Freakme

Freakme

27/08/2006 19:02:00
Quote Anchor link
//50 * (20/100) = 10 <-- de korting

deze klopt precies ja ....nu moet ik nog even stoeien om het met de variabelen instellen van mij....

IK ga mijn best doen.

Nogmaals .....heel erg bedankt.... ik hoop dat ik in de nabije toekosmt net zo als jullie mensen kan gaan helpen,

Mocht ik er met mijn variabelen toch niet helemaal uitkomen ...mag ik het dan nogmaals vragen?

Greetings,

freakme
 
Freakme

Freakme

27/08/2006 19:12:00
Quote Anchor link
aan de hand van jouw voorbeeld probeer ik het nu als volgt ...met mijn bestaande variabelen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $korting_over_totaal = $bedragkorting * ($row_Recordset1['kortingspercentage'] / 100);?>


Maar met deze berekening geeft hij helemaal niets.

Wat doe ik fout?
 
Arend a

Arend a

27/08/2006 19:15:00
Quote Anchor link
Je kan ook elk product een multiplier meegeven in een aparte kolom in je database. Dat is veel makkelijker en per record uit te rekenen.

Geen korting: een multiplier van 1.

Wel korting (bijvoorbeeld 20%) zou je handmatig zo uitrekenen:

100 euro
20 euro korting (20%)
-----------
80 euro over

Sneller is het natuurlijk om 100* ((100% - 20%) / 100) = 100 * 0,8 = 80 euro.

als je een kolom korting neemt is het eigenlijk heel simpel:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT bedrag*bedrag_multiplier AS bedragmetkorting
FROM tabelmetbedragen


of andersom als je het in percentages wilt geven (edit: bij geen korting wel een 0 en geen NULL waarde nemen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT bedrag*((100-bedrag_percentagekorting)/100) AS
bedragmetkorting


is een nette en snelle manier.
Gewijzigd op 01/01/1970 01:00:00 door Arend a
 
Freakme

Freakme

27/08/2006 19:21:00
Quote Anchor link
Beste Arend,

Bedankt voor je info, maar de voorbeelden en uitleg van Kalle begrijp ik beter. Deze sluiten beter op mijn script en denkwijze aan. Misschien ben ik daar nog te onervaren voor.

Ik hoop dat Kalle nog even wil reageren.

Greetings,

freakme
 
Kalle P

Kalle P

27/08/2006 21:48:00
Quote Anchor link
Hmm ja daar ben ik weer, was ff voetbal kijken + eten.

Hmm maar iniedergeval bereken wat jij schreef was maar de helft hoe je het kortingspercentage uitrekend van het totaal bedrag.

dus bij je krijgt niks als je dit doet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
//...code
echo $bedragkorting *
(
$row_Recordset1['kortingspercentage'] / 100);
?>


Als je niks krijgt, probeer de apart de variabelen eens te echo'en om te zien waar de fout zit.

Daarnaast is het in de toekomst wel verstandig om het wat anders aan te pakken, met sql e.d. Maar dat heb je zelf ook al kunnen lezen.
 
Freakme

Freakme

27/08/2006 22:35:00
Quote Anchor link
yep thanxs...ik ga weer eens proberen
 
Klaasjan Boven

Klaasjan Boven

27/08/2006 22:48:00
Quote Anchor link
Slaat helemaal nergens op.
Ik wilde zeggen dat dit ook met sql zelf kan met bij IF of CASE , maar ik kom niet uit de syntax
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
 



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.