/** * @param HolidayDomain $holidayDomain The holidayDomain object to add. */ protected function doAddHolidayDomain($holidayDomain) { $this->collHolidayDomains[] = $holidayDomain; $holidayDomain->setHoliday($this); }
/** * 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'); } }
/** * 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; }
/** * 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; } }
/** * 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(); }