Esempio n. 1
0
 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);
 }