Ejemplo n.º 1
0
 /**
  * Enter description here...
  *
  * @param array $columns
  * @param DevblocksSearchCriteria[] $params
  * @param integer $limit
  * @param integer $page
  * @param string $sortBy
  * @param boolean $sortAsc
  * @param boolean $withCounts
  * @return array
  */
 static function search($columns, $params, $limit = 10, $page = 0, $sortBy = null, $sortAsc = null, $withCounts = true)
 {
     $db = DevblocksPlatform::getDatabaseService();
     $fields = SearchFields_ImportSource::getFields();
     // Sanitize
     if (!isset($fields[$sortBy])) {
         $sortBy = null;
     }
     list($tables, $wheres) = parent::_parseSearchParams($params, $columns, $fields, $sortBy);
     $start = $page * $limit;
     // [JAS]: 1-based
     $total = -1;
     $select_sql = sprintf("SELECT " . "import_source.id as %s, " . "import_source.name as %s, " . "import_source.path as %s, " . "import_source.type as %s, " . "import_source.is_disabled as %s ", SearchFields_ImportSource::ID, SearchFields_ImportSource::NAME, SearchFields_ImportSource::PATH, SearchFields_ImportSource::TYPE, SearchFields_ImportSource::IS_DISABLED);
     $join_sql = "FROM import_source ";
     // Custom field joins
     list($select_sql, $join_sql, $has_multiple_values) = self::_appendSelectJoinSqlForCustomFieldTables($tables, $params, 'import_source.id', $select_sql, $join_sql);
     $where_sql = "" . (!empty($wheres) ? sprintf("WHERE %s ", implode(' AND ', $wheres)) : "");
     $sort_sql = !empty($sortBy) ? sprintf("ORDER BY %s %s ", $sortBy, $sortAsc || is_null($sortAsc) ? "ASC" : "DESC") : " ";
     $sql = $select_sql . $join_sql . $where_sql . ($has_multiple_values ? 'GROUP BY import_source.id ' : '') . $sort_sql;
     // [TODO] Could push the select logic down a level too
     if ($limit > 0) {
         $rs = $db->SelectLimit($sql, $limit, $start) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         /* @var $rs */
     } else {
         $rs = $db->Execute($sql) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         /* @var $rs */
         $total = mysql_num_rows($rs);
     }
     $results = array();
     while ($row = mysql_fetch_assoc($rs)) {
         $result = array();
         foreach ($row as $f => $v) {
             $result[$f] = $v;
         }
         $object_id = intval($row[SearchFields_ImportSource::ID]);
         $results[$object_id] = $result;
     }
     // [JAS]: Count all
     if ($withCounts) {
         $count_sql = ($has_multiple_values ? "SELECT COUNT(DISTINCT import_source.id) " : "SELECT COUNT(import_source.id) ") . $join_sql . $where_sql;
         $total = $db->GetOne($count_sql);
     }
     mysql_free_result($rs);
     return array($results, $total);
 }
