Example #1
0
 public function business_gls_export($cid)
 {
     $app = JFactory::getApplication();
     $oids = implode(',', $cid);
     $where = "";
     $redhelper = new redhelper();
     $order_helper = new order_functions();
     $shipping = new shipping();
     $exportfilename = 'redshop_gls_order_export.csv';
     /* Start output to the browser */
     if (ereg('Opera(/| )([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])) {
         $UserBrowser = "Opera";
     } elseif (ereg('MSIE ([0-9].[0-9]{1,2})', $_SERVER['HTTP_USER_AGENT'])) {
         $UserBrowser = "IE";
     } else {
         $UserBrowser = '';
     }
     $mime_type = $UserBrowser == 'IE' || $UserBrowser == 'Opera' ? 'application/octetstream' : 'application/octet-stream';
     /* Clean the buffer */
     while (@ob_end_clean()) {
     }
     header('Content-Type: ' . $mime_type);
     header('Content-Encoding: UTF-8');
     header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
     if ($UserBrowser == 'IE') {
         header('Content-Disposition: inline; filename="' . $exportfilename . '"');
         header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
         header('Pragma: public');
     } else {
         header('Content-Disposition: attachment; filename="' . $exportfilename . '"');
         header('Pragma: no-cache');
     }
     if ($cid[0] != 0) {
         $where = " WHERE order_id IN (" . $oids . ")";
     }
     $db = JFactory::getDbo();
     $q = "SELECT * FROM #__redshop_orders " . $where . " ORDER BY order_id asc";
     $db->setQuery($q);
     $gls_arr = $db->loadObjectList();
     echo "Order_number,Quantity,Create_date,total_weight,reciever_firstName,reciever_lastname,Customer_note";
     echo "\r\n";
     for ($i = 0; $i < count($gls_arr); $i++) {
         $details = explode("|", $shipping->decryptShipping(str_replace(" ", "+", $gls_arr[$i]->ship_method_id)));
         if ($details[0] == 'shipper') {
             $orderproducts = $order_helper->getOrderItemDetail($gls_arr[$i]->order_id);
             $shippingDetails = $order_helper->getOrderShippingUserInfo($gls_arr[$i]->order_id);
             $billingDetails = $order_helper->getOrderBillingUserInfo($gls_arr[$i]->order_id);
             $totalWeight = "";
             $qty = "";
             for ($c = 0; $c < count($orderproducts); $c++) {
                 $product_id[] = $orderproducts[$c]->product_id;
                 $qty += $orderproducts[$c]->product_quantity;
                 $content_products[] = $orderproducts[$c]->order_item_name;
                 $sql = "SELECT weight FROM #__redshop_product WHERE product_id ='" . $orderproducts[$c]->product_id . "'";
                 $db->setQuery($sql);
                 $weight = $db->loadResult();
                 $totalWeight += $weight * $orderproducts[$c]->product_quantity;
             }
             $userDetail = ',"' . $shippingDetails->firstname . ' ' . $shippingDetails->lastname . '","' . $gls_arr[$i]->customer_note;
             echo '"' . $gls_arr[$i]->order_number . '","' . $qty . '","' . date("d-m-Y", $gls_arr[$i]->cdate) . '","' . $totalWeight . '","' . $userDetail . '"';
             echo "\r\n";
         }
     }
     exit;
 }
 public function store($postdata)
 {
     $redshopMail = new redshopMail();
     $order_functions = new order_functions();
     $helper = new redhelper();
     $producthelper = new producthelper();
     $rsCarthelper = new rsCarthelper();
     $shippinghelper = new shipping();
     $adminproducthelper = new adminproducthelper();
     $stockroomhelper = new rsstockroomhelper();
     // For barcode generation
     $barcode_code = $order_functions->barcode_randon_number(12, 0);
     $postdata['barcode'] = $barcode_code;
     $row = $this->getTable('order_detail');
     if (!$row->bind($postdata)) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     if (!$row->store()) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     $iscrm = $helper->isredCRM();
     if ($iscrm) {
         $postdata['order_id'] = $row->order_id;
         $postdata['debitor_id'] = $postdata['user_info_id'];
         JTable::addIncludePath(REDCRM_ADMIN . '/tables');
         $crmorder =& $this->getTable('crm_order');
         if (!$crmorder->bind($postdata)) {
             $this->setError($this->_db->getErrorMsg());
             return false;
         }
         if (!$crmorder->store()) {
             $this->setError($this->_db->getErrorMsg());
             return false;
         }
         // Update rma table entry
         if (ENABLE_RMA && isset($postdata['rmanotes'])) {
             $rmaInfo = $this->getTable('rma_orders');
             $rmaInfo->rma_number = $postdata['rma_number'];
             $rmaInfo->original_order_id = $postdata['main_order_id'];
             $rmaInfo->credit_note_order_id = $row->order_id;
             $rmaInfo->rma_note = $postdata['rmanotes'];
             $rmaInfo->store();
         }
         JTable::addIncludePath(REDSHOP_ADMIN . '/tables');
     }
     $order_shipping = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $row->ship_method_id)));
     $rowOrderStatus =& $this->getTable('order_status_log');
     $rowOrderStatus->order_id = $row->order_id;
     $rowOrderStatus->order_status = $row->order_status;
     $rowOrderStatus->date_changed = time();
     $rowOrderStatus->customer_note = $row->customer_note;
     $rowOrderStatus->store();
     $billingaddresses = $order_functions->getBillingAddress($row->user_id);
     if (isset($postdata['billisship']) && $postdata['billisship'] == 1) {
         $shippingaddresses = $billingaddresses;
     } else {
         $key = 0;
         $shippingaddresses = $order_functions->getShippingAddress($row->user_id);
         $shipp_users_info_id = isset($postdata['shipp_users_info_id']) && $postdata['shipp_users_info_id'] != 0 ? $postdata['shipp_users_info_id'] : 0;
         if ($shipp_users_info_id != 0) {
             for ($o = 0; $o < count($shippingaddresses); $o++) {
                 if ($shippingaddresses[$o]->users_info_id == $shipp_users_info_id) {
                     $key = $o;
                     break;
                 }
             }
         }
         $shippingaddresses = $shippingaddresses[$key];
     }
     // ORDER DELIVERY TIME IS REMAINING
     $user_id = $row->user_id;
     $item = $postdata['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];
         $accessory_total_price = $retAccArr[1];
         $accessory_vat_price = $retAccArr[2];
         $wrapper_price = 0;
         $wrapper_vat = 0;
         if ($item[$i]->wrapper_data != 0 && $item[$i]->wrapper_data != '') {
             $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;
             }
         }
         $product = $producthelper->getProductById($product_id);
         $rowitem =& $this->getTable('order_item_detail');
         if (!$rowitem->bind($postdata)) {
             $this->setError($this->_db->getErrorMsg());
             return false;
         }
         // STOCKROOM update
         $updatestock = $stockroomhelper->updateStockroomQuantity($product_id, $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;
         $rowitem->order_item_id = 0;
         $rowitem->order_id = $row->order_id;
         $rowitem->user_info_id = $row->user_info_id;
         $rowitem->supplier_id = $product->manufacturer_id;
         $rowitem->product_id = $product_id;
         $rowitem->order_item_sku = $product->product_number;
         $rowitem->order_item_name = $product->product_name;
         $rowitem->product_quantity = $quantity;
         $rowitem->product_item_price = $product_price;
         $rowitem->product_item_price_excl_vat = $product_excl_price;
         $rowitem->product_final_price = $product_price * $quantity;
         $rowitem->order_item_currency = REDCURRENCY_SYMBOL;
         $rowitem->order_status = $row->order_status;
         $rowitem->cdate = $row->cdate;
         $rowitem->mdate = $row->cdate;
         $rowitem->product_attribute = $product_attribute;
         $rowitem->product_accessory = $product_accessory;
         $rowitem->wrapper_id = $item[$i]->wrapper_data;
         $rowitem->wrapper_price = $wrapper_price;
         $rowitem->is_giftcard = 0;
         // RedCRM product purchase price
         if ($iscrm) {
             $crmProductHelper = new crmProductHelper();
             $crmproduct = $crmProductHelper->getProductById($product_id);
             $rowitem->product_purchase_price = $crmproduct->product_purchase_price > 0 ? $crmproduct->product_purchase_price : $crmproduct->product_price;
         }
         if ($producthelper->checkProductDownload($product_id)) {
             $medianame = $producthelper->getProductMediaName($product_id);
             for ($j = 0; $j < count($medianame); $j++) {
                 $product_serial_number = $producthelper->getProdcutSerialNumber($product_id);
                 $producthelper->insertProductDownload($product_id, $user_id, $rowitem->order_id, $medianame[$j]->media_name, $product_serial_number->serial_number);
             }
         }
         if (!$rowitem->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($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('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++) {
                         $section_vat = 0;
                         if ($propArr[$k]['property_price'] > 0) {
                             $section_vat = $producthelper->getProducttax($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('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 = $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('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;
                                 }
                             }
                         }
                     }
                 }
                 $accdata =& $this->getTable('accessory_detail');
                 if ($accessory_id > 0) {
                     $accdata->load($accessory_id);
                 }
                 $accProductinfo = $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 = $quantity;
                 $rowaccitem->product_acc_item_price = $accessory_price;
                 $rowaccitem->product_acc_final_price = $accessory_price * $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($generateAttributeCart) > 0) {
             $attArr = $generateAttributeCart;
             for ($j = 0; $j < count($attArr); $j++) {
                 $attribute_id = $attArr[$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 = $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 */
                     $updatestock = $stockroomhelper->updateStockroomQuantity($property_id, $quantity, "property");
                     $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;
                     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($product_id, $subpropArr[$l]['subproperty_price'], $user_id);
                         }
                         $subproperty_id = $subpropArr[$l]['subproperty_id'];
                         /** product subproperty STOCKROOM update start */
                         $updatestock = $stockroomhelper->updateStockroomQuantity($subproperty_id, $quantity, "subproperty");
                         $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;
                         if ($subproperty_id > 0) {
                             if (!$rowattitem->store()) {
                                 $this->setError($this->_db->getErrorMsg());
                                 return false;
                             }
                         }
                     }
                 }
             }
         }
         //			$producthelper->insertProdcutUserfield($i,$item,$rowitem->order_item_id,12);
         if (USE_CONTAINER) {
             $producthelper->updateContainerStock($product_id, $quantity, $rowitem->container_id);
         }
         // Store userfields
         $userfields = $item[$i]->extrafieldname;
         $userfields_id = $item[$i]->extrafieldId;
         for ($ui = 0; $ui < count($userfields); $ui++) {
             $adminproducthelper->admin_insertProdcutUserfield($userfields_id[$ui], $rowitem->order_item_id, 12, $userfields[$ui]);
         }
         // redCRM RMA Transaction Entry
         if ($iscrm) {
             if (ENABLE_RMA && $rowitem->product_final_price < 0) {
                 // RMA transation log
                 if (isset($item[$i]->reason)) {
                     $rmaTrans =& $this->getTable('rma_transaction');
                     $rmaTrans->rma_transaction_id = 0;
                     $rmaTrans->rma_number = $postdata['rma_number'];
                     $rmaTrans->order_item_return_id = $rowitem->order_item_id;
                     $rmaTrans->order_item_return_reason = $item[$i]->reason;
                     $rmaTrans->order_item_return_status = $item[$i]->deposition;
                     $rmaTrans->order_item_return_action = $item[$i]->action;
                     $rmaTrans->cdate = time();
                     $rmaTrans->store();
                     if (ENABLE_ITEM_TRACKING_SYSTEM) {
                         // Manage supplier order stock
                         $crmSupplierOrderHelper = new crmSupplierOrderHelper();
                         $senddata['main_order_number'] = $postdata['main_order_number'];
                         $senddata['order_status'] = $row->order_status;
                         $senddata['product_id'] = $rowitem->product_id;
                         $senddata['property_id'] = $property_id;
                         $senddata['subproperty_id'] = $subproperty_id;
                         $senddata['deposition'] = $item[$i]->deposition;
                         $itemqty = $rowitem->product_quantity;
                         for ($r = 0; $r < $itemqty; $r++) {
                             $crmSupplierOrderHelper->manageStockAffectedRMA($senddata);
                         }
                     }
                 }
             }
         }
     }
     $rowpayment =& $this->getTable('order_payment');
     if (!$rowpayment->bind($postdata)) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     $rowpayment->order_id = $row->order_id;
     $rowpayment->payment_method_id = $postdata['payment_method_class'];
     $rowpayment->order_payment_amount = $row->order_total;
     $rowpayment->order_payment_name = $postdata['order_payment_name'];
     $rowpayment->payment_method_class = $postdata['payment_method_class'];
     if (!$rowpayment->store()) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     // Add billing Info
     $userrow =& $this->getTable('user_detail');
     $userrow->load($billingaddresses->users_info_id);
     $orderuserrow =& $this->getTable('order_user_detail');
     if (!$orderuserrow->bind($userrow)) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     $orderuserrow->order_id = $row->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 = $row->order_id;
     $orderuserrow->address_type = 'ST';
     if (!$orderuserrow->store()) {
         $this->setError($this->_db->getErrorMsg());
         return false;
     }
     if ($row->order_status == CLICKATELL_ORDER_STATUS) {
         $helper->clickatellSMS($row->order_id);
     }
     // Maintan supplier order stck when item tracking system is enabled
     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);
         }
     }
     $checkOrderStatus = 1;
     if ($postdata['payment_method_class'] == "rs_payment_banktransfer" || $postdata['payment_method_class'] == "rs_payment_banktransfer_discount" || $postdata['payment_method_class'] == "rs_payment_banktransfer2" || $postdata['payment_method_class'] == "rs_payment_banktransfer3" || $postdata['payment_method_class'] == "rs_payment_banktransfer4" || $postdata['payment_method_class'] == "rs_payment_banktransfer5") {
         $checkOrderStatus = 0;
     }
     // Economic Integration start for invoice generate and book current invoice
     if (ECONOMIC_INTEGRATION == 1 && ECONOMIC_INVOICE_DRAFT != 2) {
         $issplit = 0;
         $economic = new economic();
         if (isset($postdata['issplit']) && $postdata['issplit'] == 1) {
             $issplit = 1;
         }
         $economicdata['split_payment'] = $issplit;
         $economicdata['economic_payment_terms_id'] = $postdata['economic_payment_terms_id'];
         $economicdata['economic_design_layout'] = $postdata['economic_design_layout'];
         $economicdata['economic_is_creditcard'] = $postdata['economic_is_creditcard'];
         $payment_name = $postdata['payment_method_class'];
         $paymentArr = explode("rs_payment_", $postdata['payment_method_class']);
         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 = $redshopMail->sendEconomicBookInvoiceMail($row->order_id, $bookinvoicepdf);
             }
         }
     }
     // ORDER MAIL SEND
     if ($postdata['task'] != "save_without_sendmail") {
         $redshopMail->sendOrderMail($row->order_id);
     }
     return $row;
 }
