Пример #1
0
 public static function archive($msc_id, $member_id, $action)
 {
     $db = oseDB::instance();
     $date = oseHTML::getDateTime();
     $date = $db->Quote($date);
     $query = " INSERT INTO `#__osemsc_member_history` " . " (`msc_id`,`member_id`,`action`,`date`, `accumulated`) " . " VALUES " . " ({$msc_id},{$member_id},'{$action}',{$date}, '0') ";
     $db->setQuery($query);
     if (oseDB::query()) {
         return $db->insertid();
     } else {
         return false;
     }
 }
 function QuickpayOneOffPay($orderInfo, $params = array())
 {
     $pConfig = oseMscConfig::getConfig('payment', 'obj');
     $merchant = $pConfig->quickpay_merchant;
     $secret = $pConfig->quickpay_secret;
     $test_mode = $pConfig->quickpay_testmode;
     $cardtypelock = $pConfig->quickpay_cardtypelock;
     $autocapture = $pConfig->quickpay_autocapture;
     $autofee = $pConfig->quickpay_autofee;
     $lang = empty($pConfig->quickpay_lang) ? 'en' : $pConfig->quickpay_lang;
     $db = oseDB::instance();
     $member = oseRegistry::call('member');
     $member->instance($orderInfo->user_id);
     $payment = oseRegistry::call('payment');
     $paymentOrder = $payment->getInstance('Order');
     $billinginfo = $paymentOrder->getBillingInfo($orderInfo->user_id);
     $amount = $orderInfo->payment_price * 100;
     $currency = $orderInfo->payment_currency;
     $order_id = $orderInfo->order_id;
     $order_number = $orderInfo->order_number;
     $desc = self::generateDesc($order_id);
     $user =& JFactory::getUser($orderInfo->user_id);
     $order_id = sprintf("%04d", $order_id);
     $orderInfoParams = oseJson::decode($orderInfo->params);
     //$cancelUrl = JURI :: base()."index.php";
     $notifyUrl = JURI::base() . "components/com_osemsc/ipn/quickpay_notify.php";
     $returnUrl = urldecode(JROUTE::_(JURI::base() . "index.php?option=com_osemsc&view=thankyou&order_id=" . $orderInfo->order_id));
     $returnUrl = $returnUrl ? $returnUrl : JURI::base() . "index.php?option=com_osemsc&view=member&result=success&amount={$amount}&ordernumber={$order_number}";
     $date = oseHTML::getDateTime();
     $url = "https://secure.quickpay.dk/form/";
     $html['form'] = '<form action="' . $url . '" method="post">';
     // Construct variables for post
     $post_variables = array('protocol' => 5, 'msgtype' => 'authorize', 'merchant' => $merchant, 'language' => $lang, 'ordernumber' => $order_id, 'amount' => $amount, 'currency' => $currency, 'continueurl' => $returnUrl, 'continueurl' => $returnUrl, 'cancelurl' => $returnUrl, 'callbackurl' => $notifyUrl, 'autocapture' => $autocapture, 'autofee' => $autofee, 'cardtypelock' => $cardtypelock, 'description' => $desc, 'testmode' => $test_mode);
     $md5String = '';
     foreach ($post_variables as $name => $value) {
         $md5String .= $value;
     }
     $md5String .= $secret;
     $post_variables['md5check'] = md5($md5String);
     //print_r($post_variables);exit;
     $html['form'] .= '<input type="image" id="quickpay_image" name="cartImage" src="' . "components/com_osemsc/assets/images/checkout.png" . '" alt="' . JText::_('Click to pay with Quickpay') . '" />';
     // Process payment variables;
     $html['url'] = $url . "?";
     foreach ($post_variables as $name => $value) {
         $html['form'] .= '<input type="hidden" name="' . $name . '" value="' . htmlspecialchars($value) . '" />';
         $html['url'] .= $name . "=" . urlencode($value) . "&";
     }
     $html['form'] .= '</form>';
     return $html;
 }
 function AlipayOneOffPay($orderInfo, $params = array())
 {
     $pConfig = oseMscConfig::getConfig('payment', 'obj');
     $alipay_partner = $pConfig->alipay_partner;
     $alipay_key = $pConfig->alipay_key;
     $seller_email = $pConfig->alipay_seller_email;
     $db = oseDB::instance();
     $member = oseRegistry::call('member');
     $member->instance($orderInfo->user_id);
     $payment = oseRegistry::call('payment');
     $paymentOrder = $payment->getInstance('Order');
     $billinginfo = $paymentOrder->getBillingInfo($orderInfo->user_id);
     $amount = $orderInfo->payment_price;
     $currency = $orderInfo->payment_currency;
     $order_id = $orderInfo->order_id;
     $order_number = $orderInfo->order_number;
     $desc = self::generateDesc($order_id);
     $user =& JFactory::getUser($orderInfo->user_id);
     $orderInfoParams = oseJson::decode($orderInfo->params);
     //$cancelUrl = JURI :: base()."index.php";
     $notifyUrl = JURI::base() . "components/com_osemsc/ipn/alipay_notify.php";
     $returnUrl = urldecode($orderInfoParams->returnUrl);
     $returnUrl = $returnUrl ? $returnUrl : JURI::base() . "index.php?option=com_osemsc&view=member&result=success&amount={$amount}&ordernumber={$order_number}";
     $date = oseHTML::getDateTime();
     $url = "https://mapi.alipay.com/gateway.do?";
     $html['form'] = '<form action="' . $url . '" method="post">';
     // Construct variables for post
     $variables = array('service' => 'create_direct_pay_by_user', 'payment_type' => 1, 'partner' => $alipay_partner, 'seller_email' => $seller_email, '_input_charset' => 'utf-8', 'notify_url' => $notifyUrl, 'return_url' => $returnUrl, 'out_trade_no' => $order_number, 'subject' => $desc, 'body' => $desc, 'total_fee' => $amount, 'sign_type' => 'MD5');
     $post_variables = $this->buildRequestPara($variables, $alipay_key);
     //print_r($post_variables);exit;
     $html['form'] .= '<input type="image" id="alipay_image" name="cartImage" src="' . "components/com_osemsc/assets/images/checkout.png" . '" alt="' . JText::_('Click to pay with Alipay') . '" />';
     // Process payment variables;
     $html['url'] = $url . "?";
     foreach ($post_variables as $name => $value) {
         $html['form'] .= '<input type="hidden" name="' . $name . '" value="' . htmlspecialchars($value) . '" />';
         $html['url'] .= $name . "=" . urlencode($value) . "&";
     }
     $html['form'] .= '</form>';
     return $html;
 }
 function PayGateOneOffPay($orderInfo, $params = array())
 {
     $pConfig = oseMscConfig::getConfig('payment', 'obj');
     $paygate_id = $pConfig->paygate_id;
     $paygate_key = $pConfig->paygate_key;
     $db = oseDB::instance();
     $member = oseRegistry::call('member');
     $member->instance($orderInfo->user_id);
     $payment = oseRegistry::call('payment');
     $paymentOrder = $payment->getInstance('Order');
     $billinginfo = $paymentOrder->getBillingInfo($orderInfo->user_id);
     $amount = $orderInfo->payment_price * 100;
     $currency = $orderInfo->payment_currency;
     $order_id = $orderInfo->order_id;
     $order_number = $orderInfo->order_number;
     $desc = self::generateDesc($order_id);
     $currency = 'ZAR';
     $user =& JFactory::getUser($orderInfo->user_id);
     $orderInfoParams = oseJson::decode($orderInfo->params);
     //$cancelUrl = JURI :: base()."index.php";
     $notifyUrl = JURI::base() . "components/com_osemsc/ipn/paygate_notify.php";
     $returnUrl = urldecode($orderInfoParams->returnUrl);
     $returnUrl = $returnUrl ? $returnUrl : JURI::base() . "index.php?option=com_osemsc&view=member&result=success&amount={$amount}&ordernumber={$order_number}";
     $date = oseHTML::getDateTime();
     $CHECKSUM = md5("{$paygate_id}|{$order_number}|{$amount}|{$currency}|{$notifyUrl}|{$date}|{$user->email}|{$paygate_key}");
     $url = "https://www.paygate.co.za/paywebv2/process.trans";
     $html['form'] = '<form action="' . $url . '" method="post">';
     // Construct variables for post
     $post_variables = array('PAYGATE_ID' => $paygate_id, 'REFERENCE' => $order_number, 'AMOUNT' => $amount, 'CURRENCY' => $currency, 'RETURN_URL' => $notifyUrl, 'TRANSACTION_DATE' => $date, 'EMAIL' => $user->email, 'CHECKSUM' => $CHECKSUM);
     //print_r($post_variables);exit;
     $html['form'] .= '<input type="image" id="paygate_image" name="cartImage" src="' . "components/com_osemsc/assets/images/checkout.png" . '" alt="' . JText::_('Click to pay with PayGate') . '" />';
     // Process payment variables;
     $html['url'] = $url . "?";
     foreach ($post_variables as $name => $value) {
         $html['form'] .= '<input type="hidden" name="' . $name . '" value="' . htmlspecialchars($value) . '" />';
         $html['url'] .= $name . "=" . urlencode($value) . "&";
     }
     $html['form'] .= '</form>';
     return $html;
 }
Пример #5
0
 function generateOrderItem($order_id, $entry_id, $params = array())
 {
     $db = oseDB::instance();
     //$payment= oseMscAddon :: getExtInfo($msc_id, 'payment', 'obj');
     //$params['payment_currency']=(!empty($payment->currency)) ? $payment->currency : "USD";
     $params['create_date'] = empty($params['create_date']) ? oseHTML::getDateTime() : $params['create_date'];
     $keys = array_keys($params);
     $keys = '`' . implode('`,`', $keys) . '`';
     $values = array();
     foreach ($params as $key => $value) {
         $values[$key] = $db->Quote($value);
     }
     $values = implode(',', $values);
     $query = " INSERT INTO `{$this->table}_item` " . " (`order_id`,`entry_id`,{$keys}) " . " VALUES " . " ('{$order_id}' , '{$entry_id}', {$values})";
     $db->setQuery($query);
     if (oseDB::query()) {
         $order_id = $db->insertid();
         //$orderParams= $this->autoOrderParams($params['payment_mode'], $params['params']);
         //$this->updateOrder($order_id, 'pending', array('params' => $orderParams, 'payment_mode' => $params['payment_mode']));
         return $order_id;
     } else {
         return false;
     }
 }
