コード例 #1
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     $user = PcUserPeer::getLoggedInUser();
     $this->hasApiDetails = false;
     if (is_object($apiDetails = PcApiAppPeer::retrieveByUserId($user->getId()))) {
         $this->hasApiDetails = true;
         $this->apiDetails = $apiDetails;
     }
     $this->user = $user;
     $this->niceExpiryDate = '';
     if ($user->isSupporter()) {
         $supporter = PcSupporterPeer::retrieveByPK($user->getId());
         $this->niceExpiryDate = $supporter->getExpiryDate('j') . ' ' . PcUtils::fromIndexToMonth($supporter->getExpiryDate('n')) . ' ' . $supporter->getExpiryDate('Y');
     }
 }
コード例 #2
0
 public function executeSubscriptionContent()
 {
     $inputDiscountCode = trim($this->getContext()->getRequest()->getParameter('codeForDiscount'));
     $discount = PcPromotionCodePeer::getDiscountByCode($inputDiscountCode, $promotionErrorCode);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'USD');
     $this->oneYearUsdSubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'GBP');
     $this->oneYearGbpSubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'EUR');
     $this->oneYearEurSubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'JPY');
     $this->oneYearJpySubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 2);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'USD');
     $this->threeMonthUsdSubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 2);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'GBP');
     $this->threeMonthGbpSubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 2);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'EUR');
     $this->threeMonthEurSubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 2);
     $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'JPY');
     $this->threeMonthJpySubscription = PcPaypalProductPeer::doSelectOne($c);
     $c = new Criteria();
     $c->add(PcPaypalProductPeer::ID, 7);
     $this->testSubscription = PcPaypalProductPeer::doSelectOne($c);
     $this->yearlyUsdSaving = $this->threeMonthUsdSubscription->getItemPrice() * 4 - $this->oneYearUsdSubscription->getItemPrice();
     $this->yearlyGbpSaving = $this->threeMonthGbpSubscription->getItemPrice() * 4 - $this->oneYearGbpSubscription->getItemPrice();
     $this->yearlyEurSaving = $this->threeMonthEurSubscription->getItemPrice() * 4 - $this->oneYearEurSubscription->getItemPrice();
     $this->yearlyJpySaving = $this->threeMonthJpySubscription->getItemPrice() * 4 - $this->oneYearJpySubscription->getItemPrice();
     $this->niceExpiryDate = '';
     $this->niceExpiryDateThreeMonthExtended = '';
     $this->niceExpiryDateOneYearExtended = '';
     $this->oneYearUsdDiscountedSubscription = null;
     $this->oneYearGbpDiscountedSubscription = null;
     $this->oneYearEurDiscountedSubscription = null;
     $this->oneYearJpyDiscountedSubscription = null;
     $loggedInUser = PcUserPeer::getLoggedInUser();
     $this->promotionErrorCode = $promotionErrorCode;
     $this->discount = $discount;
     $this->hasDiscountCodeBeenEntered = false;
     if ($inputDiscountCode) {
         $this->hasDiscountCodeBeenEntered = true;
     }
     $this->isDiscountCodeValid = false;
     if ($discount > 0) {
         $this->isDiscountCodeValid = true;
         if ($loggedInUser) {
             $loggedInUser->setLastPromotionalCodeInserted($inputDiscountCode)->save();
         }
         $c = new Criteria();
         $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
         $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'USD');
         $c->add(PcPaypalProductPeer::DISCOUNT_PERCENTAGE, $discount);
         $this->oneYearUsdDiscountedSubscription = PcPaypalProductPeer::doSelectOne($c);
         $c = new Criteria();
         $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
         $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'GBP');
         $c->add(PcPaypalProductPeer::DISCOUNT_PERCENTAGE, $discount);
         $this->oneYearGbpDiscountedSubscription = PcPaypalProductPeer::doSelectOne($c);
         $c = new Criteria();
         $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
         $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'EUR');
         $c->add(PcPaypalProductPeer::DISCOUNT_PERCENTAGE, $discount);
         $this->oneYearEurDiscountedSubscription = PcPaypalProductPeer::doSelectOne($c);
         $c = new Criteria();
         $c->add(PcPaypalProductPeer::SUBSCRIPTION_TYPE_ID, 3);
         $c->add(PcPaypalProductPeer::ITEM_PRICE_CURRENCY, 'JPY');
         $c->add(PcPaypalProductPeer::DISCOUNT_PERCENTAGE, $discount);
         $this->oneYearJpyDiscountedSubscription = PcPaypalProductPeer::doSelectOne($c);
     }
     $this->isSupporter = false;
     if ($loggedInUser) {
         $this->isSupporter = $loggedInUser->isSupporter();
         $supporterAccount = PcSupporterPeer::retrieveByPK($loggedInUser->getId());
         if ($this->isSupporter) {
             $this->niceExpiryDate = $supporterAccount->getExpiryDate('j') . ' ' . PcUtils::fromIndexToMonth($supporterAccount->getExpiryDate('n')) . ' ' . $supporterAccount->getExpiryDate('Y');
             $newExpiryTimestamp = $supporterAccount->getNewExpiryDateAfterSubscription(PcSubscriptionTypePeer::retrieveByPK(2), $supporterAccount->getExpiryDate('Y-m-d'));
             $this->niceExpiryDateThreeMonthExtended = date('j', $newExpiryTimestamp) . ' ' . PcUtils::fromIndexToMonth(date('n', $newExpiryTimestamp)) . ' ' . date('Y', $newExpiryTimestamp);
             $newExpiryTimestamp = $supporterAccount->getNewExpiryDateAfterSubscription(PcSubscriptionTypePeer::retrieveByPK(3), $supporterAccount->getExpiryDate('Y-m-d'));
             $this->niceExpiryDateOneYearExtended = date('j', $newExpiryTimestamp) . ' ' . PcUtils::fromIndexToMonth(date('n', $newExpiryTimestamp)) . ' ' . date('Y', $newExpiryTimestamp);
         }
     }
     $userCulture = $this->getUser()->getCulture();
     $this->cultureUrlPart = '';
     if ($userCulture != SfConfig::get('app_site_defaultLang')) {
         $this->cultureUrlPart = '/' . $userCulture;
     }
     $this->isOnRegistration = $this->getContext()->getRequest()->getParameter('onRegistration') == '1';
     /*
         if ($this->promoCode = $request->getParameter('promoCode'))
         {
        $this->hasPromoCodeBeenSubmitted = true;
     
        $promoCodeEntry = PcPromotionCodePeer::getValidPromoCodeEntry($this->promoCode);
     
        if (is_object($promoCodeEntry))
        {
            $this->isPromoCodeValid = true;
            $buttonCode = $promoCodeEntry->getPaypalButtonCode();
            $this->price *= 1 - ($promoCodeEntry->getDiscountPercentage() / 100);
        }
         }
     */
 }
