/** * syncOrderItems * * @param MIXED $orderitems primary key of kart_items table. * @param integer $user_id id of user * @param integer $order_id order id * * @since 2.2.2 * * @return Object list. */ public function syncOrderItems($orderitems, $user_id, $order_id) { $final_order_price = 0; foreach ($orderitems as $item) { $finalOrderItemPrice = 0; if (!empty($item->params)) { // Coupon coupon exist $c_code = json_decode($item->params, true); if (!empty($c_code['coupon_code'])) { $path = JPATH_SITE . "/components/com_quick2cart/models/cartcheckout.php"; if (!class_exists("Quick2cartModelcartcheckout")) { JLoader::register("Quick2cartModelcartcheckout", $path); JLoader::load("Quick2cartModelcartcheckout"); } $Quick2cartModelcartcheckout = new Quick2cartModelcartcheckout(); $valid = $Quick2cartModelcartcheckout->getcoupon($c_code['coupon_code'], $user_id, "order", $order_id); if (empty($valid)) { unset($c_code['coupon_code']); if (!empty($c_code)) { $params = json_encode($c_code); } else { $params = ''; } // INVALID COUPON $db = JFactory::getDBO(); $query = " UPDATE `#__kart_order_item` SET `product_final_price`=`original_price` ,`params`='" . $params . "' WHERE `order_item_id` =" . $item->order_item_id; $db->setQuery($query); if (!$db->execute()) { echo $img_ERROR . JText::_("Unable to Alter #__kart_order_item") . $BR; echo $db->getErrorMsg(); return false; } } else { // VALID COUPON:UPDATE WITH NEW COP #20712 } } } // Getting orderitems final price $db = JFactory::getDBO(); $query = " SELECT `product_final_price` FROM `#__kart_order_item` WHERE `order_item_id` =" . $item->order_item_id; $db->setQuery($query); $finalOrderItemPrice = $db->loadResult(); $final_order_price = (int) $final_order_price + (int) $finalOrderItemPrice; } $comquick2cartHelper = new comquick2cartHelper(); // Vm:commented bz : we r doing after release q2cv2.0 // $comquick2cartHelper->AfterSyncUpdateOrderDetails($allOrderitemsPrice, $order_id); }
/** * $getOriginalPrice is set then product original price will be considered in calculation * */ public function getCartitems($getOriginalPrice = 0) { $comquick2cartHelper = new comquick2cartHelper(); $currency = $comquick2cartHelper->getCurrencySession(); $db = JFactory::getDBO(); //@TODO ask ashwin about this $Quick2cartModelcart = new Quick2cartModelcart(); $cart_id = $Quick2cartModelcart->getCartId(); if (!isset($cart_id)) { return; } $query = "Select k.cart_item_id as id, \tk.cart_id,k.store_id,i.sku,\n\t\t\t\t\tk.order_item_name as title,\tk.user_info_id,\n\t\t\t\t\tk.cdate,\t\t\t\t\t\tk.mdate,\n\t\t\t\t\tk.product_quantity as qty, \t\tk.product_attribute_names as options,\n\t\t\t\t\tk.item_id, k.product_item_price,k.product_attributes_price,k.product_final_price,k.original_price,k. params,currency,\n\t\t\t\t\tk.product_attributes\n\t\t FROM #__kart_cartitems as k,#__kart_items as i\n\t\t WHERE k.item_id=i.item_id and k.cart_id='{$cart_id}' order by k.`store_id`"; $db->setQuery($query); $cart = $db->loadAssocList(); foreach ($cart as $key => $rec) { $cart[$key]['seller_id'] = JFactory::getUser()->id; //@TODO fetch store owner from items table // task 1 fetch item price $pricearray = ""; $return_disc = 0; $prod_price = $Quick2cartModelcart->getPrice($rec['item_id'], $return_disc, $getOriginalPrice); $cart[$key]['amt'] = $prod_price['price']; //product_item_price as amt // task 2 attribute price if (isset($rec['product_attributes']) && $rec['product_attributes']) { $totop_price = $Quick2cartModelcart->getCurrPriceFromBaseCurrencyOption($rec['product_attributes']); $cart[$key]['opt_amt'] = $totop_price; // product_attributes_price as opt_amt*/ } else { $cart[$key]['opt_amt'] = 0; // product_attributes_price as opt_amt*/ } // task 3 calculate total m price $cart[$key]['tamt'] = ((double) $cart[$key]['amt'] + (double) $cart[$key]['opt_amt']) * (double) $cart[$key]['qty']; //product_final_price as tamt // synchronize new item price and its related in cart_item table $cart_item = new stdClass(); $cart_item->cart_item_id = $cart[$key]['id']; //as id $cart_item->product_quantity = $cart[$key]['qty']; $cart_item->product_item_price = $cart[$key]['amt']; $cart_item->product_attributes_price = $cart[$key]['opt_amt']; if (!empty($rec['params'])) { $params = json_decode($rec['params'], true); JLoader::import('cartcheckout', JPATH_SITE . DS . 'components' . DS . 'com_quick2cart' . DS . 'models'); $Quick2cartModelcartcheckout = new Quick2cartModelcartcheckout(); if (!empty($params['coupon_code'])) { $coupon = $Quick2cartModelcartcheckout->getcoupon($params['coupon_code']); $coupon = $coupon ? $coupon : array(); if (isset($coupon) && $coupon) { if (in_array($cart[$key]['item_id'], $coupon[0]->item_id)) { $camt = -1; $cart[$key]['original_price'] = $cart[$key]['tamt']; $cart_item->original_price = $cart[$key]['original_price']; $coupon[0]->cop_code = $params['coupon_code']; if ($coupon[0]->val_type == 1) { $cval = $coupon[0]->value / 100 * $cart[$key]['tamt']; } else { $cval = $coupon[0]->value; $cval = $cval * $cart[$key]['qty']; /*multiply cop disc with qty*/ } $camt = $cart[$key]['tamt'] - $cval; if ($camt <= 0) { $camt = 0; } $cart[$key]['tamt'] = !($camt == -1) ? $camt : $cart[$key]['tamt']; } } } } $cart_item->product_final_price = $cart[$key]['tamt']; $cart_item->currency = $comquick2cartHelper->getCurrencySession(); $db = JFactory::getDBO(); if ($cart_item->product_item_price != $cart[$key]['product_item_price'] || $cart_item->product_attributes_price != $cart[$key]['product_attributes_price'] || $cart_item->product_final_price != $cart[$key]['product_final_price'] || $cart_item->currency != $cart[$key]['currency']) { if (!$db->updateObject('#__kart_cartitems', $cart_item, "cart_item_id")) { echo $this->_db->stderr(); return -1; } } } return $cart; }