function generateOrder($msc_id, $msc_option = null) { $vals = array(); $params = array(); $subtotal = 0.0; $order_number = $this->generateOrderNumber($this->user_id); $params['entry_type'] = 'msc_list'; $params['payment_price'] = 0.0; $params['payment_currency'] = 'USD'; $params['order_number'] = $order_number; $params['create_date'] = oseHTML2::getDateTime(); //date("Y-m-d H:i:s"); $params['payment_serial_number'] = substr($order_number, 0, 20); $params['payment_method'] = 'free'; $params['payment_mode'] = 'm'; $entry_type = 'msc'; $db = oseDB::instance(); $query = "SELECT * FROM `#__osemsc_ext`" . " WHERE `type` = 'payment' AND `id` = '{$msc_id}'"; $db->setQuery($query); $planPayment = oseDB::loadItem('obj'); $options = oseJSON::decode($planPayment->params, true); $paymentInfo = oseGetValue($options, $lc->entry_option, array()); $price = 0.0; $pVals = array(); $pVals['recurrence_mode'] = 'period'; $pVals['a3'] = $price; $pVals['p3'] = oseGetValue($paymentInfo, 'p3'); $pVals['t3'] = oseGetValue($paymentInfo, 't3'); $pVals['msc_option'] = $msc_option; $pVals['recurrence_mode'] = 'fixed'; $pVals['start_date'] = oseHtml2::getDateTime(); $pVals['expired_date'] = oseGetValue($this, 'expired_date', oseHtml2::getDateTime()); $pVals['isLicensee'] = 1; // set licensee true $this->set('isLicensee', true); $pVals['eternal'] = oseGetValue($paymentInfo, 'eternal'); $params['params'] = $pVals; $params['params']['total'] = $price; $params['params']['discount'] = $price; $params['params']['subtotal'] = $price; $params['params']['next_subtotal'] = $price; $params['params'] = oseJSON::encode($params['params']); $updated = oseDB::insert('#__osemsc_order', $params); if ($updated) { $order_id = $updated; $this->order_id = $order_id; } else { $result['success'] = false; $result['title'] = $result['status'] = 'Error'; $result['content'] = $result['result'] = JText::_('Error'); return $result; } $itemParams = array(); $itemParams['entry_type'] = $entry_type; $itemParams['payment_price'] = $price; $itemParams['payment_currency'] = 'USD'; $itemParams['create_date'] = oseHTML2::getDateTime(); //date("Y-m-d H:i:s"); $itemParams['payment_mode'] = 'm'; $itemParams['params'] = oseJSON::encode($pVals); $updated = oseDB::insert('#__osemsc_order_item', $itemParams); if ($updated) { $this->order_item_id = $updated; $result['success'] = true; $result['title'] = $result['status'] = JText::_('Done'); $result['content'] = $result['result'] = JText::_('Done'); } else { $result['success'] = false; $result['title'] = $result['status'] = 'Error'; $result['content'] = $result['result'] = JText::_('Order Generate Error'); } return $result; }