예제 #1
0
	public static function save($params)
	{
		$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']);
		
		
		
		//oseExit($params);
		$db = oseDB::instance();
		$post = JRequest::get('post');
		$msc_id = $params['msc_id'];
		$member_id = $params['member_id'];
		
		if(empty($msc_id))
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_("Join History: No Membership ");
		}
		
		$history = oseRegistry::call('member')->getInstance('History');
		$updated = $history->record($msc_id,$member_id,'join');
		if(!$updated)
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_(" Fail Record Member's Footprint! ");
		}
		
		// Order problem for system add
		$hisParams = oseJSON::encode(array('order_id' => $params['order_id']));
		
		$query = " UPDATE `#__osemsc_member_history`"
				." SET params = ".$db->Quote($hisParams)
				." WHERE id = {$updated}"
				;
		$db->setQuery($query);
		//oseExit($db->_sql);
		if(!oseDB::query())
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Join.Order.2');
		}
		
		
		return $result;
		
	}
예제 #2
0
	public static function save($params) {
		$result = array();
		$result['success'] = true;
		if (empty($params['allow_work'])) {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Join.Order.1');
			return $result;
		}
		unset($params['allow_work']);
		if ($params['join_from'] != 'payment') {
			$result['success'] = true;
			$result['title'] = JText::_('Done');
			$result['content'] = JText::_('Done Join.Order');
			return $result;
		}
		$db = oseDB::instance();
		$msc_id = $params['msc_id'];
		$member_id = $params['member_id'];
		$order_id = $params['order_id'];
		$order_item_id = $params['order_item_id'];
		$where = array();
		$where[] = "order_id = {$order_id}";
		$payment = oseRegistry::call('payment');
		$curOrder = $payment->getOrder($where, 'obj');
		$member = oseRegistry::call('member');
		$member->instance($member_id);
		$memParams = $member->getMemberInfo($msc_id, 'obj')->memParams;
		if (empty($memParams)) {
			$memParams = new stdClass();
		} else {
			$memParams = oseJSON::decode($memParams);
		}
		$memParams->order_id = $order_id;
		$memParams->payment_mode = $curOrder->payment_mode;
		$memParams->order_item_id = $order_item_id;
		// Order problem for system add
		$memParams = oseJSON::encode($memParams);
		$query = " UPDATE `#__osemsc_member`" . " SET `params` = " . $db->Quote($memParams) . " WHERE msc_id = {$msc_id} AND member_id = {$member_id}";
		$memConfig = oseMscConfig::getConfig('register', 'obj');
		$db->setQuery($query);
		if (!oseDB::query()) {
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Join.Order.2');
		}
		// User activation function;
		$params = JComponentHelper::getParams('com_users');
		$useractivation = $params->get('useractivation');
		if (oseObject::getValue($memConfig, 'disabled_non_paid', false) == true) {
			if ($useractivation == 0) {
				$query = " UPDATE `#__users` SET `block` = 0 where `id` = " . $member_id;
				$db->setQuery($query);
				$db->query();
			}
		}
		return $result;
	}
예제 #3
0
	public function getMemlist() {
		$model = $this->getModel('memlist');
		$result = $model->getMemlist();
		if ($result['total'] < 1) {
			$result['total'] = 0;
		}
		$result = oseJSON::encode($result);
		echo $result;
		exit;
	}
