Esempio n. 1
0
 public static function get_from_id($id)
 {
     $id = (int) $id;
     $date = Gadget::$date_do->format(DATE_FORMAT_MYSQL);
     if ($row = dbi()->q_1("SELECT Subscriptions.*, Customers.*\n                                FROM Customers\n                                    LEFT JOIN Subscriptions\n                                        ON (Customers.CustomerID = Subscriptions.CustomerID AND DeliveryDate = '{$date}')\n                                WHERE Customers.CustomerID = '{$id}'")) {
         $DeliveryAddress = new Address(array('Address1' => $row->DeliveryAddress1, 'Address2' => $row->DeliveryAddress2, 'City' => $row->DeliveryCity, 'State' => $row->DeliveryState, 'Zip' => $row->DeliveryZip, 'Comments' => $row->DeliveryComments));
         $BillingAddress = new Address(array('Address1' => $row->BillingAddress1, 'Address2' => $row->BillingAddress2, 'City' => $row->BillingCity, 'State' => $row->BillingState, 'Zip' => $row->BillingZip));
         return new Customer(array('CustomerID' => $row->CustomerID, 'Email' => $row->Email, 'Password' => $row->Password, 'FirstName' => $row->FirstName, 'LastName' => $row->LastName, 'ContactPhone' => $row->ContactPhone, 'Allergies' => $row->Allergies, 'BillingFirstName' => $row->BillingFirstName, 'BillingLastName' => $row->BillingLastName, 'BillingPhone' => $row->BillingPhone, 'BillingCardType' => $row->BillingCardType, 'BillingCardNumber' => $row->BillingCardNumber, 'First_Order_Date' => $row->First_Order_Date, 'Last_Order_Date' => $row->Last_Order_Date, 'Total_Orders' => $row->Total_Orders, 'Delivery_Window' => $row->Delivery_Window, 'CIMCustID' => $row->CIMCustID, 'CIMPymtProfID' => $row->CIMPymtProfID, 'DeliveryAddress' => $DeliveryAddress, 'BillingAddress' => $BillingAddress, 'WeeklyMeals' => $row->WeeklyMeals, 'WeeklyReg' => $row->WeeklyReg, 'WeeklyVeg' => $row->WeeklyVeg, 'Want' => $row->Want, 'DontWant' => $row->DontWant, 'Comments' => $row->Comments, 'PromoCodeID' => $row->PromoCodeID, 'PromoCode' => PromoCode::get_from_id($row->PromoCodeID)));
     } else {
         return NULL;
     }
 }
Esempio n. 2
0
 public function &__get($name) {
     switch ($name) {
         case 'PromoCode':
             if ($this->PromoCodeID) {
                 return $this->PromoCode = PromoCode::get_from_id($this->PromoCodeID);
             }
             break;
         case 'Customer':
             if ($this->CustomerID) {
                 return $this->Customer = Customer::get_from_id($this->CustomerID);
             }
             break;
     }
     if (isset($this->Amounts->$name)) {
         return $this->Amounts->$name;
     }
     return NULL;
 }
        foreach ($validation->errors as $error) {
            Gadget::add_message($error);
        }
    } else {

        $PromoCodeID = NULL;
        if ($_POST['PromoCodeName']) {
            $PromoCodeName = $dbi->escape($_POST['PromoCodeName']);

            $PromoCodeID = $dbi->q_1("SELECT PromoCodeID
                                        FROM PromoCodes
                                        WHERE PromoCodeName = '$PromoCodeName'
                                            AND ValidFrom <= CURDATE()
                                            AND (ValidTo IS NULL OR ValidTo >= CURDATE())")->PromoCodeID;

            $PromoCode = PromoCode::get_from_id($PromoCodeID);
        }
        if ($PromoCode && $PromoCode->can_be_used($_SESSION['CustomerID'], 'GiftCertificates')) {

            $PromoCodeID     = $PromoCode->PromoCodeID;
            $totalCost       = $PromoCode->apply_discount(new Amount($data['GiftAmount']));
            $beforePromoCost = new Amount($data['GiftAmount']);
        } else {
            $PromoCodeID     = NULL;
            $totalCost       = new Amount($data['GiftAmount']);
            $beforePromoCost = new Amount($data['GiftAmount']);
        }

        $transaction                   = new Transaction();
        //$transaction->debug            = true;
        $transaction->amounts['total'] = $totalCost;
Esempio n. 4
0
         $transaction->line_items[] = $li;
     }
     if ($meal['VegCount']) {
         $li = new AuthorizeNetLineItem();
         $li->itemId = $meal['Meal']->ItemID;
         $li->name = strlen($mealName) > 18 ? substr($mealName, 0, 18) . ' - Vegetarian' : $mealName . ' - Vegetarian';
         $li->quantity = $meal['VegCount'];
         $li->unitPrice = $meal['Meal']->Vegetarian_Price;
         $li->taxable = true;
         $transaction->line_items[] = $li;
     }
 }
 $transaction->info->description = "Madison &amp; Rayne Order For Week {$week}" . ($order->PromoCode ? ' - ' . $order->PromoCode->description : '');
 $transaction->amounts = array('total' => $order->Amounts->Total, 'tax' => $order->Amounts->Tax);
 // if gift codes bring the total to 0
 $promoCode = PromoCode::get_from_id($order->PromoCodeID);
 if ($order->Amounts->Total == 0) {
     $krustomer->First_Order_Date = $krustomer->First_Order_Date ? $krustomer->First_Order_Date : $date;
     $krustomer->Last_Order_Date = date('Y-m-d');
     $krustomer->Total_Orders++;
     $krustomer->update();
     $orderSuccess = true;
     // If they used a promocode that was an ammount, subtract total from promocode amount
     if ($promoCode->multiple_use == 0) {
         if ($promoCode->Amount > 0 && $promoCode->PromoCodeType == "Amount Discount") {
             $newPromoCodeAmount = $promoCode->Amount - $order->Amounts->Total;
             if ($newPromoCodeAmount < 0) {
                 $newPromoCodeAmount = 0;
             }
             $dbi->update('PromoCodes', array('Amount' => $newPromoCodeAmount), array('PromoCodeID' => $order->PromoCodeID));
         }