Пример #6
0
 private function CreateRebill($customerId)
 {
     $db = oseDB::instance();
     $ccInfo = $this->get('ccInfo');
     $orderInfo = $this->get('orderInfo');
     $orderInfoParams = oseJson::decode(oseObject::getValue($orderInfo, 'params'));
     //$postVar['ewayCVN']= $credit_info["creditcard_cvv"];
     // Date Time
     $curDate = oseHTML::getDateTime();
     $date = new DateTime($curDate);
     $RebillInitDate = $date->format('d/m/Y');
     if (!empty($orderInfoParams->has_trial)) {
         $trialOccurrences = "1";
         //$mscTrialRecurrence = self::TranslateInterval($orderInfoParams->t1, $orderInfoParams->p1);
         //$recurStartDate = date("d/m/Y", strtotime("+ {$mscTrialRecurrence['length']} {$mscTrialRecurrence['unit']}"));
         //$mscRegRecurrence= self::TranslateInterval($orderInfoParams->t3, $orderInfoParams->p3);
         $query = " SELECT DATE_ADD('{$curDate}',INTERVAL {$orderInfoParams->p1} {$orderInfoParams->t1})";
     } else {
         $trialOccurrences = "0";
         //$mscRegRecurrence= self::TranslateInterval($orderInfoParams->t3, $orderInfoParams->p3);
         //$recurStartDate = date("d/m/Y", strtotime("+ {$mscRegRecurrence['length']} {$mscRegRecurrence['unit']}"));
         $query = " SELECT DATE_ADD('{$curDate}',INTERVAL {$orderInfoParams->p3} {$orderInfoParams->t3})";
     }
     $db->setQuery($query);
     $date->__construct($db->loadResult());
     $RebillStartDate = $date->format("d/m/Y");
     $query = " SELECT DATE_ADD('{$curDate}',INTERVAL 10 YEAR)";
     $db->setQuery($query);
     $date->__construct($db->loadResult());
     $RebillEndDate = $date->format("d/m/Y");
     $postVar = array();
     $postVar['RebillCustomerID'] = $customerId;
     $postVar['RebillInvRef'] = oseObject::getValue($orderInfo, 'order_number');
     $postVar['RebillInvDes'] = '';
     $postVar['RebillCCName'] = $ccInfo['ewayCardHoldersName'];
     $postVar['RebillCCNumber'] = $ccInfo['ewayCardNumber'];
     $postVar['RebillCCExpMonth'] = $ccInfo['ewayCardExpiryMonth'];
     $postVar['RebillCCExpYear'] = $ccInfo['ewayCardExpiryYear'];
     $postVar['RebillInitAmt'] = $orderInfo->payment_price * 100;
     $postVar['RebillInitDate'] = $RebillInitDate;
     $postVar['RebillRecurAmt'] = $orderInfoParams->next_total * 100;
     $postVar['RebillStartDate'] = $RebillStartDate;
     $postVar['RebillInterval'] = $orderInfoParams->p3;
     $postVar['RebillIntervalType'] = $this->transIntervlUnit($orderInfoParams->t3);
     $postVar['RebillEndDate'] = $RebillEndDate;
     //date("d/m/Y", strtotime("+ 3 years"));
     $result = $this->_soapcall('CreateRebillEvent', $postVar, true);
     return $result['CreateRebillEventResult'];
 }
Пример #7
0
 private static function joinInAutomaticMode($msc_id, $member_id, $orderInfo)
 {
     $db = oseDB::instance();
     $result = array();
     $result['success'] = true;
     $orderParams = oseJSON::decode($orderInfo->params);
     $start_date = oseHTML::getDateTime();
     $start_date = $db->Quote($start_date);
     if ($orderParams->has_trial) {
         $recurrence_num = $orderParams->p1 + 1;
         $recurrence_unit = $orderParams->t1;
     } else {
         $recurrence_num = $orderParams->p3 + 1;
         $recurrence_unit = $orderParams->t3;
     }
     $expired_date = " DATE_ADD({$start_date},INTERVAL {$recurrence_num} {$recurrence_unit}) ";
     $query = " UPDATE `#__osemsc_member` " . " SET  start_date = {$start_date} , expired_date = {$expired_date}" . " WHERE member_id = {$member_id} AND msc_id = {$msc_id} ";
     $db->setQuery($query);
     if (!oseDB::query()) {
         $result['success'] = false;
         $result['title'] = 'Error';
         $result['content'] = JText::_(' Fail Updated Member\'s Recurrence ');
         return $result;
     }
     return $result;
 }
Пример #8
0
 function getMemberAccessContent($type = 'joomla', $content_type, $member_id, $rType = 'array')
 {
     $db = oseDB::instance();
     $member = oseRegistry::call('member');
     $member->instance($member_id);
     $mscs = $member->getAllOwnedMsc(false, 1, 'obj');
     // get restricted of status 1; Step 1 get the start date
     $mValues = array();
     $startDate = array();
     foreach ($mscs as $msc) {
         $startDate[$msc->msc_id] = $msc->start_date;
         $mValues[] = $msc->msc_id;
     }
     if (!empty($mValues)) {
         $mValues = '(' . implode(',', $mValues) . ')';
         $bquery = " (entry_id IN {$mValues} AND entry_type = 'msc') " . " OR " . " (entry_id = '{$member_id}' AND entry_type = 'member') ";
     } else {
         $bquery = " (entry_id = '{$member_id}' AND entry_type = 'member') ";
     }
     // filter the intersect access content
     $aWhere = array();
     $aWhere[] = $bquery;
     $aWhere[] = "type = '{$type}'";
     $aWhere[] = "content_type = '{$content_type}'";
     $aWhere[] = "status = '1'";
     $aWhere = oseDB::implodeWhere($aWhere);
     $query = " SELECT DISTINCT content_id, params, entry_id" . " FROM `#__osemsc_content` " . $aWhere;
     $db->setQuery($query);
     $aObj = oseDB::loadList($rType);
     foreach ($aObj as $key => $sqeObj) {
         $params = oseJson::decode(oseObject::getValue($sqeObj, 'params', '{}'));
         $timeLength = oseObject::getValue($params, 'time_length', false);
         $time_unit = oseObject::getValue($params, 'time_unit', 'week');
         if ($timeLength) {
             // provided that entry type is msc
             $total = strtotime("+{$timeLength}  {$time_unit}", strtotime($startDate[oseObject::getValue($sqeObj, 'entry_id')]));
             $cur = strtotime(oseHTML::getDateTime());
             //oseExit($timeLength);
             if ($cur < $total) {
                 unset($aObj[$key]);
             }
         }
     }
     return $aObj;
 }
Пример #9
0
 function getEmailVariablesReceipt($order_id, $user_id = null)
 {
     $db = oseDB::instance();
     $content = array();
     // get Order Info
     $payment = oseRegistry::call('payment');
     $where = array();
     $where[] = "order_id = {$order_id}";
     $orderInfo = $payment->getOrder($where, 'obj');
     $orderInfoParams = oseJson::decode($orderInfo->params);
     $paymentInfo = oseMscAddon::getExtInfo($orderInfo->entry_id, 'payment', 'obj');
     $member = oseRegistry::call('member');
     $member->instance($orderInfo->user_id);
     $userInfo = $member->getBillingInfo('obj');
     $userInfo->email = $userInfo->user_email;
     $orderInfo->subtotal = $orderInfoParams->subtotal;
     $orderInfo->total = $orderInfoParams->recurrence_times > 1 ? $orderInfoParams->next_total : $orderInfoParams->total;
     $orderInfo->discount = isset($orderInfoParams->discount) ? $orderInfoParams->discount : 0;
     $gw = $payment->getInstance('GateWay');
     $gwInfo = $gw->getGWInfo($orderInfo->payment_method);
     if (!empty($gwInfo)) {
         if ($gwInfo->is_cc) {
             $orderInfo->payment_method = 'Credit Card';
         }
     }
     $orderInfo->itemlist = $this->generateOrderTable($order_id, $orderInfo->user_id);
     if ($orderInfo->payment_mode == 'm') {
         $orderInfo->payment_mode = JText::_('Manual Billing');
         $orderInfo->gross_tax = oseObject::getValue($orderInfoParams, 'gross_tax', '0.00');
         if ($orderInfo->gross_tax > 0) {
             $orderInfo->vat_number = oseObject::getValue($orderInfoParams, 'vat_number');
         }
     } else {
         $orderInfo->payment_mode = JText::_('Automatic Billing');
         $params = oseJson::decode($orderInfo->params);
         $price = null;
         if (oseObject::getValue($orderInfoParams, 'has_trial', 0)) {
             if (oseObject::getValue($orderInfoParams, 'recurrence_times', 0) <= 1) {
                 $orderInfo->gross_tax = oseObject::getValue($orderInfoParams, 'gross_tax', '0.00');
             } else {
                 $orderInfo->gross_tax = oseObject::getValue($orderInfoParams, 'next_gross_tax', '0.00');
             }
         } else {
             if (oseObject::getValue($orderInfoParams, 'recurrence_times', 0) <= 2) {
                 $orderInfo->gross_tax = oseObject::getValue($orderInfoParams, 'gross_tax', '0.00');
             } else {
                 $orderInfo->gross_tax = oseObject::getValue($orderInfoParams, 'next_gross_tax', '0.00');
             }
         }
         $orderInfo->vat_number = oseObject::getValue($orderInfoParams, 'vat_number');
         $orderInfo->recurring_price = $orderInfo->payment_currency . ' ' . $orderInfoParams->next_total;
         $orderInfo->recurring_frequency = $orderInfoParams->p3 . ' ' . $orderInfoParams->t3;
     }
     $query = "SELECT entry_id FROM `#__osemsc_order_item` WHERE `order_id` = " . $order_id;
     $db->setQuery($query);
     $msc_id = $db->loadResult();
     $query = " SELECT *,DATE_SUB(`expired_date`,INTERVAL 1 DAY) AS `real_expired_date` " . " FROM `#__osemsc_member`" . " WHERE member_id = {$orderInfo->user_id} AND msc_id={$msc_id}";
     $db->setQuery($query);
     $memberInfo = oseDB::loadItem('obj');
     $query = "SELECT * FROM `#__osemsc_acl` WHERE `id` = {$msc_id}";
     $db->setQuery($query);
     $mscInfo = oseDB::loadItem('obj');
     $memberInfo->msc_title = $mscInfo->title;
     $memberInfo->msc_des = $mscInfo->description;
     $orderInfo->current_date = oseHTML::getDateTime();
     $globalConfig = oseRegistry::call('msc')->getConfig('global', 'obj');
     if (!empty($globalConfig->DateFormat)) {
         $memberInfo->start_date = date($globalConfig->DateFormat, strtotime($memberInfo->start_date));
         $orderInfo->create_date = date($globalConfig->DateFormat, strtotime($orderInfo->create_date));
         $orderInfo->current_date = date($globalConfig->DateFormat, strtotime($orderInfo->current_date));
     }
     $content['user'] = $userInfo;
     $content['order'] = $orderInfo;
     $content['profile'] = $member->getProfile();
     $content['member'] = $memberInfo;
     return $content;
 }
