Пример #1
0
	function addToCart($msc_id, $msc_option) {
		$cart = oseRegistry::Call('payment')->getInstance('Cart');
		$payment_mode = oseMscPublic::getPaymentMode();
		$item = array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option);
		$cart->addItem($item['entry_id'], $item['entry_type'], $item);
		$cart->updateParams('payment_mode', $payment_mode);
		$cart->update();
	}
Пример #2
0
	function savePaymentMode() {
		$cart = oseMscPublic::getCart();
		$payment_mode = oseMscPublic::getPaymentMode();
		$config = oseMscPublic::getConfig('global', 'obj');
		if ($config->payment_mode != 'b') {
			$payment_mode = $config->payment_mode;
		}
		$register_form = oseRegistry::call('msc')->getConfig('register', 'obj')->register_form;
		// force to m
		if (empty($register_form) || $register_form == 'default') {
			$payment_mode = 'm';
		} else {
			$items = $cart->get('items');
			$msc = oseRegistry::call('msc');
			foreach ($items as $item) {
				if (oseObject::getValue($item, 'recurrence_mode', 'period') == 'fixed') {
					$payment_mode = 'm';
				}
				if (oseObject::getValue($item, 'entry_type', 'msc') == 'license') {
					$payment_mode = 'm';
				} else {
					$extItem = $msc->getExtInfoItem(self::getEntryMscID($item), 'paymentAdv', 'obj');
					$advItems = oseJson::decode(oseObject::getvalue($extItem, 'params', '{}'), true);
					$advItems = empty($advItems) ? array() : $advItems;
					$advOption = isset($advItems[oseObject::getvalue($item, 'msc_option')]) ? $advItems[oseObject::getvalue($item, 'msc_option')] : array();
					if (oseObject::getValue($advOption, 'payment_mode', 'b') != 'b') {
						$payment_mode = $advOption['payment_mode'];
					}
				}
				$payment_method = oseMscPublic::getPaymentMethod();
				if ($payment_method == 'paypal') {
					if (oseObject::getValue($item, 'p3', 0) >= 2 && strtolower(oseObject::getValue($item, 't3', 'day')) == 'year') {
						$payment_mode = 'm';
					}
					if (oseObject::getValue($item, 'p3', 0) >= 24 && strtolower(oseObject::getValue($item, 't3', 'day')) == 'month') {
						$payment_mode = 'm';
					}
				}
			}
		}
		if ($cart->get('total') <= 0 && $cart->get('next_total') <= 0) {
			$payment_mode = 'm';
		}
		$cart->updateParams('payment_mode', $payment_mode);
		$cart->update();
		return $payment_mode;
	}