Ejemplo n.º 2
0
 /**
  * Enter description here...
  *
  * @param array $columns
  * @param DevblocksSearchCriteria[] $params
  * @param integer $limit
  * @param integer $page
  * @param string $sortBy
  * @param boolean $sortAsc
  * @param boolean $withCounts
  * @return array
  */
 static function search($columns, $params, $limit = 10, $page = 0, $sortBy = null, $sortAsc = null, $withCounts = true)
 {
     $db = DevblocksPlatform::getDatabaseService();
     $fields = SearchFields_MessageRecipient::getFields();
     // Sanitize
     if (!isset($fields[$sortBy])) {
         $sortBy = null;
     }
     list($tables, $wheres) = parent::_parseSearchParams($params, $columns, $fields, $sortBy);
     $start = $page * $limit;
     // [JAS]: 1-based
     $total = -1;
     $select_sql = sprintf("SELECT " . "mr.id as %s, " . "mr.recipient_id as %s, " . "mr.message_id as %s, " . "mr.account_id as %s, " . "mr.send_status as %s, " . "mr.fax_id as %s, " . "mr.updated_date as %s, " . "mr.closed_date as %s ", SearchFields_MessageRecipient::ID, SearchFields_MessageRecipient::RECIPIENT_ID, SearchFields_MessageRecipient::MESSAGE_ID, SearchFields_MessageRecipient::ACCOUNT_ID, SearchFields_MessageRecipient::SEND_STATUS, SearchFields_MessageRecipient::FAX_ID, SearchFields_MessageRecipient::UPDATED_DATE, SearchFields_MessageRecipient::CLOSED_DATE);
     $join_sql = "FROM message_recipient mr ";
     // Custom field joins
     list($select_sql, $join_sql, $has_multiple_values) = self::_appendSelectJoinSqlForCustomFieldTables($tables, $params, 'mr.id', $select_sql, $join_sql);
     $where_sql = "" . (!empty($wheres) ? sprintf("WHERE %s ", implode(' AND ', $wheres)) : "");
     $sort_sql = !empty($sortBy) ? sprintf("ORDER BY %s %s ", $sortBy, $sortAsc || is_null($sortAsc) ? "ASC" : "DESC") : " ";
     $sql = $select_sql . $join_sql . $where_sql . ($has_multiple_values ? 'GROUP BY mr.id ' : '') . $sort_sql;
     // [TODO] Could push the select logic down a level too
     if ($limit > 0) {
         $rs = $db->SelectLimit($sql, $limit, $start) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         /* @var $rs */
     } else {
         $rs = $db->Execute($sql) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         /* @var $rs */
         $total = mysql_num_rows($rs);
     }
     $results = array();
     while ($row = mysql_fetch_assoc($rs)) {
         $result = array();
         foreach ($row as $f => $v) {
             $result[$f] = $v;
         }
         $object_id = intval($row[SearchFields_MessageRecipient::ID]);
         $results[$object_id] = $result;
     }
     // [JAS]: Count all
     if ($withCounts) {
         $count_sql = ($has_multiple_values ? "SELECT COUNT(DISTINCT mr.id) " : "SELECT COUNT(mr.id) ") . $join_sql . $where_sql;
         $total = $db->GetOne($count_sql);
     }
     mysql_free_result($rs);
     return array($results, $total);
 }
Ejemplo n.º 3
0
 /**
  * Enter description here...
  *
  * @param DevblocksSearchCriteria[] $params
  * @param integer $limit
  * @param integer $page
  * @param string $sortBy
  * @param boolean $sortAsc
  * @param boolean $withCounts
  * @return array
  */
 static function search($columns, $params, $limit = 10, $page = 0, $sortBy = null, $sortAsc = null, $withCounts = true)
 {
     $db = DevblocksPlatform::getDatabaseService();
     $fields = SearchFields_Worker::getFields();
     // Sanitize
     if (!isset($fields[$sortBy])) {
         $sortBy = null;
     }
     list($tables, $wheres) = parent::_parseSearchParams($params, $columns, $fields, $sortBy);
     $start = $page * $limit;
     // [JAS]: 1-based [TODO] clean up + document
     $total = -1;
     $select_sql = sprintf("SELECT " . "w.id as %s, " . "w.first_name as %s, " . "w.last_name as %s, " . "w.title as %s, " . "w.email as %s, " . "w.is_superuser as %s, " . "w.last_activity_date as %s, " . "w.is_disabled as %s ", SearchFields_Worker::ID, SearchFields_Worker::FIRST_NAME, SearchFields_Worker::LAST_NAME, SearchFields_Worker::TITLE, SearchFields_Worker::EMAIL, SearchFields_Worker::IS_SUPERUSER, SearchFields_Worker::LAST_ACTIVITY_DATE, SearchFields_Worker::IS_DISABLED);
     $join_sql = "FROM worker w ";
     // Custom field joins
     list($select_sql, $join_sql, $has_multiple_values) = self::_appendSelectJoinSqlForCustomFieldTables($tables, $params, 'w.id', $select_sql, $join_sql);
     $where_sql = "" . (!empty($wheres) ? sprintf("WHERE %s ", implode(' AND ', $wheres)) : "");
     $sort_sql = !empty($sortBy) ? sprintf("ORDER BY %s %s ", $sortBy, $sortAsc || is_null($sortAsc) ? "ASC" : "DESC") : " ";
     $sql = $select_sql . $join_sql . $where_sql . ($has_multiple_values ? 'GROUP BY w.id ' : '') . $sort_sql;
     // [TODO] Could push the select logic down a level too
     if ($limit > 0) {
         $rs = $db->SelectLimit($sql, $limit, $start) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
     } else {
         $rs = $db->Execute($sql) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         $total = mysql_num_rows($rs);
     }
     $results = array();
     while ($row = mysql_fetch_assoc($rs)) {
         $result = array();
         foreach ($row as $f => $v) {
             $result[$f] = $v;
         }
         $object_id = intval($row[SearchFields_Worker::ID]);
         $results[$object_id] = $result;
     }
     // [JAS]: Count all
     if ($withCounts) {
         $count_sql = ($has_multiple_values ? "SELECT COUNT(DISTINCT w.id) " : "SELECT COUNT(w.id) ") . $join_sql . $where_sql;
         $total = $db->GetOne($count_sql);
     }
     mysql_free_result($rs);
     return array($results, $total);
 }
