# 2 dumb questions

#### Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

•  Subject
• Author
• Posted on
First, I'm sure the following code is not using an efficient structure
for the nested if then else's but I can't recall the right way:

if (\$item_qty > 19)
{
\$price = (\$price * .925);
\$qty_discount = '20 @ 7.5%';
} else
{
if (\$item_qty > 9)
{
\$price = (\$price * .95);
\$qty_discount = '10 @ 5%';
} else
{
if (\$item_qty > 4)
{
\$price = (\$price * .975);
\$qty_discount = '5 @ 2.5%';
}
}
}

Second question, if you see what I'm doing it's to discount e-commerce
sales based on the quanity ordered. It's easier to pull 50 of the same
item than 1 each of 50 different things. I'm not sure what's quite right
but lets say an order of 1 has no discount and an order of 100 is 50%
off. Surely there is a way of incrementally calculating the discount for
any quantity between 1 and 100 but I'm no math whiz.

hmmm... maybe for that one, since 50% * 2 is 100 then:

\$item_qty = 100
\$price = \$100

\$qty_discount = (\$item_qty/2)
[50(%)]

\$price = (\$price - (\$price * (\$qty_discount / 100)))
[\$50]      \$100 -   \$100     *        50%

Um, damn, I'm lost...

## Re: 2 dumb questions

Paul Furman wrote:

I solved this part so the first problem doesn't really matter though I
should know how to do that!

Basically I made this 'rate' number that says how much to increment per
unit purchased. Each additional unit gets a bit more discount.

\$item_qty = 10;
\$price = 100;

//\$1-\$100 discount up to 50%
\$rate = (.5/100);

//subtract one 'rate' so a purchase of 1 unit is not discounted .005%
(\$qty_discount = ((\$item_qty*\$rate)/1)-\$rate);
//set cap at 50%
if (\$item_qty > 99){\$qty_discount = .5;}
//subtract discount from price
\$price = (\$price - (\$price * (\$qty_discount)));

print " final: ".\$price;

~returns \$50 discounted price at 100 units~

## Re: 2 dumb questions

Paul Furman wrote:

This is a little better:

\$price = \$r["price"] / 100;
\$full_price = \$price / 100;//reserve for calculating discounts
\$item_qty = \$row["item_qty"];
//quantity discount
\$limit = 50;//no further discount above this qty
\$max_disc = .3;//max discount

\$rate = (\$max_disc/\$limit);//discount per unit above 1

//subtract one 'rate' so a purchase of 1 unit is not discounted
(\$qty_discount = ((\$item_qty*\$rate)/1));
//set cap
if (\$item_qty > (\$limit-1)){\$qty_discount = \$max_disc;}
//subtract qty discount from price
\$price = (\$price - (\$price * (\$qty_discount)));

then:

if (\$discount != 0){//if any buyer discount
above qty disc
//reduce buyer discount by amount of quantity disc
\$price = (\$price - (\$full_price * (\$adj_discount / 100)));
}

## Re: 2 dumb questions

Paul Furman kirjoitti:

With the help of our friend "else if" you get a really clean code:

if (\$item_qty > 19) {
\$price = (\$price * .925);
\$qty_discount = '20 @ 7.5%';
} else if (\$item_qty > 9) {
\$price = (\$price * .95);
\$qty_discount = '10 @ 5%';
} else if (\$item_qty > 4) {
\$price = (\$price * .975);
\$qty_discount = '5 @ 2.5%';
}

--
"En ole paha ihminen, mutta omenat ovat elinkeinoni." -Perttu SirviÃ¶
spam@outolempi.net | Gedoon-S @ IRCnet | rot13(xvzzb@bhgbyrzcv.arg)

## Re: 2 dumb questions

Kimmo Laine wrote:

Thanks, that's better.
I should know this stuff...