Пример #3
0
	function add()
	{
		$db = oseDB::instance();

		$coupon_code = JRequest::getCmd('coupon_code',null);

		$result = array();

		if(empty($coupon_code))
		{
			$result['success'] = false;
			$result['title'] = JText::_('Notice');
			$result['content'] = JText::_('THE_COUPON_IS_INVALID');
		}
		else
		{
			$config = oseMscConfig::getConfig('coupon','obj');
			if(oseObject::getValue($config,'wildcard_enabled',false))
			{
				$white_pass_minlength = oseObject::getValue($config,'wildcard_minlength',10);
				if(strlen($coupon_code) < $white_pass_minlength)
				{
					$result['success'] = false;
					$result['title'] = JText::_('Notice');
					$result['content'] = JText::_('THE COUPON CODE MINIMUM LENGTH IS').' '.$white_pass_minlength;
					$result = oseJson::encode($result);

					oseExit($result);
				}
				$code = $db->Quote($coupon_code);
				$query = " SELECT * FROM `#__osemsc_coupon`"
						." WHERE {$code} LIKE CONCAT('%',`code`)"
						;
			}
			else
			{
				$code = $db->Quote($coupon_code);
				$query = " SELECT * FROM `#__osemsc_coupon`"
						." WHERE code = {$code}"
						;
			}

			$db->setQuery($query);
			$item = oseDB::loadItem('obj');
			$couponParams = oseJson::decode(oseObject::getValue($item,'params','{}'));
			if(empty($item) )
			{
				$result['success'] = false;
				$result['title'] = JText::_('Notice');
				$result['content'] = JText::_('THE_COUPON_IS_INVALID');
			}
			else
			{
				$user = oseMscPublic::getUser();
				$cart = oseMscPublic::getCart();

				// check range 1
				if(!$user->guest)
				{
					$query = " SELECT COUNT(*) FROM `#__osemsc_member`"
							." WHERE `member_id` = '{$user->id}'"
							;
					$db->setQuery($query);
					$hasMsc = $db->loadResult();
					$itemParams = oseJson::decode($item->params);
					if($hasMsc > 0 && $itemParams->range == 'new_member_only')
					{
						$cart->updateParams('coupon',null);
						$cart->update();
						$result['success'] = false;
						$result['title'] = JText::_('Notice');
						$result['content'] = JText::_('COUPON_RANGE_NOT_MATCH');
						return $result;
					}
				}

				// check range 2
				$items= $cart->get('items');
				foreach ($items as $tmpitem)
				{
					$cartitem= $tmpitem;
					break;
				}
				if(!empty($cartitem))
				{
					$params = oseJson::decode($item->params);
					$msc_id = oseMscPublic :: getEntryMscID($cartitem);
					$mscs = $params->msc_ids;
					if($mscs != 'all')
					{
						if(!is_array($mscs))
						{
							$mscs = explode(',',$mscs);
						}

						if(!in_array($msc_id,$mscs))
						{
							$cart->updateParams('coupon',null);
							$cart->update();
							$result['success'] = false;
							$result['title'] = JText::_('Notice');
							$result['content'] = JText::_('THE_COUPON_IS_INVALID');
							return $result;
						}
					}

					$coupon_currencies = explode(",", oseObject::getValue($couponParams,'currencies',''));
					$session =& JFactory::getSession();
					$currency = $session->get('osePaymentCurrency',oseRegistry::call('msc')->getConfig('currency','obj')->primary_currency);

					if(empty($coupon_currencies))
					{

					}
					else
					{
						if(!in_array('all',$coupon_currencies) && !in_array($currency, $coupon_currencies))
						{
								$allowCurrencies = implode("OR", $coupon_currencies);
								$cart->updateParams('coupon',null);
								$cart->update();
								$result['success'] = false;
								$result['title'] = JText::_('Notice');
								$result['content'] = JText::_('THE_COUPON_CANNOT_BE_APPLIED_IN_THIS_CURRENCY').$allowCurrencies;
								return $result;
						}
					}


				}

				// check amount
				$query = " SELECT COUNT(*) FROM `#__osemsc_coupon_user`"
						." WHERE `coupon_id` = '{$item->id}' AND `paid` = '1'"
						;
				$db->setQuery($query);

				$used = $db->loadResult();

				if($item->amount_infinity != 1 && $used >= $item->amount)
				{
					$result['success'] = false;
					$result['title'] = JText::_('Notice');
					$result['content'] = JText::_('COUPON_USED_OUT');
					return $result;
				}

				$result['success'] = true;
				$result['title'] = JText::_('SUCCEED');
				$result['content'] = JText::_('COUPON_DISCOUNT_APPLIED');
				$result['is_free_manual'] = false;
				//check the total amount
				$query = "SELECT frontend_enabled FROM `#__osemsc_addon` WHERE `name` = 'payment_mode'";
				$db->setQuery($query);
				$enabled = $db->loadResult();
				if($enabled)
				{
					$payment_mode = $cart->getParams('payment_mode');
				}else 
				{
					$payment_mode = oseMscPublic::getPaymentMode('payment_payment_mode');
					$payment_mode = oseMscPublic::savePaymentMode();
					$payment_mode = $cart->getParams('payment_mode');
				}
				
				if($payment_mode == 'm')
				{
					if($item->discount_type == 'rate' && $item->discount == 100)
					{
						$result['is_free_manual'] = true;
					}else{
						$items= $cart->get('items');
						$cartitem= $items[0];
						$price = oseObject :: getValue($cartitem, 'standard_raw_price');
						if($price <= $item->discount)
						{
							$result['is_free_manual'] = true;
						}
					}
				}
				$cart->updateParams('coupon_range',oseObject::getValue($couponParams,'range','all'));
				$cart->updateParams('coupon_range2',oseObject::getValue($couponParams,'range2','first'));
				$cart->updateParams('coupon_discount',$item->discount);
				$cart->updateParams('coupon_discount_type',$item->discount_type);
				$cart->updateParams('coupon_currencies',oseObject::getValue($couponParams,'currencies','all'));

				$couponParams = oseJson::decode($item->params);

				$couponNumber = $cart->getParams('coupon_number');

				if($coupon_code == $cart->getParams('coupon'))
				{
					//
					$cart->updateParams('coupon_msc_ids',$couponParams->msc_ids);

				}
				else
				{
					$cart->updateParams('coupon',$coupon_code);
					$cart->updateParams('coupon_id',$item->id);
					if($user->guest)
					{
						$cart->updateParams('coupon_number',uniqid('guest_'));
					}
					else
					{
						$cart->updateParams('coupon_number',uniqid($user->id.'_'));
					}


					$cart->updateParams('coupon_msc_ids',$couponParams->msc_ids);



				}

				$updated = $this->updateCoupon($item,$cart->getParams('coupon_number'));
				if($updated)
				{
					$cart->updateParams('coupon_user_id',$updated);
				}
				//$cart->cart['params'] = array();
				$cart->update();
			}

		}

		$result = oseJson::encode($result);

		oseExit($result);
	}