Example #3
0
    ?>
"><?php 
    echo $row->order_id;
    ?>
</a>
					</td>
					<td align="center"><?php 
    echo $row->order_number;
    ?>
</td>
					<td align="center"><?php 
    echo $row->cdate;
    ?>
</td>
					<td align="center"><?php 
    $details = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $row->ship_method_id)));
    if (strstr($details[0], 'default_shipping')) {
        if (file_exists(JPATH_SITE . '/administrator/components/com_redshop/assets/lables/label_' . $row->order_id . '.pdf')) {
            ?>
								<a href="<?php 
            echo $dlink;
            ?>
"><?php 
            echo JText::_('COM_REDSHOP_DOWNLOAD');
            ?>
</a>
								<a href="<?php 
            echo $plink;
            ?>
"
								   target="_blank"><?php 
 public function getShippingRate()
 {
     $shippinghelper = new shipping();
     $get = JRequest::get('get');
     $shipping = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $get['shipping_rate_id'])));
     $order_shipping = 0;
     $order_shipping_class = '';
     if (count($shipping) > 4) {
         $order_shipping = $shipping[3] - $shipping[6];
         $order_shipping_tax = $shipping[6];
         $order_shipping_class = $shipping[0];
     }
     echo "<div id='resultShippingClass'>" . $order_shipping_class . "</div>";
     echo "<div id='resultShipping'>" . $order_shipping . "</div>";
     echo "<div id='resultShippingVat'>" . $order_shipping_tax . "</div>";
     die;
 }