Пример #10
0
 function BeanStreamCreateProfile($orderInfo, $credit_info, $params = array())
 {
     $updated = $this->BeanStreamOneOffPay($orderInfo, $credit_info, true, $params);
     //$updated = array();$updated['success'] = true;
     if ($updated['success']) {
         if (isset($updated['orderInfo'])) {
             $orderInfo = $updated['orderInfo'];
             unset($updated['orderInfo']);
         }
         $config = oseMscConfig::getConfig('', 'obj');
         $pConfig = $config;
         //oseRegistry::call('msc')->getConfig('payment', 'obj');
         $user =& JFactory::getUser($orderInfo->user_id);
         $app =& JFactory::getApplication();
         $Itemid = $this->getItemid();
         $merchant_id = $pConfig->beanstream_merchant_id;
         $username = $pConfig->beanstream_username;
         $password = $pConfig->beanstream_password;
         if (empty($merchant_id)) {
             return self::getErrorMessage('cc', '0001', null);
         }
         //require_once(OSEMSC_B_LIB.DS.'beanstreamsoap.php');
         $result = array();
         $db = oseDB::instance();
         $user_id = $orderInfo->user_id;
         $msc_id = $orderInfo->entry_id;
         $order_id = $orderInfo->order_id;
         $order_number = $orderInfo->order_number;
         $orderInfoParams = oseJson::decode($orderInfo->params);
         $desc = $this->generateDesc($order_id);
         $billingInfo = $this->getBillingInfo($orderInfo->user_id);
         $taxRate = isset($orderInfoParams->tax_rate) ? $orderInfoParams->tax_rate : 0;
         $currency = $orderInfo->payment_currency;
         $user =& JFactory::getUser($orderInfo->user_id);
         $amount = $orderInfoParams->next_total;
         if (empty($amount)) {
             return self::getErrorMessage('cc', '0002', null);
         }
         $postVar = array();
         /* $totalAmount in cents, as required by ePay:
         			The total amount in cents for the transaction, eg $1.00 = 100
         			*/
         // General
         $postVar['requestType'] = 'BACKEND';
         $postVar['merchant_id'] = $merchant_id;
         $postVar['username'] = $username;
         $postVar['password'] = $password;
         $postVar['trnAmount'] = $amount;
         $postVar['trnOrderNumber'] = substr($order_number, 0, 20);
         $postVar['trnType'] = 'P';
         $postVar['trnRecurring'] = 1;
         $postVar['paymentMethod'] = 'CC';
         $postVar['ref1'] = $order_id;
         $postVar['ref2'] = $orderInfoParams->timestamp;
         //$postVar['adjId']= $amount;
         // Card Info
         $postVar['trnCardOwner'] = $credit_info["creditcard_name"];
         $postVar['trnCardNumber'] = $credit_info["creditcard_number"];
         $postVar['trnExpMonth'] = substr($credit_info["creditcard_month"], -2);
         $postVar['trnExpYear'] = substr($credit_info["creditcard_year"], -2);
         $postVar['trnCardCvd'] = $credit_info["creditcard_cvv"];
         // Billing
         $postVar['ordName'] = $billingInfo->firstname . ' ' . $billingInfo->lastname;
         $postVar['ordEmailAddress'] = $billingInfo->email;
         $postVar['ordPhoneNumber'] = $billingInfo->telephone;
         $postVar['ordAddress1'] = $billingInfo->addr1;
         $postVar['ordCity'] = $billingInfo->city;
         $postVar['ordProvince'] = $billingInfo->state;
         $postVar['ordPostalCode'] = $billingInfo->postcode;
         $postVar['ordCountry'] = $billingInfo->country;
         // Recurring
         $curDate = oseHTML::getDateTime();
         /*
         			if($orderInfoParams->has_trial)
                     {
                     	$dateAdd = '+
         '.$orderInfoParams->p1.''.$orderInfoParams->t1;
                     	$startDate = strtotime($dateAdd,strtotime($curDate));
                     	$startDate = date('mdY',$startDate);
                     }
                     else
                     {
                     	$dateAdd = '+
         '.$orderInfoParams->p3.''.$orderInfoParams->t3;
                     	$startDate = strtotime($dateAdd,strtotime($curDate));
                     	$startDate = date('mdY',$startDate);
         
         }
         */
         if ($orderInfoParams->has_trial) {
             $nT1 = $this->BeanStreamTransInterval($orderInfoParams->t1);
             $query = " SELECT DATE_ADD('{$curDate}',INTERVAL {$orderInfoParams->p1} {$orderInfoParams->t1})";
         } else {
             $nT3 = $this->BeanStreamTransInterval($orderInfoParams->t3);
             $query = " SELECT DATE_ADD('{$curDate}',INTERVAL {$orderInfoParams->p3} {$orderInfoParams->t3})";
         }
         $db->setQuery($query);
         $date = new DateTime($db->loadResult());
         $startDate = $date->format("mdY");
         $postVar['rbCharge'] = 0;
         $postVar['rbFirstBilling'] = $startDate;
         $postVar['rbBillingPeriod'] = $this->BeanStreamTransInterval($orderInfoParams->t3);
         $postVar['rbBillingIncrement'] = $orderInfoParams->p3;
         // URL
         $postVar['errorPage'] = urlencode(JURI::root());
         $postVar['approvedPage'] = urlencode(JURI::root());
         $postVar['declinedPage'] = urlencode(JURI::root());
         $hostname = 'www.beanstream.com';
         $workstring = http_build_query($postVar);
         $uri = "/scripts/process_transaction.asp";
         require_once OSEMSC_B_LIB . DS . 'class.connection.php';
         $res = OSECONNECTOR::send_request_via_fsockopen($hostname, $uri, $workstring, 'urlencoded');
         $res = stristr($res, "\r\n\r\n");
         $res = trim($res);
         $post = array();
         parse_str($res, $post);
         if ($post['trnApproved']) {
             $updataParams = array();
             $updataParams['payment_serial_number'] = $post['rbAccountId'];
             //$updataParams['beanstream_rbAccountId'] = $post['rbAccountId'];
             $orderInfoParams->oneoff_transactionid = $orderInfo->payment_serial_number;
             $updataParams['params'] = oseJson::encode($orderInfoParams);
             $result = $this->updateOrder($order_id, 'confirmed', $updataParams);
             return $updated;
             //$this->confirmOrder($order_id,$updataParams);
         } else {
             return self::getErrorMessage('cc', '0000', JText::_('Joined Membership, but subscription fails creating. Error: ' . $post['messageText']));
         }
     } else {
         return $updated;
     }
 }
	private static function saveOS( $params )
	{
		$result = array();

    	//$post = JRequest::get('post');

    	$member_id = $params['member_id'];
		$payment_method = $params['payment_method'];


		//oseExit($params);
    	JRequest::setVar('member_id',$member_id);

    	if(empty($member_id))
    	{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Error1');

			return $result;
    	}

    	$params = array();

    	//$paymentCart = oseMscPublic::getCart();
    	$paymentCart = $cart = oseRegistry::call('payment')->getInstance('Cart');
    	$paymentCart->refreshCartItems($paymentCart->get('items'),$paymentCart->get('currency'));

		$osePaymentCurrency = $paymentCart->get('currency');
		$payment_mode = $paymentCart->getParams('payment_mode');
		$subtotal = $paymentCart->getSubtotal();

		if(empty($payment_mode))
    	{
    		$payment_mode = oseMscPublic::savePaymentMode();
    	}

		$items = $paymentCart->get('items');

		$oneItem = $items[0];

		$payment = oseRegistry::call('payment');

		$keys = array_keys($items);
    	//$payment_mode = $paymentCart->getParams('payment_mode');

		$order_number = $payment->generateOrderNumber( $member_id );

		$params['entry_type'] = 'msc_list';
		$params['payment_price'] = $paymentCart->get('total');
		$params['payment_currency'] = $osePaymentCurrency;
        $params['order_number'] = $order_number;
        $params['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");
		$params['payment_serial_number'] = substr($order_number,0,20);
		$params['payment_method'] = $payment_method;
		$params['payment_mode'] = $payment_mode;
		$params['payment_from'] = 'system_reg';

		$params['params'] = array();
		$params['params']['start_date'] = oseObject::getValue($oneItem,'start_date',null);
		$params['params']['expired_date'] = oseObject::getValue($oneItem,'expired_date',null);
		$params['params']['total'] = $paymentCart->get('total');
		if($paymentCart->getParams('coupon_range2') == 'all')
		{
			$params['params']['next_total'] = $params['params']['total'];
		}
		else
		{
			$params['params']['next_total'] = $paymentCart->get('next_total');
			//
		}
		
		//$params['params']['next_total'] = $params['params']['total'];//$paymentCart->get('next_total');
		$params['params']['discount'] = $paymentCart->get('discount');
		$params['params']['subtotal'] = $subtotal;
		$params['params']['coupon_user_id'] = $paymentCart->getParams('coupon_user_id');
		$params['params']['gross_tax'] = $paymentCart->getTaxParams('amount');
		$params['params']['next_gross_tax'] = $paymentCart->getTaxParams('next_amount');
		$params['params']['vat_number'] = $paymentCart->getTaxParams('vat_number');
		$params['params']['timestamp'] = uniqid("{$member_id}_",true);
		$params['params']['returnUrl'] = $paymentCart->getParams('returnUrl');
		if($payment_mode == 'a')
		{
			$params['params']['has_trial'] = oseObject::getValue($oneItem,'has_trial',0);
		}
		else
		{
			$params['params']['has_trial'] = 0;
		}

		$params['params']['a1'] = $paymentCart->get('total');
		$params['params']['p1'] = oseObject::getValue($oneItem,'p1',0);
		$params['params']['t1'] = oseObject::getValue($oneItem,'t1');
		$params['params']['a3'] = $paymentCart->get('next_total');
		$params['params']['p3'] = oseObject::getValue($oneItem,'p3',0);
		$params['params']['t3'] = oseObject::getValue($oneItem,'t3');
    	$params['params'] = oseJSON::encode($params['params']);

		$list = oseMscAddon :: getAddonList('register_order', false, 1, 'obj');
    	foreach($list as $addon) {
			$action_name= 'register_order.'.$addon->name.'.add';
			//echo $action_name;
			$params = oseMscAddon :: runAction($action_name, $params);
		}

		$paymentOrder = $payment->getInstance('Order');
		$updated = $paymentOrder->generateOrder('', $member_id, $params);

		if($updated)
		{
			$order_id = $updated;
			$result['order_id'] = $order_id;
			JRequest::setVar('order_id',$order_id);
		}
		else
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Error2');

			return $result;
		}

		//$paymentOrder->__construct('#__osemsc_order_item');
		foreach($items as $item)
		{
			$itemParams = array();

			$entry_type = oseObject::getValue($item,'entry_type');

			switch($entry_type)
			{
				case('license'):
					$license_id = oseObject::getValue($item,'entry_id');

					$license = oseRegistry::call('lic')->getInstance(0);
					$licenseInfo = $license->getKeyInfo($license_id,'obj');
					//oseExit($item);
					$licenseInfoParams = oseJson::decode($licenseInfo->params);

					$msc_id = $licenseInfoParams->msc_id;
				break;

				case('msc'):
					$msc_id = oseObject::getValue($item,'entry_id');
				break;
			}
			$msc_option = oseObject::getValue($item,'msc_option');

			//$paymentInfos = oseRegistry::call('msc')->getExtInfo($msc_id,'payment','obj');
			//$paymentInfo = oseObject::getValue($paymentInfos,$msc_option);

			if ( oseObject::getValue($item,'eternal'))
	        {
	        	$itemParams['payment_mode'] = 'm';
	        }
	        else
	        {
	        	$itemParams['payment_mode'] = $payment_mode;
	        }

			$price = oseObject::getValue($item,'a3');
			if($payment_mode == 'a')
			{
				if(oseObject::getValue($item,'has_trial'))
				{
					$price = oseObject::getValue($item,'a1');
				}
			}

			//$price = $payment->pricing($price,$msc_id,$osePaymentCurrency);

			$itemParams['entry_type'] = oseObject::getValue($item,'entry_type');
			$itemParams['payment_price'] = oseObject::getValue($item,'first_raw_price');
			$itemParams['payment_currency'] = $osePaymentCurrency;
	        $itemParams['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");

	        $price_params = $payment->generateOrderParams($msc_id,$price,$payment_mode,$msc_option);
	        $price_params['start_date'] = oseObject::getValue($item,'start_date',null);
			$price_params['expired_date'] = oseObject::getValue($item,'expired_date',null);
			$price_params['recurrence_mode'] = oseObject::getValue($item,'recurrence_mode','period');
	        $itemParams['params'] = oseJSON::encode($price_params);

	        $paymentInfos = oseMscAddon::getExtInfo($msc_id,'payment','obj');
	        $paymentInfo = oseObject::getValue($paymentInfos,$msc_option);

			$updated = $paymentOrder->generateOrderItem($order_id,oseObject::getValue($item,'entry_id'), $itemParams);
		}
		//$paymentOrder->__construct('#__osemsc_order');

		if($updated)
		{
			/*
			$vmorder=self::AddVmOrder($msc_id,$params,$order_number,$paymentInfo);
			if(!$vmorder['success'])
			{
				return $vmorder;
			}
			*/
			$result['success'] = true;
			$result['title'] = JText :: _('Done');
			$result['content'] = JText :: _('Done');
		}
		else
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Order Generate Error');
		}

		return $result;

	}
