/** * 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)}"); } } } }