예제 #4
0
 function getEndDateList()
 {
     $model = $this->getModel('memlist');
     $result = $model->getEndDateList();
     if (count($result['results']) < 1) {
         $result['total'] = 0;
     }
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #5
0
 function getUsers()
 {
     $model = $this->getModel('members');
     $result = $model->getUsers();
     if ($result['total'] < 1) {
         $result['total'] = 0;
     }
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #6
0
 function getOptions()
 {
     $model = $this->getModel('daily');
     $result = $model->getOptions();
     if (count($result['results']) < 1) {
         $result['total'] = 0;
     }
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #7
0
	function registerCode() {
		$regCode = JRequest::getString('regCode');
		$mainframe = &JFactory::getApplication();
		$return = array();
		if (empty($regCode)) {
			$return['results'] = 'ERROR';
			$return['text'] = "Registration code is empty";
			echo oseJSON::encode($return);
			exit;
		}
		$user = &JFactory::getUser();
		if ($user->guest) {
			$return['results'] = 'ERROR';
			$return['text'] = "Guest users are not allowed to register codes.";
			echo oseJSON::encode($return);
			exit;
		}
		$model = $this->getModel('addons');
		$items = $model->hasMembership($user->id, 1);
		if (empty($items)) {
			$return['results'] = 'ERROR';
			$Itemid = JRequest::getInt("Itemid");
			$red = str_replace("&amp;", "&", JRoute::_("index.php?option=com_osemsc&view=register&Itemid=" . $Itemid));
			$return['text'] = "Please <a href ='" . $red . "'>subscribe a membership</a> before you register your device.";
			echo oseJSON::encode($return);
			exit;
		}
		if ($user->id) {
			$results = $model->registerCode($regCode, $user->id);
			if ($results == "success") {
				$return['results'] = 'SUCCESS';
				$return['text'] = "Congratulations! Your device is regsitered.";
				echo oseJSON::encode($return);
				exit;
			} elseif ($results == "registered") {
				$return['results'] = 'SUCCESS';
				$return['text'] = "Your device is already regsitered.";
				echo oseJSON::encode($return);
				exit;
			} else {
				$return['results'] = 'ERROR';
				$return['text'] = "Device registration failed, please contact administrators for this issue.";
				echo oseJSON::encode($return);
				exit;
			}
		}
	}
예제 #8
0
 function getStore()
 {
     $db = oseDB::instance();
     $query = "SELECT * FROM `#__osemsc_fields` WHERE `published` = '1' ORDER BY `ordering`";
     $db->setQuery($query);
     $objs = $db->loadObjectList();
     $arrays = array();
     $arrays[] = array('name' => 'id', 'type' => 'int', 'mapping' => 'id');
     $arrays[] = array('name' => 'member_id', 'type' => 'int', 'mapping' => 'member_id');
     $arrays[] = array('name' => 'username', 'type' => 'string', 'mapping' => 'username');
     $arrays[] = array('name' => 'name', 'type' => 'string', 'string' => 'name');
     foreach ($objs as $obj) {
         $arrays[] = array('name' => 'field' . $obj->id, 'type' => 'string', 'mapping' => 'field' . $obj->id);
     }
     $list = oseJSON::encode($arrays);
     return $list;
 }
예제 #9
0
 public static function save($params)
 {
     $result = array();
     $result['success'] = true;
     //oseExit($params);
     if (empty($params['allow_work'])) {
         $result['success'] = false;
         $result['title'] = 'Error';
         $result['content'] = JText::_('Error Join.Order.1');
         return $result;
     }
     unset($params['allow_work']);
     if ($params['join_from'] != 'payment') {
         $result['success'] = true;
         $result['title'] = JText::_('Done');
         $result['content'] = JText::_('Done Join.Order');
         return $result;
     }
     $db = oseDB::instance();
     //$post = JRequest::get('post');
     $msc_id = $params['msc_id'];
     $member_id = $params['member_id'];
     $order_id = $params['order_id'];
     $where = array();
     $where[] = "order_id = {$order_id}";
     $payment = oseRegistry::call('payment');
     $curOrder = $payment->getOrder($where, 'obj');
     $member = oseRegistry::call('member');
     $member->instance($member_id);
     $memParams = $member->getMemberInfo($msc_id, 'obj')->memParams;
     $memParams = oseJSON::decode($memParams);
     $memParams->order_id = $order_id;
     $memParams->payment_mode = $curOrder->payment_mode;
     // Order problem for system add
     $memParams = oseJSON::encode($memParams);
     $query = " UPDATE `#__osemsc_member`" . " SET params = " . $db->Quote($memParams) . " WHERE msc_id = {$msc_id} AND member_id = {$member_id}";
     $db->setQuery($query);
     //oseExit($db->_sql);
     if (!oseDB::query()) {
         $result['success'] = false;
         $result['title'] = 'Error';
         $result['content'] = JText::_('Error Join.Order.2');
     }
     return $result;
 }
예제 #10
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;
	}
예제 #11
0
	public static function save($params)
	{
		if(!class_exists('oseMscPublic'))
		{
			require_once(OSEMSC_F_HELPER.DS.'oseMscPublic.php');
		}
		$result = array();
		$result['success'] = true;
		//oseExit($params);
		if(empty($params['allow_work']))
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Join.PAP');
			
			return $result;
		}
		unset($params['allow_work']);
		
		/*  Offline payments should be counted as well; removed from v 6.0.5
		if( $params['join_from'] != 'payment')
		{
			$result['success'] = true;
			$result['title'] = JText::_('Done');
			$result['content'] = JText::_('Done Join.Order');
			
			return $result;
		}
		*/
		$oseMscConfig = oseRegistry::call('msc')->getConfig('thirdparty','obj');
		
		if(empty($oseMscConfig->pap_enable))
		{
			return $result;
		}
		
		if(empty($oseMscConfig->pap_url))
		{
			return $result;
		}
		
		$db = oseDB::instance();
		//$post = JRequest::get('post');
		$msc_id = $params['msc_id'];
		$member_id = $params['member_id'];
		$order_id = $params['order_id'];
		$order_item_id = $params['order_item_id'];
		
		$where = array();
		$where[] = "order_id = {$order_id}";
		
		$payment = oseRegistry::call('payment');
		$curOrder = $payment->getOrder($where,'obj');
		$curOrderParams = oseJson::decode($curOrder->params);
		$recurrence_times = ($curOrderParams->has_trial)?$curOrderParams->recurrence_times+1:$curOrderParams->recurrence_times;
		$member = oseRegistry::call('member');
		$member->instance($member_id);
		$userInfo = $member->getUserInfo('obj');
		
		$memParams = $member->getMemberInfo($msc_id,'obj')->memParams;
		$memParams = oseJSON::decode($memParams);
		$memParams->first_ip = oseObject::getValue($curOrderParams,'first_ip');;
		
		if(empty($curOrderParams->pap_visitorid))
		{
			return $result;
			//$memParams->pap_visitorid = 'paypal';
		}
		else
		{
			$memParams->pap_visitorid = $curOrderParams->pap_visitorid;
			//$memParams->pap_visitorid = $_COOKIE['PAPVisitorId'];
		}
		
		$memParams_encode = oseJSON::encode($memParams);
			
		$query = " UPDATE `#__osemsc_member`"
				." SET params = ".$db->Quote($memParams_encode)
				." WHERE msc_id = {$msc_id} AND member_id = {$member_id}"
				;
		$db->setQuery($query);
		//oseExit($db->_sql);
		if(!oseDB::query())
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Join.Order.2');
			return $result;
		}
			
		try {  
			
			require_once(OSEMSC_B_LIB.DS.'PapApi.class.php');
			
	        $saleTracker = new Pap_Api_SaleTracker($oseMscConfig->pap_url.'/scripts/sale.php');
	        $saleTracker->setAccountId(oseObject::getValue($oseMscConfig,'pap_account_id','default1'));
	        $saleTracker->setVisitorId($memParams->pap_visitorid);
	        $sale1 = $saleTracker->createSale();
			
			$msc = oseRegistry::call('msc');
			
			$where = array();
			$where[] = "`order_item_id` = '{$order_item_id}'";
			
			$curOrderItem = $payment->getInstance('Order')->getOrderItem($where,'obj');
			$curOrderItemParams = oseJson::decode($curOrderItem->params);
			
			$node = $msc->getInfo($msc_id,'obj');
			$paymentInfos = $msc->getExtInfo($msc_id,'payment');
			foreach($paymentInfos as $key => $paymentInfo)
			{
				if($key != $curOrderItemParams->msc_option)
				{
					unset($paymentInfos[$key]);
				}
			}
			$cart = oseMscPublic::getCart();

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

	    	$items = $cart->get('items');
			$options = oseMscPublic::generatePriceOption($node,$paymentInfos,$osePaymentCurrency);
			
			$sale1->setTotalCost($curOrder->payment_price);
			$sale1->setOrderID($order_id);
			$sale1->setProductID("{$node->title}-{$options[0]['title']}");
			$sale1->setData1($userInfo->email);
			$sale1->setData2($userInfo->jname);
			$sale1->setData3($memParams->first_ip);
			$sale1->setData4($curOrder->payment_serial_number);
			$sale1->setData5("{$curOrder->order_id}-{$node->title}-{$options[0]['title']}-#recurrence:{$recurrence_times}");
			$saleTracker->register();
			
			//$memParams->pap_affiliate_id = $sale1->getAffiliateId();
	        //$memParams->pap_campaign_id = $sale1->getCampaignId();
	        //$memParams->pap_banner_id = $sale1->getBannerId();
			// Order problem for system add
			return $result;
	    } catch (Exception $e) {
	    	return $result;
	    }
	}
