public function actionCoupon() { if ($_GET['remove'] && !empty($_GET['remove'])) { cart_discount::model()->deleteAllByAttributes(array('discount_ID' => $_GET['remove'], 'cart_ID' => Yii::app()->user->getState('cart_ID'))); Yii::app()->user->setFlash('cart', "voucher has been removed"); $this->redirect(array('index')); exit; } if ($_POST['token'] != md5(Yii::app()->user->getStateKeyPrefix())) { $this->redirect(array('index')); exit; } if (!$_POST['code'] or empty($_POST['code'])) { Yii::app()->user->setFlash('cart', "voucher name can't be blank"); $this->redirect(array('index')); exit; } if (!($discount = discount_entity::model()->findByAttributes(array('discount_name' => $_POST['code'])))) { Yii::app()->user->setFlash('cart', "voucher name not valid"); $this->redirect(array('index')); exit; } $cart = cart::model()->findByPk(Yii::app()->user->getState('cart_ID')); if ($msg = $cart->validateDiscount($_POST['total'], $discount->discount_ID, true)) { Yii::app()->user->setFlash('cart', $msg); $this->redirect(array('index')); exit; } else { $cartDiscount = new cart_discount(); $cartDiscount->cart_ID = $cart->cart_ID; $cartDiscount->discount_ID = $discount->discount_ID; $cartDiscount->save(); } $this->redirect(array('index')); }
public function actionPayment() { $cart = cart::model()->findByPk(Yii::app()->user->getState('cart_ID')); if (!$cart->cart_address_ID or !$cart->cart_carrier_ID) { $this->redirect(array('index')); exit; } if (!($address = address_entity::model()->findByPk($cart->cart_address_ID))) { $this->redirect(array('index')); exit; } $grandTotal = product_entity::decoratePrice($cart->getOrderTotal(), true); $this->render('payment', array('grandTotal' => $grandTotal)); }
public function actionChangeCurrency() { $new_currency = $_POST['id']; if ($new_currency and currency::model()->findByPk($new_currency)) { $cart = cart::model()->findByPk(Yii::app()->user->getState('cart_ID')); $cart->cart_currency_ID = $new_currency; $cart->save(); Yii::app()->user->setState('currency_ID', $new_currency); Yii::app()->user->updateCookie(); die(1); } else { die(0); } }
public function actionCart() { $errors = ''; $qty = $_GET['qty']; $product = $this->loadModel(); if ($qty < 0 || $qty > 100) { $errors .= "Quantity Invalid \n"; } $cart = cart::model()->findByPk(Yii::app()->user->getState('cart_ID')); if (!$cart) { //To do } $cart->updateQty($qty, $product->product_ID); Yii::app()->user->setFlash('cart', "Add {$product->product_name} to cart!"); $this->redirect(array('cart/index')); }
public function validateOrder($cart_ID, $order_status, $amountPaid, $paymentMethod = 'Unknown', $message = NULL, $extraVars = array(), $currency_special = NULL, $dont_touch_amount = false) { $cart = cart::model()->findByPk(intval($cart_cart)); if ($cart and !$cart->orderExists()) { $order = new order_entity(); $customer = customer_entity::model()->findByPk($cart->cart_customer_ID); $currency = currency::model()->findByPK($cart->cart_currency_ID); $order->order_carrier_ID = intval($cart->cart_carrier_ID); $order->order_address_ID = intval($cart->cart_address_ID); $order->order_cart_ID = intval($cart->cart_ID); $order->order_currency_ID = intval($cart->cart_currency_ID); $order->order_customer_ID = intval($cart->cart_customer_ID); $order->order_salt = $customer->customer_salt; $order->order_payment_method = $paymentMethod; $amountPaid = !$dont_touch_amount ? round(floatval($amountPaid), 2) : $amountPaid; $order->order_total_paid = $amountPaid; $order->order_total_discount = product_entity::decoratePrice($cart->getOrderTotal(2)); $order->order_total_products = product_entity::decoratePrice($cart->getOrderTotal(1)); $order->order_total_shipping = product_entity::decoratePrice($cart->getOrderShippingCost()); $order->order_grand = product_entity::decoratePrice($cart->getOrderTotal()); $order->order_delivery_ID = 0; $order->order_payment_date = date('Y-m-d H:i:s'); $order->order_delivery_date = '0000-00-00 00:00:00'; if ($order->order_total_paid < $order->order_grand) { $order_status = order_entity::PaymentError; } $order->order_status = $order_status; $res = $order->save(); if ($res and $order->order_ID) { //order detail foreach ($cart->products as $product) { $quantity = $cart->containProduct($row->product_ID); $orderDetail = new order_detail(); $orderDetail->detail_order_ID = $order->order_ID; $orderDetail->detail_product_ID = $product->product_ID; $orderDetail->detail_product_name = $product->product_name; if ($quantity['quantity'] > 1) { $discount_ID = discount_quantity::validateQuantityDiscount($product->product_ID, $quantity['quantity']); if ($discount_ID) { $discountQuantity = discount_quantity::model()->findByPk($discount_ID); $orderDetail->detail_quantity_discount = $currency->convert($product->product_price - $discountQuantity->applyRule($product->product_price)); $orderDetail->detail_quantity_discount_applied = 1; $orderDetail->detail_reducetion_percent = 0; $orderDetail->detail_reducetion_amount = 0; $orderDetail->detail_product_price = $currency->convert($product->product_price - $orderDetail->detail_quantity_discount); } } else { if ($product->isReduction()) { if ($product->product_reducetion_percent) { $orderDetail->detail_reducetion_percent = $currency->convert(floatval($product->product_price) * floatval($product->product_reducetion_percent / 100), 2); $orderDetail->detail_reducetion_amount = 0; $orderDetail->detail_quantity_discount = 0; $orderDetail->detail_quantity_discount_applied = 2; $orderDetail->detail_product_price = $currency->convert($product->product_price - $orderDetail->detail_reducetion_percent); } else { $orderDetail->detail_reducetion_amount = $currency->convert($product->product_reducetion_amount); $orderDetail->detail_reducetion_percent = 0; $orderDetail->detail_quantity_discount = 0; $orderDetail->detail_quantity_discount_applied = 2; $orderDetail->detail_product_price = $currency->convert($product->product_price - $orderDetail->detail_reducetion_amount); } } else { $orderDetail->detail_reducetion_amount = 0; $orderDetail->detail_reducetion_percent = 0; $orderDetail->detail_quantity_discount = 0; $orderDetail->detail_quantity_discount_applied = 2; $orderDetail->detail_product_price = $currency->convert($product->product_price); } } $orderDetail->order_weight = floatval($product->product_weight); $orderDetail->save(); //update product info if ($order->order_status != order_entity::PaymentError and $order->order_status != order_entity::Canceled) { $product->product_quantity -= $quantity['quantity']; $product->save(); } } //order_discount if (sizeof($discounts = cart_discount::items($cart->cart_ID)) >= 1) { foreach ($discounts as $discount) { $orderDiscount = new order_discount(); $orderDiscount->order_ID = $order->order_ID; $orderDiscount->discount_ID = $discount['discount_ID']; $orderDiscount->discount_name = $discount['discount_name']; if ($discount['discount_type'] == 3) { $orderDiscount->discount_value = 0; } else { if ($discount['discount_type'] == 2) { $orderDiscount->discount_value = $currency->convert($discount['discount_value']); } else { if ($discounts['discount_type'] == 1) { $orderDiscount->discount_value = $currency->convert($order->order_total_products * ($discount['discount_value'] / 100)); } } } } } /** * To do list * 1.Email confirm * 2.Product sales * 3.Order message * 4.order History * */ } } }