Example #5
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $shippinghelper = new shipping();
     $order_functions = new order_functions();
     $params = $app->getParams('com_redshop');
     $option = JRequest::getVar('option');
     $Itemid = JRequest::getInt('Itemid');
     $issplit = JRequest::getBool('issplit');
     $ccinfo = JRequest::getInt('ccinfo');
     $task = JRequest::getCmd('task');
     $model = $this->getModel('checkout');
     $session = JFactory::getSession();
     if ($issplit != '') {
         $session->set('issplit', $issplit);
     }
     $payment_method_id = JRequest::getCmd('payment_method_id');
     $users_info_id = JRequest::getInt('users_info_id');
     $auth = $session->get('auth');
     if (empty($users_info_id)) {
         $users_info_id = $auth['users_info_id'];
     }
     $shipping_rate_id = JRequest::getString('shipping_rate_id');
     $shippingdetail = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $shipping_rate_id)));
     if (count($shippingdetail) < 4) {
         $shipping_rate_id = "";
     }
     $cart = $session->get('cart');
     if ($cart['idx'] < 1) {
         $msg = JText::_('COM_REDSHOP_EMPTY_CART');
         $app->Redirect('index.php?option=' . $option . '&Itemid=' . $Itemid, $msg);
     }
     if (SHIPPING_METHOD_ENABLE) {
         if ($users_info_id < 1) {
             $msg = JText::_('COM_REDSHOP_SELECT_SHIP_ADDRESS');
             $link = 'index.php?option=' . $option . '&view=checkout&Itemid=' . $Itemid . '&users_info_id=' . $users_info_id . '&shipping_rate_id=' . $shipping_rate_id . '&payment_method_id=' . $payment_method_id;
             $app->Redirect($link, $msg);
         }
         if ($shipping_rate_id == '' && $cart['free_shipping'] != 1) {
             $msg = JText::_('COM_REDSHOP_SELECT_SHIP_METHOD');
             $link = 'index.php?option=' . $option . '&view=checkout&Itemid=' . $Itemid . '&users_info_id=' . $users_info_id . '&shipping_rate_id=' . $shipping_rate_id . '&payment_method_id=' . $payment_method_id;
             $app->Redirect($link, $msg);
         }
     }
     if ($payment_method_id == '') {
         $msg = JText::_('COM_REDSHOP_SELECT_PAYMENT_METHOD');
         $link = 'index.php?option=' . $option . '&view=checkout&Itemid=' . $Itemid . '&users_info_id=' . $users_info_id . '&shipping_rate_id=' . $shipping_rate_id . '&payment_method_id=' . $payment_method_id;
         $app->Redirect($link, $msg);
     }
     $paymentinfo = $order_functions->getPaymentMethodInfo($payment_method_id);
     $paymentinfo = $paymentinfo[0];
     $paymentpath = JPATH_SITE . '/plugins/redshop_payment/' . $paymentinfo->element . '/' . $paymentinfo->element . '.xml';
     $paymentparams = new JRegistry($paymentinfo->params);
     $is_creditcard = $paymentparams->get('is_creditcard', '');
     $is_subscription = $paymentparams->get('is_subscription', 0);
     if (@$is_creditcard == 1) {
         $document = JFactory::getDocument();
         JHTML::Script('credit_card.js', 'components/com_redshop/assets/js/', false);
     }
     if ($is_subscription) {
         $subscription_id = $session->set('subscription_id', $subscription_id);
     }
     $this->cart = $cart;
     $this->users_info_id = $users_info_id;
     $this->shipping_rate_id = $shipping_rate_id;
     $this->payment_method_id = $payment_method_id;
     $this->is_creditcard = $is_creditcard;
     if ($task != '') {
         $tpl = $task;
     }
     parent::display($tpl);
 }