예제 #12
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;
	}
예제 #13
0
 function remove()
 {
     $model = $this->getModel('profile');
     $updated = $model->remove();
     $result = array();
     if ($updated) {
         $result['success'] = true;
         $result['title'] = JText::_('DONE');
         $result['content'] = JText::_('SUCCESSFULLY');
     } else {
         $result['success'] = false;
         $result['title'] = JText::_('ERROR');
         $result['content'] = JText::_('ERROR');
     }
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #14
0
 function output()
 {
     // p short for payment
     $p = array();
     $p['items'] = $this->get('items');
     $oneItem = $p['items'][0];
     $p['payment_price'] = $this->get('total');
     $p['payment_currency'] = $this->get('currency');
     //$p['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s");
     //$p['payment_method'] = $payment_method;
     $p['payment_mode'] = $this->getParams('payment_mode');
     $p['payment_from'] = 'system_reg';
     $p['params'] = array();
     $p['params']['total'] = $this->get('total');
     $p['params']['next_total'] = $this->get('next_total');
     $p['params']['discount'] = $this->get('discount');
     $p['params']['subtotal'] = $this->getSubtotal();
     $p['params']['coupon_user_id'] = $this->getParams('coupon_user_id');
     $p['params']['gross_tax'] = $this->getTaxParams('amount');
     $p['params']['next_gross_tax'] = $this->getTaxParams('next_amount');
     $p['params']['vat_number'] = $this->getTaxParams('vat_number');
     //$p['params']['timestamp'] = uniqid("{$member_id}_",true);
     $p['params']['returnUrl'] = $this->getParams('returnUrl');
     if ($p['payment_mode'] == 'a') {
         $p['params']['has_trial'] = oseObject::getValue($oneItem, 'has_trial', 0);
     } else {
         $p['params']['has_trial'] = 0;
     }
     $p['params']['a1'] = $p['params']['total'];
     $p['params']['p1'] = oseObject::getValue($oneItem, 'p1', 0);
     $p['params']['t1'] = oseObject::getValue($oneItem, 't1');
     $p['params']['a3'] = $this->get('next_total');
     $p['params']['p3'] = oseObject::getValue($oneItem, 'p3', 0);
     $p['params']['t3'] = oseObject::getValue($oneItem, 't3');
     $p['params'] = oseJSON::encode($p['params']);
     //$this->init();
     return $p;
 }
예제 #15
0
	function getList()
    {
    	$user = JFactory::getUser();
    	$member_id = $user->id;
    	
    	$db = oseDB::instance();
    	$msc_id = JRequest::getInt('msc_id');
    	if(empty($msc_id))
    	{
    		$cart= oseMscPublic :: getCart();
    		$items= $cart->get('items');
			$item= $items[0];
			$msc_id = oseMscPublic :: getEntryMscId($item);	
    	}
    	$where = array();
    	if(!empty($msc_id))
    	{
    		$query = "SELECT params FROM `#__osemsc_ext` WHERE `type` = 'profilecontrol' AND `id` = ".$msc_id;
    		$db->setQuery($query);
    		$paymentParams = $db->loadResult();
    		$paymentParams = oseJSON::decode($paymentParams);
    		if(!empty($paymentParams->enable))
    		{
    			$pids = $paymentParams->value;
    			$where[] = " `id` IN (".$pids.")";
    		}
    	}
    	$where[] = " `published` = '1'";
    	$where= oseDB :: implodeWhere($where);
    	$query = "SELECT * FROM `#__osemsc_fields` ".$where." ORDER BY `ordering`";
    	$db->setQuery($query);
    	$items = $db->loadObjectList();
		foreach($items as $item)
		{
			if($item->type == 'radio')
			{
				$params=explode(',',$item->params);
				foreach($params as $param)
				{
					$option = array();
					$option['boxLabel'] = $param;	
					$option['inputValue'] = $param;
					$options[] = $option;
				}
				$item->params = $options;
				unset($options);
			}
			
			if(!empty($member_id))
			{
				$query = "SELECT value FROM `#__osemsc_fields_values` WHERE `field_id` = '{$item->id}' AND `member_id` = '{$member_id}'";
				$db->setQuery($query);
				$item->value = $db->loadResult();
			}else{
				$item->value = null;
			}
		}
		$result = array();
		
		$result['total'] = count($items);
		$result['results'] = $items;
		
		$result = oseJSON::encode($result);

		oseExit($result);
    }
예제 #16
0
 function updateMemberExpiryDate()
 {
     $result = array();
     $id = JRequest::getInt('id');
     $expired_date = JRequest::getString('expired_date');
     $db = oseDB::instance();
     $query = " SELECT * FROM `#__osemsc_order_fix`" . " WHERE `id` = '{$id}'";
     $db->SetQuery($query);
     $item = oseDB::loadItem('obj');
     $query = " SELECT * FROM `#__osemsc_member`" . " WHERE `id` = '{$item->member_id}'";
     $db->SetQuery($query);
     $member = oseDB::loadItem('obj');
     $eDate = explode(' ', $member->expired_date);
     $expired_date = $expired_date . ' ' . $eDate[1];
     // update member table params
     $mVals = array();
     $mVals['id'] = $item->member_id;
     $mVals['expired_date'] = $expired_date;
     oseDB::update("#__osemsc_member", 'id', $mVals);
     $result['success'] = true;
     $result['title'] = JText::_('SUCCESS');
     $result['content'] = JText::_('SUCCESS');
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #17
0
 function updateMemberExpiryDate()
 {
     $result = array();
     $id = JRequest::getInt('id');
     $expired_date = JRequest::getString('expired_date');
     $db = oseDB::instance();
     $query = " SELECT * FROM `#__osemsc_order_fix`" . " WHERE `member_id` = '{$id}'";
     $db->SetQuery($query);
     $item = oseDB::loadItem('obj');
     if (empty($item)) {
         $result['success'] = false;
         $result['title'] = JText::_('ERROR');
         $result['content'] = JText::_('Please Update First');
         $result = oseJSON::encode($result);
         oseExit($result);
     }
     $query = " SELECT * FROM `#__osemsc_member`" . " WHERE `id` = '{$item->member_id}'";
     $db->SetQuery($query);
     $member = oseDB::loadItem('obj');
     $eDate = explode(' ', $member->expired_date);
     $expired_date = $expired_date . ' ' . $eDate[1];
     //$nExpired_date = date_format($member->expired_date, 'Y-m-d H:i:s');
     $nExpired_date = date_create($expired_date);
     $nExpired_date = date_format($nExpired_date, 'Y-m-d H:i:s');
     $now = date_create(oseHtml::getDateTime());
     $now = date_format($now, 'Y-m-d H:i:s');
     $mVals = array();
     // is expired
     if ($now > $nExpired_date) {
         // update the order fix status
         $ofVals = array();
         $ofVals['id'] = $item->id;
         $ofVals['status'] = 'deleted';
         //$ofVals['payment_method'] = $payment_method;
         oseDB::update("#__osemsc_order_fix", 'id', $ofVals);
         $mVals['virtual_status'] = 0;
         $mVals['status'] = 0;
     } else {
         // update the order fix status
         $ofVals = array();
         $ofVals['id'] = $item->id;
         $ofVals['status'] = 'fixed';
         //$ofVals['payment_method'] = $payment_method;
         oseDB::update("#__osemsc_order_fix", 'id', $ofVals);
         $mVals['virtual_status'] = 1;
         $mVals['status'] = 1;
     }
     // update member table params
     $mVals['id'] = $item->member_id;
     $mVals['expired_date'] = $expired_date;
     oseDB::update("#__osemsc_member", 'id', $mVals);
     $result['success'] = true;
     $result['title'] = JText::_('SUCCESS');
     $result['content'] = JText::_('SUCCESS');
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #18
0
 function loadEmailTemplate()
 {
     $model = $this->getModel('emails');
     $updated = $model->loadEmailTemplate();
     if ($updated) {
         $result['success'] = true;
         $result['status'] = JText::_('DONE');
         $result['result'] = JText::_('SAMPLE_TEMPLATES_ARE_LOADED_SUCCESSFULLY');
     } else {
         $result['success'] = false;
         $result['status'] = JText::_('ERROR');
         $result['result'] = JText::_('FAILED_LOADING_SAMPLE_TEMPLATES');
     }
     echo oseJSON::encode($result);
     exit;
 }
예제 #19
0
	private function jvsave($member_id, $post) {
		$mainframe = JFactory :: getApplication();
		$option = JRequest :: getCmd('option');
		// Initialize some variables
		$msg = "";
		$me = & JFactory :: getUser();
		$MailFrom = $mainframe->getCfg('mailfrom');
		$FromName = $mainframe->getCfg('fromname');
		$SiteName = $mainframe->getCfg('sitename');
		// Create a new JUser object
		$user = new JUser($member_id);
		$original_gid = $user->get('gid');
		if (!$user->bind($post)) {
			$result = array ();
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText :: _('Failed Updating Member Information');
			$result = oseJSON :: encode($result);
			oseExit($result);
		}
		// Are we dealing with a new user which we need to create?
		$isNew = ($user->get('id') < 1);
		if (!$isNew) {
			// if group has been changed and where original group was a Super Admin
			if ($user->get('gid') != $original_gid && $original_gid == 25) {
				// count number of active super admins
				$query = 'SELECT COUNT( id )' .				' FROM #__users' .				' WHERE gid = 25' .				' AND block = 0';
				$this->db->setQuery($query);
				$count = $this->db->loadResult();
				if ($count <= 1) {
					$result = array ();
					$result['success'] = false;
					$result['title'] = 'Error';
					$result['content'] = JText :: _('Failed Updating Member Information');
					$result = oseJSON :: encode($result);
					oseExit($result);
				}
			}
		}
		/*
			 * Lets save the JUser object
			 */
		if (!$user->save()) {
			$result = array ();
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = $user->getError();
			$result = oseJSON :: encode($result);
			oseExit($result);
		}
		// For new users, email username and password
		// Capture the new user id
		if ($isNew) {
			$newUserId = $user->get('id');
		} else {
			$newUserId = null;
		}
		return $newUserId;
	}
예제 #20
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;
	}
예제 #21
0
	public static function renew($params)
	{
		if(!class_exists('oseMscPublic'))
		{
			require_once(OSEMSC_F_HELPER.DS.'oseMscPublic.php');
		}
		$result = array();
		$result['success'] = true;
		
		if(empty($params['allow_work']))
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Renew.Order');
			
			return $result;
		}
		//unset($params['allow_work']);
		
		$oseMscConfig = oseRegistry::call('msc')->getConfig('thirdparty','obj');
		
		if(empty($oseMscConfig->pap_enable))
		{
			return $result;
		}
		
		if(empty($oseMscConfig->pap_url))
		{
			return $result;
		}
		
		$db = oseDB::instance();
		//$post = JRequest::get('post');
		$msc_id = $params['msc_id'];
		$member_id = $params['member_id'];
		$order_id = $params['order_id'];
		$order_item_id = $params['order_item_id'];
		
		$where = array();
		$where[] = "order_id = {$order_id}";
		
		$payment = oseRegistry::call('payment');
		$curOrder = $payment->getOrder($where,'obj');
		$curOrderParams = oseJson::decode($curOrder->params);
		$recurrence_times = ($curOrderParams->has_trial)?oseObject::getValue($curOrderParams,'recurrence_times',0)+1:oseObject::getValue($curOrderParams,'recurrence_times',0);
		$member = oseRegistry::call('member');
		$member->instance($member_id);
		$userInfo = $member->getUserInfo('obj');
		
		$memParams = $member->getMemberInfo($msc_id,'obj')->memParams;
		$memParams = oseJSON::decode($memParams);
		
		$usePAPUserId = false;
		require_once(OSEMSC_B_LIB.DS.'PapApi.class.php');
		
		if(!oseObject::GetValue($memParams,'pap_visitorid',oseObject::getValue($curOrderParams,'pap_visitorid',false)))
		{
			
			if(oseObject::GetValue($memParams,'pap_userid',false))
			{
				$usePAPUserId = true;
			}	
			else
			{
				// check whether has table in old version 4.4
				$tableList = $db->getTableList();
				if(in_array($db->replacePrefix('#__osemsc_affiliate_tracking'),$tableList))
				{
					$session = new Gpf_Api_Session($oseMscConfig->pap_url.'/scripts/server.php');
		
					if(!$session->login(oseObject::getValue($oseMscConfig,'pap_username'), oseObject::getValue($oseMscConfig,'pap_password'))) {
						$result['success'] = false;
						$result['title'] = JText::_('Error');
						$result['content'] = $session->getMessage();
						return $result;
					}
					$request = new Pap_Api_TransactionsGrid($session);
					// set filter
					//$request->addFilter('dateinserted', Gpf_Data_Filter::DATERANGE_IS, Gpf_Data_Filter::RANGE_THIS_YEAR);
					$request->addFilter('orderid', Gpf_Data_Filter::EQUALS, $order_id);
					$request->setLimit(0, 30);
					$request->setSorting('orderid', false);
					$request->sendNow();
					$grid = $request->getGrid();
					$recordset = $grid->getRecordset();
					
					if($grid->getTotalCount() > 0)
					{
						$usePAPUserId = true;
						foreach($recordset as $rec) 
						{	
					  		$memParams->pap_userid = $rec->get('userid');
					  		break;
						}
					}
					else
					{
						return $result;
					}
				}
				else
				{
					return $result;
				}
			}
		}
		else
		{
			$memParams->pap_visitorid = oseObject::GetValue($memParams,'pap_visitorid',oseObject::getValue($curOrderParams,'pap_visitorid'));
		}
		//oseObject::GetValue($memParams,'pap_visitorid',oseObject::getValue($curOrderParams,'pap_visitorid',false));
		
		$memParams->first_ip = oseObject::getValue($memParams,'first_ip',oseObject::getValue($curOrderParams,'first_ip',oseMscPublic::getIP()));
		$memParams->pap_url = OSEMSC_B_LIB;
		$memParams_encode = oseJSON::encode($memParams);
			
		$query = " UPDATE `#__osemsc_member`"
				." SET `params` = ".$db->Quote($memParams_encode)
				." WHERE `msc_id` = '{$msc_id}' AND `member_id` = '{$member_id}'"
				;
		$db->setQuery($query);
		if(!oseDB::query())
		{
			$result['success'] = false;
			$result['title'] = 'Error';
			$result['content'] = JText::_('Error Join.Order.2');
			return $result;
		}
		
		try {
			$msc = oseRegistry::call('msc');
			
			$where = array();
			$where[] = "`order_item_id` = '{$order_item_id}'";
			
			$curOrderItem = $payment->getInstance('Order')->getOrderItem($where,'obj');
			$curOrderItemParams = oseJson::decode($curOrderItem->params);
			
			$node = $msc->getInfo($msc_id,'obj');
			$paymentInfos = $msc->getExtInfo($msc_id,'payment');
			foreach($paymentInfos as $key => $paymentInfo)
			{
				if($key != $curOrderItemParams->msc_option)
				{
					unset($paymentInfos[$key]);
				}
			}
			$cart = oseMscPublic::getCart();

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

			$options = oseMscPublic::generatePriceOption($node,$paymentInfos,$osePaymentCurrency);
			
	        $saleTracker = new Pap_Api_SaleTracker($oseMscConfig->pap_url.'/scripts/sale.php');
			$saleTracker->setAccountId(oseObject::getValue($oseMscConfig,'pap_account_id','default1'));
			$sale1 = $saleTracker->createSale();
			if($usePAPUserId)
			{
				$sale1->setAffiliateID($memParams->pap_userid);
			}
			else
			{
				$saleTracker->setVisitorId($memParams->pap_visitorid);
			}
			
			$sale1->setTotalCost($curOrder->payment_price);
			$sale1->setOrderID($order_id);
			$sale1->setProductID("{$node->title}-{$options[0]['title']}");
			$sale1->setData1($userInfo->email);
			$sale1->setData2($userInfo->jname);
			$sale1->setData3($memParams->first_ip);
			$sale1->setData4($curOrder->payment_serial_number);
			$sale1->setData5("{$curOrder->order_id}-{$node->title}-{$options[0]['title']}-#recurrence:{$recurrence_times}");
			$saleTracker->register();
			
			return $result;
	    } catch (Exception $e) {
	    	return $result;
	    }
	}
	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;

	}
