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; }
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; } } }