Пример #4
0
	function jomsocialRegRedirect()
	{
		require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'init.php');
		require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'helpers'.DS.'oseMscPublic.php');
		$uri = &JFactory::getURI();
		$vars['task']	= $uri->getVar( 'task' );
		$vars['view']	= $uri->getVar( 'view' );
		if(empty($vars['task']))
		{
			$vars['task'] = JRequest::getCmd('task');
		}
		if(empty($vars['view']))
		{
			$vars['view'] = JRequest::getCmd('view');
		}
		$session =& JFactory::getSession();
		if(isset($_SESSION['__XIPT']['SELECTED_PROFILETYPE_ID']))
		{
			$session->set('pid',$_SESSION['__XIPT']['SELECTED_PROFILETYPE_ID']);
		}
		$vars['joms_regs'] = ($vars['view'] == 'register' && ( $vars['task'] == 'registerSucess' ));

		if($vars['joms_regs'])
		{
			//$pid = $_SESSION['__XIPT']['SELECTED_PROFILETYPE_ID'];
			$pid = $session->get('pid',null);
			$db= oseDB :: instance();
			$query = "SELECT * FROM `#__osemsc_ext` WHERE `type` = 'jspt'";
			$db->setQuery($query);
			$objs = $db->loadObjectList();
			if(!empty($objs))
			{
				foreach($objs as $obj)
				{
					$data = oseJson::decode($obj->params);
					if($data->enable && $pid == $data->jspt_id)
					{
						$msc_id = $obj->id;
						break;
					}
				}

			}
			$redirect = false;
			if(!empty($msc_id))
			{
				JRequest::setVar('msc_id',$msc_id);
				$msc = oseRegistry::call('msc');
				$opts = $msc->runAddonAction('panel.payment.getOptions',array(),true,true);
				$options = $opts['results'];
				if(!empty($options))
				{
					foreach($options as $option)
					{
						if(!$option['isFree'] && $option['a3']>0)
						{
							$msc_option = $option['id'];
							$redirect =true;
							break;
						}
					}
				}
			}
			if($redirect)
			{
				$cart = oseRegistry::Call('payment')->getInstance('Cart');
				$payment_mode = oseMscPublic::getPaymentMode();

				$item = array('entry_id'=>$msc_id,'entry_type'=>'msc','msc_option'=>$msc_option);
				$cart->addItem($item['entry_id'],$item['entry_type'],$item);
				//oseExit($cart);
				$cart->updateParams('payment_mode',$payment_mode);
				$cart->update();

				$session = JFactory::getSession();
				$session->set('ose_reg_step','cart');
				$app = JFactory::getApplication();
				$app->redirect( 'index.php?option=com_osemsc&view=register');
			}
		}

	}
Пример #5
0
	function addToCart($exit = true) {
		$cart = oseRegistry::Call('payment')->getInstance('Cart');
		$msc_id = JRequest::getInt('msc_id', 0);
		$msc_option = JRequest::getCmd('msc_option', null);
		$payment_mode = oseMscPublic::getPaymentMode();
		$item = array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option);
		$cart->addItem($item['entry_id'], $item['entry_type'], $item);
		$cart->updateParams('payment_mode', $payment_mode);
		$cart->update();
		$session = JFactory::getSession();
		$session->set('ose_reg_step', 'cart');
		$result = array();
		$result['success'] = true;
		$result['title'] = 'Done';
		$result['content'] = JText::_('Added to Cart!');
		$Itemid = JRequest::getInt('Itemid');
		$Itemid = (!empty($Itemid)) ? "&Itemid=" . $Itemid : "";
		$result['link'] = str_replace("&amp;", "&", JRoute::_('index.php?option=com_osemsc&view=register' . $Itemid));
		$result = oseJson::encode($result);
		if ($exit == true) {
			oseExit($result);
		}
	}
Пример #6
0
	function toPaymentPage() {
		$model = $this->getModel('payment');
		$updated = $model->toPaymentPage();
		$result = array();
		if (!$updated) {
			$result['success'] = false;
			$result['title'] = JText::_('Notice');
			$result['content'] = JText::_('You don\'t need to renew the membership');
		} else {
			$payment_mode = oseMscPublic::getPaymentMode('payment_mode');
			$msc_id = JRequest::getInt('msc_id', 0);
			$msc_option = JRequest::getCmd('msc_option', null);
			$session = JFactory::getSession();
			$session->set('ose_reg_step', 'cart');
			if (empty($payment_mode)) {
				$result['success'] = false;
				$result['title'] = JText::_('Error!');
				$result['content'] = JText::_('Have Not Selected Payment Method');
				$result = oseJson::encode($result);
				oseExit($result);
			}
			if (!empty($msc_id)) {
				$cart = oseMscPublic::getCart();
				$item = array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option);
				$cart->addItem($item['entry_id'], $item['entry_type'], $item);
				$cart->updateParams('payment_mode', $payment_mode);
				$cart->update();
			}
			$result['success'] = true;
			$result['title'] = JText::_('Done');
			$result['content'] = JText::_('Done');
			$result['link'] = JRoute::_('index.php?option=com_osemsc&view=payment');
		}
		$result = oseJson::encode($result);
		oseExit($result);
	}