/**
* Возвращает сортированный список задач с указанными идентификаторами
* @param array $optionsArray <p>Массив с параметрами сортировки</p>
* @return array <p>Массив со списком задач</p>
*/
public static function getSortTasks($optionsArray)
{
// Соединение с БД
$db = Db::getConnection();
// Получаем опции для запроса
$direction = $optionsArray['direction'];
$work_status = $optionsArray['work_status'];
$contractor_id = $optionsArray['contractor_id'];
$work_status_sql = 'WHERE status = :status';
$contractor_id_sql = ' AND contractor_id = :contractor_id';
if($direction == 'new') $direction = 'DESC';
if($direction == 'old') $direction = 'ASC';
if($work_status == 'allstatus') $work_status_sql = '';
if($contractor_id == 'allcontractor') $contractor_id_sql = '';
if($work_status == 'allstatus' && $contractor_id != 'allcontractor') $contractor_id_sql = 'WHERE contractor_id = :contractor_id';
// Получение и возврат результатов
//$sql = "SELECT id, title, contractor_id, description, price, status, public FROM task WHERE status = :status AND contractor_id = :contractor_id ORDER BY id $direction";
$sql = 'SELECT id, title, contractor_id, description, price, status, public FROM task '.$work_status_sql. $contractor_id_sql.' ORDER BY id '.$direction;
// Используется подготовленный запрос
$result = $db->prepare($sql);
if($work_status != 'allstatus'){
$result->bindParam(':status', $work_status, PDO::PARAM_STR);
}
if($contractor_id != 'allcontractor'){
$result->bindParam(':contractor_id', $contractor_id, PDO::PARAM_INT);
}
// Выполнение коменды
$result->execute();
$tasksList = array();