Example #6
0
 public function update_shippingrates($data)
 {
     $redhelper = new redhelper();
     $shippinghelper = new shipping();
     // Get Order Info
     $orderdata = $this->getTable('order_detail');
     $orderdata->load($this->_id);
     if ($data['shipping_rate_id'] != "") {
         // Get Shipping rate info Info
         $decry = $shippinghelper->decryptShipping(str_replace(" ", "+", $data['shipping_rate_id']));
         $neworder_shipping = explode("|", $decry);
         if ($data['shipping_rate_id'] != $orderdata->ship_method_id || $neworder_shipping[0] == 'plgredshop_shippingdefault_shipping_GLS') {
             if (count($neworder_shipping) > 4) {
                 // Shipping_rate_value
                 $orderdata->order_total = $orderdata->order_total - $orderdata->order_shipping + $neworder_shipping[3];
                 $orderdata->order_shipping = $neworder_shipping[3];
                 $orderdata->ship_method_id = $data['shipping_rate_id'];
                 $orderdata->order_shipping_tax = isset($neworder_shipping[6]) && $neworder_shipping[6] ? $neworder_shipping[6] : 0;
                 $orderdata->mdate = time();
                 $orderdata->shop_id = $data['shop_id'] . "###" . $data['gls_mobile'];
                 if (!$orderdata->store()) {
                     return false;
                 }
                 // Economic Integration start for invoice generate
                 if (ECONOMIC_INTEGRATION == 1) {
                     $economic = new economic();
                     $invoiceHandle = $economic->renewInvoiceInEconomic($orderdata);
                 }
             }
         }
     }
     return true;
 }
Example #7
0
 public function replaceMessage($message, $orderData, $paymentName)
 {
     $shippinghelper = new shipping();
     $shipping_method = '';
     $details = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $orderData->ship_method_id)));
     if (count($details) > 1) {
         $ext = "";
         if (array_key_exists(2, $details)) {
             $ext = " (" . $details[2] . ")";
         }
         $shipping_method = $details[1] . $ext;
     }
     $producthelper = new producthelper();
     $userData = $producthelper->getUserInformation($orderData->user_id);
     $message = str_replace('{order_id}', $orderData->order_id, $message);
     $message = str_replace('{order_status}', $orderData->order_status, $message);
     $message = str_replace('{customer_name}', $userData->firstname, $message);
     $message = str_replace('{payment_status}', $orderData->order_payment_status, $message);
     $message = str_replace('{order_comment}', $orderData->customer_note, $message);
     $message = str_replace('{shipping_method}', $shipping_method, $message);
     $message = str_replace('{payment_method}', $paymentName, $message);
     return $message;
 }
Example #8
0
 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;
 }
