CodingForums.com

CodingForums.com (http://www.codingforums.com/index.php)
-   Perl/ CGI (http://www.codingforums.com/forumdisplay.php?f=5)
-   -   Store Discount (http://www.codingforums.com/showthread.php?t=286305)

mattsc 01-23-2013 04:50 PM

Store Discount
 
I am trying to figure out the best way to do this. So where I work, there is a manufacturer that has a "5/6" Discount, here it is explained:

Quote:

For every 5 pieces of Wee Forest Folk you purchase, receive a 50% Discount on the 6th piece:

6th Piece's retail price must not be greater than one of the first 5 pieces. If so, then the discount will only be up to 50% of the highest price of one of the first 5 pieces.
The majority of this code was written by the previous developer and I am trying to fix it. I have everything working fine, except I need to exclude the most recent piece if the price of it was more than the previous ones. I am unsure of the best way to do this. Every purchase of this manufacturer is stored in it's own table and it grabs the highest price once they have ordered the right amount.

Here is what I have right now:
Code:

if ($summary[15] > 0) {
                $billing_phone=$FORM{billing_phone};
                $billing_phone=~s/\D//g;
                if ($FORM{email}) {
$sql = qq{
SELECT
        SUM(weeforest.quantity)
FROM
        weeforest,orders
WHERE
        weeforest.ordernumber = orders.number
        AND weeforest.email="$FORM{email}"
        AND weeforest.email <> "noemail\@cherrylanekeepsakes.com"
        AND weeforest.email <> "test\@test.com"
        AND (
                orders.order_status="New"
                OR orders.order_status="shipped"
                OR orders.order_status="Pending"
                )
        GROUP BY email
};
                }

        else {

$sql = qq{
SELECT
        SUM(weeforest.quantity)
FROM
        weeforest,
        orders
WHERE
        weeforest.ordernumber = orders.number
        AND weeforest.phone="$billing_phone"
        AND (
                orders.order_status="New"
                OR orders.order_status="shipped"
                OR orders.order_status="Pending"
                )
        GROUP BY phone
};
                }

                $sth=$dbh->prepare ($sql);
                $sth->execute;
                ($weequantity) = $sth->fetchrow_array ();

                $weetotal=$weequantity + $summary[15];

                if ($FORM{email}) {
                        $sql=qq{
SELECT
        price
FROM
        weeforest,
        orders
WHERE
        weeforest.ordernumber = orders.number
        AND weeforest.email="$FORM{'email'}"
        AND weeforest.email <> "noemail\@cherrylanekeepsakes.com"
        AND weeforest.email <> "test\@test.com"
        AND (
                orders.order_status="New"
                OR orders.order_status="shipped"
                OR orders.order_status="Pending"
                ) ORDER BY price
};
                }
                else {
$sql=qq{
SELECT
        price
FROM
        weeforest,
        orders
WHERE
        weeforest.ordernumber = orders.number
        AND weeforest.phone="$billing_phone"
        AND (
                orders.order_status="New"
                OR orders.order_status="shipped"
                OR orders.order_status="Pending"
                )
        ORDER BY price
};
                }

                $sth=$dbh->prepare ($sql);
                $sth->execute;

                while(($weeprice) = $sth->fetchrow_array ()) {
                        $weeprice[$k]=$weeprice;
                        $k++;
                }

$sql = qq[
SELECT
        c.price
FROM
        cartdata c,
        $config{database}{db_view} p
WHERE
        c.product = p.number
AND
        c.customer="$FORM{uid}"
AND
        p.manufacturer LIKE '%wee%'
];

                $sth=$dbh->prepare ($sql);
                $sth->execute;
                while(($weeprice) = $sth->fetchrow_array ()) {
                        $weeprice[$k]=$weeprice;
                        $k++;
                }

                @weeprice=sort numerically_desc (@weeprice);

                if ($weetotal >= 6) {

                        if ($discount_display ne "") {$and=" and";} else {$and="";}
                        $weediscount=$weeprice[0]/2;
                        $discount=$discount+$weediscount;
                        $discount_display="Wee Forest Folk Discount $and $discount_display";
                        $FORM{'weeforest_discounts'}++;
                }
        }



All times are GMT +1. The time now is 03:29 AM.

Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.