Example #1
0
 function joinMsc()
 {
     $model = $this->getModel('members');
     $member_ids = JRequest::getVar('member_ids', array(), 'post', 'array');
     $msc_id = JRequest::getInt('msc_id', 0);
     $msc_option = JRequest::getCmd('msc_option', 0);
     $result = array();
     if (empty($msc_id)) {
         $result['success'] = false;
         $result['title'] = JText::_('ERROR');
         $result['content'] = JText::_('ERROR');
     } else {
         $msc = oseRegistry::call('msc');
         $node = $msc->getInfo($msc_id, 'obj');
         if (!$node->leaf) {
             $result['success'] = false;
             $result['title'] = JText::_('ERROR');
             $result['content'] = JText::_('PLEASE_SELECT_A_LEAF_MEMBERSHIP');
         } else {
             $cart = oseMscPublic::getCart();
             $cart->addItem(null, null, array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option));
             $cart->refreshCartItems();
             $paymentInfo = $cart->output();
             if (!empty($msc_option)) {
                 $payment = oseRegistry::call('msc')->getExtInfo($msc_id, 'payment', 'array');
                 $payment = $payment[$msc_option];
                 $price = oseObject::getValue($payment, 'a3');
                 $paymentInfo['payment_price'] = $price;
                 $paymentInfo = oseObject::setParams($paymentInfo, array('a3' => $price, 'total' => $price, 'next_total' => 0, 'subtotal' => $price));
             } else {
                 $paymentInfo['payment_price'] = '0.00';
                 $paymentInfo = oseObject::setParams($paymentInfo, array('a3' => 0, 'total' => 0, 'next_total' => 0));
             }
             foreach ($member_ids as $member_id) {
                 $updated = $model->joinMsc($member_id, $paymentInfo);
                 if (!$updated['success']) {
                     //break;
                 }
             }
             $result = $updated;
             if ($updated['success']) {
                 $result = $updated;
                 $result['success'] = true;
                 $result['title'] = JText::_('DONE');
                 $result['content'] = JText::_('ADDED_SUCCESSFULLY');
             } else {
                 $result = $updated;
                 $result['success'] = false;
                 $result['title'] = JText::_('ERROR');
                 $result['content'] = JText::_("MEMBER_ID") . " :{$member_id} " . JText::_("FAILED_JOINING");
             }
         }
     }
     $result = oseJson::encode($result);
     oseExit($result);
 }
Example #2
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;
	}
Example #3
0
 function createMember()
 {
     $created = self::createUser();
     if ($created['success']) {
         $member_id = JRequest::getInt('member_id', 0);
         $msc_id = JRequest::getInt('msc_id', 0);
         $msc_option = JRequest::getCmd('msc_option', null);
         if (empty($msc_id)) {
             $result['success'] = false;
             $result['title'] = JText::_('PLEASE_SELECT_MEMBERSHIP_PLAN_FIRST');
             $result['content'] = JText::_('PLEASE_SELECT_ONE_PLAN_IN_THE_LEFT_SIDE_PANEL');
             return $result;
         }
         if (empty($msc_option)) {
             $result['success'] = false;
             $result['title'] = JText::_('PLEASE_SELECT_MEMBERSHIP_PLAN_FIRST');
             $result['content'] = JText::_('IF_THERE_IS_NO_OPTION_IN_THE_DROPDOWN_LIST_PLEASE_CREATE_ONE_IN_THE_PANEL_PAYMENT');
             return $result;
         }
         $cart = oseMscPublic::getCart();
         $cart->addItem(null, null, array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option));
         $cart->refreshCartItems();
         $paymentInfo = $cart->output();
         if (!empty($msc_option)) {
             $payment = oseRegistry::call('msc')->getExtInfo($msc_id, 'payment', 'array');
             $payment = $payment[$msc_option];
             $price = oseObject::getValue($payment, 'a3');
             $paymentInfo['payment_price'] = $price;
             $paymentInfo = oseObject::setParams($paymentInfo, array('a3' => $price, 'total' => $price, 'next_total' => 0, 'subtotal' => $price));
         } else {
             $paymentInfo['payment_price'] = '0.00';
             $paymentInfo = oseObject::setParams($paymentInfo, array('a3' => 0, 'total' => 0, 'next_total' => 0));
         }
         $result = oseMscPublic::generateOrder($member_id, 'system_admin', $paymentInfo);
         if (!$result['success']) {
             return $result;
         }
         $orderInfo = oseRegistry::call('payment')->getInstance('Order')->getOrder(array("`order_id`='{$result['order_id']}'"), 'obj');
         $updated = oseMscPublic::processPayment($orderInfo);
         if ($updated['success']) {
             $result = $updated;
             $result['success'] = true;
             $result['title'] = JText::_('DONE');
             $result['content'] = JText::_('ADDED_SUCCESSFULLY');
         } else {
             $result = $updated;
             $result['success'] = false;
             $result['title'] = JText::_('ERROR');
             $result['content'] = JText::_("MEMBER_ID") . " :{$member_id} " . JText::_("FAILED_JOINING");
         }
         return $result;
     } else {
         return $created;
     }
 }