Пример #12
0
	function onAfterRoute() {
		$mainframe= JFactory :: getApplication();
		if($mainframe->isAdmin()) {
			return; // Dont run in admin
		}
		if (file_exists(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'init.php') && file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_ose_cpu'.DS.'define.php') && !file_exists(JPATH_ADMINISTRATOR.DS.'components'.DS.'com_osemsc'.DS.'installer.dummy.ini'))
		{
			require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'init.php');
		}
		else
		{
			return false;
		}

		$db= oseDB :: instance();
		$current_date= oseHTML :: getDateTime();
		$pluginParams= $this->params;
		if($pluginParams->get('registrationRedirect', false) == true) {
			self :: registrationRedirect($mainframe);
		}
		if($pluginParams->get('use2columnLayout', false) == true) {
			self :: twocolumnRedirect($mainframe);
		}
		if($pluginParams->get('enable_componentControl', false) == true) {
			$isComponentControlled= self :: isComponentControlled();
			if($isComponentControlled == true) {
				$com_redmenuid= $pluginParams->def('com_redmenuid', null);
				self :: redirect(null,null,$com_redmenuid);
			}
		}
		if($pluginParams->get('enable_menuControl', false) == true) {
			$isMenuControlled= self :: isMenuControlled();
			$user = JFactory::getUser();
			$menu= & JSite :: getMenu();
			$item= $menu->getActive();
			if (empty($item))
			{
				return;
			}
			$oseContent = oseRegistry :: call('content');
			$futureDate = $oseContent->getInstance('msc')->getSequentialMessage($type = 'joomla', 'menu', $item->id, $user->id,'obj');
			$redmessage= $this->params->def('redmessage',null);
			if (!empty($futureDate))
			{
				$DefMsgtoNonmembers = str_replace('[FUTURETIME]',$futureDate, $redmessage);
			}else{
				$DefMsgtoNonmembers = str_replace('[FUTURETIME]','', $redmessage);
			}
			if($isMenuControlled == true) {
				$menu_redmenuid= $pluginParams->def('menu_redmenuid', null);
				self :: redirect(null,$DefMsgtoNonmembers,$menu_redmenuid);
			}
		}
		$option= JRequest :: getCmd('option', null);
		$controller= JRequest :: getCmd('controller', null);
		if($option == 'com_ose_download') {
			if($pluginParams->get('enable_osedownloadControl', false)) {
				self :: checkOSEDownload();
			}
		}
		if($option == 'com_phocadownload') {
			if($pluginParams->get('enable_phocaControl', false)) {
				self :: checkPhocaDownload();
			}
		}
		if($option == 'com_mtree') {
			if($pluginParams->get('enable_mtreeControl', false)) {
				self :: checkMtree();
			}
		}
		if($option == 'com_hwdvideoshare') {
			if($pluginParams->get('enable_hwdvideoshareControl', false)) {
				self :: checkHWD();
			}
		}
		if($option == 'com_hwdmediashare') {
			if($pluginParams->get('enable_hwdmediashareControl', false)) {
				self :: checkHWDMedia();
			}
		}
		if($option == 'com_sobi2') {
			if($pluginParams->get('enable_sobi2Control', false)) {
				self :: checkSobi2();
			}
		}
		if($option == 'com_sobipro') {
			if($pluginParams->get('enable_sobiproControl', false)) {
				self :: checkSobiPro();
			}
		}
		if($option == 'com_rokdownloads') {
			if($pluginParams->get('enable_rokdownloadControl', false)) {
				self :: checkRokdownload();
			}
		}
		if($option == 'com_jdownloads') {
			if($pluginParams->get('enable_jdownloadsControl', false)) {
				self :: checkJdownloads();
			}
		}
		if($option == 'com_ariquiz') {
			if($pluginParams->get('enable_ariquizControl', false)) {
				self :: checkAriquiz($pluginParams);
			}
		}
		if($option == 'com_community') {
			if($pluginParams->get('enable_jomsocialRegRedirect', false)) {
				self :: jomsocialRegRedirect();
			}
			if($pluginParams->get('enable_JomRegRedirect', false)) {
				self :: jomRegRedirect();
			}
		}
		if($option == 'com_eventbooking') {
			if($pluginParams->get('enable_eventbookingControl', false)) {
				self :: checkEventbooking();
			}
		}
		if ($pluginParams->get('force_ssl', false)) {
			$ssl = (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS']=='on' OR $_SERVER['HTTPS']==true))?true:false;
			$view= JRequest :: getCmd('view', null);
			if ($ssl==false && $option == 'com_osemsc' && $view=='register')
			{
				$menu = &JSite::getMenu();
				$item = $menu->getActive();
				$currentURL = JURI::current();
				$currentURL = str_replace("http", "https", $currentURL);
				$redirecturl= JRoute :: _($currentURL."?option=com_osemsc&view=register&Itemid=".$item->id);
				$redirecturl= str_replace("&amp;", "&", $redirecturl);
				$mainframe ->redirect($redirecturl);
			}
		}
		if($pluginParams->get('force_user_to_member', false)) {
			$delete_users= $pluginParams->get('delete_users', false);
			self :: forceUsertoMember($delete_users);
		}
	}
Пример #13
0
    /**

     * This method should handle any login logic and report back to the subject

     *

     * @access	public

     * @param   array   holds the user data

     * @param 	array   array holding options (remember, autoregister, group)

     * @return	boolean	True on success

     * @since	1.5

     */
    function onUserLogin($user, $options = array())
    {
    	require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'init.php');
        $mainframe = JFactory::getApplication();
        $db = JFactory::getDBO();
        $option=JRequest::getVar("option");
        jimport('joomla.user.helper');
        if ($mainframe->isAdmin() )
        {
            return; // Dont run in admin
        }

        $pluginParams = $this->params;
        //$loginRedirection = $pluginParams->get('loginRedirection');  // Move to OSE Router;
        $singleLogin = $pluginParams->get('singleLogin');
		$loginRedirect= $pluginParams->get('loginRedirect');
		$autoUpdate = $pluginParams->get('autoUpdateOnLogin');
		$autoUpdateGroup = $pluginParams->get('autoUpdateGroup');
		$user = self::getUser($user);

		// Update BillingInfo names;
		$query = " SELECT user_id, firstname FROM #__osemsc_billinginfo WHERE user_id = ".(int)$user->id;
		$db->setQuery($query);
		$objects = $db->loadObject();
		if (!empty($objects->user_id) && empty($objects->firstname))
		{
			$thisUser = JFactory::getUser($objects->user_id);
			$names = explode(' ',$thisUser->name);
			$firstname =  $db->Quote($names[0]);
			$lastname = count($names)>1?$names[1]:'null';
			$lastname =  $db->Quote($lastname);
			$query = "UPDATE `#__osemsc_billinginfo` SET `firstname` = {$firstname},`lastname` = {$lastname}  WHERE `user_id` = ".(int)$user->id;
			$db->setQuery($query);
			$db->Query();
		}

		$query = " SELECT user_id, lastname FROM #__osemsc_billinginfo WHERE user_id = ".(int)$user->id;
		$db->setQuery($query);
		$objects = $db->loadObject();
		if (!empty($objects->user_id) && empty($objects->lastname))
		{
			$query = "UPDATE `#__osemsc_billinginfo` SET `lastname` = (SELECT lastname FROM #__osemsc_userinfo WHERE user_id = ".(int)$user->id.") WHERE `user_id` =".(int)$user->id;
			$db->setQuery($query);
			$db->Query();
		}
		// BillingInfo names;
		$enableVMUser = $pluginParams->get('enableVMUser');
		if ($enableVMUser==true)
			{
				$oseUser['user_id'] = oseObject::getValue($user,'id');
				$query= "SELECT * FROM `#__virtuemart_userinfos` WHERE `address_type` = 'BT' AND `virtuemart_user_id` = ". (int)$user->id;
				$db->setQuery($query);
				$result= $db->loadObject();
				if(!empty($result)) {
					$query = "SELECT `country_3_code` FROM `#__virtuemart_countries` WHERE  `virtuemart_country_id` = ". $db->Quote($result->virtuemart_country_id);
					$db->setQuery($query);
					$country_3_code=$db->loadResult();
					if (!empty($country_3_code))
					{
						$result->country = $country_3_code;
					}
					else
					{
						$result->country = substr($result->country, 0,3);
					}

					$query = "SELECT `state_2_code` FROM `#__virtuemart_states` WHERE  `virtuemart_state_id` = ". $db->Quote($result->virtuemart_state_id);
					$db->setQuery($query);
					$state_2_code=$db->loadResult();
					if (!empty($state_2_code))
					{
						$result->state = $state_2_code;
					}
					else
					{
						$result->state = substr($result->state, 0,2);
					}
					
					$query= "SELECT count(*) FROM `#__osemsc_billinginfo` WHERE `user_id` = ". (int)$user->id;
					$db->setQuery($query);
					$result2= $db->loadResult();
					if (empty($result2))
					{
						$query= "INSERT INTO `#__osemsc_billinginfo` (`user_id`, `firstname`, `lastname`, `company`, `addr1`, `addr2`, `city`, `state`, `country`, `postcode`, `telephone`) VALUES
						(".(int)$user->id.", '{$result->first_name}', '{$result->last_name}', '{$result->company}', '{$result->address_1}', '{$result->address_2}', '{$result->city}', '{$result->state}', '{$result->country}', '{$result->zip}', '{$result->phone_1}');";
					}
					else
					{
						$query = " UPDATE `#__osemsc_billinginfo` " .
								 " SET `firstname` = '{$result->first_name}', " .
								 " `lastname` = '{$result->last_name}', " .
								 " `company` = '{$result->company}', " .
								 " `addr1` = '{$result->address_1}', " .
								 " `addr2` = '{$result->address_2}', " .
								 " `city` = '{$result->city}', " .
								 " `state` = '{$result->state}', " .
								 " `country` = '{$result->country}', " .
								 " `postcode` = '{$result->zip}', " .
								 " `telephone` = '{$result->phone_1}' " .
								 " WHERE `user_id` =".(int)$user->id;
					}
					$db->setQuery($query);
					$db->query();

				}
			}
		if ($autoUpdate==true && !empty($autoUpdateGroup))
		{
			if (!class_exists("oseMscPublic"))
			{
				require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'helpers'.DS.'oseMscPublic.php');
			}
			oseAppConfig::load('msc');
            $cart = oseMscPublic::getCart();
            $items = $cart->get('items');
			$update = true;
            if(count($items) >0)
            {
             	foreach($items as $item)
            	{
            		if($item['entry_id'] == $autoUpdateGroup)
            		{
            			$update = false;
            		}
            	}
            }

            $query = " SELECT count(*) FROM #__osemsc_member WHERE msc_id = ".(int)$autoUpdateGroup." AND member_id=".(int)$user->id;
			$db->setQuery($query);
			$exists = $db->loadResult();
        	if ($update && empty($exists))
        	{
				// join msc
				if($mainframe->isSite())
            	{
            		$cart = oseMscPublic::getCart();
            		// get current item
            		$cCart = $cart->cart;
            		$cart->init();
            		$cart->__construct();
            		$cart->updateParams('payment_mode','m');
	            	$paymentInfo = oseRegistry::call('msc')->getPaymentMscInfo($autoUpdateGroup,$cart->get('currency'),0);
					$nItem = array('entry_id'=>$autoUpdateGroup,'entry_type'=>'msc','msc_option'=>oseObject::getValue($paymentInfo,'msc_option'));
					$cart->addItem($nItem['entry_id'],$nItem['entry_type'],$nItem);

					$cart->update();

            		//$orderPaymentInfo = array();//$cart->output();
            		oseMscAddon::runAction('register.payment.save',array('member_id'=>$user->id,'payment_method'=>'none'), true, false);
            		$order_id = JRequest::getInt('order_id',0);
					oseRegistry::call('payment')->getInstance('Order')->confirmOrder($order_id, array());

            		$cart->init();
            		$cart->__construct();


            		$cart1 = oseMscPublic::getCart();$cart1->__construct();
            		$cart1->cart = $cCart;
            		$cart1->update();

            	}
            	else
            	{
            		$cart = oseMscPublic::getCart();
            		// get current item
            		//$cItems = $cart->output();
            		//$cart->init();
            		$cart->updateParams('payment_mode','m');
	            	$paymentInfo = oseRegistry::call('msc')->getPaymentMscInfo($autoUpdateGroup,$cart->get('currency'),0);
					$nItem = array('entry_id'=>$autoUpdateGroup,'entry_type'=>'msc','msc_option'=>oseObject::getValue($paymentInfo,'msc_option'));
					$cart->addItem($nItem['entry_id'],$nItem['entry_type'],$nItem);

					$cart->update();

            		$orderPaymentInfo = array();//$cart->output();
            		$orderResult = oseMscAddon::runAction('register.payment.save',array('member_id'=>$user->id,'payment_method'=>'none'), true, false);
            		$order_id = JRequest::getInt('order_id',0);
					oseRegistry::call('payment')->getInstance('Order')->confirmOrder($order_id, array());
            		$cart->init();
            		/*$orderPaymentInfo = $cart->output();
            		oseMscPublic::generateOrder($user['id'],'none',$orderPaymentInfo);
            		$order_id = JRequest::getInt('order_id',0);oseExit($order_id);
					oseRegistry::call('payment')->getInstance('Order')->confirmOrder($order_id, array());*/
            	}
        	}
		}
    	$member = oseRegistry::call('member');
		$member->instance($user->id);
		$mscs = $member->getAllOwnedMsc(true,null,'obj');
		$date = oseHTML::getDateTime();
		$date = strtotime($date);
		$updateStatus = false;
		if(!empty($mscs))
		{
			foreach($mscs as $msc)
			{
				$startdate = strtotime($msc->start_date);
				$expdate = strtotime($msc->expired_date);
				$params = oseJson::decode($msc->params);
				
				if($msc->status && ($startdate>$date) && (($date<$expdate) || $msc->eternal == 1 || $msc->expired_date == '0000-00-00 00:00:00'))
				{
					$updateStatus = true;
					$status = 0;
				}elseif(empty($msc->status) && ($startdate < $date) && (($date<$expdate) || $msc->eternal == 1 || $msc->expired_date == '0000-00-00 00:00:00'))
				{
					$updateStatus = true;
					$status = 1;
				}
				
				if($updateStatus)
				{
					$query = "SELECT * FROM `#__osemsc_order_item` WHERE `order_id` = ".$params->order_id;
					$db->setQuery($query);
					$orderItem = $db->loadObject();
					$orderItemParams = oseJson::decode($orderItem->params);
					if($orderItemParams->recurrence_mode == 'fixed')
					{
						$query = "UPDATE `#__osemsc_member` SET `status` = '{$status}' WHERE `id` = ".$msc->id;
						$db->setQuery($query);
						$db->query();
					}
				}
				
			}
		}
 	    if ($singleLogin>0)
	    {
		  self::singleLogin($singleLogin, $db, $user, $mainframe);
	    }
        if ($loginRedirect == true)
        {
        	if (!empty($user))
        	{
				self::loginRedirect($user->id);
        	}
        }

       return true;
    }