コード例 #3
0
ファイル: PcTask.php プロジェクト: ntemple/intelli-plancake
 /**
  * If possible, returns one of these strings (comparing today's date with the due date):
  * _ yesterday
  * _ today
  * _ tomorrow
  * _ the week-day corresponding to 'in2days, Wed' (i.e.: Wednesday)
  * _ the week-day corresponding to 'in3days, Thu'
  * _ the week-day corresponding to 'in4days, Fri'
  * _ the week-day corresponding to 'in5days, Sat'
  * If any of those is unapplicable, it returns getFormattedLocalDueDate()
  *
  * @return     string
  */
 public function getHumanFriendlyDueDate()
 {
     $dateFormat = DateFormat::getInstance();
     $formattedDueDate = $this->getFormattedLocalDueDate();
     if (!$formattedDueDate) {
         return '';
     }
     $dueDateTimestamp = $dateFormat->getTimestamp($formattedDueDate);
     $todayTimestamp = PcUserPeer::getLoggedInUser()->getTime();
     $tomorrowTimestamp = $todayTimestamp + 86400;
     $yesterdayTimestamp = $todayTimestamp - 86400;
     list($tomorrowDay, $tomorrowMonth, $tomorrowYear) = explode('-', date('d-m-Y', $tomorrowTimestamp));
     list($todayDay, $todayMonth, $todayYear) = explode('-', date('d-m-Y', $todayTimestamp));
     list($yesterdayDay, $yesterdayMonth, $yesterdayYear) = explode('-', date('d-m-Y', $yesterdayTimestamp));
     $todayStart = mktime(0, 0, 0, $todayMonth, $todayDay, $todayYear);
     $todayEnd = mktime(23, 59, 59, $todayMonth, $todayDay, $todayYear);
     $tomorrowStart = mktime(0, 0, 0, $tomorrowMonth, $tomorrowDay, $tomorrowYear);
     $tomorrowEnd = mktime(23, 59, 59, $tomorrowMonth, $tomorrowDay, $tomorrowYear);
     $yesterdayStart = mktime(0, 0, 0, $yesterdayMonth, $yesterdayDay, $yesterdayYear);
     $yesterdayEnd = mktime(23, 59, 59, $yesterdayMonth, $yesterdayDay, $yesterdayYear);
     if ($todayStart < $dueDateTimestamp && $dueDateTimestamp < $todayEnd) {
         return __('ACCOUNT_MISC_TODAY');
     }
     if ($dueDateTimestamp < $todayStart) {
         if ($yesterdayStart < $dueDateTimestamp && $dueDateTimestamp < $yesterdayEnd) {
             return __('ACCOUNT_MISC_YESTERDAY');
         }
     }
     if ($dueDateTimestamp > $todayEnd) {
         if ($tomorrowStart < $dueDateTimestamp && $dueDateTimestamp < $tomorrowEnd) {
             return __('ACCOUNT_MISC_TOMORROW');
         }
         // the task is not in the future but not tomorrow
         // we will check whether it is within the next 5 days
         $deltaSinceTomorrowSec = $dueDateTimestamp - $tomorrowEnd;
         $deltaSinceTomorrowDays = ceil($deltaSinceTomorrowSec / 86400);
         // I'm adding 1 because $deltaDays has got tomorrow as a reference
         $deltaDays = $deltaSinceTomorrowDays + 1;
         if ($deltaDays <= 5) {
             // We need to display something like 'in3days, Thu'
             // I need to get the day of the week to display
             $weekDays = array('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
             $localizedWeekDays = array(__('ACCOUNT_DOW_SUN'), __('ACCOUNT_DOW_MON'), __('ACCOUNT_DOW_TUE'), __('ACCOUNT_DOW_WED'), __('ACCOUNT_DOW_THU'), __('ACCOUNT_DOW_FRI'), __('ACCOUNT_DOW_SAT'));
             $todayWeekDay = date('D', PcUserPeer::getLoggedInUser()->getTime());
             if (($todayWeekDayKey = array_search($todayWeekDay, $weekDays)) === FALSE) {
                 throw new Exception('Couldn\'t find the right week day key for today');
             }
             $dueDateWeekDayIndex = ($todayWeekDayKey + $deltaDays) % 7;
             $dueDateWeekDay = $localizedWeekDays[$dueDateWeekDayIndex];
             return sprintf(__('ACCOUNT_MISC_IN_X_DAYS'), $deltaDays) . ', ' . ucfirst($dueDateWeekDay);
         }
     }
     // At this point, we realized we can't apply any shortcut
     // we don't specify the year if it is the current one
     if ($this->getDueDate('Y') == date('Y', PcUserPeer::getLoggedInUser()->getTime())) {
         return $this->getDueDate("j") . ' ' . PcUtils::fromIndexToMonth($this->getDueDate('n')) . ', ' . ucfirst(PcUtils::fromIndexToWeekday($this->getDueDate('N')));
     } else {
         // return $this->getDueDate('j M Y');
         return $this->getDueDate("j") . ' ' . PcUtils::fromIndexToMonth($this->getDueDate('n')) . ' ' . $this->getDueDate('Y');
     }
 }