public function myBatchPartnerUsage($partnerId = null) { self::initDb(); $partners_exists = true; $start_pos = 0; $bulk_size = 500; while ($partners_exists) { $c = new Criteria(); if (!is_null($partnerId)) { $c->addAnd(PartnerPeer::ID, $partnerId); } $c->addAnd(PartnerPeer::PARTNER_PACKAGE, 1); // get only free partners $c->addAnd(PartnerPeer::MONITOR_USAGE, 1); $c->addAnd(PartnerPeer::STATUS, Partner::PARTNER_STATUS_DELETED, CRITERIA::NOT_EQUAL); $c->setOffset($start_pos); $c->setLimit($bulk_size); $partners = PartnerPeer::doSelect($c); if (!$partners) { KalturaLog::debug("No more partners. offset: {$start_pos} , limit: {$bulk_size} ."); $partners_exists = false; } else { KalturaLog::debug("Looping " . ($start_pos + $bulk_size - 1) . " partners, offset: {$start_pos} ."); foreach ($partners as $partner) { myPartnerUtils::doPartnerUsage($partner, true); } } unset($partners); PartnerPeer::clearInstancePool(); $start_pos += $bulk_size; } }
public function myBatchPartnerUsage() { self::initDb(); $partners_exists = true; $start_pos = 0; $bulk_size = 500; while ($partners_exists) { $c = new Criteria(); // get only free partners $c->addAnd(PartnerPeer::PARTNER_PACKAGE, 1); $c->addAnd(PartnerPeer::MONITOR_USAGE, 1); $c->setOffset($start_pos); $c->setLimit($bulk_size); $partners = PartnerPeer::doSelect($c); if (!$partners) { TRACE("No more partners. offset: {$start_pos} , limit: {$bulk_size} ."); $partners_exists = false; } else { TRACE("Looping " . ($start_pos + $bulk_size - 1) . " partners, offset: {$start_pos} ."); foreach ($partners as $partner) { myPartnerUtils::doPartnerUsage($partner, true); } } unset($partners); $start_pos += $bulk_size; } }
public function execute() { $this->forceSystemAuthentication(); $hint = $this->getP("hint"); $search_partnerName = $this->getP("p_partnerName", true); $search_description = $this->getP("p_description", true); $search_url1 = $this->getP("p_url1", true); $search_adminName = $this->getP("p_adminName", true); $search_adminEmail = $this->getP("p_adminEmail", true); $limit = $this->getP("limit", 300); $offset = $this->getP("offset", 0); $text_to_search = "%{$hint}%"; $c = new Criteria(); $crit = $c->getNewCriterion(PartnerPeer::PARTNER_NAME, $text_to_search, Criteria::LIKE); if ($search_description) { $crit->addOr($c->getNewCriterion(PartnerPeer::DESCRIPTION, $text_to_search, Criteria::LIKE)); } if ($search_url1) { $crit->addOr($c->getNewCriterion(PartnerPeer::URL1, $text_to_search, Criteria::LIKE)); } if ($search_adminName) { $crit->addOr($c->getNewCriterion(PartnerPeer::ADMIN_NAME, $text_to_search, Criteria::LIKE)); } if ($search_adminEmail) { $crit->addOr($c->getNewCriterion(PartnerPeer::ADMIN_EMAIL, $text_to_search, Criteria::LIKE)); } $c->addAnd($crit); // $this->count = PartnerPeer::doCount( $c ); $c->setLimit($limit); if ($offset > 0) { $c->setOffset($offset); } if ($hint) { $this->partner_list = PartnerPeer::doSelect($c); } else { $this->partner_list = array(); } /* $arr = array(); foreach ( $this->partner_list as $partner ) { $p = array ( "id" => $partner->getId() , "partnerName" => $partner->getPartnerName() , "description" => $partner->getDescription() , "url1" => $partner->getUrl1() , "adminName" => $partner->getAdminName() , "adminEmail" => $partner->getAdminEmail() , ); $arr[] = $p; } */ $this->hint = $hint; // return $this->renderText(json_encode ( $arr ) ); }
public static function getAll($offset = 0) { $c = new Criteria(); $c->addAscendingOrderByColumn(self::CREATED_AT); $c->setOffset($offset); $objs = self::doSelect($c); if (count($objs) > 0) { return $objs; } else { return false; } }
public function attachToCriteria(Criteria $c) { $limit = $this->pageSize; if ($limit > baseObjectFilter::getMaxInValues()) { $limit = baseObjectFilter::getMaxInValues(); } $page = max($this->minPageIndex, $this->pageIndex); $offset = ($page - 1) * $limit; $c->setLimit($limit); if ($offset > 0) { $c->setOffset($offset); } }
/** * Gets the paged results * @param Object $obj * @return ArrayObject $return */ public function getResults($obj) { if (!is_object($obj)) { return false; } $criteria = new Criteria(); $criteria->addNotWhere(); $criteria->setLimit($this->limit); $criteria->setOffset($this->offset); $return = $obj->doSelect($criteria); $this->totalRecords = count($return); return $return; }
public function attachToCriteria(Criteria $c) { $limit = $this->pageSize; if ($limit > $this->maxPageSize) { $limit = $this->maxPageSize; } $page = max($this->minPageIndex, $this->pageIndex); $offset = ($page - 1) * $limit; $c->setLimit($limit); if ($offset > 0) { $c->setOffset($offset); } }
public function getSubscriberGroupMemberships($oCriteria = null, PropelPDO $oCon = null, $iLimit = null, $iOffset = null) { if ($oCriteria === null) { $oCriteria = new Criteria(); } $oCriteria->addJoin(SubscriberGroupMembershipPeer::SUBSCRIBER_ID, SubscriberPeer::ID, Criteria::INNER_JOIN); $oCriteria->addAscendingOrderByColumn(SubscriberPeer::EMAIL); if ($iLimit !== null) { $oCriteria->setLimit($iLimit); if ($iOffset) { $oCriteria->setOffset($iOffset); } } return parent::getSubscriberGroupMemberships($oCriteria, $oCon); }
public function testMergeWithOffset() { $c1 = new Criteria(); $c1->setOffset(123); $c2 = new Criteria(); $c1->mergeWith($c2); $this->assertEquals(123, $c1->getOffset(), 'mergeWith() does not remove an existing offset'); $c1 = new Criteria(); $c2 = new Criteria(); $c2->setOffset(123); $c1->mergeWith($c2); $this->assertEquals(123, $c1->getOffset(), 'mergeWith() merges the offset'); $c1 = new Criteria(); $c1->setOffset(456); $c2 = new Criteria(); $c2->setOffset(123); $c1->mergeWith($c2); $this->assertEquals(456, $c1->getOffset(), 'mergeWith() does not merge the offset in case of conflict'); }
public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser) { // the relevant puser_kuser is the one from the user_id NOT the uid (which is the logged in user investigationg //$target_puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id , null , $user_id , true ); $page = $this->getP("page"); $page_size = $this->getP("page_size"); $detailed = $this->getP("detailed", false); $c = new Criteria(); $c->addAnd(kuserPeer::PARTNER_ID, $partner_id, Criteria::EQUAL); $c->setLimit($page_size); $c->setOffset(($page - 1) * $page_size); $users = kuserPeer::doSelect($c); $extra_fields = array(); if ($detailed) { $extra_fields = array("country", "state", "city", "zip", "urlList", "networkHighschool", "networkCollege", "views", "fans", "entries", "producedKshows"); } $level = objectWrapperBase::DETAIL_LEVEL_REGULAR; $this->addMsg("count", count($users)); $this->addMsg("page", $page); $this->addMsg("pageSize", $page_size); $this->addMsg("users", objectWrapperBase::getWrapperClass($users, $level, objectWrapperBase::DETAIL_VELOCITY_DEFAULT, 0, $extra_fields)); }
public function rebuildModel($name) { $options = $this->getSearch()->getParameter('models')->get($name); $per = $options->get('rebuild_limit'); $peer = $options->get('peer'); // calculate total number of pages $count = call_user_func(array($peer, 'doCount'), new Criteria()); $this->getSearch()->getEventDispatcher()->notify(new sfEvent($this, 'indexer.log', array('Discovered %d instances of model "%s"', $count, $name))); $totalPages = ceil($count / $per); $propel13 = class_exists('PropelPDO', true) ? true : false; for ($page = 0; $page < $totalPages; $page++) { $c = new Criteria(); $c->setOffset($page * $per); $c->setLimit($per); if ($propel13) { $rs = call_user_func(array($peer, 'doSelectStmt'), $c); while ($row = $rs->fetch(PDO::FETCH_NUM)) { $instance = new $name(); $instance->hydrate($row); $this->getFactory()->getModel($instance)->save(); unset($instance); // free memory } } else { $rs = call_user_func(array($peer, 'doSelectRS'), $c); while ($rs->next()) { $instance = new $name(); $instance->hydrate($rs); $this->getFactory()->getModel($instance)->save(); unset($instance); // free memory } } unset($rs); // free memory } }
/** * Get a paginated list of application uids from database. * * @param integer $skip * the offset from where to return the application records * @param integer $pagesize * the size of the page * @return array of application id's in the specified page. */ public function getPagedApplicationUids($skip, $pagesize) { $c = new Criteria(); $c->addSelectColumn(ApplicationPeer::APP_UID); $c->setOffset($skip); $c->setLimit($pagesize); $rs = ApplicationPeer::doSelectRS($c); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); $row = $rs->getRow(); $appUIds = array(); while (is_array($row)) { $appUIds[] = $row; $rs->next(); $row = $rs->getRow(); } return $appUIds; }
public function getAll($start = 0, $limit = 20, $filter = '', $process = null) { $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_UID); $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_NAME); $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_DESCRIPTION); $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TYPE); $oCriteria->addSelectColumn(AdditionalTablesPeer::ADD_TAB_TAG); $oCriteria->addSelectColumn(AdditionalTablesPeer::PRO_UID); $oCriteria->addSelectColumn(AdditionalTablesPeer::DBS_UID); if (isset($process)) { foreach ($process as $key => $pro_uid) { if ($key == 'equal') { $oCriteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::EQUAL); } else { $oCriteria->add(AdditionalTablesPeer::PRO_UID, $pro_uid, Criteria::NOT_EQUAL); } } } if ($filter != '' && is_string($filter)) { $oCriteria->add( $oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_NAME, '%' . $filter . '%', Criteria::LIKE)->addOr( $oCriteria->getNewCriterion(AdditionalTablesPeer::ADD_TAB_DESCRIPTION, '%' . $filter . '%', Criteria::LIKE)) ); } if (isset($_POST['sort'])) { if ($_POST['dir'] == 'ASC') { eval('$oCriteria->addAscendingOrderByColumn(AdditionalTablesPeer::' . $_POST['sort'] . ');'); } else { eval('$oCriteria->addDescendingOrderByColumn(AdditionalTablesPeer::' . $_POST['sort'] . ');'); } } else { $oCriteria->addAscendingOrderByColumn(AdditionalTablesPeer::ADD_TAB_NAME); } $criteriaCount = clone $oCriteria; $count = AdditionalTablesPeer::doCount($criteriaCount); $oCriteria->setLimit($limit); $oCriteria->setOffset($start); $oDataset = AdditionalTablesPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $addTables = Array(); $proUids = Array(); while ($oDataset->next()) { $row = $oDataset->getRow(); $row['PRO_TITLE'] = $row['PRO_DESCRIPTION'] = ''; $addTables[] = $row; if ($row['PRO_UID'] != '') { $proUids[] = $row['PRO_UID']; } } //process details will have the info about the processes $procDetails = Array(); if (count($proUids) > 0) { //now get the labels for all process, using an array of Uids, $c = new Criteria('workflow'); //$c->add ( ContentPeer::CON_CATEGORY, 'PRO_TITLE', Criteria::EQUAL ); $c->add(ContentPeer::CON_LANG, defined('SYS_LANG') ? SYS_LANG : 'en', Criteria::EQUAL); $c->add(ContentPeer::CON_ID, $proUids, Criteria::IN); $dt = ContentPeer::doSelectRS($c); $dt->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dt->next()) { $row = $dt->getRow(); $procDetails[$row['CON_ID']][$row['CON_CATEGORY']] = $row['CON_VALUE']; } foreach ($addTables as $i => $addTable) { if (isset($procDetails[$addTable['PRO_UID']]['PRO_TITLE'])) { $addTables[$i]['PRO_TITLE'] = $procDetails[$addTable['PRO_UID']]['PRO_TITLE']; } if (isset($procDetails[$addTable['PRO_UID']]['PRO_DESCRIPTION'])) { $addTables[$i]['PRO_DESCRIPTION'] = $procDetails[$addTable['PRO_UID']]['PRO_DESCRIPTION']; } } } return array('rows' => $addTables, 'count' => $count); }
public function execute() { die; ini_set("memory_limit", "128M"); ini_set("max_execution_time", "240"); $this->forceSystemAuthentication(); $start = microtime(true); $file_path = dirname(__FILE__) . "/../data/viewPartnersData.txt"; $partner_groups = new partnerGroups($file_path); $this->partner_group_list = $partner_groups->partner_group_list; $group_rest = new partnerGroup(); $group_rest->setName("_rest"); $this->partner_group_list[] = $group_rest; $partner_filter = $this->getP("partner_filter"); $filter_type = $this->getP("filter_type", "project"); //"wiki_wordpress" ); // default a relatively short list $this->type = $this->getP("type"); $gloabl_dual = false; //true; if ($this->type == 2) { $gloabl_dual = false; } $this->from_date = $this->getP("from_date"); $this->to_date = $this->getP("to_date"); $this->days = $this->getP("days"); $page = $this->getP("page", 1); if ($page < 1) { $page = 1; } $this->page = $page; $this->partners_between = $this->getP("partners_between"); if ($this->partners_between == "false") { $this->partners_between = false; } // increment the to_date in one 1 (to be inclusive) /* if ( $this->to_date ) { $timeStamp = strtotime( $this->to_date ); $timeStamp += 24 * 60 * 60 ; // add one day $this->to_date = date("Y-m-d", $timeStamp); } */ if ($this->days) { $timeStamp = strtotime($this->to_date); $timeStamp -= 24 * 60 * 60 * $this->days; // (- $this->days days) $this->from_date = date("Y-m-d", $timeStamp); } $this->new_first = $this->getP("new_first", null); if ($this->new_first == "false") { $this->new_first = false; } // don't display these partners // $exclude_list = self::getIdList ( "exclude" ); $this->partners_stat = array(); $c = new Criteria(); $c->setLimit(self::MAX_PAGE_SIZE); $c->setOffset(($page - 1) * self::MAX_PAGE_SIZE); if ($this->new_first) { $c->addDescendingOrderByColumn(PartnerPeer::ID); } else { $c->addAscendingOrderByColumn(PartnerPeer::ID); } // $c->addAnd ( PartnerPeer::ID , $exclude_list , Criteria::NOT_IN ); if ($this->to_date) { $c->addAnd(PartnerPeer::CREATED_AT, $this->to_date, Criteria::LESS_EQUAL); } if ($this->partners_between) { $c->addAnd(PartnerPeer::CREATED_AT, $this->from_date, Criteria::GREATER_EQUAL); } // TODO - change rule mechanism to be more flixible $this->createCriteriaByGroup($partner_groups, $c, $filter_type, $partner_filter); $partners = PartnerPeer::doSelect($c); $ids = self::getIds($partners); $updated_at = null; if ($ids && count($ids) >= 1) { $statsPool = self::getPartnersStats($ids, $this->from_date, $this->to_date); // fdb::populateObjects( $partners , new PartnerStatsPeer() , "id" , "partnerStats" , false ,"partnerId"); foreach ($partners as $partner) { $partner_id = $partner->getId(); $this->addStat($partner_id, "name", $partner_id == $partner->getPartnerName() ? $partner->getAdminName() : $partner->getpartnerName()); $this->addStat($partner_id, "email", $partner->getAdminEmail()); $this->addStat($partner_id, "description", $partner->getDescription()); $this->addStat($partner_id, "url1", $partner->getUrl1()); $this->addStat($partner_id, "created", substr($partner->getCreatedAt(), 0, 10)); $this->addStat($partner_id, "categories", $partner->getContentCategories()); $stats = @$statsPool[$partner_id]; if ($stats) { $this->addExtraStats($partner_id, $stats); } } } $this->dual = $gloabl_dual; $this->partner_filter = $partner_filter; $this->filter_type = $filter_type; $this->updated_at = $updated_at; $end = microtime(true); $this->bench = $end - $start; }
function getAll($lang = 'en', $start = null, $limit = null, $search = null, $dateFrom = null, $dateTo = null) { $totalCount = 0; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(TranslationPeer::TRN_ID); $oCriteria->addSelectColumn(TranslationPeer::TRN_CATEGORY); $oCriteria->addSelectColumn(TranslationPeer::TRN_LANG); $oCriteria->addSelectColumn(TranslationPeer::TRN_VALUE); $oCriteria->addSelectColumn(TranslationPeer::TRN_UPDATE_DATE); $oCriteria->add(TranslationPeer::TRN_LANG, $lang); $oCriteria->add(TranslationPeer::TRN_CATEGORY, 'LABEL'); //$oCriteria->addAscendingOrderByColumn ( 'TRN_CATEGORY' ); $oCriteria->addAscendingOrderByColumn('TRN_ID'); if ($search) { $oCriteria->add($oCriteria->getNewCriterion(TranslationPeer::TRN_ID, "%{$search}%", Criteria::LIKE)->addOr($oCriteria->getNewCriterion(TranslationPeer::TRN_VALUE, "%{$search}%", Criteria::LIKE))); } // for date filter if ($dateFrom && $dateTo) { $oCriteria->add($oCriteria->getNewCriterion(TranslationPeer::TRN_UPDATE_DATE, "{$dateFrom}", Criteria::GREATER_EQUAL)->addAnd($oCriteria->getNewCriterion(TranslationPeer::TRN_UPDATE_DATE, "{$dateTo}", Criteria::LESS_EQUAL))); } // end filter $c = clone $oCriteria; $c->clearSelectColumns(); $c->addSelectColumn('COUNT(*)'); $oDataset = TranslationPeer::doSelectRS($c); $oDataset->next(); $aRow = $oDataset->getRow(); if (is_array($aRow)) { $totalCount = $aRow[0]; } if ($start) { $oCriteria->setOffset($start); } if ($limit) { //&& !isset($seach) && !isset($search)) $oCriteria->setLimit($limit); } $rs = TranslationPeer::doSelectRS($oCriteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rows = array(); while ($rs->next()) { $rows[] = $rs->getRow(); } $result->data = $rows; $result->totalCount = $totalCount; return $result; }
public function testMssqlApplyLimitWithOffsetMultipleOrderBy() { $db = Propel::getDB(BookPeer::DATABASE_NAME); if (!$db instanceof DBMSSQL) { $this->markTestSkipped(); } $c = new Criteria(BookPeer::DATABASE_NAME); $c->addSelectColumn(BookPeer::ID); $c->addSelectColumn(BookPeer::TITLE); $c->addSelectColumn(PublisherPeer::NAME); $c->addAsColumn('PublisherName', '(SELECT MAX(publisher.NAME) FROM publisher WHERE publisher.ID = book.PUBLISHER_ID)'); $c->addJoin(BookPeer::PUBLISHER_ID, PublisherPeer::ID, Criteria::LEFT_JOIN); $c->addDescendingOrderByColumn('PublisherName'); $c->addAscendingOrderByColumn(BookPeer::TITLE); $c->setOffset(20); $c->setLimit(20); $params = array(); $expectedSql = "SELECT [book.ID], [book.TITLE], [publisher.NAME], [PublisherName] FROM (SELECT ROW_NUMBER() OVER(ORDER BY (SELECT MAX(publisher.NAME) FROM publisher WHERE publisher.ID = book.PUBLISHER_ID) DESC, book.TITLE ASC) AS [RowNumber], book.ID AS [book.ID], book.TITLE AS [book.TITLE], publisher.NAME AS [publisher.NAME], (SELECT MAX(publisher.NAME) FROM publisher WHERE publisher.ID = book.PUBLISHER_ID) AS [PublisherName] FROM book LEFT JOIN publisher ON (book.PUBLISHER_ID=publisher.ID)) AS derivedb WHERE RowNumber BETWEEN 21 AND 40"; $sql = BasePeer::createSelectSql($c, $params); $this->assertEquals($expectedSql, $sql); }
/** * Tests the doCount() method with limit/offset. */ public function testDoCountLimitOffset() { BookPeer::doDeleteAll(); for ($i = 0; $i < 25; $i++) { $b = new Book(); $b->setTitle("Book {$i}"); $b->setISBN("ISBN {$i}"); $b->save(); } $c = new Criteria(); $totalCount = BookPeer::doCount($c); $this->assertEquals(25, $totalCount); $c2 = new Criteria(); $c2->setLimit(10); $this->assertEquals(10, BookPeer::doCount($c2)); $c3 = new Criteria(); $c3->setOffset(10); $this->assertEquals(15, BookPeer::doCount($c3)); $c4 = new Criteria(); $c4->setOffset(5); $c4->setLimit(5); $this->assertEquals(5, BookPeer::doCount($c4)); $c5 = new Criteria(); $c5->setOffset(20); $c5->setLimit(10); $this->assertEquals(5, BookPeer::doCount($c5)); }
public function getDashletsInstances($start = null, $limit = null) { try { $dashletsInstances = array(); $criteria = new Criteria('workflow'); $criteria->addSelectColumn('*'); $criteria->addJoin(DashletInstancePeer::DAS_UID, DashletPeer::DAS_UID, Criteria::INNER_JOIN); if (!is_null($start)) { $criteria->setOffset($start); } if (!is_null($limit)) { $criteria->setLimit($limit); } $dataset = DashletInstancePeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $dataset->next(); while ($row = $dataset->getRow()) { $arrayField = unserialize($row["DAS_INS_ADDITIONAL_PROPERTIES"]); $row['DAS_INS_STATUS_LABEL'] = $row['DAS_INS_STATUS'] == '1' ? G::LoadTranslation('ID_ACTIVE') : G::LoadTranslation('ID_INACTIVE'); $row['DAS_INS_TITLE'] = isset($arrayField['DAS_INS_TITLE']) && !empty($arrayField['DAS_INS_TITLE']) ? $arrayField['DAS_INS_TITLE'] : ''; if (!class_exists($row['DAS_CLASS'])) { self::setIncludePath(); require_once 'classes' . PATH_SEP . 'class.' . $row['DAS_CLASS'] . '.php'; } eval("\$row['DAS_VERSION'] = defined('" . $row['DAS_CLASS'] . "::version') ? " . $row['DAS_CLASS'] . "::version : \$row['DAS_VERSION'];"); switch ($row['DAS_INS_OWNER_TYPE']) { case 'EVERYBODY': $row['DAS_INS_OWNER_TITLE'] = G::LoadTranslation('ID_ALL_USERS'); break; case 'USER': require_once 'classes/model/Users.php'; $userInstance = new Users(); try { $user = $userInstance->load($row['DAS_INS_OWNER_UID']); $row['DAS_INS_OWNER_TITLE'] = $user['USR_FIRSTNAME'] . ' ' . $user['USR_LASTNAME']; } catch (Exception $error) { $this->remove($row['DAS_INS_UID']); $row['DAS_INS_UID'] = ''; } break; case 'DEPARTMENT': require_once 'classes/model/Department.php'; $departmentInstance = new Department(); try { $department = $departmentInstance->load($row['DAS_INS_OWNER_UID']); $row['DAS_INS_OWNER_TITLE'] = $department['DEPO_TITLE']; } catch (Exception $error) { $this->remove($row['DAS_INS_UID']); $row['DAS_INS_UID'] = ''; } break; case 'GROUP': require_once 'classes/model/Groupwf.php'; $groupInstance = new Groupwf(); try { $group = $groupInstance->load($row['DAS_INS_OWNER_UID']); $row['DAS_INS_OWNER_TITLE'] = $group['GRP_TITLE']; } catch (Exception $error) { $this->remove($row['DAS_INS_UID']); $row['DAS_INS_UID'] = ''; } break; default: $row['DAS_INS_OWNER_TITLE'] = $row['DAS_INS_OWNER_TYPE']; break; } if ($row['DAS_INS_UID'] != '') { $dashletsInstances[] = $row; } $dataset->next(); } return $dashletsInstances; } catch (Exception $error) { throw $error; } }
/** * Return an assignee list of an activity * * @param string $processUid * @param string $taskUid * @param string $option * @param int $taskUserType * @param array $arrayFilterData * @param int $start * @param int $limit * @param string $type * * return array */ public function getTaskAssignees($processUid, $taskUid, $option, $taskUserType, $arrayFilterData = null, $start = null, $limit = null, $type = null) { try { $arrayAssignee = array(); $numRecTotal = 0; $startbk = $start; $limitbk = $limit; //Verify data $process = new \ProcessMaker\BusinessModel\Process(); $process->throwExceptionIfDataNotMetPagerVarDefinition(array("start" => $start, "limit" => $limit), array("start" => "start", "limit" => "limit")); $arrayFieldDefinition = array("OPTION" => array("type" => "string", "required" => true, "empty" => false, "defaultValues" => array("ASSIGNEE", "AVAILABLE"), "fieldNameAux" => "option"), "TASK_USER_TYPE" => array("type" => "int", "required" => true, "empty" => false, "defaultValues" => array(1, 2), "fieldNameAux" => "taskUserType")); $process->throwExceptionIfDataNotMetFieldDefinition(array("OPTION" => $option, "TASK_USER_TYPE" => $taskUserType), $arrayFieldDefinition, array("option" => "option", "taskUserType" => "taskUserType"), false); //Set variables $filterName = "filter"; if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"])) { $arrayAux = array("" => "filter", "LEFT" => "lfilter", "RIGHT" => "rfilter"); $filterName = $arrayAux[isset($arrayFilterData["filterOption"]) ? $arrayFilterData["filterOption"] : ""]; } //Get data if (!is_null($limit) && $limit . "" == "0") { //Return return array("total" => $numRecTotal, "start" => (int) (!is_null($startbk) ? $startbk : 0), "limit" => (int) (!is_null($limitbk) ? $limitbk : 0), $filterName => !is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) ? $arrayFilterData["filter"] : "", "data" => $arrayAssignee); } //Verify data $process->throwExceptionIfNotExistsProcess($processUid, "prj_uid"); $this->throwExceptionIfNotExistsTask($processUid, $taskUid, "act_uid"); //Set variables $numRecTotalGroup = 0; $numRecTotalUser = 0; switch ($option) { case "ASSIGNEE": break; case "AVAILABLE": $task = new \Tasks(); $arrayGroupUid = array(); foreach ($task->getGroupsOfTask($taskUid, $taskUserType) as $value) { $arrayGroupUid[] = $value['GRP_UID']; } $arrayUserUid = array(); foreach ($task->getUsersOfTask($taskUid, $taskUserType) as $value) { $arrayUserUid[] = $value['USR_UID']; } break; } //Groups //Query if (empty($type) || $type == "group") { $criteriaGroup = new \Criteria("workflow"); $criteriaGroup->addSelectColumn(\GroupwfPeer::GRP_UID); $criteriaGroup->addAsColumn("GRP_TITLE", \ContentPeer::CON_VALUE); switch ($option) { case "ASSIGNEE": $criteriaGroup->addJoin(\TaskUserPeer::USR_UID, \GroupwfPeer::GRP_UID, \Criteria::LEFT_JOIN); $criteriaGroup->add(\TaskUserPeer::TAS_UID, $taskUid, \Criteria::EQUAL); $criteriaGroup->add(\TaskUserPeer::TU_TYPE, $taskUserType, \Criteria::EQUAL); $criteriaGroup->add(\TaskUserPeer::TU_RELATION, 2, \Criteria::EQUAL); break; case "AVAILABLE": $criteriaGroup->add(\GroupwfPeer::GRP_UID, $arrayGroupUid, \Criteria::NOT_IN); break; } $criteriaGroup->addJoin(\GroupwfPeer::GRP_UID, \ContentPeer::CON_ID, \Criteria::LEFT_JOIN); $criteriaGroup->add(\ContentPeer::CON_CATEGORY, "GRP_TITLE", \Criteria::EQUAL); $criteriaGroup->add(\ContentPeer::CON_LANG, SYS_LANG, \Criteria::EQUAL); if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") { $arraySearch = array("" => "%" . $arrayFilterData["filter"] . "%", "LEFT" => $arrayFilterData["filter"] . "%", "RIGHT" => "%" . $arrayFilterData["filter"]); $search = $arraySearch[isset($arrayFilterData["filterOption"]) ? $arrayFilterData["filterOption"] : ""]; $criteriaGroup->add(\ContentPeer::CON_VALUE, $search, \Criteria::LIKE); } $criteriaGroup->add(\GroupwfPeer::GRP_STATUS, "ACTIVE", \Criteria::EQUAL); //Number records total $criteriaCount = clone $criteriaGroup; $criteriaCount->clearSelectColumns(); $criteriaCount->addSelectColumn("COUNT(" . \GroupwfPeer::GRP_UID . ") AS NUM_REC"); switch ($option) { case "ASSIGNEE": $rsCriteriaCount = \TaskUserPeer::doSelectRS($criteriaCount); break; case "AVAILABLE": $rsCriteriaCount = \GroupwfPeer::doSelectRS($criteriaCount); break; } $rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $result = $rsCriteriaCount->next(); $row = $rsCriteriaCount->getRow(); $numRecTotalGroup = (int) $row["NUM_REC"]; $numRecTotal = $numRecTotal + $numRecTotalGroup; } //Users //Query if (empty($type) || $type == "user") { $criteriaUser = new \Criteria("workflow"); $criteriaUser->addSelectColumn(\UsersPeer::USR_UID); $criteriaUser->addSelectColumn(\UsersPeer::USR_USERNAME); $criteriaUser->addSelectColumn(\UsersPeer::USR_FIRSTNAME); $criteriaUser->addSelectColumn(\UsersPeer::USR_LASTNAME); switch ($option) { case "ASSIGNEE": $criteriaUser->addJoin(\TaskUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN); $criteriaUser->add(\TaskUserPeer::TAS_UID, $taskUid, \Criteria::EQUAL); $criteriaUser->add(\TaskUserPeer::TU_TYPE, $taskUserType, \Criteria::EQUAL); $criteriaUser->add(\TaskUserPeer::TU_RELATION, 1, \Criteria::EQUAL); break; case "AVAILABLE": $criteriaUser->add(\UsersPeer::USR_UID, $arrayUserUid, \Criteria::NOT_IN); break; } if (!is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) && trim($arrayFilterData["filter"]) != "") { $arraySearch = array("" => "%" . $arrayFilterData["filter"] . "%", "LEFT" => $arrayFilterData["filter"] . "%", "RIGHT" => "%" . $arrayFilterData["filter"]); $search = $arraySearch[isset($arrayFilterData["filterOption"]) ? $arrayFilterData["filterOption"] : ""]; $criteriaUser->add($criteriaUser->getNewCriterion(\UsersPeer::USR_USERNAME, $search, \Criteria::LIKE)->addOr($criteriaUser->getNewCriterion(\UsersPeer::USR_FIRSTNAME, $search, \Criteria::LIKE))->addOr($criteriaUser->getNewCriterion(\UsersPeer::USR_LASTNAME, $search, \Criteria::LIKE))); } $criteriaUser->add(\UsersPeer::USR_STATUS, "ACTIVE", \Criteria::EQUAL); //Number records total $criteriaCount = clone $criteriaUser; $criteriaCount->clearSelectColumns(); $criteriaCount->addSelectColumn("COUNT(" . \UsersPeer::USR_UID . ") AS NUM_REC"); switch ($option) { case "ASSIGNEE": $rsCriteriaCount = \TaskUserPeer::doSelectRS($criteriaCount); break; case "AVAILABLE": $rsCriteriaCount = \UsersPeer::doSelectRS($criteriaCount); break; } $rsCriteriaCount->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $result = $rsCriteriaCount->next(); $row = $rsCriteriaCount->getRow(); $numRecTotalUser = (int) $row["NUM_REC"]; $numRecTotal = $numRecTotal + $numRecTotalUser; } //Groups //Query if (empty($type) || $type == "group") { $criteriaGroup->addAscendingOrderByColumn("GRP_TITLE"); if (!is_null($start)) { $criteriaGroup->setOffset((int) $start); } if (!is_null($limit)) { $criteriaGroup->setLimit((int) $limit); } switch ($option) { case "ASSIGNEE": $rsCriteriaGroup = \TaskUserPeer::doSelectRS($criteriaGroup); break; case "AVAILABLE": $rsCriteriaGroup = \GroupwfPeer::doSelectRS($criteriaGroup); break; } $rsCriteriaGroup->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $numRecGroup = 0; while ($rsCriteriaGroup->next()) { $row = $rsCriteriaGroup->getRow(); $criteria2 = new \Criteria("workflow"); $criteria2->addSelectColumn("COUNT(" . \GroupUserPeer::GRP_UID . ") AS NUM_MEM"); $criteria2->add(\GroupUserPeer::GRP_UID, $row["GRP_UID"], \Criteria::EQUAL); $rsCriteria2 = \GroupUserPeer::doSelectRS($criteria2); $rsCriteria2->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $result = $rsCriteria2->next(); $row2 = $rsCriteria2->getRow(); $row["GRP_TITLE"] = $row["GRP_TITLE"] . " (" . $row2["NUM_MEM"] . " " . \G::LoadTranslation((int) $row2["NUM_MEM"] == 1 ? "ID_USER" : "ID_USERS") . ")"; $arrayAssignee[] = $this->getTaskAssigneeDataFromRecord(array($row["GRP_UID"], $row["GRP_TITLE"], "", $row["GRP_TITLE"], "group"), $taskUserType); $numRecGroup++; } } //Users //Query if (empty($type) || $type == "user") { $flagUser = true; if ($numRecTotalGroup > 0) { if ($numRecGroup > 0) { if (!is_null($limit)) { if ($numRecGroup < (int) $limit) { $start = 0; $limit = $limit - $numRecGroup; } else { $flagUser = false; } } else { $start = 0; } } else { $start = (int) $start - $numRecTotalGroup; } } if ($flagUser) { //Users //Query $criteriaUser->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME); if (!is_null($start)) { $criteriaUser->setOffset((int) $start); } if (!is_null($limit)) { $criteriaUser->setLimit((int) $limit); } switch ($option) { case "ASSIGNEE": $rsCriteriaUser = \TaskUserPeer::doSelectRS($criteriaUser); break; case "AVAILABLE": $rsCriteriaUser = \UsersPeer::doSelectRS($criteriaUser); break; } $rsCriteriaUser->setFetchmode(\ResultSet::FETCHMODE_ASSOC); while ($rsCriteriaUser->next()) { $row = $rsCriteriaUser->getRow(); $arrayAssignee[] = $this->getTaskAssigneeDataFromRecord(array($row["USR_UID"], $row["USR_FIRSTNAME"], $row["USR_LASTNAME"], $row["USR_USERNAME"], "user"), $taskUserType); } } } //Return return array("total" => $numRecTotal, "start" => (int) (!is_null($startbk) ? $startbk : 0), "limit" => (int) (!is_null($limitbk) ? $limitbk : 0), $filterName => !is_null($arrayFilterData) && is_array($arrayFilterData) && isset($arrayFilterData["filter"]) ? $arrayFilterData["filter"] : "", "data" => $arrayAssignee); } catch (\Exception $e) { throw $e; } }
$row = $oDataset->getRow(); $totalRows = $row['CNT']; $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(UsersPeer::USR_UID); $oCriteria->addSelectColumn(UsersPeer::USR_USERNAME); $oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME); $oCriteria->addSelectColumn(UsersPeer::USR_EMAIL); $oCriteria->addSelectColumn(UsersPeer::USR_STATUS); $oCriteria->add(UsersPeer::USR_STATUS, 'CLOSED', Criteria::NOT_EQUAL); $oCriteria->add(UsersPeer::USR_UID, $uUIDs, Criteria::NOT_IN); $filter = isset($_POST['textFilter']) ? $_POST['textFilter'] : ''; if ($filter != '') { $oCriteria->add($oCriteria->getNewCriterion(UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE)->addOr($oCriteria->getNewCriterion(UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE)->addOr($oCriteria->getNewCriterion(UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE)))); } $oCriteria->setOffset($start); $oCriteria->setLimit($limit); $oDataset = UsersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $arrData = array(); while ($oDataset->next()) { $arrData[] = $oDataset->getRow(); } echo '{success: true, members: ' . G::json_encode($arrData) . ', total_users: ' . $totalRows . '}'; break; case 'assignUsersToGroupsMultiple': $GRP_UID = $_POST['GRP_UID']; $uUIDs = explode(',', $_POST['USR_UID']); G::LoadClass('groups'); $oGroup = new Groups(); foreach ($uUIDs as $USR_UID) {
/** return array('status' => $status, 'message' => $message, 'objects' => $objects); objects - array of 'thumb' 'title' 'description' 'id' - unique id to be passed to getMediaInfo this service will first return the relevant kshows, then find the relevant roughcuts and finally fetch the entries */ public function searchMedia($media_type, $searchText, $page, $pageSize, $authData = null, $extraData = null) { myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL2; // this bellow will bypass the partner filter - at the end of the code the filter will return to be as was before $kshow_criteria = kshowPeer::getCriteriaFilter()->getFilter(); $original_kshow_partner_to_filter = $kshow_criteria->get(kshowPeer::PARTNER_ID); $kshow_criteria->remove(kshowPeer::PARTNER_ID); $entry_criteria = entryPeer::getCriteriaFilter()->getFilter(); $original_entry_partner_to_filter = $entry_criteria->get(entryPeer::PARTNER_ID); $entry_criteria->remove(entryPeer::PARTNER_ID); $page_size = $pageSize > self::MAX_PAGE_SIZE ? self::MAX_PAGE_SIZE : $pageSize; $status = "ok"; $message = ''; $kshow_filter = $this->getKshowFilter($extraData); $limit = $pageSize; $offset = $pageSize * ($page - 1); // $page starts from 1 // $keywords_array = mySearchUtils::getKeywordsFromStr ( $searchText ); // TODO_ change mechanism ! //$search_mechanism = self::KALTURA_SERVICE_CRITERIA_FROM_KSHOW; $search_mechanism = self::KALTURA_SERVICE_CRITERIA_FROM_ROUGHCUT; // TODO - optimize the first part of the entry_id search // cache once we know the kshow_ids / roughcuts - this will make paginating much faster $kshow_crit = new Criteria(); $kshow_crit->clearSelectColumns()->clearOrderByColumns(); $kshow_crit->addSelectColumn(kshowPeer::ID); $kshow_crit->addSelectColumn(kshowPeer::SHOW_ENTRY_ID); $kshow_crit->setLimit(self::$s_default_count_limit); $kshow_filter->addSearchMatchToCriteria($kshow_crit, $searchText, kshow::getSearchableColumnName()); if ($search_mechanism == self::KALTURA_SERVICE_CRITERIA_FROM_KSHOW) { $kshow_crit->add(kshowPeer::ENTRIES, 1, criteria::GREATER_EQUAL); } $rs = kshowPeer::doSelectStmt($kshow_crit); $kshow_arr = array(); $roughcut_arr = array(); $res = $rs->fetchAll(); foreach ($res as $record) { $kshow_arr[] = $record[0]; $roughcut_arr[] = $record[1]; } // // old code from doSelectRs // while($rs->next()) // { // $kshow_arr[] = $rs->getString(1); // $roughcut_arr[] = $rs->getString(2); // } $crit = new Criteria(); $crit->setOffset($offset); $crit->setLimit($limit); $crit->add(entryPeer::TYPE, entryType::MEDIA_CLIP); $crit->add(entryPeer::MEDIA_TYPE, $media_type); if ($search_mechanism == self::KALTURA_SERVICE_CRITERIA_FROM_KSHOW) { $crit->add(entryPeer::KSHOW_ID, $kshow_arr, Criteria::IN); $entry_results = entryPeer::doSelect($crit); } elseif ($search_mechanism == self::KALTURA_SERVICE_CRITERIA_FROM_ROUGHCUT) { // $entry_results = roughcutEntryPeer::retrievByRoughcutIds ( $crit , $roughcut_arr , true ); $entry_results = roughcutEntryPeer::retrievEntriesByRoughcutIds($crit, $roughcut_arr); } // after the query - return the filter to what it was before $entry_criteria->addAnd(entryPeer::PARTNER_ID, $original_entry_partner_to_filter); $kshow_criteria->addAnd(kshowPeer::PARTNER_ID, $original_kshow_partner_to_filter); $objects = array(); // add thumbs when not image or video $should_add_thumbs = $media_type != entry::ENTRY_MEDIA_TYPE_AUDIO; foreach ($entry_results as $obj) { if ($search_mechanism == self::KALTURA_SERVICE_CRITERIA_FROM_KSHOW) { $entry = $obj; } else { //$entry = $obj->getEntry(); $entry = $obj; } /* @var $entry entry */ // use the id as the url - it will help using this entry id in addentry $object = array("id" => $entry->getId(), "url" => $entry->getDataUrl(), "tags" => $entry->getTags(), "title" => $entry->getName(), "description" => $entry->getTags(), "flash_playback_type" => $entry->getMediaTypeName()); if ($should_add_thumbs) { $object["thumb"] = $entry->getThumbnailUrl(); } $objects[] = $object; } return array('status' => $status, 'message' => $message, 'objects' => $objects, "needMediaInfo" => self::$NEED_MEDIA_INFO); }
/** * * @param string(32) $folderID * @return multitype: */ public function getFolderList($folderID, $limit = 0, $start = 0) { $Criteria = new Criteria('workflow'); $Criteria->clearSelectColumns()->clearOrderByColumns(); $Criteria->addSelectColumn(AppFolderPeer::FOLDER_UID); $Criteria->addSelectColumn(AppFolderPeer::FOLDER_PARENT_UID); $Criteria->addSelectColumn(AppFolderPeer::FOLDER_NAME); $Criteria->addSelectColumn(AppFolderPeer::FOLDER_CREATE_DATE); $Criteria->addSelectColumn(AppFolderPeer::FOLDER_UPDATE_DATE); $Criteria->add(appFolderPeer::FOLDER_PARENT_UID, $folderID, CRITERIA::EQUAL); $Criteria->addAscendingOrderByColumn(AppFolderPeer::FOLDER_NAME); $response['folders'] = array(); if ($limit != 0) { $Criteria->setLimit($limit); $Criteria->setOffset($start); } $rs = appFolderPeer::doSelectRS($Criteria); $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rs->next(); $folderResult = array(); while (is_array($row = $rs->getRow())) { $response['folders'][] = $row; $rs->next(); } $response['totalFoldersCount'] = count($response['folders']); return $response; }
/** * Upgrade this workspace database to the latest system schema * * @param bool $checkOnly only check if the upgrade is needed if true * @return array bool upgradeSchema for more information */ public function upgradeDatabase ($onedb = false, $checkOnly = false) { G::LoadClass("patch"); $this->initPropel( true ); p11835::$dbAdapter = $this->dbAdapter; p11835::isApplicable(); $systemSchema = System::getSystemSchema($this->dbAdapter); $systemSchemaRbac = System::getSystemSchemaRbac($this->dbAdapter);// get the Rbac Schema $this->upgradeSchema( $systemSchema ); $this->upgradeSchema( $systemSchemaRbac, false, true, $onedb ); // perform Upgrade to Rbac $this->upgradeData(); //There records in table "EMAIL_SERVER" $criteria = new Criteria("workflow"); $criteria->addSelectColumn(EmailServerPeer::MESS_UID); $criteria->setOffset(0); $criteria->setLimit(1); $rsCriteria = EmailServerPeer::doSelectRS($criteria); if (!$rsCriteria->next()) { //Insert the first record $arrayData = array(); $emailSever = new \ProcessMaker\BusinessModel\EmailServer(); $emailConfiguration = System::getEmailConfiguration(); if (!empty($emailConfiguration)) { $arrayData["MESS_ENGINE"] = $emailConfiguration["MESS_ENGINE"]; switch ($emailConfiguration["MESS_ENGINE"]) { case "PHPMAILER": $arrayData["MESS_SERVER"] = $emailConfiguration["MESS_SERVER"]; $arrayData["MESS_PORT"] = (int)($emailConfiguration["MESS_PORT"]); $arrayData["MESS_RAUTH"] = (is_numeric($emailConfiguration["MESS_RAUTH"]))? (int)($emailConfiguration["MESS_RAUTH"]) : (($emailConfiguration["MESS_RAUTH"] . "" == "true")? 1 : 0); $arrayData["MESS_ACCOUNT"] = $emailConfiguration["MESS_ACCOUNT"]; $arrayData["MESS_PASSWORD"] = $emailConfiguration["MESS_PASSWORD"]; $arrayData["MESS_FROM_MAIL"] = (isset($emailConfiguration["MESS_FROM_MAIL"]))? $emailConfiguration["MESS_FROM_MAIL"] : ""; $arrayData["MESS_FROM_NAME"] = (isset($emailConfiguration["MESS_FROM_NAME"]))? $emailConfiguration["MESS_FROM_NAME"] : ""; $arrayData["SMTPSECURE"] = $emailConfiguration["SMTPSecure"]; $arrayData["MESS_TRY_SEND_INMEDIATLY"] = (isset($emailConfiguration["MESS_TRY_SEND_INMEDIATLY"]) && ($emailConfiguration["MESS_TRY_SEND_INMEDIATLY"] . "" == "true" || $emailConfiguration["MESS_TRY_SEND_INMEDIATLY"] . "" == "1"))? 1 : 0; $arrayData["MAIL_TO"] = isset($emailConfiguration["MAIL_TO"]) ? $emailConfiguration["MAIL_TO"] : ''; $arrayData["MESS_DEFAULT"] = (isset($emailConfiguration["MESS_ENABLED"]) && $emailConfiguration["MESS_ENABLED"] . "" == "1")? 1 : 0; break; case "MAIL": $arrayData["MESS_SERVER"] = ""; $arrayData["MESS_FROM_MAIL"] = (isset($emailConfiguration["MESS_FROM_MAIL"]))? $emailConfiguration["MESS_FROM_MAIL"] : ""; $arrayData["MESS_FROM_NAME"] = (isset($emailConfiguration["MESS_FROM_NAME"]))? $emailConfiguration["MESS_FROM_NAME"] : ""; $arrayData["MESS_TRY_SEND_INMEDIATLY"] = (isset($emailConfiguration["MESS_TRY_SEND_INMEDIATLY"]) && ($emailConfiguration["MESS_TRY_SEND_INMEDIATLY"] . "" == "true" || $emailConfiguration["MESS_TRY_SEND_INMEDIATLY"] . "" == "1"))? 1 : 0; $arrayData["MESS_ACCOUNT"] = ""; $arrayData["MESS_PASSWORD"] = ""; $arrayData["MAIL_TO"] = (isset($emailConfiguration["MAIL_TO"]))? $emailConfiguration["MAIL_TO"] : ""; $arrayData["MESS_DEFAULT"] = (isset($emailConfiguration["MESS_ENABLED"]) && $emailConfiguration["MESS_ENABLED"] . "" == "1")? 1 : 0; break; } $arrayData = $emailSever->create($arrayData); } else { /*----------------------------------********---------------------------------*/ $arrayData["MESS_ENGINE"] = "MAIL"; $arrayData["MESS_SERVER"] = ""; $arrayData["MESS_ACCOUNT"] = ""; $arrayData["MESS_PASSWORD"] = ""; $arrayData["MAIL_TO"] = ""; $arrayData["MESS_DEFAULT"] = 1; $arrayData = $emailSever->create2($arrayData); /*----------------------------------********---------------------------------*/ } } p11835::execute(); return true; }
public function getExtTriggersList($start, $limit, $sProcessUID = '') { $sDelimiter = DBAdapter::getStringDelimiter(); $oCriteria = new Criteria('workflow'); $oCriteria->addSelectColumn(TriggersPeer::TRI_UID); $oCriteria->addSelectColumn(TriggersPeer::PRO_UID); $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID); $this->tmpCriteria = clone $oCriteria; $oCriteria->addAsColumn('TRI_TITLE', 'C1.CON_VALUE'); $oCriteria->addAsColumn('TRI_DESCRIPTION', 'C2.CON_VALUE'); $oCriteria->addAlias('C1', 'CONTENT'); $oCriteria->addAlias('C2', 'CONTENT'); $aConditions = array(); $aConditions[] = array(TriggersPeer::TRI_UID, 'C1.CON_ID'); $aConditions[] = array('C1.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter); $aConditions[] = array('C1.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $aConditions = array(); $aConditions[] = array(TriggersPeer::TRI_UID, 'C2.CON_ID'); $aConditions[] = array('C2.CON_CATEGORY', $sDelimiter . 'TRI_TITLE' . $sDelimiter); $aConditions[] = array('C2.CON_LANG', $sDelimiter . SYS_LANG . $sDelimiter); $oCriteria->addJoinMC($aConditions, Criteria::LEFT_JOIN); $oCriteria->add(TriggersPeer::PRO_UID, $sProcessUID); $oCriteria->addAscendingOrderByColumn('TRI_TITLE'); if ($start != '') { $oCriteria->setOffset($start); } if ($limit != '') { $oCriteria->setLimit($limit); } $oDataset = TriggersPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset->next(); $triggersArray = ""; $triggersArray[] = array('TRI_UID' => 'char', 'PRO_UID' => 'char', 'TRI_TITLE' => 'char', 'TRI_DESCRIPTION' => 'char'); while ($aRow = $oDataset->getRow()) { if ($aRow['TRI_TITLE'] == null || $aRow['TRI_TITLE'] == "") { // There is no translation for this Trigger name, try to get/regenerate the label $triggerO = new Triggers(); $triggerObj = $triggerO->load($aRow['TRI_UID']); $aRow['TRI_TITLE'] = $triggerObj['TRI_TITLE']; $aRow['TRI_DESCRIPTION'] = $triggerObj['TRI_DESCRIPTION']; } $triggersArray[] = $aRow; $oDataset->next(); } return $triggersArray; }
$crit2 = new Criteria(); $crit2->add(BookPeer::ISBN, array("0380977427", "0140422161"), Criteria::IN); $results = BookPeer::doSelect($crit2); print "Looking for ISBN IN (\"0380977427\", \"0140422161\"): "; print boolTest(count($results) === 2); } catch (Exception $e) { die("Error while performing complex query: " . $e->__toString()); } // Perform a "limit" search // ------------------------ try { print "\nDoing LIMITed search on books\n"; print "-----------------------------\n\n"; $crit = new Criteria(); $crit->setLimit(2); $crit->setOffset(1); $crit->addAscendingOrderByColumn(BookPeer::TITLE); print "Checking to make sure correct number returned: "; $results = BookPeer::doSelect($crit); print boolTest(count($results) === 2); print "Checking to make sure correct books returned: "; // we ordered on book title, so we expect to get print boolTest($results[0]->getTitle() == "Harry Potter and the Order of the Phoenix" && $results[1]->getTitle() == "Quicksilver"); } catch (Exception $e) { die("Error while performing LIMIT query: " . $e->__toString()); } // Perform a lookup & update! // -------------------------- try { print "\nUpdating just-created book title\n"; print "--------------------------------\n\n";
function getAllRolesFilter($start, $limit, $filter = '') { //echo $start.'<<<<'.$limit; $systemCode = 'PROCESSMAKER'; $oCriteria2 = new Criteria('rbac'); $result = array(); $oCriteria2->addSelectColumn('COUNT(*) AS CNT'); $oCriteria2->add(RolesPeer::ROL_UID, '', Criteria::NOT_EQUAL); $oCriteria2->add(SystemsPeer::SYS_CODE, $systemCode); $oCriteria2->add(RolesPeer::ROL_CREATE_DATE, '', Criteria::NOT_EQUAL); $oCriteria2->add(RolesPeer::ROL_UPDATE_DATE, '', Criteria::NOT_EQUAL); $oCriteria2->addJoin(RolesPeer::ROL_SYSTEM, SystemsPeer::SYS_UID); if ($filter != '') { $oCriteria2->add(RolesPeer::ROL_CODE, '%' . $filter . '%', Criteria::LIKE); } $result['COUNTER'] = $oCriteria2; $oCriteria = new Criteria('rbac'); $oCriteria->clear(); $oCriteria->addSelectColumn(RolesPeer::ROL_UID); $oCriteria->addSelectColumn(RolesPeer::ROL_PARENT); $oCriteria->addSelectColumn(RolesPeer::ROL_SYSTEM); $oCriteria->addSelectColumn(SystemsPeer::SYS_CODE); $oCriteria->addSelectColumn(RolesPeer::ROL_CODE); $oCriteria->addSelectColumn(RolesPeer::ROL_CREATE_DATE); $oCriteria->addSelectColumn(RolesPeer::ROL_UPDATE_DATE); $oCriteria->addSelectColumn(RolesPeer::ROL_STATUS); $oCriteria->add(RolesPeer::ROL_UID, '', Criteria::NOT_EQUAL); $oCriteria->add(SystemsPeer::SYS_CODE, $systemCode); $oCriteria->add(RolesPeer::ROL_CREATE_DATE, '', Criteria::NOT_EQUAL); $oCriteria->add(RolesPeer::ROL_UPDATE_DATE, '', Criteria::NOT_EQUAL); $oCriteria->addJoin(RolesPeer::ROL_SYSTEM, SystemsPeer::SYS_UID); if ($filter != '') { $oCriteria->add(RolesPeer::ROL_CODE, '%' . $filter . '%', Criteria::LIKE); } $oCriteria->setOffset($start); $oCriteria->setLimit($limit); $result['LIST'] = $oCriteria; return $result; }
public function doMonthlyAggregation($date) { // set the dates $dateParts = explode('-', $date); $currentDate = $dateParts; $currentDate[2] = $currentDate[2] - 3; if ($currentDate[2] <= 0) { $currentDate[1] = $currentDate[1] - 1; if ($currentDate[1] == 0) { $currentDate[1] = 12; $currentDate[0] = $currentDate[0] - 1; } // if $currentDate[2] before reduction = 3, $currentDate[2] after reduction = 0 // if $currentDate[2] = 0 and last_day_for_month return 30, $currentDate[2] = 30 // if $currentDate[2] before reduction = 2, $currentDate[2] after reduction = -1 // if $currentDate[2] = -1 and last_day_for_month return 30, $currentDate[2] = 30 + (-1) = 29 $currentDate[2] = $this->last_day_for_month($currentDate) + $currentDate[2]; } if ($currentDate[1] < 10 && strlen($currentDate[1]) == 1) { $currentDate[1] = '0' . $currentDate[1]; } if ($currentDate[2] < 10 && strlen($currentDate[2]) == 1) { $currentDate[2] = '0' . $currentDate[2]; } $firstOfMonth = $currentDate[0] . '-' . $currentDate[1] . '-01'; $currentDate = implode('-', $currentDate); KalturaLog::debug("calculating monthly agg. for date {$currentDate}"); // set start points $partners_exists = true; $start_pos = 0; $bulk_size = 500; // loop partners while ($partners_exists) { // pull bulk of partners $c = new Criteria(); $c->addAnd(PartnerPeer::CREATED_AT, $currentDate, Criteria::LESS_EQUAL); $c->setOffset($start_pos); $c->setLimit($bulk_size); $partners = PartnerPeer::doSelect($c); if (!$partners) { KalturaLog::debug("No more partners. offset: {$start_pos} , limit: {$bulk_size} ."); // set flag to exit while loop $partners_exists = false; } else { KalturaLog::debug("Looping " . ($start_pos + $bulk_size - 1) . " partners, offset: {$start_pos} ."); // loop bulk of partners foreach ($partners as $partner) { /* if ($partner->getId() != 593 && $partner->getId() != 395 && $partner->getId() != 387 ) continue; KalturaLog::debug("testing... not skiping partner ".$partner->getId()); */ // get row from partner_activity where date is 1st of current month and type is 6 $partnerActivityCriteria = new Criteria(); $partnerActivityCriteria->addAnd(PartnerActivityPeer::ACTIVITY_DATE, $firstOfMonth); $partnerActivityCriteria->addAnd(PartnerActivityPeer::ACTIVITY, PartnerActivity::PARTNER_ACTIVITY_MONTHLY_AGGREGATION); $partnerActivityCriteria->addAnd(PartnerActivityPeer::PARTNER_ID, $partner->getId()); $activityTotal = PartnerActivityPeer::doSelect($partnerActivityCriteria); if (count($activityTotal) > 1) { KalturaLog::debug("loaded more than one monthly aggregation row for partner. something went wrong. partner " . $partner->getID()); } elseif (count($activityTotal) == 0 || !$activityTotal) { // no rows for this month, either today is 1st of month or new partner. adding row for partner $partnerActivity = new PartnerActivity(); $partnerActivity->setActivity(PartnerActivity::PARTNER_ACTIVITY_MONTHLY_AGGREGATION); $partnerActivity->setPartnerId($partner->getId()); $partnerActivity->setActivityDate($firstOfMonth); $storageTotal = $this->getStorageAggregationFor($partner->getId(), $currentDate); $storageAddition = $storageTotal / date('t', strtotime($currentDate)); $partnerActivity->setAmount1($storageAddition); $partnerActivity->setAmount2($this->getTrafficFor($partner->getId(), $currentDate)); $total_amount = $partnerActivity->getAmount1() * 1024 + $partnerActivity->getAmount2(); $partnerActivity->setAmount($total_amount); $partnerActivity->save(); } else { $currentStorage = $activityTotal[0]->getAmount1(); $storageTotal = $this->getStorageAggregationFor($partner->getId(), $currentDate); $storageAddition = $storageTotal / date('t', strtotime($currentDate)); $activityTotal[0]->setAmount1($currentStorage + $storageAddition); $currentTraffic = $activityTotal[0]->getAmount2(); $trafficAddition = $this->getTrafficFor($partner->getId(), $currentDate); $activityTotal[0]->setAmount2($currentTraffic + $trafficAddition); // storage is saved in MB, traffic is saved in KB, normalizing storage for correct sum result $total_amount = $activityTotal[0]->getAmount1() * 1024 + $activityTotal[0]->getAmount2(); $activityTotal[0]->setAmount($total_amount); $activityTotal[0]->save(); } unset($partnerActivityCriteria); unset($activityTotal); } } unset($partners); $start_pos += $bulk_size; } }
public function testSpeed() { // Add publisher records // --------------------- $scholastic = new Publisher(); $scholastic->setName("Scholastic"); // do not save, will do later to test cascade $morrow = new Publisher(); $morrow->setName("William Morrow"); $morrow->save(); $morrow_id = $morrow->getId(); $penguin = new Publisher(); $penguin->setName("Penguin"); $penguin->save(); $penguin_id = $penguin->getId(); $vintage = new Publisher(); $vintage->setName("Vintage"); $vintage->save(); $vintage_id = $vintage->getId(); // Add author records // ------------------ $rowling = new Author(); $rowling->setFirstName("J.K."); $rowling->setLastName("Rowling"); // no save() $stephenson = new Author(); $stephenson->setFirstName("Neal"); $stephenson->setLastName("Stephenson"); $stephenson->save(); $stephenson_id = $stephenson->getId(); $byron = new Author(); $byron->setFirstName("George"); $byron->setLastName("Byron"); $byron->save(); $byron_id = $byron->getId(); $grass = new Author(); $grass->setFirstName("Gunter"); $grass->setLastName("Grass"); $grass->save(); $grass_id = $grass->getId(); // Add book records // ---------------- $phoenix = new Book(); $phoenix->setTitle("Harry Potter and the Order of the Phoenix"); $phoenix->setISBN("043935806X"); // cascading save (Harry Potter) $phoenix->setAuthor($rowling); $phoenix->setPublisher($scholastic); $phoenix->save(); $phoenix_id = $phoenix->getId(); $qs = new Book(); $qs->setISBN("0380977427"); $qs->setTitle("Quicksilver"); $qs->setAuthor($stephenson); $qs->setPublisher($morrow); $qs->save(); $qs_id = $qs->getId(); $dj = new Book(); $dj->setISBN("0140422161"); $dj->setTitle("Don Juan"); $dj->setAuthor($byron); $dj->setPublisher($penguin); $dj->save(); $dj_id = $qs->getId(); $td = new Book(); $td->setISBN("067972575X"); $td->setTitle("The Tin Drum"); $td->setAuthor($grass); $td->setPublisher($vintage); $td->save(); $td_id = $td->getId(); // Add review records // ------------------ $r1 = new Review(); $r1->setBook($phoenix); $r1->setReviewedBy("Washington Post"); $r1->setRecommended(true); $r1->setReviewDate(time()); $r1->save(); $r1_id = $r1->getId(); $r2 = new Review(); $r2->setBook($phoenix); $r2->setReviewedBy("New York Times"); $r2->setRecommended(false); $r2->setReviewDate(time()); $r2->save(); $r2_id = $r2->getId(); // Perform a "complex" search // -------------------------- $crit = new Criteria(); $crit->add(BookPeer::TITLE, 'Harry%', Criteria::LIKE); $results = BookPeer::doSelect($crit); $crit2 = new Criteria(); $crit2->add(BookPeer::ISBN, array("0380977427", "0140422161"), Criteria::IN); $results = BookPeer::doSelect($crit2); // Perform a "limit" search // ------------------------ $crit = new Criteria(); $crit->setLimit(2); $crit->setOffset(1); $crit->addAscendingOrderByColumn(BookPeer::TITLE); $results = BookPeer::doSelect($crit); // Perform a lookup & update! // -------------------------- $qs_lookup = BookPeer::retrieveByPk($qs_id); $new_title = "Quicksilver (" . crc32(uniqid(rand())) . ")"; $qs_lookup->setTitle($new_title); $qs_lookup->save(); $qs_lookup2 = BookPeer::retrieveByPk($qs_id); // Test some basic DATE / TIME stuff // --------------------------------- // that's the control timestamp. $control = strtotime('2004-02-29 00:00:00'); // should be two in the db $r = ReviewPeer::doSelectOne(new Criteria()); $r_id = $r->getId(); $r->setReviewDate($control); $r->save(); $r2 = ReviewPeer::retrieveByPk($r_id); // Testing the DATE/TIME columns // ----------------------------- // that's the control timestamp. $control = strtotime('2004-02-29 00:00:00'); // should be two in the db $r = ReviewPeer::doSelectOne(new Criteria()); $r_id = $r->getId(); $r->setReviewDate($control); $r->save(); $r2 = ReviewPeer::retrieveByPk($r_id); // Testing the column validators // ----------------------------- $bk1 = new Book(); $bk1->setTitle("12345"); // min length is 10 $ret = $bk1->validate(); // Unique validator $bk2 = new Book(); $bk2->setTitle("Don Juan"); $ret = $bk2->validate(); // Now trying some more complex validation. $auth1 = new Author(); $auth1->setFirstName("Hans"); // last name required; will fail $bk1->setAuthor($auth1); $rev1 = new Review(); $rev1->setReviewDate("08/09/2001"); // will fail: reviewed_by column required $bk1->addReview($rev1); $ret2 = $bk1->validate(); $bk2 = new Book(); $bk2->setTitle("12345678901"); // passes $auth2 = new Author(); $auth2->setLastName("Blah"); //passes $auth2->setEmail("*****@*****.**"); //passes $auth2->setAge(50); //passes $bk2->setAuthor($auth2); $rev2 = new Review(); $rev2->setReviewedBy("Me!"); // passes $rev2->setStatus("new"); // passes $bk2->addReview($rev2); $ret3 = $bk2->validate(); // Testing doCount() functionality // ------------------------------- $c = new Criteria(); $count = BookPeer::doCount($c); // Testing many-to-many relationships // ---------------------------------- // init book club list 1 with 2 books $blc1 = new BookClubList(); $blc1->setGroupLeader("Crazyleggs"); $blc1->setTheme("Happiness"); $brel1 = new BookListRel(); $brel1->setBook($phoenix); $brel2 = new BookListRel(); $brel2->setBook($dj); $blc1->addBookListRel($brel1); $blc1->addBookListRel($brel2); $blc1->save(); // init book club list 2 with 1 book $blc2 = new BookClubList(); $blc2->setGroupLeader("John Foo"); $blc2->setTheme("Default"); $brel3 = new BookListRel(); $brel3->setBook($phoenix); $blc2->addBookListRel($brel3); $blc2->save(); // re-fetch books and lists from db to be sure that nothing is cached $crit = new Criteria(); $crit->add(BookPeer::ID, $phoenix->getId()); $phoenix = BookPeer::doSelectOne($crit); $crit = new Criteria(); $crit->add(BookClubListPeer::ID, $blc1->getId()); $blc1 = BookClubListPeer::doSelectOne($crit); $crit = new Criteria(); $crit->add(BookClubListPeer::ID, $blc2->getId()); $blc2 = BookClubListPeer::doSelectOne($crit); $relCount = $phoenix->countBookListRels(); $relCount = $blc1->countBookListRels(); $relCount = $blc2->countBookListRels(); // Removing books that were just created // ------------------------------------- $hp = BookPeer::retrieveByPk($phoenix_id); $c = new Criteria(); $c->add(BookPeer::ID, $hp->getId()); // The only way for cascading to work currently // is to specify the author_id and publisher_id (i.e. the fkeys // have to be in the criteria). $c->add(AuthorPeer::ID, $hp->getId()); $c->add(PublisherPeer::ID, $hp->getId()); $c->setSingleRecord(true); BookPeer::doDelete($c); // Attempting to delete books by complex criteria $c = new Criteria(); $cn = $c->getNewCriterion(BookPeer::ISBN, "043935806X"); $cn->addOr($c->getNewCriterion(BookPeer::ISBN, "0380977427")); $cn->addOr($c->getNewCriterion(BookPeer::ISBN, "0140422161")); $c->add($cn); BookPeer::doDelete($c); $td->delete(); AuthorPeer::doDelete($stephenson_id); AuthorPeer::doDelete($byron_id); $grass->delete(); PublisherPeer::doDelete($morrow_id); PublisherPeer::doDelete($penguin_id); $vintage->delete(); // These have to be deleted manually also since we have onDelete // set to SETNULL in the foreign keys in book. Is this correct? $rowling->delete(); $scholastic->delete(); $blc1->delete(); $blc2->delete(); }
public function testScenario() { // Add publisher records // --------------------- try { $scholastic = new Publisher(); $scholastic->setName("Scholastic"); // do not save, will do later to test cascade $morrow = new Publisher(); $morrow->setName("William Morrow"); $morrow->save(); $morrow_id = $morrow->getId(); $penguin = new Publisher(); $penguin->setName("Penguin"); $penguin->save(); $penguin_id = $penguin->getId(); $vintage = new Publisher(); $vintage->setName("Vintage"); $vintage->save(); $vintage_id = $vintage->getId(); $this->assertTrue(true, 'Save Publisher records'); } catch (Exception $e) { $this->fail('Save publisher records'); } // Add author records // ------------------ try { $rowling = new Author(); $rowling->setFirstName("J.K."); $rowling->setLastName("Rowling"); // do not save, will do later to test cascade $stephenson = new Author(); $stephenson->setFirstName("Neal"); $stephenson->setLastName("Stephenson"); $stephenson->save(); $stephenson_id = $stephenson->getId(); $byron = new Author(); $byron->setFirstName("George"); $byron->setLastName("Byron"); $byron->save(); $byron_id = $byron->getId(); $grass = new Author(); $grass->setFirstName("Gunter"); $grass->setLastName("Grass"); $grass->save(); $grass_id = $grass->getId(); $this->assertTrue(true, 'Save Author records'); } catch (Exception $e) { $this->fail('Save Author records'); } // Add book records // ---------------- try { $phoenix = new Book(); $phoenix->setTitle("Harry Potter and the Order of the Phoenix"); $phoenix->setISBN("043935806X"); $phoenix->setAuthor($rowling); $phoenix->setPublisher($scholastic); $phoenix->save(); $phoenix_id = $phoenix->getId(); $this->assertFalse($rowling->isNew(), 'saving book also saves related author'); $this->assertFalse($scholastic->isNew(), 'saving book also saves related publisher'); $qs = new Book(); $qs->setISBN("0380977427"); $qs->setTitle("Quicksilver"); $qs->setAuthor($stephenson); $qs->setPublisher($morrow); $qs->save(); $qs_id = $qs->getId(); $dj = new Book(); $dj->setISBN("0140422161"); $dj->setTitle("Don Juan"); $dj->setAuthor($byron); $dj->setPublisher($penguin); $dj->save(); $dj_id = $qs->getId(); $td = new Book(); $td->setISBN("067972575X"); $td->setTitle("The Tin Drum"); $td->setAuthor($grass); $td->setPublisher($vintage); $td->save(); $td_id = $td->getId(); $this->assertTrue(true, 'Save Book records'); } catch (Exception $e) { $this->fail('Save Author records'); } // Add review records // ------------------ try { $r1 = new Review(); $r1->setBook($phoenix); $r1->setReviewedBy("Washington Post"); $r1->setRecommended(true); $r1->setReviewDate(time()); $r1->save(); $r1_id = $r1->getId(); $r2 = new Review(); $r2->setBook($phoenix); $r2->setReviewedBy("New York Times"); $r2->setRecommended(false); $r2->setReviewDate(time()); $r2->save(); $r2_id = $r2->getId(); $this->assertTrue(true, 'Save Review records'); } catch (Exception $e) { $this->fail('Save Review records'); } // Perform a "complex" search // -------------------------- $crit = new Criteria(); $crit->add(BookPeer::TITLE, 'Harry%', Criteria::LIKE); $results = BookPeer::doSelect($crit); $this->assertEquals(1, count($results)); $crit2 = new Criteria(); $crit2->add(BookPeer::ISBN, array("0380977427", "0140422161"), Criteria::IN); $results = BookPeer::doSelect($crit2); $this->assertEquals(2, count($results)); // Perform a "limit" search // ------------------------ $crit = new Criteria(); $crit->setLimit(2); $crit->setOffset(1); $crit->addAscendingOrderByColumn(BookPeer::TITLE); $results = BookPeer::doSelect($crit); $this->assertEquals(2, count($results)); // we ordered on book title, so we expect to get $this->assertEquals("Harry Potter and the Order of the Phoenix", $results[0]->getTitle()); $this->assertEquals("Quicksilver", $results[1]->getTitle()); // Perform a lookup & update! // -------------------------- // Updating just-created book title // First finding book by PK (=$qs_id) .... $qs_lookup = BookPeer::retrieveByPk($qs_id); $this->assertNotNull($qs_lookup, 'just-created book can be found by pk'); $new_title = "Quicksilver (" . crc32(uniqid(rand())) . ")"; // Attempting to update found object $qs_lookup->setTitle($new_title); $qs_lookup->save(); // Making sure object was correctly updated: "; $qs_lookup2 = BookPeer::retrieveByPk($qs_id); $this->assertEquals($new_title, $qs_lookup2->getTitle()); // Test some basic DATE / TIME stuff // --------------------------------- // that's the control timestamp. $control = strtotime('2004-02-29 00:00:00'); // should be two in the db $r = ReviewPeer::doSelectOne(new Criteria()); $r_id = $r->getId(); $r->setReviewDate($control); $r->save(); $r2 = ReviewPeer::retrieveByPk($r_id); $this->assertEquals(new Datetime('2004-02-29 00:00:00'), $r2->getReviewDate(null), 'ability to fetch DateTime'); $this->assertEquals($control, $r2->getReviewDate('U'), 'ability to fetch native unix timestamp'); $this->assertEquals('2-29-2004', $r2->getReviewDate('n-j-Y'), 'ability to use date() formatter'); // Handle BLOB/CLOB Columns // ------------------------ $blob_path = dirname(__FILE__) . '/../../etc/lob/tin_drum.gif'; $blob2_path = dirname(__FILE__) . '/../../etc/lob/propel.gif'; $clob_path = dirname(__FILE__) . '/../../etc/lob/tin_drum.txt'; $m1 = new Media(); $m1->setBook($phoenix); $m1->setCoverImage(file_get_contents($blob_path)); $m1->setExcerpt(file_get_contents($clob_path)); $m1->save(); $m1_id = $m1->getId(); $m1_lookup = MediaPeer::retrieveByPk($m1_id); $this->assertNotNull($m1_lookup, 'Can find just-created media item'); $this->assertEquals(md5(file_get_contents($blob_path)), md5(stream_get_contents($m1_lookup->getCoverImage())), 'BLOB was correctly updated'); $this->assertEquals(file_get_contents($clob_path), (string) $m1_lookup->getExcerpt(), 'CLOB was correctly updated'); // now update the BLOB column and save it & check the results $m1_lookup->setCoverImage(file_get_contents($blob2_path)); $m1_lookup->save(); $m2_lookup = MediaPeer::retrieveByPk($m1_id); $this->assertNotNull($m2_lookup, 'Can find just-created media item'); $this->assertEquals(md5(file_get_contents($blob2_path)), md5(stream_get_contents($m2_lookup->getCoverImage())), 'BLOB was correctly overwritten'); // Test Validators // --------------- require_once 'tools/helpers/bookstore/validator/ISBNValidator.php'; $bk1 = new Book(); $bk1->setTitle("12345"); // min length is 10 $ret = $bk1->validate(); $this->assertFalse($ret, 'validation failed'); $failures = $bk1->getValidationFailures(); $this->assertEquals(1, count($failures), '1 validation message was returned'); $el = array_shift($failures); $this->assertContains("must be more than", $el->getMessage(), 'Expected validation message was returned'); $bk2 = new Book(); $bk2->setTitle("Don Juan"); $ret = $bk2->validate(); $this->assertFalse($ret, 'validation failed'); $failures = $bk2->getValidationFailures(); $this->assertEquals(1, count($failures), '1 validation message was returned'); $el = array_shift($failures); $this->assertContains("Book title already in database.", $el->getMessage(), 'Expected validation message was returned'); //Now trying some more complex validation. $auth1 = new Author(); $auth1->setFirstName("Hans"); // last name required; will fail $bk1->setAuthor($auth1); $rev1 = new Review(); $rev1->setReviewDate("08/09/2001"); // will fail: reviewed_by column required $bk1->addReview($rev1); $ret2 = $bk1->validate(); $this->assertFalse($ret2, 'validation failed'); $failures2 = $bk1->getValidationFailures(); $this->assertEquals(3, count($failures2), '3 validation messages were returned'); $expectedKeys = array(AuthorPeer::LAST_NAME, BookPeer::TITLE, ReviewPeer::REVIEWED_BY); $this->assertEquals($expectedKeys, array_keys($failures2), 'correct columns failed'); $bk2 = new Book(); $bk2->setTitle("12345678901"); // passes $auth2 = new Author(); $auth2->setLastName("Blah"); //passes $auth2->setEmail("*****@*****.**"); //passes $auth2->setAge(50); //passes $bk2->setAuthor($auth2); $rev2 = new Review(); $rev2->setReviewedBy("Me!"); // passes $rev2->setStatus("new"); // passes $bk2->addReview($rev2); $ret3 = $bk2->validate(); $this->assertTrue($ret3, 'complex validation can pass'); // Testing doCount() functionality // ------------------------------- $c = new Criteria(); $records = BookPeer::doSelect($c); $count = BookPeer::doCount($c); $this->assertEquals($count, count($records), 'correct number of results'); // Test many-to-many relationships // --------------- // init book club list 1 with 2 books $blc1 = new BookClubList(); $blc1->setGroupLeader("Crazyleggs"); $blc1->setTheme("Happiness"); $brel1 = new BookListRel(); $brel1->setBook($phoenix); $brel2 = new BookListRel(); $brel2->setBook($dj); $blc1->addBookListRel($brel1); $blc1->addBookListRel($brel2); $blc1->save(); $this->assertNotNull($blc1->getId(), 'BookClubList 1 was saved'); // init book club list 2 with 1 book $blc2 = new BookClubList(); $blc2->setGroupLeader("John Foo"); $blc2->setTheme("Default"); $brel3 = new BookListRel(); $brel3->setBook($phoenix); $blc2->addBookListRel($brel3); $blc2->save(); $this->assertNotNull($blc2->getId(), 'BookClubList 2 was saved'); // re-fetch books and lists from db to be sure that nothing is cached $crit = new Criteria(); $crit->add(BookPeer::ID, $phoenix->getId()); $phoenix = BookPeer::doSelectOne($crit); $this->assertNotNull($phoenix, "book 'phoenix' has been re-fetched from db"); $crit = new Criteria(); $crit->add(BookClubListPeer::ID, $blc1->getId()); $blc1 = BookClubListPeer::doSelectOne($crit); $this->assertNotNull($blc1, 'BookClubList 1 has been re-fetched from db'); $crit = new Criteria(); $crit->add(BookClubListPeer::ID, $blc2->getId()); $blc2 = BookClubListPeer::doSelectOne($crit); $this->assertNotNull($blc2, 'BookClubList 2 has been re-fetched from db'); $relCount = $phoenix->countBookListRels(); $this->assertEquals(2, $relCount, "book 'phoenix' has 2 BookListRels"); $relCount = $blc1->countBookListRels(); $this->assertEquals(2, $relCount, 'BookClubList 1 has 2 BookListRels'); $relCount = $blc2->countBookListRels(); $this->assertEquals(1, $relCount, 'BookClubList 2 has 1 BookListRel'); // Cleanup (tests DELETE) // ---------------------- // Removing books that were just created // First finding book by PK (=$phoenix_id) .... $hp = BookPeer::retrieveByPk($phoenix_id); $this->assertNotNull($hp, 'Could find just-created book'); // Attempting to delete [multi-table] by found pk $c = new Criteria(); $c->add(BookPeer::ID, $hp->getId()); // The only way for cascading to work currently // is to specify the author_id and publisher_id (i.e. the fkeys // have to be in the criteria). $c->add(AuthorPeer::ID, $hp->getAuthor()->getId()); $c->add(PublisherPeer::ID, $hp->getPublisher()->getId()); $c->setSingleRecord(true); BookPeer::doDelete($c); // Checking to make sure correct records were removed. $this->assertEquals(3, AuthorPeer::doCount(new Criteria()), 'Correct records were removed from author table'); $this->assertEquals(3, PublisherPeer::doCount(new Criteria()), 'Correct records were removed from publisher table'); $this->assertEquals(3, BookPeer::doCount(new Criteria()), 'Correct records were removed from book table'); // Attempting to delete books by complex criteria $c = new Criteria(); $cn = $c->getNewCriterion(BookPeer::ISBN, "043935806X"); $cn->addOr($c->getNewCriterion(BookPeer::ISBN, "0380977427")); $cn->addOr($c->getNewCriterion(BookPeer::ISBN, "0140422161")); $c->add($cn); BookPeer::doDelete($c); // Attempting to delete book [id = $td_id] $td->delete(); // Attempting to delete authors AuthorPeer::doDelete($stephenson_id); AuthorPeer::doDelete($byron_id); $grass->delete(); // Attempting to delete publishers PublisherPeer::doDelete($morrow_id); PublisherPeer::doDelete($penguin_id); $vintage->delete(); // These have to be deleted manually also since we have onDelete // set to SETNULL in the foreign keys in book. Is this correct? $rowling->delete(); $scholastic->delete(); $blc1->delete(); $blc2->delete(); $this->assertEquals(array(), AuthorPeer::doSelect(new Criteria()), 'no records in [author] table'); $this->assertEquals(array(), PublisherPeer::doSelect(new Criteria()), 'no records in [publisher] table'); $this->assertEquals(array(), BookPeer::doSelect(new Criteria()), 'no records in [book] table'); $this->assertEquals(array(), ReviewPeer::doSelect(new Criteria()), 'no records in [review] table'); $this->assertEquals(array(), MediaPeer::doSelect(new Criteria()), 'no records in [media] table'); $this->assertEquals(array(), BookClubListPeer::doSelect(new Criteria()), 'no records in [book_club_list] table'); $this->assertEquals(array(), BookListRelPeer::doSelect(new Criteria()), 'no records in [book_x_list] table'); }
public function getFolderContent ($folderID, $docIdFilter = array(), $keyword = null, $searchType = null, $limit = 0, $start = 0, $user = '', $onlyActive = false, $search = null) { //require_once ("classes/model/AppDocument.php"); //require_once ("classes/model/InputDocument.php"); //require_once ("classes/model/OutputDocument.php"); //require_once ("classes/model/Users.php"); G::LoadClass( 'case' ); $oCase = new Cases(); G::LoadClass( 'process' ); $oProcess = new Process(); $oAppDocument = new AppDocument(); //Query $oCriteria = new Criteria("workflow"); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_UID); $oCriteria->addSelectColumn( AppDocumentPeer::DOC_VERSION); $oCriteria->addSelectColumn( AppDocumentPeer::APP_UID); $oCriteria->addSelectColumn( AppDocumentPeer::DEL_INDEX); $oCriteria->addSelectColumn( AppDocumentPeer::DOC_UID); $oCriteria->addSelectColumn( AppDocumentPeer::USR_UID); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_TYPE); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_CREATE_DATE); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_INDEX); $oCriteria->addSelectColumn( AppDocumentPeer::FOLDER_UID); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_PLUGIN); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_TAGS); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_STATUS); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_STATUS_DATE); $oCriteria->addSelectColumn( AppDocumentPeer::APP_DOC_FIELDNAME); if ((is_array( $docIdFilter )) && (count( $docIdFilter ) > 0)) { //Search by App Doc UID no matter what Folder it is $oCriteria->add( AppDocumentPeer::APP_DOC_UID, $docIdFilter, CRITERIA::IN ); } elseif ($folderID != null) { if ($folderID == "/") { $oCriteria->add( AppDocumentPeer::FOLDER_UID, array ('root','',null), CRITERIA::IN ); } else { $oCriteria->add( AppDocumentPeer::FOLDER_UID, $folderID ); } } elseif ($searchType == "TAG") { $oCriteria->add( AppDocumentPeer::APP_DOC_TAGS, "%" . $keyword . "%", CRITERIA::LIKE ); } if ($user != '') { require_once ("classes/model/AppDelegation.php"); $criteria = new Criteria(); $criteria->addSelectColumn( AppDelegationPeer::APP_UID ); $criteria->setDistinct(); $conditions = array (); $conditions[] = array (AppDelegationPeer::APP_UID,AppDocumentPeer::APP_UID); $conditions[] = array (AppDelegationPeer::DEL_INDEX,AppDocumentPeer::DEL_INDEX); $criteria->addJoinMC( $conditions, Criteria::LEFT_JOIN ); $criteria->add( AppDelegationPeer::USR_UID, $user ); $rs2 = AppDocumentPeer::doSelectRS( $criteria ); $rs2->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $data = array (); while ($rs2->next()) { $row = $rs2->getRow(); $data[] = $row['APP_UID']; } $oCriteria->add( AppDocumentPeer::APP_UID, $data, CRITERIA::IN ); } if ($onlyActive) { $oCriteria->add( AppDocumentPeer::APP_DOC_STATUS, 'ACTIVE' ); } $oCriteria->addSelectColumn( ContentPeer::CON_VALUE . ' AS NAME'); $oCriteria->add( ContentPeer::CON_CATEGORY, "APP_DOC_FILENAME"); $oCriteria->add( ContentPeer::CON_LANG, SYS_LANG); $oCriteria->addJoin( AppDocumentPeer::APP_DOC_UID, ContentPeer::CON_ID, Criteria::LEFT_JOIN ); $oCriteria->addSelectColumn( UsersPeer::USR_FIRSTNAME); $oCriteria->addSelectColumn( UsersPeer::USR_LASTNAME); $oCriteria->addJoin( AppDocumentPeer::USR_UID, UsersPeer::USR_UID, Criteria::LEFT_JOIN ); if ($search) { $oCriteria->add( $oCriteria->getNewCriterion( ContentPeer::CON_VALUE, '%' . $search . '%', Criteria::LIKE )-> addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $search . '%', Criteria::LIKE )-> addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $search . '%', Criteria::LIKE ))) ); } //Number records total $criteriaCount = clone $oCriteria; $criteriaCount->clearSelectColumns(); $criteriaCount->addSelectColumn("COUNT(DISTINCT " . AppDocumentPeer::APP_DOC_UID . ") AS NUM_REC"); $rsCriteriaCount = AppDocumentPeer::doSelectRS($criteriaCount); $rsCriteriaCount->setFetchmode(ResultSet::FETCHMODE_ASSOC); $rsCriteriaCount->next(); $row = $rsCriteriaCount->getRow(); $numRecTotal = $row["NUM_REC"]; //Query $oCase->verifyTable(); $oCriteria->addAscendingOrderByColumn( AppDocumentPeer::APP_DOC_INDEX ); $oCriteria->addDescendingOrderByColumn( AppDocumentPeer::DOC_VERSION ); $response['documents'] = array (); $oCriteria->setLimit( $limit ); $oCriteria->setOffset( $start ); $rs = AppDocumentPeer::doSelectRS( $oCriteria ); $rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); $rs->next(); $filesResult = array (); while (is_array( $row = $rs->getRow() )) { //**** start get Doc Info $oApp = new Application(); if (($oApp->exists( $row['APP_UID'] )) || ($row['APP_UID'] == "00000000000000000000000000000000")) { //$completeInfo = array("APP_DOC_FILENAME" => $row ["APP_DOC_UID"],"APP_DOC_UID"=>$row ['APP_UID']); $completeInfo = $this->getCompleteDocumentInfo( $row['APP_UID'], $row['APP_DOC_UID'], $row['DOC_VERSION'], $row['DOC_UID'], $row['USR_UID'] ); $oAppDocument = new AppDocument(); $lastVersion = $oAppDocument->getLastAppDocVersion( $row['APP_DOC_UID'], $row['APP_UID'] ); //$filesResult [] = $completeInfo; if ($completeInfo['APP_DOC_STATUS'] != "DELETED") { if (in_array($row["APP_DOC_UID"], $completeInfo["INPUT_DOCUMENTS"]) || in_array($row["APP_DOC_UID"], $completeInfo["OUTPUT_DOCUMENTS"]) || in_array($completeInfo["USR_UID"], array($_SESSION["USER_LOGGED"], "-1")) || $user == "") { if (count( $docIdFilter ) > 0) { if (in_array( $row['APP_DOC_UID'], $docIdFilter )) { $response['documents'][] = $completeInfo; } } else { if ($lastVersion == $row["DOC_VERSION"]) { //Only Last Document version if ($searchType == "ALL") { //If search in name of docs is active then filter if (stripos($completeInfo["APP_DOC_FILENAME"], $keyword) !== false || stripos($completeInfo["APP_DOC_TAGS"], $keyword) !== false) { $response["documents"][] = $completeInfo; } } else { //No search filter active $response["documents"][] = $completeInfo; } } } } } } $rs->next(); } $response["totalDocumentsCount"] = $numRecTotal; return $response; }