Пример #14
0
 function getMemberRestrictedContent($type = 'joomla', $content_type, $member_id, $rType = 'array')
 {
     $db = oseDB::instance();
     $member = oseRegistry::call('member');
     $member->instance($member_id);
     $mscs = $member->getAllOwnedMsc(false, 1, 'obj');
     // get restricted of status 1; Step 1 get the start date
     $mValues = array();
     $startDate = array();
     foreach ($mscs as $msc) {
         $startDate[$msc->msc_id] = $msc->start_date;
         $mValues[] = $msc->msc_id;
     }
     if (!empty($mValues)) {
         $mValues = '(' . implode(',', $mValues) . ')';
         $cquery = " (child.entry_id IN {$mValues} AND child.entry_type = 'msc') " . " OR " . " (child.entry_id = '{$member_id}' AND child.entry_type = 'member') ";
         $bquery = " (entry_id IN {$mValues} AND entry_type = 'msc') " . " OR " . " (entry_id = '{$member_id}' AND entry_type = 'member') ";
     } else {
         $cquery = " (child.entry_id = '{$member_id}' AND child.entry_type = 'member') ";
         $bquery = " (entry_id = '{$member_id}' AND entry_type = 'member') ";
     }
     $cWhere = array();
     $cWhere[] = $cquery;
     $cWhere[] = "child.type = '{$type}'";
     $cWhere[] = "child.content_type = '{$content_type}'";
     $cWhere[] = "child.status = '1'";
     $cWhere = oseDB::implodeWhere($cWhere);
     $pWhere = array();
     $pWhere[] = "parent.type = '{$type}'";
     $pWhere[] = "parent.content_type = '{$content_type}'";
     $pWhere[] = "parent.status = '1'";
     $pWhere = oseDB::implodeWhere($pWhere);
     $query = " SELECT parent.* FROM `{$this->table}` AS parent" . " WHERE parent.content_id NOT IN (" . " \t\tSELECT DISTINCT child.content_id " . " \t\tFROM `{$this->table}` AS child" . $cWhere . " )" . " AND " . str_replace('WHERE', '', $pWhere);
     $db->setQuery($query);
     //oseExit($db->_sql);
     $objs = oseDB::loadList($rType);
     // get restricted of status -1;
     $bWhere = array();
     $bWhere[] = $bquery;
     $bWhere[] = "type = '{$type}'";
     $bWhere[] = "content_type = '{$content_type}'";
     $bWhere[] = "status = '-1'";
     $bWhere = oseDB::implodeWhere($bWhere);
     $query = " SELECT DISTINCT content_id " . " FROM `{$this->table}` " . $bWhere;
     $db->setQuery($query);
     $banObj = oseDB::loadList($rType);
     if (empty($objs)) {
         $objs = array();
     }
     if (empty($banObj)) {
         $banObj = array();
     }
     // get restricted of sequential, status = 1
     $query = " SELECT DISTINCT child.content_id, child.entry_id, child.params " . " \tFROM `{$this->table}` AS child" . $cWhere;
     $db->setQuery($query);
     $sqeObjs = oseDB::loadList($rType);
     foreach ($sqeObjs as $key => $sqeObj) {
         $params = oseJson::decode(oseObject::getValue($sqeObj, 'params', '{}'));
         $timeLength = oseObject::getValue($params, 'time_length', false);
         if ($timeLength) {
             // provided that entry type is msc
             $total = strtotime("+{$timeLength}  week", strtotime($startDate[oseObject::getValue($sqeObj, 'entry_id')]));
             $cur = strtotime(oseHTML::getDateTime());
             //oseExit($timeLength);
             if ($cur > $total) {
                 unset($sqeObjs[$key]);
             }
         } else {
             unset($sqeObjs[$key]);
         }
     }
     $objs = array_merge($objs, $banObj, $sqeObjs);
     //oseExit(oseDB::loadList($rType));
     return $objs;
 }
