Ejemplo n.º 1
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);
        }
         }
     */
 }
 /**
  * Populates the object using an array.
  *
  * This is particularly useful when populating an object from one of the
  * request arrays (e.g. $_POST).  This method goes through the column
  * names, checking to see whether a matching key exists in populated
  * array. If so the setByName() method is called for that column.
  *
  * You can specify the key type of the array by additionally passing one
  * of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME,
  * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM.
  * The default key type is the column's phpname (e.g. 'AuthorId')
  *
  * @param      array  $arr     An array to populate the object from.
  * @param      string $keyType The type of keys the array uses.
  * @return     void
  */
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = PcPromotionCodePeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setCode($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setDiscountPercentage($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setExpiryDate($arr[$keys[3]]);
     }
     if (array_key_exists($keys[4], $arr)) {
         $this->setOnlyForNewCustomers($arr[$keys[4]]);
     }
     if (array_key_exists($keys[5], $arr)) {
         $this->setUsesCount($arr[$keys[5]]);
     }
     if (array_key_exists($keys[6], $arr)) {
         $this->setMaxUses($arr[$keys[6]]);
     }
     if (array_key_exists($keys[7], $arr)) {
         $this->setNote($arr[$keys[7]]);
     }
     if (array_key_exists($keys[8], $arr)) {
         $this->setCreatedAt($arr[$keys[8]]);
     }
 }
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     if ($con === null) {
         $con = Propel::getConnection(PcPromotionCodePeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(PcPromotionCodePeer::DATABASE_NAME);
         $criteria->add(PcPromotionCodePeer::ID, $pks, Criteria::IN);
         $objs = PcPromotionCodePeer::doSelect($criteria, $con);
     }
     return $objs;
 }