function get_billing_info($account_id = SES_COMP) { App::import('Model', 'UserSubscription'); $usersub = new UserSubscription(); $user_sub = $usersub->find('first', array('conditions' => array('company_id' => $account_id), 'order' => 'id DESC')); $pmonth = date('m', strtotime('-1 month', strtotime($user_sub['UserSubscription']['next_billing_date']))); $pyear = date('Y', strtotime('-1 month', strtotime($user_sub['UserSubscription']['next_billing_date']))); $mdays = cal_days_in_month(CAL_GREGORIAN, $pmonth, $pyear); if (strtotime($user_sub['UserSubscription']['sub_start_date']) + $mdays * 24 * 60 * 60 < strtotime($user_sub['UserSubscription']['next_billing_date'])) { $dt_chk = date('Y-m-d H:i:s', strtotime($user_sub['UserSubscription']['next_billing_date']) - $mdays * 24 * 60 * 60); } else { $dt_chk = $user_sub['UserSubscription']['sub_start_date']; } App::import('Model', 'CompanyUser'); $compuser = new CompanyUser(); //$counter = $compuser->find('count',array('conditions'=>array('company_id'=>$account_id,'created <'=>$dt_chk,'(is_active=1 OR is_active=2)'))); //$user_info = $compuser->find('all',array('conditions'=>array('company_id'=>$account_id,'created >'=>$dt_chk,'(is_active=1 OR is_active=2)'),'group'=>array('DATE(created)'),'fields'=>array('DATE(created) AS dt','DATE(modified) AS mfd_dt','COUNT(id) as cnt','SUM(est_billing_amt) AS amnt'))); //$delted_users = $compuser->find('all',array('conditions'=>array('company_id'=>$account_id,'is_active'=>3,'OR'=>array('created >'=>$dt_chk,'modified >'=>$dt_chk)),'group'=>array('dt','DATE(modified)'),'fields'=>array("IF((created > '".$dt_chk."'),DATE(created),'".date('Y-m-d',strtotime($dt_chk))."') AS dt",'DATE(modified) AS mfd_dt','COUNT(id) as cnt','SUM(est_billing_amt) AS amnt'))); $counter = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 1))); $invited_users = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 2))); $disabled_users = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 0, 'billing_end_date >= ' => GMT_DATE))); $deleted_users = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 3, 'billing_end_date >= ' => GMT_DATE))); //$user_info = $compuser->find('all',array('conditions'=>array('company_id'=>$account_id,'created >'=>$dt_chk,'(is_active=1 OR is_active=2)'),'group'=>array('DATE(created)'),'fields'=>array('DATE(created) AS dt','DATE(modified) AS mfd_dt','COUNT(id) as cnt','SUM(est_billing_amt) AS amnt'))); //$delted_users = $compuser->find('all',array('conditions'=>array('company_id'=>$account_id,'is_active'=>3,'OR'=>array('created >'=>$dt_chk,'modified >'=>$dt_chk)),'group'=>array('dt','DATE(modified)'),'fields'=>array("IF((created > '".$dt_chk."'),DATE(created),'".date('Y-m-d',strtotime($dt_chk))."') AS dt",'DATE(modified) AS mfd_dt','COUNT(id) as cnt','SUM(est_billing_amt) AS amnt'))); //$user_info['previous_users'] =$counter; //$user_info['delted_users'] =$delted_users; $user_info['active_users'] = $counter; $user_info['invited_users'] = $invited_users; $user_info['disabled_users'] = $disabled_users; $user_info['deleted_users'] = $deleted_users; return $user_info; //echo "<pre>";print_r($user_info);exit; }
function get_billing_info($account_id = SES_COMP) { App::import('Model', 'UserSubscription'); $usersub = new UserSubscription(); $user_sub = $usersub->find('first', array('conditions' => array('company_id' => $account_id), 'order' => 'id DESC')); $pmonth = date('m', strtotime('-1 month', strtotime($user_sub['UserSubscription']['next_billing_date']))); $pyear = date('Y', strtotime('-1 month', strtotime($user_sub['UserSubscription']['next_billing_date']))); $mdays = cal_days_in_month(CAL_GREGORIAN, $pmonth, $pyear); $secondsInYear = $mdays * 24 * 60 * 60; $nextBillingDate = strtotime($user_sub['UserSubscription']['next_billing_date']); $subscriptionStartTime = strtotime($user_sub['UserSubscription']['sub_start_date']); if ($subscriptionStartTime + $secondsInYear < $nextBillingDate) { $dt_chk = date('Y-m-d H:i:s', $nextBillingDate - $secondsInYear); } else { $dt_chk = $user_sub['UserSubscription']['sub_start_date']; } App::import('Model', 'CompanyUser'); $compuser = new CompanyUser(); $counter = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 1))); $invited_users = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 2))); $disabled_users = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 0, 'billing_end_date >= ' => GMT_DATE))); $deleted_users = $compuser->find('count', array('conditions' => array('company_id' => $account_id, 'is_active' => 3, 'billing_end_date >= ' => GMT_DATE))); $user_info['active_users'] = $counter; $user_info['invited_users'] = $invited_users; $user_info['disabled_users'] = $disabled_users; $user_info['deleted_users'] = $deleted_users; return $user_info; }
protected function prepareUserSubscription() { $user_subs = new \UserSubscription(); $user_subs->ID_user = $this->tiUser->ID; $user_subs->ID_subscription = $this->_subs->ID; $user_subs_adp = $user_subs->search(); if ($user_subs_adp->itemCount) { $this->_user_subs = $user_subs_adp->getData()[0]; return; } }
public function actionCreditCard() { if (isset($_POST['card_number'])) { // $email = $_POST['email']; $card_number = $_POST['card_number']; $payment_type = $_POST['payment_type']; $exp_month = $_POST['exp_month']; $exp_year = $_POST['exp_year']; $csc = $_POST['csc']; $first_name = $_POST['first_name']; $last_name = $_POST['last_name']; $total = $_POST['total']; $listener = new CardForm(); $card = $listener->doStoreCreditCardAPI($payment_type, $card_number, $exp_month, $exp_year, $csc, $first_name, $last_name); //self::doSubmitCard($card_number, $payment_type, $exp_month, $exp_year, $csc, $first_name, $last_name, $total); if ($card && Yii::app()->user->id > 0) { $userCard = new UserCreditCard(); $userCard->user_id = Yii::app()->user->id; $userCard->credit_card_id = $card; $userCard->save(); $submit_card = $listener->doSaleAPI($card, $total); if ($submit_card) { $userSubscription = new UserSubscription(); $userSubscription->user_id = Yii::app()->user->id; $userSubscription->subscription_id = $_GET['id']; $userSubscription->date_from = date('Y-m-d'); $userSubscription->save(); } $this->redirect(array('/site/index'), array('sale' => $card, 'token' => $submit_card)); // $this->redirect(array('site/index'), array('user_sub'=>$card, 'sub_id'=>$useSubs)); } } if (isset($_POST['card_id']) && Yii::app()->user->id > 0) { $card_id = $_POST['card_id']; $total = $_POST['total']; $listener = new CardForm(); $submit_card = $listener->doSaleAPI($card_id, $total); if ($submit_card) { $userSubscription = new UserSubscription(); $userSubscription->user_id = Yii::app()->user->id; $userSubscription->subscription_id = $_GET['id']; $userSubscription->date_from = date('Y-m-d'); $userSubscription->save(); } $this->redirect(array('/site/index'), array('sale' => $card, 'token' => $submit_card)); } $userCard = UserCreditCard::model()->getCreditCard(Yii::app()->user->id); $test = ''; if ($userCard && $userCard[0]->credit_card_id && Yii::app()->user->id > 0) { $test = $userCard[0]->credit_card_id; } $sub = Subscription::model()->findByPk($_GET['id']); $this->render('card', array('total' => $sub->subscription_value, 'card_saved' => $test)); }
public function actionIndex() { $subscription = Subscription::model()->findAll(); $data = UserSubscription::model()->getListUserSub(); $dataProvider = new CActiveDataProvider('Subscription'); $this->render('index', array('subscription' => $subscription, 'data' => $data, 'dataProvider' => $dataProvider)); }
private function deleteRelation() { $subs = $this->_subs; $user = $this->tiUser; //echo var_dump($subs); //echo var_dump($user); $user_subs = new \UserSubscription(); $user_subs->ID_user = $user->ID; $user_subs->ID_subscription = $subs->ID; $user_subs_adp = $user_subs->search(); if ($user_subs_adp->itemCount) { $user_subs = $user_subs_adp->getData()[0]; try { $user_subs->delete(); } catch (Exception $e) { new Error(5, NULL, $e->getMessage()); } } }
private function createRelation() { $subs = $this->_subs; $user = $this->tiUser; //echo var_dump($subs); //echo var_dump($user); $user_subs = new \UserSubscription(); $user_subs->ID_user = $user->ID; $user_subs->ID_subscription = $subs->ID; $user_subs_adp = $user_subs->search(); //var_dump($subs->ID); //exit; if ($user_subs_adp->itemCount) { new Error(5, NULL, "has been subscriped"); } try { if (!$user_subs->save()) { new \Error(5, null, json_encode($user_subs->getErrors())); } } catch (Exception $e) { new Error(5, NULL, $e->getMessage()); } //new Error(1); }
public function actionIndex() { new \Error(1); $this->prepareUser(); $this->prepareSubscription(); /* 准备订阅类的时候会自动count 加1,但是这里并不是准备新的订阅,因此要把count减回去 */ $this->_subs->Count = $this->_subs->Count - 1; if ($this->_subs->Count == 1) { //echo "yes"; //exit; $this->_subs->attributes = $this->prepareNewSubscriptionArray(); } else { $this->prepareNewSubscription(); $old_user_subs = \UserSubscription::model()->findByAttributes(array('ID_subscription' => $this->_subs->ID, 'ID_user' => $this->tiUser->ID)); try { if ($old_user_subs != null && !$old_user_subs->delete()) { new \Error(5, null, json_encode($old_user_subs->getErrors())); } } catch (Exception $e) { new \Error(5, null, $e->getMessage()); } $this->_subs->Count = $this->_subs->Count - 1; if ($this->_newSubs != NULL) { $this->_user_subs = new UserSubscription(); $this->_user_subs->ID_subscription = $this->_newSubs->ID; $this->_user_subs->ID_user = $this->tiUser->ID; $this->saveActiveRecord($this->_user_subs); } } $this->saveActiveRecord($this->_subs); if ($this->_user_subs == null) { shell_exec(YiiBase::getPathOfAlias('application') . "/yiic historyprice index --subs_id=" . $this->_subs->ID . " >/dev/null 2>/dev/null &"); } else { shell_exec(YiiBase::getPathOfAlias('application') . "/yiic historyprice index --subs_id=" . $this->_user_subs->ID_subscription . " >/dev/null 2>/dev/null &"); } new \Error(1); }
public function getListUserSub() { // include 'SubscriptionController.php'; // include 'UsersController.php'; $arr = array(); $model = UserSubscription::model()->findAll(); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } else { foreach ($model as $m) { $value_arr = array(); $sub = Subscription::model()->findByPk($m->subscription_id); $userName = AccountProfile::model()->getFullName($m->user_id); // $sub = SubscriptionController::loadModel($m->subscription_id); // $user = UsersController::loadModel($m->user_id); $value_arr['id'] = $m->user_subscription_id; $value_arr['user_name'] = $userName; $value_arr['subscription'] = $sub->subscription_value . '$/' . $sub->subscription_name; $value_arr['date_from'] = $m->date_from; $arr[] = $value_arr; } } return $arr; }
public function addNewUserSubscription($userSubscriptions = array()) { $useSubs = new UserSubscription(); $useSubs->user_id = $userSubscriptions['user_id']; $useSubs->subscription_id = $userSubscriptions['subscription_id']; $useSubs->date_from = date('Y-m-d'); $id = $useSubs->save(); return $id->user_subscription_id; }
function usercount($company_id = ACC_ID, $sub_limitation = array()) { if (!$sub_limitation) { App::import('Model', 'UserSubscription'); $usersubscription = new UserSubscription(); $sub_limitation = $usersubscription->find('first', array('conditions' => array('company_id' => $company_id), 'order' => 'id DESC')); } App::import('Model', 'CompanyUsers'); $usr = new CompanyUser(); if ($sub_limitation['UserSubscription']['btsubscription_id']) { //$used_ucount = $usr->find('count',array('conditions'=>array('company_id'=>$company_id,'((is_active=1 OR is_active=2) OR (is_active=0 AND DATE(billing_end_date)>="'.GMT_DATE.'"))',))); //It includes the deleted users who are paid for the current billing month. $used_ucount = $usr->find('count', array('conditions' => array('company_id' => $company_id))); } else { $used_ucount = $usr->find('count', array('conditions' => array('company_id' => $company_id, '(is_active=1 OR is_active=2)'))); } $GLOBALS['usercount'] = $used_ucount; $this->set('current_active_users', $used_ucount); if ($sub_limitation['UserSubscription']['user_limit'] && (strtolower($sub_limitation['UserSubscription']['user_limit']) == 'unlimited' || $sub_limitation['UserSubscription']['is_free'])) { return 'Unlimited'; } else { if ($sub_limitation['UserSubscription']['user_limit'] >= $used_ucount) { return $sub_limitation['UserSubscription']['user_limit'] - $used_ucount; } else { return 0; } } }