/** * checkout function * * @access public * @return void */ public function checkout() { $option = JRequest::getVar('option'); $Itemid = JRequest::getVar('Itemid'); $post = JRequest::get('post'); $encr = JRequest::getVar('encr'); $quotationHelper = new quotationHelper(); $model = $this->getmodel(); $session = JFactory::getSession(); $redhelper = new redhelper(); $cart = array(); $cart['idx'] = 0; $session->set('cart', $cart); $quotationProducts = $quotationHelper->getQuotationProduct($post['quotation_id']); for ($q = 0; $q < count($quotationProducts); $q++) { $model->addtocart($quotationProducts[$q]); } $cart = $session->get('cart'); $quotationDetail = $quotationHelper->getQuotationDetail($post['quotation_id']); $cart['customer_note'] = $quotationDetail->quotation_note; $cart['quotation_id'] = $quotationDetail->quotation_id; $cart['cart_discount'] = $quotationDetail->quotation_discount; $cart['quotation'] = 1; $session->set('cart', $cart); $model->modifyQuotation($quotationDetail->user_id); $Itemid = $redhelper->getCheckoutItemid(); $this->setRedirect('index.php?option=' . $option . '&view=checkout"ation=1&encr=' . $encr . '&Itemid=' . $Itemid); }
public function display($tpl = null) { $context = 'quotation_id'; $quotationHelper = new quotationHelper(); $uri = JFactory::getURI(); $app = JFactory::getApplication(); $document = JFactory::getDocument(); $document->setTitle(JText::_('COM_REDSHOP_quotation')); $model = $this->getModel('quotation'); JToolBarHelper::title(JText::_('COM_REDSHOP_QUOTATION_MANAGEMENT'), 'redshop_quotation48'); JToolBarHelper::addNewX(); JToolBarHelper::editListX(); JToolBarHelper::deleteList(); $filter_order = $app->getUserStateFromRequest($context . 'filter_order', 'filter_order', 'quotation_cdate'); $filter_order_Dir = $app->getUserStateFromRequest($context . 'filter_order_Dir', 'filter_order_Dir', 'DESC'); $filter_status = $app->getUserStateFromRequest($context . 'filter_status', 'filter_status', 0); $lists['order'] = $filter_order; $lists['order_Dir'] = $filter_order_Dir; $quotation = $this->get('Data'); $total = $this->get('Total'); $pagination = $this->get('Pagination'); $optionsection = $quotationHelper->getQuotationStatusList(); $lists['filter_status'] = JHTML::_('select.genericlist', $optionsection, 'filter_status', 'class="inputbox" size="1" onchange="document.adminForm.submit();"', 'value', 'text', $filter_status); $this->lists = $lists; $this->quotation = $quotation; $this->pagination = $pagination; $this->request_url = $uri->toString(); parent::display($tpl); }
public function save($send = 0) { $quotationHelper = new quotationHelper(); $post = JRequest::get('post'); $option = JRequest::getVar('option', '', 'request', 'string'); $cid = JRequest::getVar('cid', array(0), 'post', 'array'); $post['quotation_id'] = $cid[0]; $model = $this->getModel('quotation_detail'); if ($post['quotation_id'] == 0) { $post['quotation_cdate'] = time(); $post['quotation_encrkey'] = $quotationHelper->randomQuotationEncrkey(); } if ($post['user_id'] == 0 && $post['quotation_email'] == "") { $msg = JText::_('COM_REDSHOP_CREATE_ACCOUNT_FOR_QUOTATION'); $this->setRedirect('index.php?option=' . $option . '&view=quotation_detail&task=edit&cid[]=' . $post['quotation_id'], $msg); } $quotation_item = array(); $i = 0; foreach ($post as $key => $value) { if (!strcmp("quotation_item_id", substr($key, 0, 17))) { $quotation_item[$i]->quotation_item_id = $value; } if (!strcmp("product_excl_price", substr($key, 0, 18))) { $quotation_item[$i]->product_excl_price = $value; } if (!strcmp("product_price", substr($key, 0, 13))) { $quotation_item[$i]->product_price = $value; } if (!strcmp("quantity", substr($key, 0, 8)) && strlen($key) < 12) { $quotation_item[$i]->product_quantity = $value; $quotation_item[$i]->product_final_price = $quotation_item[$i]->product_price * $quotation_item[$i]->product_quantity; $i++; } } $post['quotation_item'] = $quotation_item; $row = $model->store($post); if ($row) { $msg = JText::_('COM_REDSHOP_QUOTATION_DETAIL_SAVED'); } else { $msg = JText::_('COM_REDSHOP_ERROR_SAVING_QUOTATION_DETAIL'); } $quotation_status = $post['quotation_status'] > 0 ? $post['quotation_status'] : 2; $quotationHelper->updateQuotationStatus($row->quotation_id, $quotation_status); if ($send == 1) { if ($model->sendQuotationMail($row->quotation_id)) { $msg = JText::_('COM_REDSHOP_QUOTATION_DETAIL_SENT'); } } $this->setRedirect('index.php?option=' . $option . '&view=quotation', $msg); }
function display($tpl = null) { $app = JFactory::getApplication(); $quotationHelper = new quotationHelper(); $print = JRequest::getInt('print'); if ($print) { ?> <script type="text/javascript" language="javascript"> window.print(); </script> <?php } $user = JFactory::getUser(); $Itemid = JRequest::getInt('Itemid'); $quoid = JRequest::getInt('quoid'); $encr = JRequest::getString('encr'); if (!$quoid) { $app->Redirect('index.php?option=com_redshop&view=account&Itemid=' . $Itemid); } $quotationDetail = $quotationHelper->getQuotationDetail($quoid); if (count($quotationDetail) < 1) { JError::raiseWarning(404, JText::_('COM_REDSHOP_NOACCESS_QUOTATION')); echo JText::_('COM_REDSHOP_NOACCESS_QUOTATION'); return; } if (!$user->id) { if (isset($encr)) { $model = $this->getModel('quotation_detail'); $authorization = $model->checkAuthorization($quoid, $encr); if (!$authorization) { JError::raiseWarning(404, JText::_('COM_REDSHOP_QUOTATION_ENCKEY_FAILURE')); echo JText::_('COM_REDSHOP_QUOTATION_ENCKEY_FAILURE'); return false; } } else { $app->Redirect('index.php?option=com_redshop&view=login&Itemid=' . JRequest::getInt('Itemid')); return; } } else { if (count($quotationDetail) > 0 && $quotationDetail->user_id != $user->id) { JError::raiseWarning(404, JText::_('COM_REDSHOP_NOACCESS_QUOTATION')); echo JText::_('COM_REDSHOP_NOACCESS_QUOTATION'); return; } } parent::display($tpl); }
public function display($tpl = null) { $quotationHelper = new quotationHelper(); $option = JRequest::getVar('option'); $layout = JRequest::getVar('layout', 'default'); $document = JFactory::getDocument(); $document->setTitle(JText::_('COM_REDSHOP_QUOTATION')); $document->addScript(JURI::base() . 'components/' . $option . '/assets/js/order.js'); $document->addScript(JURI::base() . 'components/' . $option . '/assets/js/common.js'); $document->addStyleSheet(JURI::base() . 'components/' . $option . '/assets/css/search.css'); $document->addScript(JURI::base() . 'components/' . $option . '/assets/js/search.js'); $document->addScript(JURI::base() . 'components/' . $option . '/assets/js/json.js'); $uri = JFactory::getURI(); $lists = array(); $model = $this->getModel(); if ($layout != 'default') { $this->setLayout($layout); } $detail = $this->get('data'); $redconfig = new Redconfiguration(); $isNew = $detail->quotation_id < 1; $userarr = $this->get('userdata'); $text = $isNew ? JText::_('COM_REDSHOP_NEW') : JText::_('COM_REDSHOP_EDIT'); JToolBarHelper::title(JText::_('COM_REDSHOP_QUOTATION_DETAIL') . ': <small><small>[ ' . $text . ' ]</small></small>', 'redshop_quotation48'); JToolBarHelper::save(); JToolBarHelper::custom('send', 'send.png', 'send.png', JText::_('COM_REDSHOP_SEND'), false); if ($isNew) { JToolBarHelper::cancel(); } else { JToolBarHelper::cancel('cancel', JText::_('JTOOLBAR_CLOSE')); } $status = $quotationHelper->getQuotationStatusList(); $lists['quotation_status'] = JHTML::_('select.genericlist', $status, 'quotation_status', 'class="inputbox" size="1" ', 'value', 'text', $detail->quotation_status); $this->lists = $lists; $this->quotation = $detail; $this->quotationuser = $userarr; $this->request_url = $uri->toString(); parent::display($tpl); }
public function addtocart($data = array()) { $app = JFactory::getApplication(); $Itemid = JRequest::getVar("Itemid"); $session = JFactory::getSession(); $db = JFactory::getDbo(); $carthelper = new rsCarthelper(); $producthelper = new producthelper(); $quotationHelper = new quotationHelper(); $cart = $session->get('cart'); $idx = (int) $cart['idx']; $row_data = $quotationHelper->getQuotationUserfield($data->quotation_item_id); $quotation_acc_data = $quotationHelper->getQuotationItemAccessoryDetail($data->quotation_item_id); $quotation_att_data = $quotationHelper->getQuotationItemAttributeDetail($data->quotation_item_id, 0, "attribute", $data->product_id); // Set session for giftcard if ($data->is_giftcard == 1) { if ($carthelper->rs_recursiveArraySearch($cart, $data->product_id)) { $cart[$idx]['quantity'] += 1; $session->set('cart', $cart); return; } else { $cart[$idx]['quantity'] = 1; } $cart[$idx]['quantity'] = $data->product_quantity; $cart[$idx]['giftcard_id'] = $data->product_id; $cart[$idx]['product_price'] = $data->product_price; $cart[$idx]['product_vat'] = 0; $cart[$idx]['product_id'] = ''; $cart['discount_type'] = 0; $cart['discount'] = 0; $cart['discount2'] = 0; $cart['reciver_email'] = ''; $cart['reciver_name'] = ''; for ($i = 0; $i < count($row_data); $i++) { $field_name = $row_data[$i]->field_name; $cart[$idx][$field_name] = $row_data[$i]->data_txt; } $cart['idx'] = $idx + 1; $session->set('cart', $cart); return; } $cart[$idx]['product_id'] = $data->product_id; $cart[$idx]['product_price'] = $data->product_price; $cart[$idx]['quantity'] = $data->product_quantity; if ($data->product_excl_price) { $getprotax = $producthelper->getProductTax($cart[$idx]['product_id'], $data->product_excl_price); $cart[$idx]['product_price'] = $data->product_excl_price + $getprotax; $cart[$idx]['product_price'] += $data->wrapper_price; $cart[$idx]['product_subtotal'] = $cart[$idx]['quantity'] * $cart[$idx]['product_price']; } $generateAccessoryCart = array(); for ($i = 0; $i < count($quotation_acc_data); $i++) { $generateAccessoryCart[$i]['accessory_id'] = $quotation_acc_data[$i]->accessory_id; $generateAccessoryCart[$i]['accessory_name'] = $quotation_acc_data[$i]->accessory_item_name; $generateAccessoryCart[$i]['accessory_oprand'] = "+"; $generateAccessoryCart[$i]['accessory_price'] = $quotation_acc_data[$i]->accessory_price; $acc_att_data = $quotationHelper->getQuotationItemAttributeDetail($data->quotation_item_id, 1, "attribute", $quotation_acc_data[$i]->accessory_id); $accAttributeCart = array(); for ($ia = 0; $ia < count($acc_att_data); $ia++) { $accPropertyCart = array(); $accAttributeCart[$ia]['attribute_id'] = $acc_att_data[$ia]->section_id; $accAttributeCart[$ia]['attribute_name'] = $acc_att_data[$ia]->section_name; $acc_prop_data = $quotationHelper->getQuotationItemAttributeDetail($data->quotation_item_id, 1, "property", $acc_att_data[$ia]->section_id); for ($ip = 0; $ip < count($acc_prop_data); $ip++) { $accSubpropertyCart = array(); $accPropertyCart[$ip]['property_id'] = $acc_prop_data[$ip]->section_id; $accPropertyCart[$ip]['property_name'] = $acc_prop_data[$ip]->section_name; $accPropertyCart[$ip]['property_oprand'] = $acc_prop_data[$ip]->section_oprand; $acc_subpro_data = $quotationHelper->getQuotationItemAttributeDetail($data->quotation_item_id, 1, "subproperty", $acc_prop_data[$ip]->section_id); for ($isp = 0; $isp < count($acc_subpro_data); $isp++) { $accSubpropertyCart[$isp]['subproperty_id'] = $acc_subpro_data[$isp]->section_id; $accSubpropertyCart[$isp]['subproperty_name'] = $acc_subpro_data[$isp]->section_name; $accSubpropertyCart[$isp]['subproperty_oprand'] = $acc_subpro_data[$isp]->section_oprand; } $accPropertyCart[$ip]['property_childs'] = $accSubpropertyCart; } $accAttributeCart[$ia]['attribute_childs'] = $accPropertyCart; } $generateAccessoryCart[$i]['accessory_childs'] = $accAttributeCart; } $generateAttributeCart = array(); for ($ia = 0; $ia < count($quotation_att_data); $ia++) { $accPropertyCart = array(); $generateAttributeCart[$ia]['attribute_id'] = $quotation_att_data[$ia]->section_id; $generateAttributeCart[$ia]['attribute_name'] = $quotation_att_data[$ia]->section_name; $acc_prop_data = $quotationHelper->getQuotationItemAttributeDetail($data->quotation_item_id, 0, "property", $quotation_att_data[$ia]->section_id); for ($ip = 0; $ip < count($acc_prop_data); $ip++) { $accSubpropertyCart = array(); $accPropertyCart[$ip]['property_id'] = $acc_prop_data[$ip]->section_id; $accPropertyCart[$ip]['property_name'] = $acc_prop_data[$ip]->section_name; $accPropertyCart[$ip]['property_oprand'] = $acc_prop_data[$ip]->section_oprand; $acc_subpro_data = $quotationHelper->getQuotationItemAttributeDetail($data->quotation_item_id, 0, "subproperty", $acc_prop_data[$ip]->section_id); for ($isp = 0; $isp < count($acc_subpro_data); $isp++) { $accSubpropertyCart[$isp]['subproperty_id'] = $acc_subpro_data[$isp]->section_id; $accSubpropertyCart[$isp]['subproperty_name'] = $acc_subpro_data[$isp]->section_name; $accSubpropertyCart[$isp]['subproperty_oprand'] = $acc_subpro_data[$isp]->section_oprand; } $accPropertyCart[$ip]['property_childs'] = $accSubpropertyCart; } $generateAttributeCart[$ia]['attribute_childs'] = $accPropertyCart; } $cart[$idx]['cart_attribute'] = $generateAttributeCart; $cart[$idx]['cart_accessory'] = $generateAccessoryCart; $cart[$idx]['wrapper_id'] = $data->product_wrapperid; $cart[$idx]['wrapper_price'] = $data->wrapper_price; $cart[$idx]['product_price_excl_vat'] = $data->product_excl_price; $cart['idx'] = $idx + 1; for ($i = 0; $i < count($row_data); $i++) { $field_name = $row_data[$i]->field_name; $cart[$idx][$field_name] = $row_data[$i]->data_txt; } $session->set('cart', $cart); }
/** * @package RedSHOP.Frontend * @subpackage Template * * @copyright Copyright (C) 2005 - 2013 redCOMPONENT.com. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die; $url = JURI::base(); include_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/order.php'; include_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/quotation.php'; include_once JPATH_COMPONENT . '/helpers/product.php'; require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/extra_field.php'; require_once JPATH_COMPONENT . '/helpers/extra_field.php'; $producthelper = new producthelper(); $quotationHelper = new quotationHelper(); $order_functions = new order_functions(); $configobj = new Redconfiguration(); $redTemplate = new Redtemplate(); $extra_field = new extra_field(); $extraField = new extraField(); $carthelper = new rsCarthelper(); $user = JFactory::getUser(); $Itemid = JRequest::getInt('Itemid'); $app = JFactory::getApplication(); $params = $app->getParams('com_redshop'); $returnitemid = $params->get('logout', $Itemid); $accountbillto_link = JRoute::_("index.php?option=com_redshop&view=account_billto&Itemid=" . $Itemid); $accountshipto_link = JRoute::_("index.php?option=com_redshop&view=account_shipto&Itemid=" . $Itemid); $logout_link = JRoute::_("index.php?option=com_redshop&view=login&task=logout&logout=" . $returnitemid . "&Itemid=" . $Itemid); $compare_link = JRoute::_("index.php?option=com_redshop&view=product&layout=compare&Itemid=" . $Itemid);
public function orderplace() { $app = JFactory::getApplication(); $redconfig = new Redconfiguration(); $quotationHelper = new quotationHelper(); $stockroomhelper = new rsstockroomhelper(); $helper = new redhelper(); $shippinghelper = new shipping(); $order_functions = new order_functions(); $post = JRequest::get('post'); $option = JRequest::getVar('option', 'com_redshop'); $Itemid = JRequest::getVar('Itemid'); $shop_id = JRequest::getVar('shop_id'); $gls_mobile = JRequest::getVar('gls_mobile'); $customer_message = JRequest::getVar('rs_customer_message_ta'); $referral_code = JRequest::getVar('txt_referral_code'); if ($gls_mobile) { $shop_id = $shop_id . '###' . $gls_mobile; } $user = JFactory::getUser(); $session = JFactory::getSession(); $auth = $session->get('auth'); if (!$user->id && $auth['users_info_id']) { $user->id = -$auth['users_info_id']; } $db = JFactory::getDbo(); $issplit = $session->get('issplit'); $url = JURI::root(); // If user subscribe for the newsletter if (isset($post['newsletter_signup']) && $post['newsletter_signup'] == 1) { $this->_userhelper->newsletterSubscribe(); } // If user unsubscribe for the newsletter if (isset($post['newsletter_signoff']) && $post['newsletter_signoff'] == 1) { $this->_userhelper->newsletterUnsubscribe(); } $order_paymentstatus = 'Unpaid'; $objshipping = new shipping(); $users_info_id = JRequest::getInt('users_info_id'); $thirdparty_email = JRequest::getVar('thirdparty_email'); $shippingaddresses = $this->shipaddress($users_info_id); $billingaddresses = $this->billingaddresses(); if (isset($shippingaddresses)) { $d["shippingaddress"] = $shippingaddresses; $d["shippingaddress"]->country_2_code = $redconfig->getCountryCode2($d["shippingaddress"]->country_code); $d["shippingaddress"]->state_2_code = $redconfig->getStateCode2($d["shippingaddress"]->state_code); $shippingaddresses->country_2_code = $d["shippingaddress"]->country_2_code; $shippingaddresses->state_2_code = $d["shippingaddress"]->state_2_code; } if (isset($billingaddresses)) { $d["billingaddress"] = $billingaddresses; if (isset($billingaddresses->country_code)) { $d["billingaddress"]->country_2_code = $redconfig->getCountryCode2($billingaddresses->country_code); $billingaddresses->country_2_code = $d["billingaddress"]->country_2_code; } if (isset($billingaddresses->state_code)) { $d["billingaddress"]->state_2_code = $redconfig->getStateCode2($billingaddresses->state_code); $billingaddresses->state_2_code = $d["billingaddress"]->state_2_code; } } $cart = $session->get('cart'); if ($cart['idx'] < 1) { $msg = JText::_('COM_REDSHOP_EMPTY_CART'); $app->Redirect('index.php?option=' . $option . '&Itemid=' . $Itemid, $msg); } $ccdata = $session->get('ccdata'); $shipping_rate_id = ''; if ($cart['free_shipping'] != 1) { $shipping_rate_id = JRequest::getVar('shipping_rate_id'); } $payment_method_id = JRequest::getVar('payment_method_id'); $ccinfo = JRequest::getVar('ccinfo'); if ($shipping_rate_id && $cart['free_shipping'] != 1) { $shipArr = $this->calculateShipping($shipping_rate_id); $cart['shipping'] = $shipArr['order_shipping_rate']; $cart['shipping_vat'] = $shipArr['shipping_vat']; } $cart = $this->_carthelper->modifyDiscount($cart); $paymentinfo = $this->_order_functions->getPaymentMethodInfo($payment_method_id); $paymentinfo = $paymentinfo[0]; $paymentparams = new JRegistry($paymentinfo->params); $paymentinfo = new stdclass(); $paymentinfo->payment_price = $paymentparams->get('payment_price', ''); $paymentinfo->payment_oprand = $paymentparams->get('payment_oprand', ''); $paymentinfo->payment_discount_is_percent = $paymentparams->get('payment_discount_is_percent', ''); if (PAYMENT_CALCULATION_ON == 'subtotal') { $paymentAmount = $cart['product_subtotal']; } else { $paymentAmount = $cart['total']; } $paymentArray = $this->_carthelper->calculatePayment($paymentAmount, $paymentinfo, $cart['total']); $cart['total'] = $paymentArray[0]; $cart = $session->set('cart', $cart); $cart = $session->get('cart'); $order_shipping = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $shipping_rate_id))); $order_status = 'P'; $order_status_full = $this->_order_functions->getOrderStatusTitle('P'); // Start code to track duplicate order number checking by parth $order_number = $this->getOrdernumber(); // End code to track duplicate order number checking by parth $order_subtotal = $cart['product_subtotal']; $cdiscount = $cart['coupon_discount']; $order_tax = $cart['tax']; $d['order_tax'] = $order_tax; $tax_after_discount = 0; if (isset($cart['tax_after_discount'])) { $tax_after_discount = $cart['tax_after_discount']; } $odiscount = $cart['coupon_discount'] + $cart['voucher_discount'] + $cart['cart_discount']; $odiscount_vat = $cart['discount_vat']; $d["order_payment_trans_id"] = ''; $d['discount'] = $odiscount; $order_total = $cart['total']; if ($issplit) { $order_total = $order_total / 2; } JRequest::setVar('order_ship', $order_shipping[3]); $paymentmethod = $this->_order_functions->getPaymentMethodInfo($payment_method_id); $paymentmethod = $paymentmethod[0]; $mainelement = $paymentmethod->element; if ($paymentmethod->element == "rs_payment_banktransfer" || $paymentmethod->element == "rs_payment_banktransfer2" || $paymentmethod->element == "rs_payment_banktransfer3" || $paymentmethod->element == "rs_payment_banktransfer4" || $paymentmethod->element == "rs_payment_banktransfer5" || $paymentmethod->element == "rs_payment_cashtransfer" || $paymentmethod->element == "rs_payment_cashsale" || $paymentmethod->element == "rs_payment_banktransfer_discount" || $paymentmethod->element == "rs_payment_eantransfer") { $paymentmethod = $order_functions->getPaymentMethodInfo($paymentmethod->element); $paymentmethod = $paymentmethod[0]; $paymentpath = JPATH_SITE . '/plugins/redshop_payment/' . $paymentmethod->element . '.xml'; $paymentparams = new JRegistry($paymentmethod->params); $order_main_status = $paymentparams->get('verify_status', ''); if ($paymentmethod->element != "rs_payment_banktransfer" && $paymentmethod->element != "rs_payment_cashtransfer" && $paymentmethod->element != "rs_payment_cashsale" && $paymentmethod->element != "rs_payment_banktransfer_discount" && $paymentmethod->element != "rs_payment_eantransfer") { $paymentmethod->element = substr($paymentmethod->element, 0, -1); } } if ($paymentmethod->element == "rs_payment_banktransfer" || $paymentmethod->element == "rs_payment_cashtransfer" || $paymentmethod->element == "rs_payment_cashsale" || $paymentmethod->element == "rs_payment_banktransfer_discount" || $paymentmethod->element == "rs_payment_eantransfer") { $order_status = $order_main_status; if ($issplit) { $order_paymentstatus = trim("Partial Paid"); } else { $order_paymentstatus = trim("Unpaid"); } $order_status_full = $this->_order_functions->getOrderStatusTitle($order_main_status); } $paymentmethod->element = $mainelement; $payment_amount = 0; if (isset($cart['payment_amount'])) { $payment_amount = $cart['payment_amount']; } $payment_oprand = ""; if (isset($cart['payment_oprand'])) { $payment_oprand = $cart['payment_oprand']; } $xmlpath = JPATH_SITE . '/plugins/redshop_payment/' . $paymentmethod->element . '.xml'; $params = new JRegistry($paymentmethod->params, $xmlpath); $economic_payment_terms_id = $params->get('economic_payment_terms_id'); $economic_design_layout = $params->get('economic_design_layout'); $is_creditcard = $params->get('is_creditcard', ''); $is_redirected = $params->get('is_redirected', 0); JRequest::setVar('payment_status', $order_paymentstatus); $d['order_shipping'] = $order_shipping[3]; $GLOBALS['billingaddresses'] = $billingaddresses; $timestamp = time(); // Get the IP Address if (!empty($_SERVER['REMOTE_ADDR'])) { $ip = $_SERVER['REMOTE_ADDR']; } else { $ip = 'unknown'; } $row = $this->getTable('order_detail'); if (!$row->bind($post)) { $this->setError($this->_db->getErrorMsg()); return false; } $shippingVatRate = 0; if (array_key_exists(6, $order_shipping)) { $shippingVatRate = $order_shipping[6]; } $random_gen_enc_key = $this->_order_functions->random_gen_enc_key(35); $users_info_id = $billingaddresses->users_info_id; $row->user_id = $user->id; $row->order_number = $order_number; $row->user_info_id = $users_info_id; $row->order_total = $order_total; $row->order_subtotal = $order_subtotal; $row->order_tax = $order_tax; $row->tax_after_discount = $tax_after_discount; $row->order_tax_details = ''; $row->analytics_status = 0; $row->order_shipping = $order_shipping[3]; $row->order_shipping_tax = $shippingVatRate; $row->coupon_discount = $cdiscount; $row->shop_id = $shop_id; $row->customer_message = $customer_message; $row->referral_code = $referral_code; $db = JFactory::getDbo(); $dispatcher = JDispatcher::getInstance(); $order_status_log = ''; // For credit card payment gateway page will redirect to order detail page from plugin if ($is_creditcard == 1 && $is_redirected == 1) { $redirect_ccdata = $session->set('redirect_ccdata', $ccdata); } if ($is_creditcard == 1 && $is_redirected == 0 && $cart['total'] > 0) { JPluginHelper::importPlugin('redshop_payment'); $values['order_shipping'] = $d['order_shipping']; $values['order_number'] = $order_number; $values['order_tax'] = $d['order_tax']; $values['shippinginfo'] = $d['shippingaddress']; $values['billinginfo'] = $d['billingaddress']; $values['order_total'] = $order_total; $values['order_subtotal'] = $order_subtotal; $values["order_id"] = $order_id; $values['payment_plugin'] = $paymentmethod->element; $values['odiscount'] = $odiscount; $paymentResponses = $dispatcher->trigger('onPrePayment_' . $values['payment_plugin'], array($values['payment_plugin'], $values)); $paymentResponse = $paymentResponses[0]; if ($paymentResponse->responsestatus == "Success") { $d["order_payment_trans_id"] = $paymentResponse->transaction_id; $order_status_log = $paymentResponse->message; $order_status = 'C'; $order_paymentstatus = 'Paid'; } else { if ($values['payment_plugin'] != 'rs_payment_localcreditcard') { $errorMsg = $paymentResponse->message; $this->setError($errorMsg); return false; } } } if ($order_total <= 0) { $paymentpath = JPATH_SITE . '/plugins/redshop_payment/' . $paymentmethod->element . '.xml'; $paymentparams = new JRegistry($paymentmethod->params); $order_main_status = $paymentparams->get('verify_status', ''); $order_status = $order_main_status; $order_paymentstatus = 'Paid'; } if (USE_AS_CATALOG) { $order_status = 'P'; $order_paymentstatus = 'Unpaid'; } // For barcode generation $barcode_code = $order_functions->barcode_randon_number(12, 0); // End $row->order_discount = $odiscount; $row->order_discount_vat = $odiscount_vat; $row->payment_discount = $payment_amount; $row->payment_oprand = $payment_oprand; $row->order_status = $order_status; $row->order_payment_status = $order_paymentstatus; $row->cdate = $timestamp; $row->mdate = $timestamp; $row->ship_method_id = $shipping_rate_id; $row->customer_note = $post['customer_note']; $row->requisition_number = $post['requisition_number']; $row->ip_address = $ip; $row->encr_key = $random_gen_enc_key; $row->split_payment = $issplit; $row->discount_type = $this->discount_type; $row->order_id = JRequest::getVar('order_id', $row->order_id); $row->barcode = $barcode_code; if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); // Start code to track duplicate order number checking by parth $this->deleteOrdernumberTrack(); // End code to track duplicate order number checking by parth return false; } // Start code to track duplicate order number checking by parth $this->deleteOrdernumberTrack(); // End code to track duplicate order number checking by parth $order_id = $row->order_id; $this->coupon($cart, $order_id); $this->voucher($cart, $order_id); $query = "UPDATE `#__redshop_orders` SET discount_type = " . $db->quote($this->discount_type) . " where order_id = " . (int) $order_id; $db->setQuery($query); $db->query(); if (SHOW_TERMS_AND_CONDITIONS == 1 && isset($post['termscondition']) && $post['termscondition'] == 1) { $this->_userhelper->updateUserTermsCondition($users_info_id, 1); } // Place order id in quotation table if it Quotation if (array_key_exists("quotation_id", $cart) && $cart['quotation_id']) { $quotationHelper->updateQuotationwithOrder($cart['quotation_id'], $row->order_id); } if ($row->order_status == CLICKATELL_ORDER_STATUS) { $helper->clickatellSMS($order_id); } $session->set('order_id', $order_id); // Add order status log $rowOrderStatus = $this->getTable('order_status_log'); $rowOrderStatus->order_id = $order_id; $rowOrderStatus->order_status = $order_status; $rowOrderStatus->date_changed = time(); $rowOrderStatus->customer_note = $order_status_log; $rowOrderStatus->store(); $country_name = $this->_order_functions->getCountryName($billingaddresses->country_code); $state_name = $this->_order_functions->getStateName($billingaddresses->state_code, $billingaddresses->country_code); JRequest::setVar('order_id', $row->order_id); JRequest::setVar('order_number', $row->order_number); if (!isset($order_shipping[5])) { $order_shipping[5] = ""; } if ($order_shipping[5] == 'regular') { $regDel = $objshipping->getRegularDelivery(); JRequest::setVar('order_delivery', "Delivered in one instance � DELIVERY TIME: " . current($regDel) . " weeks</td>"); } elseif ($order_shipping[5] == 'split') { $delArray = $objshipping->getProductDeliveryArray($shipping_rate_id); $splitdel = $objshipping->getSplitDelivery(); if (count($splitdel) > 1) { $split1 = $splitdel[0]; $split2 = $splitdel[1]; $prods1 = ''; $prods2 = ''; for ($i = 0; $i < count($split1); $i++) { $value = current($split1); $deltime1 = $value; $key = key($split1); $product = $this->_producthelper->getProductById($key, "product_name"); $prods1 .= $product->product_name . ','; next($split1); } for ($i = 0; $i < count($split2); $i++) { $value = current($split2); $deltime2 = $value; $key = key($split2); $product = $this->_producthelper->getProductById($key, "product_name"); $prods2 .= $product->product_name . ','; next($split2); } $prods1 = trim($prods1, ","); $prods2 = trim($prods2, ","); } JRequest::setVar('order_delivery', "Delivered over two instances for " . SPLIT_DELIVERY_COST . "kr extra DELIVERY TIME: " . $deltime1 . " Weeks for " . $prods1 . " AND " . $deltime2 . " Weeks for " . $prods2 . " "); } else { $delArray = $objshipping->getProductDeliveryArray($shipping_rate_id); $splitdel = $objshipping->getSplitDelivery(); $split1 = $splitdel[0]; $value = current($split1); $product_delivery_time = $this->_producthelper->getProductMinDeliveryTime($cart[0]['product_id']); JRequest::setVar('order_delivery', $product_delivery_time); } $idx = $cart['idx']; $product_name = ""; $product_note = ""; $product_price = ""; $product_quantity = ""; $product_total_price = ""; for ($i = 0; $i < $idx; $i++) { // GiftCARD start $is_giftcard = 0; $giftcard_price = 0; $giftcard_name = 0; // GiftCARD end $product_id = $cart[$i]['product_id']; $product = $this->_producthelper->getProductById($product_id); $rowitem = $this->getTable('order_item_detail'); // The redCRM product purchase price if ($helper->isredCRM()) { $crmProductHelper = new crmProductHelper(); $crmproduct = $crmProductHelper->getProductById($product_id); $rowitem->product_purchase_price = $crmproduct->product_purchase_price > 0 ? $crmproduct->product_purchase_price : $crmproduct->product_price; $crmdata = array(); $crmDebitorHelper = new crmDebitorHelper(); $crmDebitorHelper_values = $crmDebitorHelper->getShippingDestination(0, 0, $shippingaddresses->users_info_id); if ($session->get('isredcrmuser')) { $crmDebitorHelper_contact_values = $crmDebitorHelper->getContactPersons(0, 0, 0, $user->id, 0); } else { $crmDebitorHelper_contact_values = $crmDebitorHelper->getContactPersons(0, 0, 0, 0, $crmDebitorHelper_values[0]->shipping_id); } $crmdata['order_id'] = JRequest::getVar('order_id', $row->order_id); $crmdata['debitor_id'] = $shippingaddresses->users_info_id; $crmdata['custom_status'] = ''; $crmdata['rma_number'] = ''; if (count($crmDebitorHelper_values) > 0) { $crmdata['shipping_id'] = $crmDebitorHelper_values[0]->shipping_id; } else { $crmdata['shipping_id'] = 0; } if (count($crmDebitorHelper_contact_values) > 0 && count($crmDebitorHelper_values) > 0) { $crmdata['person_id'] = $crmDebitorHelper_contact_values[0]->person_id; } else { $crmdata['person_id'] = 0; } $crmOrderHelper = new crmOrderHelper(); $crmOrderHelper->storeCRMOrder($crmdata); } // End if (!$rowitem->bind($post)) { $this->setError($this->_db->getErrorMsg()); return false; } if ($order_shipping[5] == 'regular') { $rowitem->delivery_time = $regDel; } elseif ($order_shipping[5] == 'split') { $rowitem->delivery_time = $delArray[$product_id]; } else { $rowitem->delivery_time = ''; } if (isset($cart[$i]['giftcard_id']) && $cart[$i]['giftcard_id']) { $is_giftcard = 1; } // Product stockroom update if (!$is_giftcard) { $updatestock = $stockroomhelper->updateStockroomQuantity($product_id, $cart[$i]['quantity']); $stockroom_id_list = $updatestock['stockroom_list']; $stockroom_quantity_list = $updatestock['stockroom_quantity_list']; $rowitem->stockroom_id = $stockroom_id_list; $rowitem->stockroom_quantity = $stockroom_quantity_list; } // End product stockroom update $vals = explode('product_attributes/', $cart[$i]['hidden_attribute_cartimage']); if (!empty($cart[$i]['attributeImage']) && file_exists(JPATH_ROOT . '/components/com_redshop/assets/images/mergeImages/' . $cart[$i]['attributeImage'])) { $rowitem->attribute_image = $order_id . $cart[$i]['attributeImage']; $old_media = JPATH_ROOT . '/components/com_redshop/assets/images/mergeImages/' . $cart[$i]['attributeImage']; $new_media = JPATH_ROOT . '/components/com_redshop/assets/images/orderMergeImages' . $rowitem->attribute_image; copy($old_media, $new_media); } elseif (!empty($vals[1])) { $rowitem->attribute_image = $vals[1]; } $wrapper_price = 0; if (@$cart[$i]['wrapper_id']) { $wrapper_price = $cart[$i]['wrapper_price']; } if ($is_giftcard == 1) { $giftcardData = $this->_producthelper->getGiftcardData($cart[$i]['giftcard_id']); $rowitem->product_id = $cart[$i]['giftcard_id']; $rowitem->order_item_name = $giftcardData->giftcard_name; $rowitem->product_item_old_price = $cart[$i]['product_price']; } else { $rowitem->product_id = $product_id; $rowitem->product_item_old_price = $cart[$i]['product_old_price']; $rowitem->supplier_id = $product->manufacturer_id; $rowitem->order_item_sku = $product->product_number; $rowitem->order_item_name = $product->product_name; } $rowitem->product_item_price = $cart[$i]['product_price']; $rowitem->product_quantity = $cart[$i]['quantity']; $rowitem->product_item_price_excl_vat = $cart[$i]['product_price_excl_vat']; $rowitem->product_final_price = $cart[$i]['product_price'] * $cart[$i]['quantity']; $rowitem->is_giftcard = $is_giftcard; $retAttArr = $this->_producthelper->makeAttributeCart($cart[$i]['cart_attribute'], $product_id, 0, 0, $cart[$i]['quantity']); $cart_attribute = $retAttArr[0]; // For discount calc data $cart_calc_data = ""; if (isset($cart[$i]['discount_calc_output'])) { $cart_calc_data = $cart[$i]['discount_calc_output']; } // End $retAccArr = $this->_producthelper->makeAccessoryCart($cart[$i]['cart_accessory'], $product_id); $cart_accessory = $retAccArr[0]; $rowitem->order_id = $order_id; $rowitem->user_info_id = $users_info_id; $rowitem->order_item_currency = REDCURRENCY_SYMBOL; $rowitem->order_status = $order_status; $rowitem->cdate = $timestamp; $rowitem->mdate = $timestamp; $rowitem->product_attribute = $cart_attribute; $rowitem->discount_calc_data = $cart_calc_data; $rowitem->product_accessory = $cart_accessory; $rowitem->container_id = $objshipping->getProductContainerId($cart[$i]['product_id']); $rowitem->wrapper_price = $wrapper_price; if (!empty($cart[$i]['wrapper_id'])) { $rowitem->wrapper_id = $cart[$i]['wrapper_id']; } if (!empty($cart[$i]['reciver_email'])) { $rowitem->giftcard_user_email = $cart[$i]['reciver_email']; } if (!empty($cart[$i]['reciver_name'])) { $rowitem->giftcard_user_name = $cart[$i]['reciver_name']; } if ($this->_producthelper->checkProductDownload($rowitem->product_id)) { $medianame = $this->_producthelper->getProductMediaName($rowitem->product_id); for ($j = 0; $j < count($medianame); $j++) { $product_serial_number = $this->_producthelper->getProdcutSerialNumber($rowitem->product_id); $this->_producthelper->insertProductDownload($rowitem->product_id, $user->id, $rowitem->order_id, $medianame[$j]->media_name, $product_serial_number->serial_number); } } // Import files for plugin JPluginHelper::importPlugin('redshop_product'); if (!$rowitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } // Add plugin support $dispatcher->trigger('afterOrderItemSave', array($cart, $rowitem, $i)); // End if (isset($cart[$i]['giftcard_id']) && $cart[$i]['giftcard_id']) { $section_id = 13; } else { $section_id = 12; } $this->_producthelper->insertProdcutUserfield($i, $cart, $rowitem->order_item_id, $section_id); // My accessory save in table start if (count($cart[$i]['cart_accessory']) > 0) { $setPropEqual = true; $setSubpropEqual = true; $attArr = $cart[$i]['cart_accessory']; for ($a = 0; $a < count($attArr); $a++) { $accessory_vat_price = 0; $accessory_attribute = ""; $accessory_id = $attArr[$a]['accessory_id']; $accessory_name = $attArr[$a]['accessory_name']; $accessory_price = $attArr[$a]['accessory_price']; $accessory_quantity = $attArr[$a]['accessory_quantity']; $accessory_org_price = $accessory_price; if ($accessory_price > 0) { $accessory_vat_price = $this->_producthelper->getProductTax($rowitem->product_id, $accessory_price); } $attchildArr = $attArr[$a]['accessory_childs']; for ($j = 0; $j < count($attchildArr); $j++) { $prooprand = array(); $proprice = array(); $attribute_id = $attchildArr[$j]['attribute_id']; $accessory_attribute .= urldecode($attchildArr[$j]['attribute_name']) . ":<br/>"; $rowattitem = $this->getTable('order_attribute_item'); $rowattitem->order_att_item_id = 0; $rowattitem->order_item_id = $rowitem->order_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $accessory_id; $rowattitem->section_name = $attchildArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 1; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attchildArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $prooprand[$k] = $propArr[$k]['property_oprand']; $proprice[$k] = $propArr[$k]['property_price']; $section_vat = 0; if ($propArr[$k]['property_price'] > 0) { $section_vat = $this->_producthelper->getProducttax($rowitem->product_id, $propArr[$k]['property_price']); } $property_id = $propArr[$k]['property_id']; $accessory_attribute .= urldecode($propArr[$k]['property_name']) . " (" . $propArr[$k]['property_oprand'] . $this->_producthelper->getProductFormattedPrice($propArr[$k]['property_price'] + $section_vat) . ")<br/>"; $subpropArr = $propArr[$k]['property_childs']; $rowattitem = $this->getTable('order_attribute_item'); $rowattitem->order_att_item_id = 0; $rowattitem->order_item_id = $rowitem->order_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 1; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = 0; if ($subpropArr[$l]['subproperty_price'] > 0) { $section_vat = $this->_producthelper->getProducttax($rowitem->product_id, $subpropArr[$l]['subproperty_price']); } $subproperty_id = $subpropArr[$l]['subproperty_id']; $accessory_attribute .= urldecode($subpropArr[$l]['subproperty_name']) . " (" . $subpropArr[$l]['subproperty_oprand'] . $this->_producthelper->getProductFormattedPrice($subpropArr[$l]['subproperty_price'] + $section_vat) . ")<br/>"; $rowattitem = $this->getTable('order_attribute_item'); $rowattitem->order_att_item_id = 0; $rowattitem->order_item_id = $rowitem->order_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 1; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } // FOR ACCESSORY PROPERTY AND SUBPROPERTY PRICE CALCULATION if ($setPropEqual && $setSubpropEqual) { $accessory_priceArr = $this->_producthelper->makeTotalPriceByOprand($accessory_price, $prooprand, $proprice); $setPropEqual = $accessory_priceArr[0]; $accessory_price = $accessory_priceArr[1]; } for ($t = 0; $t < count($propArr); $t++) { $subprooprand = array(); $subproprice = array(); $subElementArr = $propArr[$t]['property_childs']; for ($tp = 0; $tp < count($subElementArr); $tp++) { $subprooprand[$tp] = $subElementArr[$tp]['subproperty_oprand']; $subproprice[$tp] = $subElementArr[$tp]['subproperty_price']; } if ($setPropEqual && $setSubpropEqual) { $accessory_priceArr = $this->_producthelper->makeTotalPriceByOprand($accessory_price, $subprooprand, $subproprice); $setSubpropEqual = $accessory_priceArr[0]; $accessory_price = $accessory_priceArr[1]; } } // FOR ACCESSORY PROPERTY AND SUBPROPERTY PRICE CALCULATION } $accdata = $this->getTable('accessory_detail'); if ($accessory_id > 0) { $accdata->load($accessory_id); } $accProductinfo = $this->_producthelper->getProductById($accdata->child_product_id); $rowaccitem = $this->getTable('order_acc_item'); $rowaccitem->order_item_acc_id = 0; $rowaccitem->order_item_id = $rowitem->order_item_id; $rowaccitem->product_id = $accessory_id; $rowaccitem->order_acc_item_sku = $accProductinfo->product_number; $rowaccitem->order_acc_item_name = $accessory_name; $rowaccitem->order_acc_price = $accessory_org_price; $rowaccitem->order_acc_vat = $accessory_vat_price; $rowaccitem->product_quantity = $accessory_quantity; $rowaccitem->product_acc_item_price = $accessory_price; $rowaccitem->product_acc_final_price = $accessory_price * $accessory_quantity; $rowaccitem->product_attribute = $accessory_attribute; if ($accessory_id > 0) { if (!$rowaccitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } // My attribute save in table start if (count($cart[$i]['cart_attribute']) > 0) { $attchildArr = $cart[$i]['cart_attribute']; for ($j = 0; $j < count($attchildArr); $j++) { $attribute_id = $attchildArr[$j]['attribute_id']; $rowattitem = $this->getTable('order_attribute_item'); $rowattitem->order_att_item_id = 0; $rowattitem->order_item_id = $rowitem->order_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $rowitem->product_id; $rowattitem->section_name = $attchildArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 0; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attchildArr[$j]['attribute_childs']; if (count($propArr) > 0) { for ($k = 0; $k < count($propArr); $k++) { $section_vat = 0; if ($propArr[$k]['property_price'] > 0) { $section_vat = $this->_producthelper->getProducttax($rowitem->product_id, $propArr[$k]['property_price']); } $property_id = $propArr[$k]['property_id']; // Product property STOCKROOM update start $updatestock_att = $stockroomhelper->updateStockroomQuantity($property_id, $cart[$i]['quantity'], "property", $product_id); $stockroom_att_id_list = $updatestock_att['stockroom_list']; $stockroom_att_quantity_list = $updatestock_att['stockroom_quantity_list']; $rowattitem = $this->getTable('order_attribute_item'); $rowattitem->order_att_item_id = 0; $rowattitem->order_item_id = $rowitem->order_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 0; $rowattitem->stockroom_id = $stockroom_att_id_list; $rowattitem->stockroom_quantity = $stockroom_att_quantity_list; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $subpropArr = $propArr[$k]['property_childs']; for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = 0; if ($subpropArr[$l]['subproperty_price'] > 0) { $section_vat = $this->_producthelper->getProducttax($rowitem->product_id, $subpropArr[$l]['subproperty_price']); } $subproperty_id = $subpropArr[$l]['subproperty_id']; // Product subproperty STOCKROOM update start $updatestock_subatt = $stockroomhelper->updateStockroomQuantity($subproperty_id, $cart[$i]['quantity'], "subproperty", $product_id); $stockroom_subatt_id_list = $updatestock_subatt['stockroom_list']; $stockroom_subatt_quantity_list = $updatestock_subatt['stockroom_quantity_list']; $rowattitem = $this->getTable('order_attribute_item'); $rowattitem->order_att_item_id = 0; $rowattitem->order_item_id = $rowitem->order_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 0; $rowattitem->stockroom_id = $stockroom_subatt_id_list; $rowattitem->stockroom_quantity = $stockroom_subatt_quantity_list; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } } } // Subtracting the products from the container. means decreasing stock if (USE_CONTAINER) { $this->_producthelper->updateContainerStock($product_id, $cart[$i]['quantity'], $rowitem->container_id); } // Subtracting the products from the container. means decreasing stock end // Store user product subscription detail if ($product->product_type == 'subscription') { $subscribe = $this->getTable('product_subscribe_detail'); $subscription_detail = $this->_producthelper->getProductSubscriptionDetail($product_id, $cart[$i]['subscription_id']); $add_day = $subscription_detail->period_type == 'days' ? $subscription_detail->subscription_period : 0; $add_month = $subscription_detail->period_type == 'month' ? $subscription_detail->subscription_period : 0; $add_year = $subscription_detail->period_type == 'year' ? $subscription_detail->subscription_period : 0; $subscribe->order_id = $order_id; $subscribe->order_item_id = $rowitem->order_item_id; $subscribe->product_id = $product_id; $subscribe->subscription_id = $cart[$i]['subscription_id']; $subscribe->user_id = $user->id; $subscribe->start_date = time(); $subscribe->end_date = mktime(0, 0, 0, date('m') + $add_month, date('d') + $add_day, date('Y') + $add_year); if (!$subscribe->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } $rowpayment = $this->getTable('order_payment'); if (!$rowpayment->bind($post)) { $this->setError($this->_db->getErrorMsg()); return false; } $rowpayment->order_id = $order_id; $rowpayment->payment_method_id = $payment_method_id; if (!isset($ccdata['creditcard_code'])) { $ccdata['creditcard_code'] = 0; } if (!isset($ccdata['order_payment_number'])) { $ccdata['order_payment_number'] = 0; } if (!isset($ccdata['order_payment_expire_month'])) { $ccdata['order_payment_expire_month'] = 0; } if (!isset($ccdata['order_payment_expire_year'])) { $ccdata['order_payment_expire_year'] = 0; } $rowpayment->order_payment_code = $ccdata['creditcard_code']; $rowpayment->order_payment_cardname = base64_encode($ccdata['order_payment_name']); $rowpayment->order_payment_number = base64_encode($ccdata['order_payment_number']); // This is ccv code $rowpayment->order_payment_ccv = base64_encode($ccdata['credit_card_code']); $rowpayment->order_payment_amount = $order_total; $rowpayment->order_payment_expire = $ccdata['order_payment_expire_month'] . $ccdata['order_payment_expire_year']; $rowpayment->order_payment_name = $paymentmethod->name; $rowpayment->payment_method_class = $paymentmethod->element; $rowpayment->order_payment_trans_id = $d["order_payment_trans_id"]; $rowpayment->authorize_status = ""; if (!$rowpayment->store()) { $this->setError($this->_db->getErrorMsg()); return false; } // For authorize status JPluginHelper::importPlugin('redshop_payment'); $dispatcher = JDispatcher::getInstance(); $data = $dispatcher->trigger('onAuthorizeStatus_' . $paymentmethod->element, array($paymentmethod->element, $order_id)); $GLOBALS['shippingaddresses'] = $shippingaddresses; // Add billing Info $userrow = $this->getTable('user_detail'); $userrow->load($billingaddresses->users_info_id); $userrow->thirdparty_email = $post['thirdparty_email']; $orderuserrow = $this->getTable('order_user_detail'); if (!$orderuserrow->bind($userrow)) { $this->setError($this->_db->getErrorMsg()); return false; } $orderuserrow->order_id = $order_id; $orderuserrow->address_type = 'BT'; if (!$orderuserrow->store()) { $this->setError($this->_db->getErrorMsg()); return false; } // Add shipping Info $userrow = $this->getTable('user_detail'); if (isset($shippingaddresses->users_info_id)) { $userrow->load($shippingaddresses->users_info_id); } $orderuserrow = $this->getTable('order_user_detail'); if (!$orderuserrow->bind($userrow)) { $this->setError($this->_db->getErrorMsg()); return false; } $orderuserrow->order_id = $order_id; $orderuserrow->address_type = 'ST'; if (!$orderuserrow->store()) { $this->setError($this->_db->getErrorMsg()); return false; } $checkOrderStatus = 1; if ($paymentmethod->element == "rs_payment_banktransfer" || $paymentmethod->element == "rs_payment_banktransfer_discount" || $paymentmethod->element == "rs_payment_banktransfer2" || $paymentmethod->element == "rs_payment_banktransfer3" || $paymentmethod->element == "rs_payment_banktransfer4" || $paymentmethod->element == "rs_payment_banktransfer5") { $checkOrderStatus = 0; } if (isset($cart['extrafields_values'])) { if (count($cart['extrafields_values']) > 0) { $this->_producthelper->insertPaymentShippingField($cart, $order_id, 18); $this->_producthelper->insertPaymentShippingField($cart, $order_id, 19); } } // Economic Integration start for invoice generate and book current invoice if (ECONOMIC_INTEGRATION == 1 && ECONOMIC_INVOICE_DRAFT != 2) { $economic = new economic(); $economicdata['split_payment'] = $issplit; $economicdata['economic_payment_terms_id'] = $economic_payment_terms_id; $economicdata['economic_design_layout'] = $economic_design_layout; $economicdata['economic_is_creditcard'] = $is_creditcard; $payment_name = $paymentmethod->element; $paymentArr = explode("rs_payment_", $paymentmethod->element); if (count($paymentArr) > 0) { $payment_name = $paymentArr[1]; } $economicdata['economic_payment_method'] = $payment_name; $invoiceHandle = $economic->createInvoiceInEconomic($row->order_id, $economicdata); if (ECONOMIC_INVOICE_DRAFT == 0) { $bookinvoicepdf = $economic->bookInvoiceInEconomic($row->order_id, $checkOrderStatus); if (is_file($bookinvoicepdf)) { $ret = $this->_redshopMail->sendEconomicBookInvoiceMail($row->order_id, $bookinvoicepdf); } } } // End Economic // Send the Order mail before payment if (!ORDER_MAIL_AFTER || ORDER_MAIL_AFTER && $row->order_payment_status == "Paid") { $this->_redshopMail->sendOrderMail($row->order_id); } else { // If Order mail set to send after payment then send mail to administrator only. $this->_redshopMail->sendOrderMail($row->order_id, true); } if ($row->order_status == "C") { $this->_order_functions->SendDownload($row->order_id); } // RedCRM includes if ($helper->isredCRM()) { if (ENABLE_ITEM_TRACKING_SYSTEM) { // Supplier order helper object $crmSupplierOrderHelper = new crmSupplierOrderHelper(); $getStatus = array(); $getStatus['orderstatus'] = $row->order_status; $getStatus['paymentstatus'] = $row->order_payment_status; $crmSupplierOrderHelper->redSHOPOrderUpdate($row->order_id, $getStatus); unset($getStatus); } } return $row; }
public function sendQuotationMail($quotation_id, $status = 0) { $uri = JURI::getInstance(); $url = $uri->root(); $redconfig = new Redconfiguration(); $producthelper = new producthelper(); $extra_field = new extra_field(); $quotationHelper = new quotationHelper(); $config = JFactory::getConfig(); $mailinfo = $this->getMailtemplate(0, "quotation_mail"); $mailbcc = array(); if (count($mailinfo) > 0) { $message = $mailinfo[0]->mail_body; $subject = $mailinfo[0]->mail_subject; if (trim($mailinfo[0]->mail_bcc) != "") { $mailbcc = explode(",", $mailinfo[0]->mail_bcc); } } else { return false; } $template_start = ""; $template_end = ""; $template_middle = ""; $cart = ''; $template_sdata = explode('{product_loop_start}', $message); $extraField = new extraField(); $fieldArray = $extraField->getSectionFieldList(17, 0, 0); if (count($template_sdata) > 0) { $template_start = $template_sdata[0]; if (count($template_sdata) > 1) { $template_edata = explode('{product_loop_end}', $template_sdata[1]); if (count($template_edata) > 1) { $template_end = $template_edata[1]; } if (count($template_edata) > 0) { $template_middle = $template_edata[0]; } } } $row = $quotationHelper->getQuotationDetail($quotation_id); if (count($row) <= 0) { return false; } $rowitem = $quotationHelper->getQuotationProduct($quotation_id); for ($i = 0; $i < count($rowitem); $i++) { $product_id = $rowitem[$i]->product_id; $product = $producthelper->getProductById($product_id); $product_name = "<div class='product_name'>" . $rowitem[$i]->product_name . "</div>"; $product_total_price = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_price * $rowitem[$i]->product_quantity) . "</div>"; $product_price = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_price) . "</div>"; $product_price_excl_vat = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_excl_price) . "</div>"; $product_quantity = '<div class="update_cart">' . $rowitem[$i]->product_quantity . '</div>'; $product_total_price_excl_vat = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_excl_price * $rowitem[$i]->product_quantity) . "</div>"; $cart_mdata = $template_middle; $wrapper_name = ""; if ($rowitem[$i]->product_wrapperid) { $wrapper = $producthelper->getWrapper($product_id, $rowitem[$i]->product_wrapperid); if (count($wrapper) > 0) { $wrapper_name = $wrapper[0]->wrapper_name; } $wrapper_name = JText::_('COM_REDSHOP_WRAPPER') . ": " . $wrapper_name; } $product_image_path = ''; if ($product->product_full_image) { if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . $product->product_full_image)) { $product_image_path = $product->product_full_image; } else { if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . PRODUCT_DEFAULT_IMAGE)) { $product_image_path = PRODUCT_DEFAULT_IMAGE; } } } else { if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . PRODUCT_DEFAULT_IMAGE)) { $product_image_path = PRODUCT_DEFAULT_IMAGE; } } if ($product_image_path) { $thumbUrl = RedShopHelperImages::getImagePath($product_image_path, '', 'thumb', 'product', CART_THUMB_WIDTH, CART_THUMB_HEIGHT, USE_IMAGE_SIZE_SWAPPING); $product_image = "<div class='product_image'><img src='" . $thumbUrl . "'></div>"; } else { $product_image = "<div class='product_image'></div>"; } $cart_mdata = str_replace("{product_name}", $product_name, $cart_mdata); $cart_mdata = str_replace("{product_s_desc}", $product->product_s_desc, $cart_mdata); $cart_mdata = str_replace("{product_thumb_image}", $product_image, $cart_mdata); $product_note = "<div class='product_note'>" . $wrapper_name . "</div>"; $cart_mdata = str_replace("{product_wrapper}", $product_note, $cart_mdata); $product_userfields = $quotationHelper->displayQuotationUserfield($rowitem[$i]->quotation_item_id, 12); $cart_mdata = str_replace("{product_userfields}", $product_userfields, $cart_mdata); $cart_mdata = str_replace("{product_number_lbl}", JText::_('COM_REDSHOP_PRODUCT_NUMBER'), $cart_mdata); $cart_mdata = str_replace("{product_number}", $product->product_number, $cart_mdata); $cart_mdata = str_replace("{product_attribute}", $producthelper->makeAttributeQuotation($rowitem[$i]->quotation_item_id, 0, $rowitem[$i]->product_id, $row->quotation_status), $cart_mdata); $cart_mdata = str_replace("{product_accessory}", $producthelper->makeAccessoryQuotation($rowitem[$i]->quotation_item_id, $row->quotation_status), $cart_mdata); // ProductFinderDatepicker Extra Field Start $cart_mdata = $producthelper->getProductFinderDatepickerValue($cart_mdata, $product_id, $fieldArray); // ProductFinderDatepicker Extra Field End if ($row->quotation_status == 1 && !SHOW_QUOTATION_PRICE) { $cart_mdata = str_replace("{product_price_excl_vat}", "", $cart_mdata); $cart_mdata = str_replace("{product_price}", " ", $cart_mdata); $cart_mdata = str_replace("{product_total_price}", " ", $cart_mdata); $cart_mdata = str_replace("{product_subtotal_excl_vat}", " ", $cart_mdata); } else { $cart_mdata = str_replace("{product_price_excl_vat}", $product_price_excl_vat, $cart_mdata); $cart_mdata = str_replace("{product_price}", $product_price, $cart_mdata); $cart_mdata = str_replace("{product_total_price}", $product_total_price, $cart_mdata); $cart_mdata = str_replace("{product_subtotal_excl_vat}", $product_total_price_excl_vat, $cart_mdata); } $cart_mdata = str_replace("{product_quantity}", $product_quantity, $cart_mdata); $cart .= $cart_mdata; } $message = $template_start . $cart . $template_end; $search[] = "{quotation_note}"; $replace[] = $row->quotation_note; $search[] = "{shopname}"; $replace[] = SHOP_NAME; $search[] = "{quotation_id}"; $replace[] = $row->quotation_id; $search[] = "{quotation_number}"; $replace[] = $row->quotation_number; $search[] = "{quotation_date}"; $replace[] = $redconfig->convertDateFormat($row->quotation_cdate); $search[] = "{quotation_status}"; $replace[] = $quotationHelper->getQuotationStatusName($row->quotation_status); $billadd = ''; if ($row->user_id != 0) { $message = $this->_carthelper->replaceBillingAddress($message, $row); } else { if ($row->quotation_email != "") { $billadd .= JText::_("COM_REDSHOP_EMAIL") . ' : ' . $row->quotation_email . '<br />'; } $message = str_replace("{billing_address_information_lbl}", JText::_('COM_REDSHOP_BILLING_ADDRESS_INFORMATION_LBL'), $message); if (strstr($message, "{quotation_custom_field_list}")) { $billadd .= $extra_field->list_all_field_display(16, $row->user_info_id, 1, $row->quotation_email); $message = str_replace("{quotation_custom_field_list}", "", $message); } else { $message = $extra_field->list_all_field_display(16, $row->user_info_id, 1, $row->quotation_email, $message); } } $search[] = "{billing_address}"; $replace[] = $billadd; $total_lbl = ''; $subtotal_lbl = ''; $vat_lbl = ''; if ($row->quotation_status != 1 || $row->quotation_status == 1 && SHOW_QUOTATION_PRICE) { $total_lbl = JText::_('COM_REDSHOP_TOTAL_LBL'); $subtotal_lbl = JText::_('COM_REDSHOP_QUOTATION_SUBTOTAL'); $vat_lbl = JText::_('COM_REDSHOP_QUOTATION_VAT'); } $message = str_replace('{total_lbl}', $total_lbl, $message); $message = str_replace('{quotation_subtotal_lbl}', $subtotal_lbl, $message); $message = str_replace('{quotation_vat_lbl}', $vat_lbl, $message); $message = $this->_carthelper->replaceLabel($message); $search[] = "{quotation_note}"; $replace[] = $row->quotation_note; if ($row->quotation_status == 1 && !SHOW_QUOTATION_PRICE) { $quotation_subtotal = " "; $quotation_total = " "; $quotation_discount = " "; $quotation_vat = " "; $quotation_subtotal_excl_vat = ""; } else { $tax = $row->quotation_tax; if (VAT_RATE_AFTER_DISCOUNT) { $Discountvat = VAT_RATE_AFTER_DISCOUNT * $row->quotation_discount / (1 + VAT_RATE_AFTER_DISCOUNT); $row->quotation_discount = $row->quotation_discount - $Discountvat; $tax = $tax - $Discountvat; } if (VAT_RATE_AFTER_DISCOUNT) { $sp_discount = $row->quotation_special_discount * ($row->quotation_subtotal + $row->quotation_tax) / 100; $Discountspvat = $sp_discount * VAT_RATE_AFTER_DISCOUNT / (1 + VAT_RATE_AFTER_DISCOUNT); $DiscountspWithotVat = $sp_discount - $Discountspvat; $row->quotation_discount = $row->quotation_discount + $DiscountspWithotVat; $tax = $tax - $Discountspvat; } $quotation_subtotal_excl_vat = $producthelper->getProductFormattedPrice($row->quotation_subtotal); $quotation_subtotal_minus_discount = $producthelper->getProductFormattedPrice($row->quotation_subtotal - $row->quotation_discount); $quotation_subtotal = $producthelper->getProductFormattedPrice($row->quotation_subtotal); $quotation_total = $producthelper->getProductFormattedPrice($row->quotation_total); $quotation_discount = $producthelper->getProductFormattedPrice($row->quotation_discount); $quotation_vat = $producthelper->getProductFormattedPrice($row->quotation_tax); } $search[] = "{quotation_subtotal}"; $replace[] = $quotation_subtotal; $search[] = "{quotation_total}"; $replace[] = $quotation_total; $search[] = "{quotation_subtotal_minus_discount}"; $replace[] = $quotation_subtotal_minus_discount; $search[] = "{quotation_subtotal_excl_vat}"; $replace[] = $quotation_subtotal_excl_vat; $search[] = "{quotation_discount}"; $replace[] = $quotation_discount; $search[] = "{quotation_vat}"; $replace[] = $quotation_vat; $quotationdetailurl = JURI::root() . 'index.php?option=com_redshop&view=quotation_detail&quoid=' . $quotation_id . '&encr=' . $row->quotation_encrkey; $search[] = "{quotation_detail_link}"; $replace[] = "<a href='" . $quotationdetailurl . "'>" . JText::_("COM_REDSHOP_QUOTATION_DETAILS") . "</a>"; $message = str_replace($search, $replace, $message); $message = $this->imginmail($message); $email = $row->quotation_email; // Set the e-mail parameters $from = $config->getValue('mailfrom'); $fromname = $config->getValue('fromname'); $body = $message; $subject = str_replace($search, $replace, $subject); // Send the e-mail if ($email != "") { $bcc = null; if (trim(ADMINISTRATOR_EMAIL) != '') { $bcc = explode(",", trim(ADMINISTRATOR_EMAIL)); } $bcc = array_merge($bcc, $mailbcc); if (!JUtility::sendMail($from, $fromname, $email, $subject, $body, 1, null, $bcc)) { $this->setError('ERROR_SENDING_QUOTATION_MAIL'); } } if ($status != 0) { $quotationHelper->updateQuotationStatus($quotation_id, $status); } return true; }
<?php /** * @package RedSHOP.Frontend * @subpackage Template * * @copyright Copyright (C) 2005 - 2013 redCOMPONENT.com. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die; $url = JURI::base(); $redconfig = new Redconfiguration(); require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/quotation.php'; $quotationHelper = new quotationHelper(); $extra_field = new extra_field(); $extra_field_new = new extraField(); require_once JPATH_COMPONENT . '/helpers/product.php'; $producthelper = new producthelper(); require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/order.php'; $order_functions = new order_functions(); $redTemplate = new Redtemplate(); $Itemid = JRequest::getInt('Itemid', 1); $quoid = JRequest::getInt('quoid'); $encr = JRequest::getString('encr'); $quotationDetail = $quotationHelper->getQuotationDetail($quoid); $quotationProducts = $quotationHelper->getQuotationProduct($quoid); $fieldArray = $extra_field_new->getSectionFieldList(17, 0, 0); $template = $redTemplate->getTemplate("quotation_detail"); if (count($template) > 0 && $template[0]->template_desc != "") { $quotation_template = $template[0]->template_desc; } else {
public function store($data, $post) { $this->_loadData(); $quotationHelper = new quotationHelper(); $producthelper = new producthelper(); $extra_field = new extra_field(); $user = JFactory::getUser(); $user_id = 0; $user_info_id = 0; $user_email = $post['user_email']; if ($user->id) { $user_id = $user->id; $user_info_id = $this->_data->user_info_id; $user_email = $user->email; } $res = $this->getUserIdByEmail($user_email); if (count($res) > 0) { $user_id = $res->user_id; $user_info_id = $res->users_info_id; } $list_field = $extra_field->extra_field_save($post, 16, $user_info_id, $user_email); $data['quotation_number'] = $quotationHelper->generateQuotationNumber(); $data['user_id'] = $user_id; $data['user_info_id'] = $user_info_id; $data['user_email'] = $user_email; $data['quotation_total'] = $data['total']; $data['quotation_subtotal'] = $data['subtotal']; $data['quotation_tax'] = $data['tax']; $data['quotation_status'] = 1; $data['quotation_cdate'] = time(); $data['quotation_mdate'] = time(); $data['quotation_note'] = $data['quotation_note']; $data['quotation_ipaddress'] = $_SERVER['REMOTE_ADDR']; $data['quotation_encrkey'] = $quotationHelper->randomQuotationEncrkey(); $data['quotation_discount'] = isset($data['discount2']) ? $data['discount2'] : 0; $totalitem = $data['idx']; $quotation_item = array(); $row = $this->getTable('quotation_detail'); if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } for ($i = 0; $i < $totalitem; $i++) { $rowitem = $this->getTable('quotation_item_detail'); $quotation_item[$i] = new stdClass(); $quotation_item[$i]->quotation_id = $row->quotation_id; if (isset($data[$i]['giftcard_id']) && $data[$i]['giftcard_id'] != 0) { $quotation_item[$i]->product_id = $data[$i]['giftcard_id']; $giftcardData = $producthelper->getGiftcardData($data[$i]['giftcard_id']); $quotation_item[$i]->is_giftcard = 1; $quotation_item[$i]->product_name = $giftcardData->giftcard_name; $section = 13; } else { $product = $producthelper->getProductById($data[$i]['product_id']); $retAttArr = $producthelper->makeAttributeCart($data[$i]['cart_attribute'], $data[$i]['product_id'], 0, 0, $data[$i]['quantity']); $cart_attribute = $retAttArr[0]; $retAccArr = $producthelper->makeAccessoryCart($data[$i]['cart_accessory'], $data[$i]['product_id']); $cart_accessory = $retAccArr[0]; $quotation_item[$i]->product_id = $data[$i]['product_id']; $quotation_item[$i]->is_giftcard = 0; $quotation_item[$i]->product_name = $product->product_name; $quotation_item[$i]->actualitem_price = $data[$i]['product_price']; $quotation_item[$i]->product_price = $data[$i]['product_price']; $quotation_item[$i]->product_excl_price = $data[$i]['product_price_excl_vat']; $quotation_item[$i]->product_final_price = $data[$i]['product_price'] * $data[$i]['quantity']; $quotation_item[$i]->product_attribute = $cart_attribute; $quotation_item[$i]->product_accessory = $cart_accessory; $quotation_item[$i]->product_wrapperid = $data[$i]['wrapper_id']; $quotation_item[$i]->wrapper_price = $data[$i]['wrapper_price']; $section = 12; } $quotation_item[$i]->product_quantity = $data[$i]['quantity']; if (!$rowitem->bind($quotation_item[$i])) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$rowitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } /** my accessory save in table start */ if (count($data[$i]['cart_accessory']) > 0) { $attArr = $data[$i]['cart_accessory']; for ($a = 0; $a < count($attArr); $a++) { $accessory_vat_price = 0; $accessory_attribute = ""; $accessory_id = $attArr[$a]['accessory_id']; $accessory_name = $attArr[$a]['accessory_name']; $accessory_price = $attArr[$a]['accessory_price']; $accessory_org_price = $accessory_price; if ($accessory_price > 0) { $accessory_vat_price = $producthelper->getProductTax($rowitem->product_id, $accessory_price); } $attchildArr = $attArr[$a]['accessory_childs']; for ($j = 0; $j < count($attchildArr); $j++) { $attribute_id = $attchildArr[$j]['attribute_id']; $accessory_attribute .= urldecode($attchildArr[$j]['attribute_name']) . ":<br/>"; $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $accessory_id; $rowattitem->section_name = $attchildArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 1; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attchildArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $propArr[$k]['property_price']); $property_id = $propArr[$k]['property_id']; $accessory_attribute .= urldecode($propArr[$k]['property_name']) . " (" . $propArr[$k]['property_oprand'] . $producthelper->getProductFormattedPrice($propArr[$k]['property_price'] + $section_vat) . ")<br/>"; $subpropArr = $propArr[$k]['property_childs']; $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 1; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $subpropArr[$l]['subproperty_price']); $subproperty_id = $subpropArr[$l]['subproperty_id']; $accessory_attribute .= urldecode($subpropArr[$l]['subproperty_name']) . " (" . $subpropArr[$l]['subproperty_oprand'] . $producthelper->getProductFormattedPrice($subpropArr[$l]['subproperty_price'] + $section_vat) . ")<br/>"; $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 1; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } $accdata = $this->getTable('accessory_detail'); if ($accessory_id > 0) { $accdata->load($accessory_id); } $accProductinfo = $producthelper->getProductById($accdata->child_product_id); $rowaccitem = $this->getTable('quotation_accessory_item'); $rowaccitem->quotation_item_acc_id = 0; $rowaccitem->quotation_item_id = $rowitem->quotation_item_id; $rowaccitem->accessory_id = $accessory_id; $rowaccitem->accessory_item_sku = $accProductinfo->product_number; $rowaccitem->accessory_item_name = $accessory_name; $rowaccitem->accessory_price = $accessory_org_price; $rowaccitem->accessory_vat = $accessory_vat_price; $rowaccitem->accessory_quantity = $rowitem->product_quantity; $rowaccitem->accessory_item_price = $accessory_price; $rowaccitem->accessory_final_price = $accessory_price * $rowitem->product_quantity; $rowaccitem->accessory_attribute = $accessory_attribute; if ($accessory_id > 0) { if (!$rowaccitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } // My attribute save in table start if (count($data[$i]['cart_attribute']) > 0) { $attArr = $data[$i]['cart_attribute']; for ($j = 0; $j < count($attArr); $j++) { $attribute_id = $attArr[$j]['attribute_id']; $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $rowitem->product_id; $rowattitem->section_name = $attArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 0; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $propArr[$k]['property_price']); $property_id = $propArr[$k]['property_id']; $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 0; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $subpropArr = $propArr[$k]['property_childs']; for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $subpropArr[$l]['subproperty_price']); $subproperty_id = $subpropArr[$l]['subproperty_id']; $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 0; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } } $quotationHelper->manageQuotationUserfield($data[$i], $rowitem->quotation_item_id, $section); } return $row; }
<?php /** * @package RedSHOP.Backend * @subpackage Template * * @copyright Copyright (C) 2005 - 2013 redCOMPONENT.com. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('_JEXEC') or die; JHTML::_('behavior.tooltip'); JHTML::_('behavior.modal'); require_once JPATH_COMPONENT_SITE . '/helpers/product.php'; $producthelper = new producthelper(); require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/quotation.php'; $quotationHelper = new quotationHelper(); require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/order.php'; $order_functions = new order_functions(); $redconfig = new Redconfiguration(); $option = JRequest::getVar('option'); $model = $this->getModel('quotation_detail'); $extra_field = new extra_field(); $quotation = $this->quotation; $uri = JURI::getInstance(); $url = $uri->root(); $quotation_item = $quotationHelper->getQuotationProduct($quotation->quotation_id); ?> <script type="text/javascript"> var rowCount = 1; var qrowCount = <?php echo count($quotation_item);
<?php /** * @package RedSHOP.Backend * @subpackage Template * * @copyright Copyright (C) 2005 - 2013 redCOMPONENT.com. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ require_once JPATH_COMPONENT_SITE . '/helpers/product.php'; $producthelper = new producthelper(); require_once JPATH_COMPONENT_ADMINISTRATOR . '/helpers/quotation.php'; $quotationHelper = new quotationHelper(); $config = new Redconfiguration(); $option = JRequest::getVar('option'); $filter = JRequest::getVar('filter'); $lists = $this->lists; $model = $this->getModel('quotation'); ?> <script language="javascript" type="text/javascript"> Joomla.submitbutton = function (pressbutton) { submitbutton(pressbutton); } submitbutton = function (pressbutton) { var form = document.adminForm; if (pressbutton) { form.task.value = pressbutton; } if ((pressbutton == 'edit') || (pressbutton == 'remove')) { form.view.value = "quotation_detail";
public function store($data) { $extra_field = new extra_field(); $quotationHelper = new quotationHelper(); $producthelper = new producthelper(); $rsCarthelper = new rsCarthelper(); $stockroomhelper = new rsstockroomhelper(); $extra_field->extra_field_save($data, 16, $data['user_info_id'], $data['user_email']); $row = $this->getTable('quotation_detail'); if ($data['quotation_discount'] > 0) { $data['order_total'] = $data['order_total'] - $data['quotation_discount'] - $data['order_total'] * $data['quotation_special_discount'] / 100; } $data['quotation_number'] = $quotationHelper->generateQuotationNumber(); $data['quotation_encrkey'] = $quotationHelper->randomQuotationEncrkey(); $data['quotation_cdate'] = time(); $data['quotation_mdate'] = time(); $data['quotation_total'] = $data['order_total']; $data['quotation_subtotal'] = $data['order_subtotal']; $data['quotation_tax'] = $data['order_tax']; $data['quotation_ipaddress'] = !empty($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : 'unknown'; if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } $row->quotation_status = 2; if (!$row->store()) { $this->setError($this->_db->getErrorMsg()); return false; } $quotation_item = array(); $user_id = $row->user_id; $item = $data['order_item']; for ($i = 0; $i < count($item); $i++) { $product_id = $item[$i]->product_id; $quantity = $item[$i]->quantity; $product_excl_price = $item[$i]->prdexclprice; $product_price = $item[$i]->productprice; // Attribute price added $generateAttributeCart = $rsCarthelper->generateAttributeArray((array) $item[$i], $user_id); $retAttArr = $producthelper->makeAttributeCart($generateAttributeCart, $product_id, $user_id, 0, $quantity); $product_attribute = $retAttArr[0]; // Accessory price $generateAccessoryCart = $rsCarthelper->generateAccessoryArray((array) $item[$i], $user_id); $retAccArr = $producthelper->makeAccessoryCart($generateAccessoryCart, $product_id, $user_id); $product_accessory = $retAccArr[0]; $wrapper_price = 0; $wrapper_vat = 0; $wrapper = $producthelper->getWrapper($product_id, $item[$i]->wrapper_data); if (count($wrapper) > 0) { if ($wrapper[0]->wrapper_price > 0) { $wrapper_vat = $producthelper->getProducttax($product_id, $wrapper[0]->wrapper_price, $user_id); } $wrapper_price = $wrapper[0]->wrapper_price + $wrapper_vat; } $rowitem =& $this->getTable('quotation_item_detail'); $product = $producthelper->getProductById($product_id); $quotation_item[$i]->quotation_id = $row->quotation_id; $quotation_item[$i]->product_id = $product_id; $quotation_item[$i]->is_giftcard = 0; $quotation_item[$i]->product_name = $product->product_name; $quotation_item[$i]->actualitem_price = $product_price; $quotation_item[$i]->product_price = $product_price; $quotation_item[$i]->product_excl_price = $product_excl_price; $quotation_item[$i]->product_final_price = $product_price * $quantity; $quotation_item[$i]->product_attribute = $product_attribute; $quotation_item[$i]->product_accessory = $product_accessory; $quotation_item[$i]->product_wrapperid = $item[$i]->wrapper_data; $quotation_item[$i]->wrapper_price = $wrapper_price; $quotation_item[$i]->product_quantity = $quantity; if (!$rowitem->bind($quotation_item[$i])) { $this->setError($this->_db->getErrorMsg()); return false; } if (!$rowitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } // Store userfields $userfields = JRequest::getVar('extrafields' . $product_id); $userfields_id = JRequest::getVar('extrafields_id_' . $product_id); for ($ui = 0; $ui < count($userfields); $ui++) { $quotationHelper->insertQuotationUserfield($userfields_id[$ui], $rowitem->quotation_item_id, 12, $userfields[$ui]); } /** my accessory save in table start */ if (count($generateAccessoryCart) > 0) { $attArr = $generateAccessoryCart; for ($a = 0; $a < count($attArr); $a++) { $accessory_vat_price = 0; $accessory_attribute = ""; $accessory_id = $attArr[$a]['accessory_id']; $accessory_name = $attArr[$a]['accessory_name']; $accessory_price = $attArr[$a]['accessory_price']; $accessory_org_price = $accessory_price; if ($accessory_price > 0) { $accessory_vat_price = $producthelper->getProductTax($rowitem->product_id, $accessory_price, $user_id); } $attchildArr = $attArr[$a]['accessory_childs']; for ($j = 0; $j < count($attchildArr); $j++) { $attribute_id = $attchildArr[$j]['attribute_id']; $accessory_attribute .= urldecode($attchildArr[$j]['attribute_name']) . ":<br/>"; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $accessory_id; $rowattitem->section_name = $attchildArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 1; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attchildArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $section_vat = 0; if ($propArr[$k]['property_price'] > 0) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $propArr[$k]['property_price'], $user_id); } $property_id = $propArr[$k]['property_id']; $accessory_attribute .= urldecode($propArr[$k]['property_name']) . " (" . $propArr[$k]['property_oprand'] . $producthelper->getProductFormattedPrice($propArr[$k]['property_price'] + $section_vat) . ")<br/>"; $subpropArr = $propArr[$k]['property_childs']; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 1; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = 0; if ($subpropArr[$l]['subproperty_price'] > 0) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $subpropArr[$l]['subproperty_price'], $user_id); } $subproperty_id = $subpropArr[$l]['subproperty_id']; $accessory_attribute .= urldecode($subpropArr[$l]['subproperty_name']) . " (" . $subpropArr[$l]['subproperty_oprand'] . $producthelper->getProductFormattedPrice($subpropArr[$l]['subproperty_price'] + $section_vat) . ")<br/>"; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 1; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } $accdata =& $this->getTable('accessory_detail'); if ($accessory_id > 0) { $accdata->load($accessory_id); } $accProductinfo = $producthelper->getProductById($accdata->child_product_id); $rowaccitem =& $this->getTable('quotation_accessory_item'); $rowaccitem->quotation_item_acc_id = 0; $rowaccitem->quotation_item_id = $rowitem->quotation_item_id; $rowaccitem->accessory_id = $accessory_id; $rowaccitem->accessory_item_sku = $accProductinfo->product_number; $rowaccitem->accessory_item_name = $accessory_name; $rowaccitem->accessory_price = $accessory_org_price; $rowaccitem->accessory_vat = $accessory_vat_price; $rowaccitem->accessory_quantity = $rowitem->product_quantity; $rowaccitem->accessory_item_price = $accessory_price; $rowaccitem->accessory_final_price = $accessory_price * $rowitem->product_quantity; $rowaccitem->accessory_attribute = $accessory_attribute; if ($accessory_id > 0) { if (!$rowaccitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } /** my attribute save in table start */ if (count($generateAttributeCart) > 0) { $attArr = $generateAttributeCart; for ($j = 0; $j < count($attArr); $j++) { $attribute_id = $attArr[$j]['attribute_id']; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $rowitem->product_id; $rowattitem->section_name = $attArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 0; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $section_vat = 0; if ($propArr[$k]['property_price'] > 0) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $propArr[$k]['property_price'], $user_id); } $property_id = $propArr[$k]['property_id']; /** product property STOCKROOM update start */ $stockroomhelper->updateStockroomQuantity($property_id, $rowitem->product_quantity, "property"); $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 0; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $subpropArr = $propArr[$k]['property_childs']; for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = 0; if ($subpropArr[$l]['subproperty_price'] > 0) { $section_vat = $producthelper->getProducttax($rowitem->product_id, $subpropArr[$l]['subproperty_price'], $user_id); } $subproperty_id = $subpropArr[$l]['subproperty_id']; /** product subproperty STOCKROOM update start */ $stockroomhelper->updateStockroomQuantity($subproperty_id, $rowitem->product_quantity, "subproperty"); $rowattitem = $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $rowitem->quotation_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 0; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } } } return $row; }
public function delete($cid = array()) { $producthelper = new producthelper(); $order_functions = new order_functions(); $quotationHelper = new quotationHelper(); $stockroomhelper = new rsstockroomhelper(); if (count($cid)) { if (ECONOMIC_INTEGRATION == 1) { $economic = new economic(); for ($i = 0; $i < count($cid); $i++) { $orderdata = $this->getTable('order_detail'); $orderdata->load($cid[$i]); $invoiceHandle = $economic->deleteInvoiceInEconomic($orderdata); } } $cids = implode(',', $cid); $db = JFactory::getDbo(); $order_item = $order_functions->getOrderItemDetail($cids); for ($i = 0; $i < count($order_item); $i++) { $quntity = $order_item[$i]->product_quantity; $order_id = $order_item[$i]->order_id; $order_detail = $order_functions->getOrderDetails($order_id); if ($order_detail->order_payment_status == "Unpaid") { // Update stock roommanageStockAmount $stockroomhelper->manageStockAmount($order_item[$i]->product_id, $quntity, $order_item[$i]->stockroom_id); } $producthelper->makeAttributeOrder($order_item[$i]->order_item_id, 0, $order_item[$i]->product_id, 1); $query = "DELETE FROM `" . $this->_table_prefix . "order_attribute_item` " . "WHERE `order_item_id` = " . $order_item[$i]->order_item_id; $this->_db->setQuery($query); $this->_db->query(); $query = "DELETE FROM `" . $this->_table_prefix . "order_acc_item` " . "WHERE `order_item_id` = " . $order_item[$i]->order_item_id; $this->_db->setQuery($query); $this->_db->query(); } $query = 'DELETE FROM ' . $this->_table_prefix . 'orders WHERE order_id IN ( ' . $cids . ' )'; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } $query = 'DELETE FROM ' . $this->_table_prefix . 'order_item WHERE order_id IN ( ' . $cids . ' )'; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } $query = 'DELETE FROM ' . $this->_table_prefix . 'order_payment WHERE order_id IN ( ' . $cids . ' )'; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } $query = 'DELETE FROM ' . $this->_table_prefix . 'order_users_info WHERE order_id IN ( ' . $cids . ' )'; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } $quotation = $quotationHelper->getQuotationwithOrder($cids); for ($q = 0; $q < count($quotation); $q++) { $quotation_item = $quotationHelper->getQuotationProduct($quotation[$q]->quotation_id); for ($j = 0; $j < count($quotation_item); $j++) { $query = 'DELETE FROM ' . $this->_table_prefix . 'quotation_fields_data ' . 'WHERE quotation_item_id=' . $quotation_item[$j]->quotation_item_id; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } $query = 'DELETE FROM ' . $this->_table_prefix . 'quotation_item ' . 'WHERE quotation_id=' . $quotation[$q]->quotation_id; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } $query = 'DELETE FROM ' . $this->_table_prefix . 'quotation WHERE order_id IN ( ' . $cids . ' )'; $this->_db->setQuery($query); if (!$this->_db->query()) { $this->setError($this->_db->getErrorMsg()); return false; } } return true; }
public function makeAttributeQuotation($quotation_item_id = 0, $is_accessory = 0, $parent_section_id = 0, $quotation_status = 2, $stock = 0) { $quotationHelper = new quotationHelper(); $displayattribute = ""; $product_attribute = ""; $quantity = 0; $stockroom_id = "0"; $Itemdata = $quotationHelper->getQuotationProduct(0, $quotation_item_id); if (count($Itemdata) > 0 && $is_accessory != 1) { $product_attribute = $Itemdata[0]->product_attribute; $quantity = $Itemdata[0]->product_quantity; } $ItemAttdata = $quotationHelper->getQuotationItemAttributeDetail($quotation_item_id, $is_accessory, "attribute", $parent_section_id); if (count($ItemAttdata) > 0) { for ($i = 0; $i < count($ItemAttdata); $i++) { $displayattribute .= "<div class='checkout_attribute_title'>" . urldecode($ItemAttdata[$i]->section_name) . "</div>"; $propdata = $quotationHelper->getQuotationItemAttributeDetail($quotation_item_id, $is_accessory, "property", $ItemAttdata[$i]->section_id); for ($p = 0; $p < count($propdata); $p++) { $displayattribute .= "<div class='checkout_attribute_price'>" . urldecode($propdata[$p]->section_name) . " "; if ($quotation_status != 1 || $quotation_status == 1 && SHOW_QUOTATION_PRICE == 1) { $propertyOprand = $propdata[$p]->section_oprand; $propertyPrice = $this->getProductFormattedPrice($propdata[$p]->section_price); $propertyPriceWithVat = $this->getProductFormattedPrice($propdata[$p]->section_price + $propdata[$p]->section_vat); $displayattribute .= "( {$propertyOprand} {$propertyPrice} excl. vat / {$propertyPriceWithVat})"; } $displayattribute .= "</div>"; $subpropdata = $quotationHelper->getQuotationItemAttributeDetail($quotation_item_id, $is_accessory, "subproperty", $propdata[$p]->section_id); for ($sp = 0; $sp < count($subpropdata); $sp++) { $displayattribute .= "<div class='checkout_subattribute_price'>" . urldecode($subpropdata[$sp]->section_name) . " "; if ($quotation_status != 1 || $quotation_status == 1 && SHOW_QUOTATION_PRICE == 1) { $subpropertyOprand = $subpropdata[$sp]->section_oprand; $subpropertyPrice = $this->getProductFormattedPrice($subpropdata[$sp]->section_price); $subpropertyPriceWithVat = $this->getProductFormattedPrice($subpropdata[$sp]->section_price + $subpropdata[$sp]->section_vat); $displayattribute .= "( {$subpropertyOprand} {$subpropertyPrice} excl. vat {$subpropertyPriceWithVat})"; } $displayattribute .= "</div>"; } } } } else { $displayattribute = $product_attribute; } return $displayattribute; }
public function newQuotationItem($data) { $quotationHelper = new quotationHelper(); $rsCarthelper = new rsCarthelper(); $producthelper = new producthelper(); $stockroomhelper = new rsstockroomhelper(); $item = $data['quotation_item']; // Get Order Info $quotationdata = $this->getTable('quotation_detail'); $quotationdata->load($this->_id); $user_id = $quotationdata->user_id; // Set Order Item Info $qitemdata = $this->getTable('quotation_item_detail'); for ($i = 0; $i < count($item); $i++) { $product_id = $item[$i]->product_id; $quantity = $item[$i]->quantity; $product_excl_price = $item[$i]->prdexclprice; $product_price = $item[$i]->productprice; $product = $producthelper->getProductById($product_id); $generateAttributeCart = $rsCarthelper->generateAttributeArray((array) $item[$i], $user_id); $retAttArr = $producthelper->makeAttributeCart($generateAttributeCart, $product_id, $user_id, 0, $quantity); $product_attribute = $retAttArr[0]; $generateAccessoryCart = $rsCarthelper->generateAccessoryArray((array) $item[$i], $user_id); $retAccArr = $producthelper->makeAccessoryCart($generateAccessoryCart, $product_id, $user_id); $product_accessory = $retAccArr[0]; $wrapper_price = 0; $wrapper_vat = 0; $wrapper = $producthelper->getWrapper($product_id, $item[$i]->wrapper_data); if (count($wrapper) > 0) { if ($wrapper[0]->wrapper_price > 0) { $wrapper_vat = $producthelper->getProducttax($product_id, $wrapper[0]->wrapper_price, $user_id); } $wrapper_price = $wrapper[0]->wrapper_price + $wrapper_vat; } $qitemdata =& $this->getTable('quotation_item_detail'); $qitemdata->quotation_item_id = 0; $qitemdata->quotation_id = $this->_id; $qitemdata->product_id = $product_id; $qitemdata->is_giftcard = 0; $qitemdata->product_name = $product->product_name; $qitemdata->actualitem_price = $product_price; $qitemdata->product_price = $product_price; $qitemdata->product_excl_price = $product_excl_price; $qitemdata->product_final_price = $product_price * $quantity; $qitemdata->product_attribute = $product_attribute; $qitemdata->product_accessory = $product_accessory; $qitemdata->product_wrapperid = $item[$i]->wrapper_data; $qitemdata->wrapper_price = $wrapper_price; $qitemdata->product_quantity = $quantity; if (!$qitemdata->store()) { $this->setError($this->_db->getErrorMsg()); return false; } /** my accessory save in table start */ if (count($generateAccessoryCart) > 0) { $attArr = $generateAccessoryCart; for ($a = 0; $a < count($attArr); $a++) { $accessory_vat_price = 0; $accessory_attribute = ""; $accessory_id = $attArr[$a]['accessory_id']; $accessory_name = $attArr[$a]['accessory_name']; $accessory_price = $attArr[$a]['accessory_price']; $accessory_org_price = $accessory_price; if ($accessory_price > 0) { $accessory_vat_price = $producthelper->getProductTax($qitemdata->product_id, $accessory_price, $user_id); } $attchildArr = $attArr[$a]['accessory_childs']; for ($j = 0; $j < count($attchildArr); $j++) { $attribute_id = $attchildArr[$j]['attribute_id']; $accessory_attribute .= urldecode($attchildArr[$j]['attribute_name']) . ":<br/>"; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $qitemdata->quotation_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $accessory_id; $rowattitem->section_name = $attchildArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 1; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attchildArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $section_vat = 0; if ($propArr[$k]['property_price'] > 0) { $section_vat = $producthelper->getProducttax($qitemdata->product_id, $propArr[$k]['property_price'], $user_id); } $property_id = $propArr[$k]['property_id']; $accessory_attribute .= urldecode($propArr[$k]['property_name']) . " (" . $propArr[$k]['property_oprand'] . $producthelper->getProductFormattedPrice($propArr[$k]['property_price'] + $section_vat) . ")<br/>"; $subpropArr = $propArr[$k]['property_childs']; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $qitemdata->quotation_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 1; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = 0; if ($subpropArr[$l]['subproperty_price'] > 0) { $section_vat = $producthelper->getProducttax($qitemdata->product_id, $subpropArr[$l]['subproperty_price'], $user_id); } $subproperty_id = $subpropArr[$l]['subproperty_id']; $accessory_attribute .= urldecode($subpropArr[$l]['subproperty_name']) . " (" . $subpropArr[$l]['subproperty_oprand'] . $producthelper->getProductFormattedPrice($subpropArr[$l]['subproperty_price'] + $section_vat) . ")<br/>"; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $qitemdata->quotation_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 1; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } $accdata =& $this->getTable('accessory_detail'); if ($accessory_id > 0) { $accdata->load($accessory_id); } $accProductinfo = $producthelper->getProductById($accdata->child_product_id); $rowaccitem =& $this->getTable('quotation_accessory_item'); $rowaccitem->quotation_item_acc_id = 0; $rowaccitem->quotation_item_id = $qitemdata->quotation_item_id; $rowaccitem->accessory_id = $accessory_id; $rowaccitem->accessory_item_sku = $accProductinfo->product_number; $rowaccitem->accessory_item_name = $accessory_name; $rowaccitem->accessory_price = $accessory_org_price; $rowaccitem->accessory_vat = $accessory_vat_price; $rowaccitem->accessory_quantity = $qitemdata->product_quantity; $rowaccitem->accessory_item_price = $accessory_price; $rowaccitem->accessory_final_price = $accessory_price * $qitemdata->product_quantity; $rowaccitem->accessory_attribute = $accessory_attribute; if ($accessory_id > 0) { if (!$rowaccitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } /** my attribute save in table start */ if (count($generateAttributeCart) > 0) { $attArr = $generateAttributeCart; for ($j = 0; $j < count($attArr); $j++) { $attribute_id = $attArr[$j]['attribute_id']; $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $qitemdata->quotation_item_id; $rowattitem->section_id = $attribute_id; $rowattitem->section = "attribute"; $rowattitem->parent_section_id = $qitemdata->product_id; $rowattitem->section_name = $attArr[$j]['attribute_name']; $rowattitem->is_accessory_att = 0; if ($attribute_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $propArr = $attArr[$j]['attribute_childs']; for ($k = 0; $k < count($propArr); $k++) { $section_vat = 0; if ($propArr[$k]['property_price'] > 0) { $section_vat = $producthelper->getProducttax($qitemdata->product_id, $propArr[$k]['property_price'], $user_id); } $property_id = $propArr[$k]['property_id']; /** product property STOCKROOM update start */ $updatestock = $stockroomhelper->updateStockroomQuantity($property_id, $qitemdata->product_quantity, "property"); $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $qitemdata->quotation_item_id; $rowattitem->section_id = $property_id; $rowattitem->section = "property"; $rowattitem->parent_section_id = $attribute_id; $rowattitem->section_name = $propArr[$k]['property_name']; $rowattitem->section_price = $propArr[$k]['property_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $propArr[$k]['property_oprand']; $rowattitem->is_accessory_att = 0; if ($property_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } $subpropArr = $propArr[$k]['property_childs']; for ($l = 0; $l < count($subpropArr); $l++) { $section_vat = 0; if ($subpropArr[$l]['subproperty_price'] > 0) { $section_vat = $producthelper->getProducttax($qitemdata->product_id, $subpropArr[$l]['subproperty_price'], $user_id); } $subproperty_id = $subpropArr[$l]['subproperty_id']; /** product subproperty STOCKROOM update start */ $updatestock = $stockroomhelper->updateStockroomQuantity($subproperty_id, $qitemdata->product_quantity, "subproperty"); $rowattitem =& $this->getTable('quotation_attribute_item'); $rowattitem->quotation_att_item_id = 0; $rowattitem->quotation_item_id = $qitemdata->quotation_item_id; $rowattitem->section_id = $subproperty_id; $rowattitem->section = "subproperty"; $rowattitem->parent_section_id = $property_id; $rowattitem->section_name = $subpropArr[$l]['subproperty_name']; $rowattitem->section_price = $subpropArr[$l]['subproperty_price']; $rowattitem->section_vat = $section_vat; $rowattitem->section_oprand = $subpropArr[$l]['subproperty_oprand']; $rowattitem->is_accessory_att = 0; if ($subproperty_id > 0) { if (!$rowattitem->store()) { $this->setError($this->_db->getErrorMsg()); return false; } } } } } } // Store userfields $userfields = JRequest::getVar('extrafields' . $qitemdata->product_id); $userfields_id = JRequest::getVar('extrafields_id_' . $qitemdata->product_id); for ($ui = 0; $ui < count($userfields); $ui++) { $quotationHelper->insertQuotationUserfield($userfields_id[$ui], $qitemdata->quotation_item_id, 12, $userfields[$ui]); } } // Update Quotation Record $QuotationData = $this->getTable('quotation_detail'); $QuotationData->load($this->_id); $QuotationTotal = 0; $QuotationSubTotal = 0; $QuotationSpDiscount = 0; $QuotationDiscount = 0; $QuotationTotDiscount = 0; $QuotationTax = 0; $quotationItems = $quotationHelper->getQuotationProduct($QuotationData->quotation_id); for ($q = 0; $q < count($quotationItems); $q++) { $QuotationSubTotal += $quotationItems[$q]->product_excl_price * $quotationItems[$q]->product_quantity; $QuotationTax += ($quotationItems[$q]->product_final_price - $quotationItems[$q]->product_excl_price) * $quotationItems[$q]->product_quantity; } // Deduct normal Discount $QuotationDiscount = $QuotationData->quotation_discount; // Special Discount $QuotationSpDiscount = $QuotationData->quotation_special_discount * ($QuotationSubTotal + $QuotationTax) / 100; // Total Discount $QuotationTotDiscount = $QuotationDiscount + $QuotationSpDiscount; // Count final Total $QuotationTotal = $QuotationSubTotal + $QuotationTax - $QuotationTotDiscount; $QuotationData->quotation_tax = $QuotationTax; $QuotationData->quotation_total = $QuotationTotal; $QuotationData->quotation_subtotal = $QuotationSubTotal; $QuotationData->quotation_mdate = time(); if (!$QuotationData->store()) { return false; } else { return true; } // End return true; }