예제 #23
0
 public static function ajaxResponse($status, $message, $success = false)
 {
     $return['status'] = $status;
     $return['result'] = $message;
     if ($success == true) {
         $return['success'] = $success;
     } else {
         $return['success'] = false;
     }
     echo oseJSON::encode($return);
     exit;
 }
예제 #24
0
 function updateMembership($msc_id, $user_id, $order_id, $payment_mode)
 {
     $db = oseDB::instance();
     $params['order_id'] = $order_id;
     $params['payment_mode'] = $payment_mode;
     $params = oseJSON::encode($params);
     $query = " UPDATE `#__osemsc_member` SET `params`='{$params}' WHERE `msc_id` = '{$msc_id}' AND `member_id` = '{$user_id}'";
     $db->setQuery($query);
     if (oseDB::query()) {
         return true;
     } else {
         return false;
     }
 }
예제 #25
0
 function save()
 {
     $post = array();
     $email = oseRegistry::call('member')->getInstance('Email');
     $id = JRequest::getInt('id', 0);
     $body = JRequest::getString('ebody', '', 'post', JREQUEST_ALLOWRAW);
     $subject = JRequest::getString('subject', null);
     $type = JRequest::getString('type', 'email');
     $msc_id = JRequest::getInt('msc_id', 0);
     $post['id'] = $id;
     $post['body'] = $body;
     $post['subject'] = $subject;
     $post['type'] = $type;
     $post['msc_id'] = $msc_id;
     $post['params'] = oseJSON::encode($email->buildEmailParams($type));
     return $email->save($post);
 }
