Example #1
0
 /**
  * Appends a WHERE statement to the {@link $query}.
  * The $column parameter holds a string that looks something like "table.datecolumn"
  *
  * The DTO parameter specified by $name will be compared against the column
  *
  * @param Database $db     The database
  * @param Query    $query  The Query
  * @param DTO      $dto    The DTO
  * @param string   $name   The name of the DTO parameter that holds the value
  * @param string   $column A string that will be used in the WHERE query
  *
  * @return void
  */
 public function buildEqualsFilter($db, $query, $dto, $name, $column = null)
 {
     if ($dto->getParameter($name) != null) {
         if (empty($column)) {
             $column = $name;
         }
         $value = $dto->getParameter($name);
         if (is_array($value)) {
             if (in_array('NULL', $value)) {
                 $query->WHERE("{$column} IS NULL OR {$column} IN (" . $db->joinQuote($value) . ")");
             } else {
                 $query->WHERE("{$column} IN (" . $db->joinQuote($value) . ")");
             }
         } else {
             if (is_null($value)) {
                 $query->WHERE("{$column} IS NULL");
             } else {
                 $query->WHERE("{$column} = {$db->quote($value)}");
             }
         }
     }
 }