示例#1
0
 /**
  * @throws Zend_Controller_Action_Exception
  */
 public function planInfoAction()
 {
     //Get user
     $identity = Zend_Auth::getInstance()->getIdentity();
     $userId = $identity->id;
     //Get current subscription
     $subscriptionManager = new Subscriptions_Model_Subscription_Manager();
     $currentSubscription = $subscriptionManager->getCurrentSubscription($userId);
     if ($currentSubscription) {
         $subscriptionPlansTable = new Subscriptions_Model_SubscriptionPlans_Table();
         $subscriptionPlan = $subscriptionPlansTable->getById($currentSubscription->subscriptionPlanId);
         $this->view->currentSubscription = $currentSubscription;
         $this->view->subscriptionPlan = $subscriptionPlan;
     } else {
         throw new Zend_Controller_Action_Exception('Page not found');
     }
 }
示例#2
0
 /**
  * Get expiration date
  * If null - plan with unlimited period
  *
  * @param $userId
  * @param $planId
  * @return bool|null|string
  */
 public function getExpirationDate($userId, $planId)
 {
     //Get subscription plan
     $subscriptionPlansTable = new Subscriptions_Model_SubscriptionPlans_Table();
     $subscriptionPlan = $subscriptionPlansTable->getById($planId);
     //If plan have period
     if ($subscriptionPlan->period > 0) {
         $select = $this->getDbTable()->select()->from(array('subscriptions'), array('expirationDate'))->where('userId =?', $userId)->where('subscriptionPlanId =?', $planId)->where('status =?', Subscriptions_Model_Subscription::STATUS_ACTIVE)->where('expirationDate > ?', date('Y-m-d H:i:s'))->order('expirationDate DESC');
         $subscriptionRow = $this->getDbTable()->fetchRow($select);
         if ($subscriptionRow && $subscriptionRow->expirationDate) {
             $seconds = (int) $subscriptionPlan->period * 86400;
             return $expirationDate = date('Y-m-d H:i:s', strtotime($subscriptionRow->expirationDate) + $seconds);
         } else {
             //If is first subscription this type
             return $expirationDate = date('Y-m-d H:i:s', mktime(date("H"), date("i"), date("s"), date("m"), date("d") + (int) $subscriptionPlan->period, date("Y")));
         }
     }
     //Plan with unlimited period
     return null;
 }