Пример #15
0
	private static function saveOS($params) {
		$result = array();
		$member_id = $params['member_id'];
		$payment_method = $params['payment_method'];
		JRequest::setVar('member_id', $member_id);
		if (empty($member_id)) {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error1');
			return $result;
		}
		$params = array();
		$paymentCart = $cart = oseRegistry::call('payment')->getInstance('Cart');
		$paymentCart->refreshCartItems($paymentCart->get('items'), $paymentCart->get('currency'));
		$osePaymentCurrency = $paymentCart->get('currency');
		$payment_mode = $paymentCart->getParams('payment_mode');
		$subtotal = $paymentCart->getSubtotal();
		if (empty($payment_mode)) {
			$payment_mode = oseMscPublic::savePaymentMode();
		}
		$items = $paymentCart->get('items');
		$oneItem = $items[0];
		$payment = oseRegistry::call('payment');
		$keys = array_keys($items);
		$order_number = $payment->generateOrderNumber($member_id);
		$params['entry_type'] = 'msc_list';
		$params['payment_price'] = $paymentCart->get('total');
		$params['payment_currency'] = $osePaymentCurrency;
		$params['order_number'] = $order_number;
		$params['create_date'] = oseHTML::getDateTime();
		$params['payment_serial_number'] = substr($order_number, 0, 20);
		$params['payment_method'] = $payment_method;
		$params['payment_mode'] = $payment_mode;
		$params['payment_from'] = 'system_reg';
		$params['params'] = array();
		$params['params']['start_date'] = oseObject::getValue($oneItem, 'start_date', null);
		$params['params']['expired_date'] = oseObject::getValue($oneItem, 'expired_date', null);
		$params['params']['total'] = $paymentCart->get('total');
		$params['params']['next_total'] = $paymentCart->get('next_total');
		$params['params']['discount'] = $paymentCart->get('discount');
		$params['params']['subtotal'] = $subtotal;
		$params['params']['coupon_user_id'] = $paymentCart->getParams('coupon_user_id');
		$params['params']['gross_tax'] = $paymentCart->getTaxParams('amount');
		$params['params']['next_gross_tax'] = $paymentCart->getTaxParams('next_amount');
		$params['params']['vat_number'] = $paymentCart->getTaxParams('vat_number');
		$params['params']['timestamp'] = uniqid("{$member_id}_", true);
		$params['params']['returnUrl'] = $paymentCart->getParams('returnUrl');
		if ($payment_mode == 'a') {
			$params['params']['has_trial'] = oseObject::getValue($oneItem, 'has_trial', 0);
		} else {
			$params['params']['has_trial'] = 0;
		}
		$sisow_issuerid = JRequest::getVar('sisow_issuerid');
		if ($sisow_issuerid) {
			$params['params']['sisow_issuerid'] = $sisow_issuerid;
		}
		$sisow_payment = JRequest::getVar('sisow_payment');
		if ($sisow_payment) {
			$params['params']['sisow_payment'] = $sisow_payment;
		}
		$params['params']['a1'] = $paymentCart->get('total');
		$params['params']['p1'] = oseObject::getValue($oneItem, 'p1', 0);
		$params['params']['t1'] = oseObject::getValue($oneItem, 't1');
		$params['params']['a3'] = $paymentCart->get('next_total');
		$params['params']['p3'] = oseObject::getValue($oneItem, 'p3', 0);
		$params['params']['t3'] = oseObject::getValue($oneItem, 't3');
		$params['params'] = oseJSON::encode($params['params']);
		$list = oseMscAddon::getAddonList('register_order', false, 1, 'obj');
		foreach ($list as $addon) {
			$action_name = 'register_order.' . $addon->name . '.add';
			$params = oseMscAddon::runAction($action_name, $params);
		}
		$paymentOrder = $payment->getInstance('Order');
		$updated = $paymentOrder->generateOrder('', $member_id, $params);
		if ($updated) {
			$order_id = $updated;
			$result['order_id'] = $order_id;
			JRequest::setVar('order_id', $order_id);
		} else {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error2');
			return $result;
		}
		foreach ($items as $item) {
			$itemParams = array();
			$entry_type = oseObject::getValue($item, 'entry_type');
			switch ($entry_type) {
			case ('license'):
				$license_id = oseObject::getValue($item, 'entry_id');
				$license = oseRegistry::call('lic')->getInstance(0);
				$licenseInfo = $license->getKeyInfo($license_id, 'obj');
				$licenseInfoParams = oseJson::decode($licenseInfo->params);
				$msc_id = $licenseInfoParams->msc_id;
				break;
			case ('msc'):
				$msc_id = oseObject::getValue($item, 'entry_id');
				break;
			}
			$msc_option = oseObject::getValue($item, 'msc_option');
			if (oseObject::getValue($item, 'eternal')) {
				$itemParams['payment_mode'] = 'm';
			} else {
				$itemParams['payment_mode'] = $payment_mode;
			}
			$price = oseObject::getValue($item, 'a3');
			if ($payment_mode == 'a') {
				if (oseObject::getValue($item, 'has_trial')) {
					$price = oseObject::getValue($item, 'a1');
				}
			}
			$itemParams['entry_type'] = oseObject::getValue($item, 'entry_type');
			$itemParams['payment_price'] = oseObject::getValue($item, 'first_raw_price');
			$itemParams['payment_currency'] = $osePaymentCurrency;
			$itemParams['create_date'] = oseHTML::getDateTime();
			$price_params = $payment->generateOrderParams($msc_id, $price, $payment_mode, $msc_option);
			$price_params['start_date'] = oseObject::getValue($item, 'start_date', null);
			$price_params['expired_date'] = oseObject::getValue($item, 'expired_date', null);
			$price_params['recurrence_mode'] = oseObject::getValue($item, 'recurrence_mode', 'period');
			$itemParams['params'] = oseJSON::encode($price_params);
			$paymentInfos = oseMscAddon::getExtInfo($msc_id, 'payment', 'obj');
			$paymentInfo = oseObject::getValue($paymentInfos, $msc_option);
			$updated = $paymentOrder->generateOrderItem($order_id, oseObject::getValue($item, 'entry_id'), $itemParams);
		}
		if ($updated) {
			$result['success'] = true;
			$result['title'] = JText::_('Done');
			$result['content'] = JText::_('Done');
		} else {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Order Generate Error');
		}
		$emailConfig = oseMscConfig::getConfig('email', 'obj');
		if (!empty($emailConfig->order_notification)) {
			$db = oseDB::instance();
			$where = array();
			$where[] = '`order_id` = ' . $db->Quote($order_id);
			$orderInfo = $paymentOrder->getOrder($where, 'obj');
			$memEmail = oseRegistry::call('member')->getInstance('Email');
			$receipt = $memEmail->getOrderNotification($orderInfo);//print_r($receipt);exit;
			$memEmail->sendToAdminGroup($receipt, $emailConfig->admin_group);
		}
		return $result;
	}