Ejemplo n.º 4
0
 /**
  * Enter description here...
  *
  * @param array $columns
  * @param DevblocksSearchCriteria[] $params
  * @param integer $limit
  * @param integer $page
  * @param string $sortBy
  * @param boolean $sortAsc
  * @param boolean $withCounts
  * @return array
  */
 static function search($columns, $params, $limit = 10, $page = 0, $sortBy = null, $sortAsc = null, $withCounts = true)
 {
     $db = DevblocksPlatform::getDatabaseService();
     $fields = SearchFields_Stats::getFields();
     // Sanitize
     if (!isset($fields[$sortBy])) {
         $sortBy = null;
     }
     list($tables, $wheres) = parent::_parseSearchParams($params, $columns, $fields, $sortBy);
     $start = $page * $limit;
     // [JAS]: 1-based
     $total = -1;
     $select_sql = sprintf("SELECT " . "stats.id as %s, " . "stats.current_hour as %s, " . "stats.current_day as %s, " . "stats.fax_current_hour as %s, " . "stats.fax_last_hour as %s, " . "stats.fax_sent_today as %s, " . "stats.fax_sent_yesterday as %s, " . "stats.email_current_hour as %s, " . "stats.email_last_hour as %s, " . "stats.email_sent_today as %s, " . "stats.email_sent_yesterday as %s, " . "stats.snpp_current_hour as %s, " . "stats.snpp_last_hour as %s, " . "stats.snpp_sent_today as %s, " . "stats.snpp_sent_yesterday as %s ", SearchFields_Stats::ID, SearchFields_Stats::CURRENT_HOUR, SearchFields_Stats::CURRENT_DAY, SearchFields_Stats::FAX_CURRENT_HOUR, SearchFields_Stats::FAX_LAST_HOUR, SearchFields_Stats::FAX_SENT_TODAY, SearchFields_Stats::FAX_SENT_YESTERDAY, SearchFields_Stats::EMAIL_CURRENT_HOUR, SearchFields_Stats::EMAIL_LAST_HOUR, SearchFields_Stats::EMAIL_SENT_TODAY, SearchFields_Stats::EMAIL_SENT_YESTERDAY, SearchFields_Stats::SNPP_CURRENT_HOUR, SearchFields_Stats::SNPP_LAST_HOUR, SearchFields_Stats::SNPP_SENT_TODAY, SearchFields_Stats::SNPP_SENT_YESTERDAY);
     $join_sql = "FROM stats ";
     // Custom field joins
     list($select_sql, $join_sql, $has_multiple_values) = self::_appendSelectJoinSqlForCustomFieldTables($tables, $params, 'stats.id', $select_sql, $join_sql);
     $where_sql = "" . (!empty($wheres) ? sprintf("WHERE %s ", implode(' AND ', $wheres)) : "");
     $sort_sql = !empty($sortBy) ? sprintf("ORDER BY %s %s ", $sortBy, $sortAsc || is_null($sortAsc) ? "ASC" : "DESC") : " ";
     $sql = $select_sql . $join_sql . $where_sql . ($has_multiple_values ? 'GROUP BY stats.id ' : '') . $sort_sql;
     // [TODO] Could push the select logic down a level too
     if ($limit > 0) {
         $rs = $db->SelectLimit($sql, $limit, $start) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         /* @var $rs */
     } else {
         $rs = $db->Execute($sql) or die(__CLASS__ . '(' . __LINE__ . ')' . ':' . $db->ErrorMsg());
         /* @var $rs */
         $total = mysql_num_rows($rs);
     }
     $results = array();
     while ($row = mysql_fetch_assoc($rs)) {
         $result = array();
         foreach ($row as $f => $v) {
             $result[$f] = $v;
         }
         $object_id = intval($row[SearchFields_Stats::ID]);
         $results[$object_id] = $result;
     }
     // [JAS]: Count all
     if ($withCounts) {
         $count_sql = ($has_multiple_values ? "SELECT COUNT(DISTINCT stats.id) " : "SELECT COUNT(stats.id) ") . $join_sql . $where_sql;
         $total = $db->GetOne($count_sql);
     }
     mysql_free_result($rs);
     return array($results, $total);
 }