Example #9
0
 public function export_fullorder_data()
 {
     $extrafile = JPATH_SITE . '/administrator/components/com_redshop/extras/order_export.php';
     if (file_exists($extrafile)) {
         require_once JPATH_COMPONENT_ADMINISTRATOR . '/extras/order_export.php';
         $orderExport = new orderExport();
         $orderExport->createOrderExport();
         exit;
     }
     $producthelper = new producthelper();
     $order_function = new order_functions();
     $model = $this->getModel('order');
     $data = $model->export_data();
     $product_count = array();
     $db = JFactory::getDbo();
     $cid = JRequest::getVar('cid', array(0), 'method', 'array');
     $order_id = implode(',', $cid);
     $where = "";
     $sql = "SELECT order_id,count(order_item_id) as noproduct FROM `#__redshop_order_item`  " . $where . " GROUP BY order_id";
     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
     header("Content-type: text/x-csv");
     header("Content-type: text/csv");
     header("Content-type: application/csv");
     header('Content-Disposition: attachment; filename=Order.csv');
     $db->setQuery($sql);
     $no_products = $db->loadObjectList();
     for ($i = 0; $i < count($data); $i++) {
         $product_count[] = $no_products[$i]->noproduct;
     }
     $no_products = max($product_count);
     $shipping_helper = new shipping();
     ob_clean();
     echo "Order number, Order status, Order date , Shipping method , Shipping user, Shipping address, Shipping postalcode,\n\t\tShipping city, Shipping country, Company name, Email ,Billing address, Billing postalcode, Billing city, Billing country,\n\t\tBilling User ,";
     for ($i = 1; $i <= $no_products; $i++) {
         echo JText::_('COM_REDSHOP_PRODUCT_NAME') . $i . ' ,';
         echo JText::_('COM_REDSHOP_PRODUCT') . ' ' . JText::_('COM_REDSHOP_PRODUCT_PRICE') . $i . ' ,';
         echo JText::_('COM_REDSHOP_PRODUCT_ATTRIBUTE') . $i . ' ,';
     }
     echo "Order Total\n";
     for ($i = 0; $i < count($data); $i++) {
         $billing_info = $order_function->getOrderBillingUserInfo($data[$i]->order_id);
         $details = explode("|", $shipping_helper->decryptShipping(str_replace(" ", "+", $data[$i]->ship_method_id)));
         echo $data[$i]->order_id . ",";
         echo utf8_decode($order_function->getOrderStatusTitle($data[$i]->order_status)) . " ,";
         echo date('d-m-Y H:i', $data[$i]->cdate) . " ,";
         echo str_replace(",", " ", $details[1]) . "(" . str_replace(",", " ", $details[2]) . ") ,";
         $shipping_info = $order_function->getOrderShippingUserInfo($data[$i]->order_id);
         echo str_replace(",", " ", $shipping_info->firstname) . " " . str_replace(",", " ", $shipping_info->lastname) . " ,";
         echo str_replace(",", " ", utf8_decode($shipping_info->address)) . " ,";
         echo $shipping_info->zipcode . " ,";
         echo str_replace(",", " ", utf8_decode($shipping_info->city)) . " ,";
         echo $shipping_info->country_code . " ,";
         echo str_replace(",", " ", $shipping_info->company_name) . " ,";
         echo $shipping_info->user_email . " ,";
         echo str_replace(",", " ", utf8_decode($billing_info->address)) . " ,";
         echo $billing_info->zipcode . " ,";
         echo str_replace(",", " ", utf8_decode($billing_info->city)) . " ,";
         echo $billing_info->country_code . " ,";
         echo str_replace(",", " ", $billing_info->firstname) . " " . str_replace(",", " ", $billing_info->lastname) . " ,";
         $no_items = $order_function->getOrderItemDetail($data[$i]->order_id);
         for ($it = 0; $it < count($no_items); $it++) {
             echo str_replace(",", " ", utf8_decode($no_items[$it]->order_item_name)) . " ,";
             echo "\"" . REDCURRENCY_SYMBOL . "\"" . $no_items[$it]->product_final_price;
             $product_attribute = $producthelper->makeAttributeOrder($no_items[$it]->order_item_id, 0, $no_items[$it]->product_id, 0, 1);
             $product_attribute = strip_tags(str_replace(",", " ", $product_attribute->product_attribute));
             echo trim(utf8_decode($product_attribute)) . " ,";
         }
         $temp = $no_products - count($no_items);
         if ($temp >= 0) {
             echo str_repeat(' ,', $temp * 3);
         }
         echo "\"" . REDCURRENCY_SYMBOL . "\"" . $data[$i]->order_total . "\n";
     }
     exit;
 }
Example #10
0
 }
 $replace[] = $statustext . " - " . $orderPaymentStatus;
 $search[] = "{order_status_order_only}";
 $replace[] = $statustext;
 $search[] = "{order_status_payment_only}";
 $replace[] = $orderPaymentStatus;
 $search[] = "{customer_note_lbl}";
 $replace[] = JText::_('COM_REDSHOP_COMMENT');
 $search[] = "{customer_note}";
 $replace[] = $OrdersDetail->customer_note;
 $search[] = "{shipping_method_lbl}";
 $replace[] = JText::_('COM_REDSHOP_SHIPPING_METHOD_LBL');
 $shipping_method = '';
 $shipping_rate_name = '';
 if ($OrdersDetail[0]->ship_method_id != '') {
     $ship_method = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $OrdersDetail[0]->ship_method_id)));
     if (count($ship_method) <= 1) {
         $ship_method = explode("|", $OrdersDetail[0]->ship_method_id);
     }
     $shipping_method = "";
     $shipping_rate_name = "";
     if (count($ship_method) > 0) {
         if (array_key_exists(1, $ship_method)) {
             $shipping_method = $ship_method[1];
         }
         if (array_key_exists(2, $ship_method)) {
             $shipping_rate_name = $ship_method[2];
         }
     }
 }
 $search[] = "{shipping_method}";