Пример #16
0
	function generateOrder($member_id, $payment_method, $orderPaymentInfo) {
		return oseRegistry::call('msc')->runAddonAction('register.payment.save', array('member_id' => $member_id, 'payment_method' => $payment_method), true, false);
		$result = array();
		if (empty($member_id)) {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error');
			return $result;
		}
		$paymentOrder = oseRegistry::call('payment')->getInstance('Order');
		$params = array();
		$items = $orderPaymentInfo['items'];
		unset($orderPaymentInfo['items']);
		$order_number = $paymentOrder->generateOrderNumber($member_id);
		$orderPaymentInfo['order_number'] = $order_number;
		$orderPaymentInfo['entry_type'] = 'msc_list';
		$orderPaymentInfo['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");
		$orderPaymentInfo['payment_serial_number'] = substr($orderPaymentInfo['order_number'], 0, 20);
		$orderPaymentInfo['payment_method'] = 'system';
		$orderPaymentInfo['payment_from'] = 'system_admin';
		$orderPaymentInfo['payment_mode'] = 'm';
		oseObject::setParams($orderPaymentInfo, array('time_stamp' => uniqid("{$member_id}_", true)));
		// Extra Order Params Updating Function
		$list = oseMscAddon::getAddonList('register_order', true, 1, 'obj');
		foreach ($list as $addon) {
			$action_name = 'register_order.' . $addon->name . '.add';
			//echo $action_name;
			$params = oseMscAddon::runAction($action_name, $orderPaymentInfo['params'], true, false);
		}
		// generate Order
		$updated = $paymentOrder->generateOrder('', $member_id, $orderPaymentInfo);
		if (!$updated) {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error');
			return $result;
		}
		// generate orer item
		// in the backend, only manual payment
		$order_id = $result['order_id'] = $updated;
		$payment_mode = 'm';
		foreach ($items as $item) {
			$itemParams = array();
			$entry_type = oseObject::getValue($item, 'entry_type');
			switch ($entry_type) {
			case ('license'):
				$license_id = oseObject::getValue($item, 'entry_id');
				$license = oseRegistry::call('lic')->getInstance(0);
				$licenseInfo = $license->getKeyInfo($license_id, 'obj');
				$licenseInfoParams = oseJson::decode($licenseInfo->params);
				$msc_id = $licenseInfoParams->msc_id;
				break;
			case ('msc'):
				$msc_id = oseObject::getValue($item, 'entry_id');
				break;
			}
			$msc_option = oseObject::getValue($item, 'msc_option');
			if (oseObject::getValue($item, 'eternal')) {
				$itemParams['payment_mode'] = 'm';
			} else {
				$itemParams['payment_mode'] = 'm';
			}
			$price = oseObject::getValue($item, 'a3');
			if ($payment_mode == 'a') {
				if (oseObject::getValue($item, 'has_trial')) {
					$price = oseObject::getValue($item, 'a1');
				}
			}
			$itemParams['entry_type'] = oseObject::getValue($item, 'entry_type');
			$itemParams['payment_price'] = 0;//oseObject::getValue($item,'first_raw_price');
			$itemParams['payment_currency'] = $orderPaymentInfo['payment_currency'];
			$itemParams['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");
			$price_params = $paymentOrder->generateOrderParams($msc_id, $price, $payment_mode, $msc_option);
			$price_params['start_date'] = oseObject::getValue($item, 'start_date', null);
			$price_params['expired_date'] = oseObject::getValue($item, 'expired_date', null);
			$itemParams['params'] = oseJSON::encode($price_params);
			$paymentInfos = oseMscAddon::getExtInfo($msc_id, 'payment', 'obj');
			$paymentInfo = oseObject::getValue($paymentInfos, $msc_option);
			$updated = $paymentOrder->generateOrderItem($order_id, oseObject::getValue($item, 'entry_id'), $itemParams);
		}
		if ($updated) {
			$result['success'] = true;
			$result['title'] = JText::_('Done');
			$result['content'] = JText::_('Done');
		} else {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Order Generate Error');
		}
		return $result;
	}
Пример #17
0
 function queryRebill($type)
 {
     $orderInfo = $this->get('orderInfo');
     $orderInfoParams = oseJson::decode(oseObject::getValue($orderInfo, 'params'));
     $postVar = array();
     $postVar['RebillID'] = oseObject::getValue($orderInfo, 'payment_serial_number');
     $postVar['RebillCustomerID'] = $orderInfoParams->RebillCustomerID;
     switch ($type) {
         case 'today':
             $postVar['startDate'] = date('Y-m-d', strtotime('-1 day', strtotime(oseHTML::getDateTime())));
             $postVar['endDate'] = date('Y-m-d', strtotime('+1 day', strtotime(oseHTML::getDateTime())));
             $postVar['status'] = 'Successful';
             $action = 'QueryTransactions';
             $resultKey = 'QueryTransactionsResult';
             break;
         case 'next':
             $action = 'QueryNextTransaction';
             $resultKey = 'QueryNextTransactionResult';
             break;
         case 'bill':
             $action = 'QueryRebillEvent';
             $resultKey = 'RebillEventDetails';
             break;
     }
     $resArray = $this->_soapcall($action, $postVar, true);
     $resArray = $resArray[$resultKey];
     if (!empty($resArray)) {
         $resArray['success'] = true;
         return $resArray;
     } else {
         return $this->getErrorMessage('cc', '0004', $resArray['ErrorDetails']);
     }
 }
Пример #18
0
	private static function activateInAutomaticMode($msc_id,$member_id,$orderInfo,$ext)
	{
		$db = oseDB::instance();
		
		$result = array();
		$result['success'] = true;
		
		
		$orderParams = oseJSON::decode($orderInfo->params);
		
		$start_date = oseHTML::getDateTime();
		$start_date = $db->Quote($start_date);
		
		$recurrence_num = $orderParams->p3;
		$recurrence_unit = $orderParams->t3;
		
		$expired_date = " DATE_ADD({$start_date},INTERVAL {$recurrence_num} {$recurrence_unit}) ";
		
		$query = " UPDATE `#__osemsc_member` "
				." SET  expired_date = {$expired_date}"
				." WHERE member_id = {$member_id} AND msc_id = {$msc_id} "
				;
		$db->setQuery($query);
		//oseExit($db->_sql);
		
		if(!oseDB::query())
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_(' Fail Updated Member\'s Recurrence ');
			
			return $result;
		}
		
		$query = " SELECT expired_date FROM `#__osemsc_member` "
				." WHERE member_id = {$member_id} AND msc_id = {$msc_id} "
				;
		$db->setQuery($query);
		$end_date = $db->loadResult();
		$end_date = $db->Quote($end_date);
		$expired_date = " DATE_ADD({$end_date},INTERVAL 1 DAY) ";
		
		if(oseObject::getValue($orderParams,'recurrence_times',0) > 1)
		{
			
		}
		else
		{
			$query = " UPDATE `#__osemsc_member` "
					." SET  expired_date = {$expired_date}"
					." WHERE member_id = {$member_id} AND msc_id = {$msc_id} "
					;
			$db->setQuery($query);
			//oseExit($db->_sql);
			
			if(!oseDB::query())
			{
				$result['success'] = false;
				$result['title'] = 'Error';
				$result['content'] = JText::_(' Fail Updated Member\'s Recurrence ');
				
				return $result;
			}
		}
			
		
		return $result;
	}
Пример #19
0
	private static function saveOS( $params )
	{
		$result = array();

    	$post = JRequest::get('post');

    	$member_id = $params['member_id'];
		$payment_method = $params['payment_method'];
		//oseExit($params);
    	JRequest::setVar('member_id',$member_id);

    	if(empty($member_id))
    	{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Error');

			return $result;
    	}

    	$params = array();

    	$paymentCart = oseMscPublic::getCart();
		$subtotal = $paymentCart->getSubtotal();

		$items = $paymentCart->get('items');

		$osePaymentCurrency = $paymentCart->get('currency');

		$payment = oseRegistry::call('payment');

		$keys = array_keys($items);
    	$payment_mode = $paymentCart->getParams('payment_mode');

		$order_number = $payment->generateOrderNumber( $member_id );

		$params['entry_type'] = 'msc_list';
		$params['payment_price'] = $subtotal;
		$params['payment_currency'] = $osePaymentCurrency;
        $params['order_number'] = $order_number;
        $params['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");
		$params['payment_serial_number'] = substr($order_number,0,20);
		$params['payment_method'] = $payment_method;
		$params['payment_mode'] = $payment_mode;

		//$paymentOrder->__construct('#__osemsc_order_item');

		$params['params'] = array();
		foreach($items as $item)
		{
			$entry_type = oseObject::getValue($item,'entry_type');

			switch($entry_type)
			{
				case('license'):
					$license_id = oseObject::getValue($item,'entry_id');

					$license = oseRegistry::call('lic')->getInstance(0);
					$licenseInfo = $license->getKeyInfo($license_id,'obj');
					//oseExit($item);
					$licenseInfoParams = oseJson::decode($licenseInfo->params);

					$msc_id = $licenseInfoParams->msc_id;
				break;

				case('msc'):
					$msc_id = oseObject::getValue($item,'entry_id');
				break;
			}
			$msc_option = oseObject::getValue($item,'msc_option');

			$paymentInfos = oseRegistry::call('msc')->getExtInfo($msc_id,'payment','obj');
			$paymentInfo = oseObject::getValue($paymentInfos,$msc_option);

			$price = $paymentInfo->a3;
			if($payment_mode == 'a')
			{
				if($paymentInfo->has_trial)
				{
					$price = $paymentInfo->a1;
				}
			}

			$price = $payment->pricing($price,$msc_id,$osePaymentCurrency);

			$params['params'] = $payment->generateOrderParams($msc_id,$price,$payment_mode,$msc_option);
		}

		//oseExit($params['params']);
		$params['params']['total'] = $paymentCart->get('total');
		$params['params']['discount'] = $paymentCart->get('discount');
		$params['params']['subtotal'] = $subtotal;
		$params['params']['next_subtotal'] = $paymentCart->get('next_subtotal');
    	$params['params'] = oseJSON::encode($params['params']);

		//$config = oseRegistry::call('msc')->getConfig('payment','obj');
        //$params['payment_from'] = $config->payment_system;


		$paymentOrder = $payment->getInstance('Order');
		$updated = $paymentOrder->generateOrder('', $member_id, $params);

		if($updated)
		{
			$order_id = $updated;

			JRequest::setVar('order_id',$order_id);
		}
		else
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Error');

			return $result;
		}

		//$paymentOrder->__construct('#__osemsc_order_item');
		foreach($items as $item)
		{
			$itemParams = array();

			$entry_type = oseObject::getValue($item,'entry_type');

			switch($entry_type)
			{
				case('license'):
					$license_id = oseObject::getValue($item,'entry_id');

					$license = oseRegistry::call('lic')->getInstance(0);
					$licenseInfo = $license->getKeyInfo($license_id,'obj');
					//oseExit($item);
					$licenseInfoParams = oseJson::decode($licenseInfo->params);

					$msc_id = $licenseInfoParams->msc_id;
				break;

				case('msc'):
					$msc_id = oseObject::getValue($item,'entry_id');
				break;
			}
			$msc_option = oseObject::getValue($item,'msc_option');

			$paymentInfos = oseRegistry::call('msc')->getExtInfo($msc_id,'payment','obj');
			$paymentInfo = oseObject::getValue($paymentInfos,$msc_option);

			$price = $paymentInfo->a3;
			if($payment_mode == 'a')
			{
				if($paymentInfo->has_trial)
				{
					$price = $paymentInfo->a1;
				}
			}

			$price = $payment->pricing($price,$msc_id,$osePaymentCurrency);

			$itemParams['entry_type'] = oseObject::getValue($item,'entry_type');
			$itemParams['payment_price'] = oseObject::getValue($item,'first_raw_price');
			$itemParams['payment_currency'] = $osePaymentCurrency;
	        $itemParams['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");

	        $price_params = $payment->generateOrderParams($msc_id,$price,$payment_mode,$msc_option);
	        //$itemParams['msc_id'] = $msc_id;
	        $itemParams['params'] = oseJSON::encode($price_params);

	        $paymentInfos = oseMscAddon::getExtInfo($msc_id,'payment','obj');
	        $paymentInfo = oseObject::getValue($paymentInfos,$msc_option);

	        if ( $paymentInfo->payment_mode == $payment_mode || $paymentInfo->payment_mode == 'b')
			{
				$itemParams['payment_mode'] = $payment_mode;
			}
			else
			{
				$itemParams['payment_mode'] = $paymentInfo->payment_mode;
			}

			$updated = $paymentOrder->generateOrderItem($order_id,oseObject::getValue($item,'entry_id'), $itemParams);
		}
		//$paymentOrder->__construct('#__osemsc_order');

		if($updated)
		{
			/*
			$vmorder=self::AddVmOrder($msc_id,$params,$order_number,$paymentInfo);
			if(!$vmorder['success'])
			{
				return $vmorder;
			}
			*/
			$result['success'] = true;
			$result['title'] = JText :: _('Done');
			$result['content'] = JText :: _('Done');
		}
		else
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Order Generate Error');
		}

		return $result;
	}
Пример #20
0
	public static function save($params)
	{
		$now = oseHTML::getDateTime();
		
		$result = array();
		$result['success'] = true;
		
		if(empty($params['allow_work']))
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_("Error");
			return $result;
		}
		unset($params['allow_work']);
		
		if($params['join_from'] != 'payment')
		{
			$result['success'] = true;
			$result['title'] = 'Done';
			$result['content'] = JText::_("Done");
			return $result;
		}
		
		$post = JRequest::get('post');
		
		$member_id = $params['member_id'];
		
		$db = oseDB::instance();
		
		$user = JFactory::getUser();
		
		$query = " SELECT * FROM `#__oselic_cs_keys_view`" 
    			." WHERE user_id = {$member_id}"
    			;
    	$db->setQuery($query);
    	
    	$item = oseDB::loadItem('obj'); 
    	$company_id = $item->company_id;

		//oseExit($company);
    	
        $query = " SELECT eternal, expired_date FROM `#__osemsc_member`"
    		." WHERE member_id = {$member_id}"
    		;
    	$db->setQuery($query);
    	$obj = $db->loadObject();
    	
    	$publish_down = empty($obj->eternal)?$obj->expired_date:'0000-00-00 00:00:00';
    	
    	$query = " SELECT directory_id FROM `#__osemsc_directory`"
    			." WHERE company_id = {$company_id}"
    			;
    	$db->setQuery($query);
    	$directory_id = $db->loadResult();
    	
    	if (empty ($directory_id)) 
    	{
    		$query = " INSERT INTO `#__mt_links` (user_id,link_published,link_approved,link_created,publish_down) VALUES ('{$member_id}','1','1','{$now}', '$publish_down')";
    		$db->setQuery($query);
    		
    		if(!oseDB::query())
    		{
    			$result['success'] = false;
				$result['title'] = 'Error';
				$result['content'] = JText::_("Error");
				return $result;
    		}
    		
    		$newMtLinkID = $db->insertid();
    		
    		//Insert the image
                $query = " SELECT cf_id FROM `#__mt_customfields`"
                      ." WHERE caption = 'Image' AND field_type = 'image'";
            	$db->setQuery($query);
            	$cf_id = $db->loadResult();
            
            
           	 $query = " INSERT INTO `#__mt_cfvalues` (cf_id, link_id) VALUES ('{$cf_id}', '{$newMtLinkID}')";
           	 $db->setQuery($query);
            
           	 if(!oseDB::query())
           	 {
             	  	 $result['success'] = false;
              	  	 $result['title'] = 'Error';
               		 $result['content'] = JText::_("Error");
               		 return $result;
           	 }
            
           	 $query = " INSERT INTO `#__mt_cfvalues_att` (cf_id, link_id) VALUES ('{$cf_id}', '{$newMtLinkID}')";
          	  $db->setQuery($query);
            
          	  if(!oseDB::query())
           	 {
             		$result['success'] = false;
                	$result['title'] = 'Error';
                	$result['content'] = JText::_("Error");
                	return $result;
           	 }
            
    		
    		$query = " INSERT INTO `#__osemsc_directory` (company_id) VALUES ({$company_id})";
    		$db->setQuery($query);
    		
    		if(!oseDB::query())
    		{
    			$result['success'] = false;
				$result['title'] = 'Error';
				$result['content'] = JText::_("Error");
				return $result;
    		}
    		
    		$newDirID = $db->insertid();
    		
    		$query = " INSERT INTO `#__osemsc_mtrel` (link_id,directory_id) "
    				." VALUES ('{$newMtLinkID}','{$newDirID}')"
    				;
    		$db->setQuery($query);
    		
    		if(!oseDB::query())
    		{
    			$result['success'] = false;
				$result['title'] = 'Error';
				$result['content'] = JText::_("Error");
				return $result;
    		}
    		
			$result['success'] = true;
			$result['title'] = 'Done';
			$result['content'] = JText::_('Joined Directory.');
		} 
		else 
		{
			$result['success'] = true;
			$result['title'] = 'Done';
			$result['content'] = JText::_('Joined Directory.');
			
		}
		//echo $query;exit;
		
		return $result;
	}