예제 #26
0
 function getCouponHistory()
 {
     $db = oseDB::instance();
     $id = JRequest::getInt('id', 0);
     $start = JRequest::getInt('start', 0);
     $limit = JRequest::getInt('limit', 25);
     $paid = JRequest::getInt('paid', -1);
     $where = array();
     $where[] = ' c.`coupon_id` = ' . $db->Quote($id);
     if ($paid >= 0) {
         $where[] = ' c.`paid` = ' . $db->Quote($paid);
     }
     $where = oseDB::implodeWhere($where);
     $query = " SELECT count(*) FROM `#__osemsc_coupon_user` AS c" . $where;
     $db->setQuery($query);
     $total = $db->loadResult();
     $query = " SELECT c.* FROM `#__osemsc_coupon_user` AS c" . $where;
     $db->setQuery($query, $start, $limit);
     $items = $db->loadObjectlist();
     foreach ($items as $item) {
         $user_id = $item->user_id;
         $query = " SELECT username FROM `#__users`" . " WHERE `id` = '{$user_id}'";
         $db->setQuery($query);
         $username = $db->loadResult();
         $item->username = empty($username) ? 'Guest' : $username;
     }
     $result = array();
     $result['total'] = $total;
     $result['results'] = $items;
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #27
0
 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;
 }
예제 #28
0
 function returnMessages($status, $messages)
 {
     $result = array();
     if ($status == true) {
         $result['success'] = true;
         $result['status'] = 'Done';
         $result['result'] = $messages;
     } else {
         $result['success'] = false;
         $result['status'] = 'Error';
         $result['result'] = $messages;
     }
     $result = oseJSON::encode($result);
     oseExit($result);
 }
예제 #29
0
 function remove()
 {
     $ids = JRequest::getVar('ids', array(), 'post');
     foreach ($ids as $id) {
         $updated = oseDB::delete($this->table, array('id' => $id));
         if (!$updated) {
             break;
         }
     }
     $result = array();
     if ($updated) {
         $result['success'] = true;
         $result['title'] = JText::_('SUCCESS');
         $result['content'] = JText::_('Saved');
     } else {
         $result['success'] = false;
         $result['title'] = JText::_('ERROR');
         $result['content'] = JText::_('Fail Saving');
     }
     $result = oseJSON::encode($result);
     oseExit($result);
 }