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:

<?php $subtotaal+= $row_Recordset ['prijs'] ;?>

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

<?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:

<?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
Korting gaat er toch altijd af?
<?php
if($row_Recordset2['korting'] == 0){
$subtotaal += $row_Recordset ['prijs'];
}
else{
$bedragkorting = $row_Recordset2['prijs'] - $korting;
}
?>
Hahahaha,

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

<?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

<?php echo $row_Recordset1['kortingspercentage']; ?>

Ik hoop dat je mij daar nog bij kan helpen.

Greetings,
freakme
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
<?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;

?>
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
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.
Vraagje: Waarom laat je de database niet het rekenwerk voor je doen?
@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).
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
Ik snap het.
<?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.
//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

Reageren