Example #11
0
    public function createMultiprintInvoicePdf($oid)
    {
        require_once JPATH_SITE . '/components/com_redshop/helpers/tcpdf/config/lang/eng.php';
        require_once JPATH_SITE . '/components/com_redshop/helpers/tcpdf/tcpdf.php';
        $order_functions = new order_functions();
        $shippinghelper = new shipping();
        $carthelper = new rsCarthelper();
        $extra_field = new extra_field();
        $redconfig = new Redconfiguration();
        $redTemplate = new Redtemplate();
        $producthelper = new producthelper();
        $message = "";
        $pdfObj = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, 'A5', true, 'UTF-8', false);
        $pdfObj->SetTitle('Shipped');
        $pdfObj->SetAuthor('redSHOP');
        $pdfObj->SetCreator('redSHOP');
        $pdfObj->SetMargins(8, 8, 8);
        // Changed font to support Unicode Characters - Specially Polish Characters
        $font = 'freeserif';
        $pdfObj->setImageScale(PDF_IMAGE_SCALE_RATIO);
        $pdfObj->setHeaderFont(array($font, '', 8));
        // Set font
        $pdfObj->SetFont($font, "", 6);
        $order_id = "";
        for ($o = 0; $o < count($oid); $o++) {
            $body = "";
            $message = "";
            $order_id = $oid[$o];
            $OrderProducts = $order_functions->getOrderItemDetail($order_id);
            $OrdersDetail = $order_functions->getmultiOrderDetails($order_id);
            $billing = $order_functions->getOrderBillingUserInfo($OrdersDetail[0]->order_id);
            $shipping = $order_functions->getOrderShippingUserInfo($OrdersDetail[0]->order_id);
            $is_company = $billing->is_company;
            if (!$shipping) {
                $shipping = $billing;
            }
            $paymentmethod = $order_functions->getOrderPaymentDetail($order_id);
            $paymentmethod = $paymentmethod[0];
            $order_print_template = $redTemplate->getTemplate("order_print");
            if (count($order_print_template) > 0 && $order_print_template[0]->template_desc != "") {
                $ordersprint_template = $order_print_template[0]->template_desc;
            } else {
                $ordersprint_template = '<table style="width: 100%;" border="0" cellpadding="5" cellspacing="0">
				<tbody><tr><td colspan="2"><table style="width: 100%;" border="0" cellpadding="2" cellspacing="0"><tbody>
				<tr style="background-color: #cccccc;"><th align="left">{order_information_lbl}{print}</th></tr><tr></tr
				><tr><td>{order_id_lbl} : {order_id}</td></tr><tr><td>{order_number_lbl} : {order_number}</td></tr><tr>
				<td>{order_date_lbl} : {order_date}</td></tr><tr><td>{order_status_lbl} : {order_status}</td></tr><tr>
				<td>{shipping_method_lbl} : {shipping_method} : {shipping_rate_name}</td></tr><tr><td>{payment_lbl} : {payment_method}</td>
				</tr></tbody></table></td></tr><tr><td colspan="2"><table style="width: 100%;" border="0" cellpadding="2" cellspacing="0">
				<tbody><tr style="background-color: #cccccc;"><th align="left">{billing_address_information_lbl}</th>
				</tr><tr></tr><tr><td>{billing_address}</td></tr></tbody></table></td></tr><tr><td colspan="2">
				<table style="width: 100%;" border="0" cellpadding="2" cellspacing="0"><tbody><tr style="background-color: #cccccc;">
				<th align="left">{shipping_address_info_lbl}</th></tr><tr></tr><tr><td>{shipping_address}</td></tr></tbody>
				</table></td></tr><tr><td colspan="2"><table style="width: 100%;" border="0" cellpadding="2" cellspacing="0">
				<tbody><tr style="background-color: #cccccc;"><th align="left">{order_detail_lbl}</th></tr><tr></tr><tr><td>
				<table style="width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody><tr><td>{product_name_lbl}</td><td>{note_lbl}</td>
				<td>{price_lbl}</td><td>{quantity_lbl}</td><td align="right">Total Price</td></tr>{product_loop_start}<tr>
				<td><p>{product_name}<br />{product_attribute}{product_accessory}{product_userfields}</p></td>
				<td>{product_wrapper}{product_thumb_image}</td><td>{product_price}</td><td>{product_quantity}</td>
				<td align="right">{product_total_price}</td></tr>{product_loop_end}</tbody></table></td></tr><tr>
				<td></td></tr><tr><td><table style="width: 100%;" border="0" cellpadding="2" cellspacing="2"><tbody>
				<tr align="left"><td align="left"><strong>{order_subtotal_lbl} : </strong></td><td align="right">{order_subtotal}</td>
				</tr>{if vat}<tr align="left"><td align="left"><strong>{vat_lbl} : </strong></td><td align="right">{order_tax}</td>
				</tr>{vat end if}{if discount}<tr align="left"><td align="left"><strong>{discount_lbl} : </strong></td>
				<td align="right">{order_discount}</td></tr>{discount end if}<tr align="left"><td align="left">
				<strong>{shipping_lbl} : </strong></td><td align="right">{order_shipping}</td></tr><tr align="left">
				<td colspan="2" align="left"><hr /></td></tr><tr align="left"><td align="left"><strong>{total_lbl} :</strong>
				</td><td align="right">{order_total}</td></tr><tr align="left"><td colspan="2" align="left"><hr /><br />
				 <hr /></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table>';
            }
            $print_tag = "<a onclick='window.print();' title='" . JText::_('COM_REDSHOP_PRINT') . "'>" . "<img src=" . JSYSTEM_IMAGES_PATH . "printButton.png  alt='" . JText::_('COM_REDSHOP_PRINT') . "' title='" . JText::_('COM_REDSHOP_PRINT') . "' /></a>";
            $search[] = "{print}";
            $replace[] = $print_tag;
            $search[] = "{order_id}";
            $replace[] = $OrdersDetail[0]->order_id;
            $search[] = "{order_number}";
            $replace[] = $OrdersDetail[0]->order_number;
            $search[] = "{order_date}";
            $replace[] = $redconfig->convertDateFormat($OrdersDetail[0]->cdate);
            $search[] = "{customer_note}";
            $replace[] = $OrdersDetail[0]->customer_note;
            // Set order paymethod name
            $search[] = "{payment_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_PAYMENT_METHOD');
            $search[] = "{payment_method}";
            $replace[] = $paymentmethod->order_payment_name;
            $statustext = $order_functions->getOrderStatusTitle($OrdersDetail[0]->order_status);
            $issplit = $OrdersDetail[0]->split_payment;
            $search[] = "{order_status}";
            if (trim($OrdersDetail[0]->order_payment_status) == 'Paid') {
                $orderPaymentStatus = JText::_('COM_REDSHOP_PAYMENT_STA_PAID');
            } elseif (trim($OrdersDetail[0]->order_payment_status) == 'Unpaid') {
                $orderPaymentStatus = JText::_('COM_REDSHOP_PAYMENT_STA_UNPAID');
            } elseif (trim($OrdersDetail[0]->order_payment_status) == 'Partial Paid') {
                $orderPaymentStatus = JText::_('COM_REDSHOP_PAYMENT_STA_PARTIAL_PAID');
            } else {
                $orderPaymentStatus = $OrdersDetail[0]->order_payment_status;
            }
            $replace[] = $statustext . " - " . $orderPaymentStatus;
            $search[] = "{order_status_order_only}";
            $replace[] = $statustext;
            $search[] = "{order_status_payment_only}";
            $replace[] = $orderPaymentStatus;
            $search[] = "{customer_note_lbl}";
            $replace[] = JText::_('COM_REDSHOP_COMMENT');
            $search[] = "{customer_note}";
            $replace[] = $OrdersDetail->customer_note;
            $search[] = "{shipping_method_lbl}";
            $replace[] = JText::_('COM_REDSHOP_SHIPPING_METHOD_LBL');
            $shipping_method = '';
            $shipping_rate_name = '';
            if ($OrdersDetail[0]->ship_method_id != '') {
                $ship_method = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $OrdersDetail[0]->ship_method_id)));
                if (count($ship_method) <= 1) {
                    $ship_method = explode("|", $OrdersDetail[0]->ship_method_id);
                }
                $shipping_method = "";
                $shipping_rate_name = "";
                if (count($ship_method) > 0) {
                    if (array_key_exists(1, $ship_method)) {
                        $shipping_method = $ship_method[1];
                    }
                    if (array_key_exists(2, $ship_method)) {
                        $shipping_rate_name = $ship_method[2];
                    }
                }
            }
            $search[] = "{shipping_method}";
            $replace[] = $shipping_method;
            $search[] = "{shipping}";
            $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_shipping);
            $search[] = "{shipping_rate_name}";
            $replace[] = $shipping_rate_name;
            $ordersprint_template = $carthelper->replaceBillingAddress($ordersprint_template, $billing);
            $ordersprint_template = $carthelper->replaceShippingAddress($ordersprint_template, $shipping);
            $product_name = "";
            $product_note = "";
            $product_price = "";
            $product_quantity = "";
            $product_total_price = "";
            $template_start = "";
            $template_middle = "";
            $template_end = "";
            if (strstr($ordersprint_template, "{product_loop_start}")) {
                $template_sdata = explode('{product_loop_start}', $ordersprint_template);
                $template_start = $template_sdata[0];
                $template_edata = explode('{product_loop_end}', $template_sdata[1]);
                $template_end = $template_edata[1];
                $template_middle = $template_edata[0];
            }
            $cart_tr = '';
            for ($i = 0; $i < count($OrderProducts); $i++) {
                $wrapper_name = "";
                if ($OrderProducts[$i]->wrapper_id) {
                    $wrapper = $producthelper->getWrapper($OrderProducts[$i]->product_id, $OrderProducts[$i]->wrapper_id);
                    if (count($wrapper) > 0) {
                        $wrapper_name = JText::_('COM_REDSHOP_WRAPPER') . ":<br/>" . $wrapper[0]->wrapper_name . "(" . $producthelper->getProductFormattedPrice($OrderProducts[$i]->wrapper_price) . ")";
                    }
                }
                if ($OrderProducts[$i]->is_giftcard == 1) {
                    $product_userfields = $producthelper->getuserfield($OrderProducts[$i]->order_item_id, 13);
                } else {
                    $product_userfields = $producthelper->getuserfield($OrderProducts[$i]->order_item_id);
                }
                $product_name = "<div  class='product_name'>" . $OrderProducts[$i]->order_item_name . "</div>";
                $product = $producthelper->getProductById($OrderProducts[$i]->product_id);
                $product_number = $OrderProducts[$i]->order_item_sku;
                $product_note = "<div  class='product_note'>" . $wrapper_name . "</div>";
                $product_total_price = "<div class='product_total_price'>" . $producthelper->getProductFormattedPrice($OrderProducts[$i]->product_final_price) . "</div>";
                $product_price = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($OrderProducts[$i]->product_item_price) . "</div>";
                $product_quantity = '<div class="product_quantity">' . $OrderProducts[$i]->product_quantity . '</div>';
                $cart_mdata = '';
                $uri = JURI::getInstance();
                $url = $uri->root();
                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 {
                            $product_image_path = "";
                        }
                    }
                } else {
                    if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . PRODUCT_DEFAULT_IMAGE)) {
                        $product_image_path = PRODUCT_DEFAULT_IMAGE;
                    } else {
                        $product_image_path = "";
                    }
                }
                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, $template_middle);
                $cart_mdata = str_replace("{product_thumb_image}", $product_image, $cart_mdata);
                $cart_mdata = str_replace("{product_attribute}", $OrderProducts[$i]->product_attribute, $cart_mdata);
                $cart_mdata = str_replace("{product_accessory}", $OrderProducts[$i]->product_accessory, $cart_mdata);
                $cart_mdata = str_replace("{product_wrapper}", '', $cart_mdata);
                $cart_mdata = str_replace("{product_number}", $product_number, $cart_mdata);
                $cart_mdata = str_replace("{product_number_lbl}", JText::_('COM_REDSHOP_PRODUCT_NUMBER'), $cart_mdata);
                $user_subscribe_detail = $producthelper->getUserProductSubscriptionDetail($OrderProducts[$i]->order_item_id);
                if (count($user_subscribe_detail) > 0 && $user_subscribe_detail->subscription_id) {
                    $subscription_detail = $producthelper->getProductSubscriptionDetail($OrderProducts[$i]->product_id, $user_subscribe_detail->subscription_id);
                    $selected_subscription = $subscription_detail->subscription_period . " " . $subscription_detail->period_type;
                    $cart_mdata = str_replace("{product_subscription_lbl}", JText::_('COM_REDSHOP_SUBSCRIPTION'), $cart_mdata);
                    $cart_mdata = str_replace("{product_subscription}", $selected_subscription, $cart_mdata);
                } else {
                    $cart_mdata = str_replace("{product_subscription_lbl}", "", $cart_mdata);
                    $cart_mdata = str_replace("{product_subscription}", "", $cart_mdata);
                }
                $cart_mdata = str_replace("{product_userfields}", $product_userfields, $cart_mdata);
                $cart_mdata = str_replace("{product_wrapper}", $product_note, $cart_mdata);
                $cart_mdata = str_replace("{product_price}", $product_price, $cart_mdata);
                $cart_mdata = str_replace("{product_quantity}", $product_quantity, $cart_mdata);
                $cart_mdata = str_replace("{product_total_price}", $product_total_price, $cart_mdata);
                $cart_tr .= $cart_mdata;
            }
            $ordersprint_template = $template_start . $cart_tr . $template_end;
            $search[] = "{order_subtotal}";
            $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_subtotal);
            if ($OrdersDetail[0]->order_tax <= 0) {
                $template_vat_sdata = explode('{if vat}', $ordersprint_template);
                $template_vat_start = $template_vat_sdata[0];
                $template_vat_edata = explode('{vat end if}', $template_vat_sdata[1]);
                $template_vat_end = $template_vat_edata[1];
                $template_vat_middle = $template_vat_edata[0];
                $ordersprint_template = $template_vat_start . $template_vat_end;
            } else {
                $search[] = "{if vat}";
                $replace[] = '';
                $search[] = "{order_tax}";
                $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_tax);
                $search[] = "{tax}";
                $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_tax);
                $search[] = "{vat_lbl}";
                $replace[] = JText::_('COM_REDSHOP_ORDER_TAX');
                $search[] = "{vat end if}";
                $replace[] = '';
            }
            if ($OrdersDetail[0]->payment_discount <= 0) {
                if (strstr($ordersprint_template, "{if payment_discount}")) {
                    $template_pd_sdata = explode('{if payment_discount}', $ordersprint_template);
                    $template_pd_start = $template_pd_sdata[0];
                    $template_pd_edata = explode('{payment_discount end if}', $template_pd_sdata[1]);
                    $template_pd_end = $template_pd_edata[1];
                    $template_pd_middle = $template_pd_edata[0];
                    $ordersprint_template = $template_pd_start . $template_pd_end;
                }
            } else {
                $OrdersDetail->order_discount = $OrdersDetail[0]->order_discount - $OrdersDetail[0]->payment_discount;
                $search[] = "{if payment_discount}";
                $replace[] = '';
                $search[] = "{payment_order_discount}";
                $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->payment_discount);
                $search[] = "{payment_discount_lbl}";
                $replace[] = JText::_('COM_REDSHOP_PAYMENT_DISCOUNT_LBL');
                $search[] = "{payment_discount end if}";
                $replace[] = '';
            }
            if ($OrdersDetail->order_discount <= 0) {
                if (strstr($ordersprint_template, "{if discount}")) {
                    $template_discount_sdata = explode('{if discount}', $ordersprint_template);
                    $template_discount_start = $template_discount_sdata[0];
                    $template_discount_edata = explode('{discount end if}', $template_discount_sdata[1]);
                    $template_discount_end = $template_discount_edata[1];
                    $template_discount_middle = $template_discount_edata[0];
                    $ordersprint_template = $template_discount_start . $template_discount_end;
                }
            } else {
                $search[] = "{if discount}";
                $replace[] = '';
                $search[] = "{order_discount}";
                $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_discount);
                $search[] = "{discount_lbl}";
                $replace[] = JText::_('COM_REDSHOP_ORDER_DISCOUNT');
                $search[] = "{discount end if}";
                $replace[] = '';
            }
            $search[] = "{order_id_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_ID');
            $search[] = "{order_number_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_NUMBER');
            $search[] = "{order_date_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_DATE');
            $search[] = "{order_status_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_STATUS');
            $search[] = "{shipping_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_SHIPPING');
            $search[] = "{order_information_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_INFORMATION');
            $search[] = "{billing_address_information_lbl}";
            $replace[] = JText::_('COM_REDSHOP_BILLING_ADDRESS_INFORMATION');
            $search[] = "{shipping_address_info_lbl}";
            $replace[] = JText::_('COM_REDSHOP_SHIPPING_ADDRESS_INFORMATION');
            $search[] = "{order_detail_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_DETAILS');
            $search[] = "{product_name_lbl}";
            $replace[] = JText::_('COM_REDSHOP_PRODUCT_NAME');
            $search[] = "{note_lbl}";
            $replace[] = JText::_('COM_REDSHOP_NOTE');
            $search[] = "{price_lbl}";
            $replace[] = JText::_('COM_REDSHOP_PRICE');
            $search[] = "{quantity_lbl}";
            $replace[] = JText::_('COM_REDSHOP_QUANTITY');
            $search[] = "{total_price_lbl}";
            $replace[] = JText::_('COM_REDSHOP_TOTAL_PRICE');
            $search[] = "{order_subtotal_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_SUBTOTAL');
            $search[] = "{product_number_lbl}";
            $replace[] = JText::_('COM_REDSHOP_PRODUCT_NUMBER');
            $search[] = "{total_lbl}";
            $replace[] = JText::_('COM_REDSHOP_ORDER_TOTAL');
            $search[] = "{order_shipping}";
            $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_shipping);
            $search[] = "{shipping}";
            $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_shipping);
            $search[] = "{order_total}";
            $replace[] = $producthelper->getProductFormattedPrice($OrdersDetail[0]->order_total);
            $message = str_replace($search, $replace, $ordersprint_template);
            $search = "";
            $replace = "";
            $body = $message;
            $pdfObj->AddPage();
            $pdfObj->WriteHTML($body, true, false, true, false, '');
        }
        $invoice_pdfName = "multiprintorder";
        $pdfObj->Output(JPATH_SITE . '/components/com_redshop/assets/document/invoice/' . $invoice_pdfName . ".pdf", "F");
        return $invoice_pdfName;
    }
Example #12
0
 public function createWebPacklabel($order_id, $specifiedSendDate, $order_status, $paymentstatus)
 {
     if (POSTDK_INTEGRATION && ($order_status == "S" && $paymentstatus == "Paid")) {
         $shippinghelper = new shipping();
         $order_details = $this->getOrderDetails($order_id);
         $details = explode("|", $shippinghelper->decryptShipping(str_replace(" ", "+", $order_details->ship_method_id)));
         if ($details[0] === 'plgredshop_shippingdefault_shipping' && !$order_details->order_label_create) {
             $generate_label = $this->generateParcel($order_id, $specifiedSendDate);
             if ($generate_label != "success") {
                 JError::raiseWarning(21, $generate_label);
             }
         }
     }
 }