Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
 }
Beispiel #11
0
 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;
         }
     }
 }