コード例 #1
0
ファイル: BaseHoliday.php プロジェクト: dapepe/tymio
 /**
  * @param	HolidayDomain $holidayDomain The holidayDomain object to add.
  */
 protected function doAddHolidayDomain($holidayDomain)
 {
     $this->collHolidayDomains[] = $holidayDomain;
     $holidayDomain->setHoliday($this);
 }
コード例 #2
0
ファイル: BaseDomainQuery.php プロジェクト: dapepe/tymio
 /**
  * Filter the query by a related HolidayDomain object
  *
  * @param   HolidayDomain|PropelObjectCollection $holidayDomain  the related object to use as filter
  * @param     string $comparison Operator to use for the column comparison, defaults to Criteria::EQUAL
  *
  * @return                 DomainQuery The current query, for fluid interface
  * @throws PropelException - if the provided filter is invalid.
  */
 public function filterByHolidayDomain($holidayDomain, $comparison = null)
 {
     if ($holidayDomain instanceof HolidayDomain) {
         return $this->addUsingAlias(DomainPeer::ID, $holidayDomain->getDomainId(), $comparison);
     } elseif ($holidayDomain instanceof PropelObjectCollection) {
         return $this->useHolidayDomainQuery()->filterByPrimaryKeys($holidayDomain->getPrimaryKeys())->endUse();
     } else {
         throw new PropelException('filterByHolidayDomain() only accepts arguments of type HolidayDomain or PropelCollection');
     }
 }
コード例 #3
0
 /**
  * Exclude object from result
  *
  * @param   HolidayDomain $holidayDomain Object to remove from the list of results
  *
  * @return HolidayDomainQuery The current query, for fluid interface
  */
 public function prune($holidayDomain = null)
 {
     if ($holidayDomain) {
         $this->addCond('pruneCond0', $this->getAliasedColName(HolidayDomainPeer::HOLIDAY_ID), $holidayDomain->getHolidayId(), Criteria::NOT_EQUAL);
         $this->addCond('pruneCond1', $this->getAliasedColName(HolidayDomainPeer::DOMAIN_ID), $holidayDomain->getDomainId(), Criteria::NOT_EQUAL);
         $this->combine(array('pruneCond0', 'pruneCond1'), Criteria::LOGICAL_OR);
     }
     return $this;
 }
コード例 #4
0
 /**
  * Adds an object to the instance pool.
  *
  * Propel keeps cached copies of objects in an instance pool when they are retrieved
  * from the database.  In some cases -- especially when you override doSelect*()
  * methods in your stub classes -- you may need to explicitly add objects
  * to the cache in order to ensure that the same objects are always returned by doSelect*()
  * and retrieveByPK*() calls.
  *
  * @param      HolidayDomain $obj A HolidayDomain object.
  * @param      string $key (optional) key to use for instance map (for performance boost if key was already calculated externally).
  */
 public static function addInstanceToPool($obj, $key = null)
 {
     if (Propel::isInstancePoolingEnabled()) {
         if ($key === null) {
             $key = serialize(array((string) $obj->getHolidayId(), (string) $obj->getDomainId()));
         }
         // if key === null
         HolidayDomainPeer::$instances[$key] = $obj;
     }
 }
コード例 #5
0
ファイル: holiday.php プロジェクト: dapepe/tymio
 /**
  * Updates a holiday
  *
  * @param int $intId The holiday ID
  * @param array $arrData
  * @return int The holiday ID
  */
 public function do_update($intId, $arrData)
 {
     $user = $this->requireUser();
     // Validate input data
     $validator = new KickstartValidator();
     $locale = Localizer::getInstance();
     $warnings = $validator->filterErrors($arrData, $this->initFilter($this->filter_basic, $locale));
     if ($warnings) {
         return array('result' => false, 'warnings' => $warnings);
     }
     if ($intId) {
         if (!($holiday = HolidayQuery::create()->findOneById($intId))) {
             throw new Exception('Holiday with ID ' . $intId . ' not found!');
         }
     } else {
         $holiday = new Holiday();
     }
     $con = Propel::getConnection(HolidayPeer::DATABASE_NAME);
     $con->beginTransaction();
     try {
         $holiday->setName($arrData['Name'])->setDate($arrData['Date'])->setAccount($user->getAccount())->save($con);
         // Assign the domains
         if (!(isset($arrData['Domains']) && is_array($arrData['Domains']))) {
             $arrData['Domains'] = array();
         }
         $sub = array();
         foreach (HolidayDomainQuery::create()->filterByHoliday($holiday)->find() as $link) {
             if (in_array($link->getDomainId(), $arrData['Domains'])) {
                 $sub[] = $link->getDomainId();
             } else {
                 $link->delete($con);
             }
         }
         $diff = array_diff($arrData['Domains'], $sub);
         if (sizeof($diff) > 0) {
             // Get the account's domains
             $domainFilter = DomainQuery::create()->filterByAccount($user->getAccount())->add(DomainPeer::ID, $arrData['Domains'], Criteria::IN)->find();
             if (sizeof($domainFilter) != sizeof($arrData['Domains'])) {
                 // Obviously there are some domains the user does not belong to
             }
             foreach (array_diff($arrData['Domains'], $sub) as $domainId) {
                 $link = new HolidayDomain();
                 $link->setHoliday($holiday)->setDomainId($domainId)->save($con);
             }
         }
         $con->commit();
     } catch (Exception $e) {
         $con->rollBack();
         throw $e;
     }
     return array('result' => $holiday->getId(), 'test' => $diff);
     // return $holiday->getId();
 }