Пример #21
0
	private function searchMembers($intervaldays,$field) {
		//$intervaldays++;
		$db= JFactory :: getDBO();
		$date = oseHTML::getDateTime();
				$query= " SELECT mem.msc_id, mem.member_id, mem.params,mem.expired_date, mem.notified,muv.* FROM `#__osemsc_member` AS mem " .
				" INNER JOIN `#__osemsc_userinfo_view` AS muv ON muv.user_id = mem.member_id " .
				" WHERE DATEDIFF( mem.expired_date, '{$date}' ) BETWEEN {$intervaldays} AND {$intervaldays}+1 AND (mem.{$field} <> 1 OR mem.{$field} IS NULL) AND mem.status = 1 AND muv.primary_contact = 1";
		$db->setQuery($query);
		$member_ids= $db->loadObjectList();
		if(!empty($member_ids))
		{
			foreach($member_ids as $k => $member)
			{
				$memParams = oseJson::decode($member->params);
				if(oseObject::getValue($memParams,'payment_mode','m') == 'm')
				{
					$dDiff = strtotime($member->expired_date) -  strtotime(oseHtml::getDateTime());
					if( $dDiff >= ($intervaldays * 86400) && $dDiff < ($intervaldays * 86400+86400))
					{
						continue;
					}
					else
					{
						unset($member_ids[$k]);
					}
				}
				else
				{
					$dDiff = strtotime($member->expired_date) -  strtotime(oseHtml::getDateTime());
					if( $dDiff >= ($intervaldays * 86400+86400) && $dDiff < ($intervaldays * 86400+86400*2))
					{
						continue;
					}
					else
					{
						unset($member_ids[$k]);
					}
				}
			}
		}
		
		return $member_ids;
	}