/** * Searches for tickets based on provided data. You must provide at least one department identifier. * * @param kyDepartment|kyResultSet $departments Non-empty list of department identifiers. * @param array|kyResultSet|kyTicketStatus $ticket_statuses List of ticket status identifiers. * @param array|kyResultSet|kyStaff $owner_staffs List of staff (ticket owners) identifiers. * @param array|kyResultSet|kyUser $users List of user (ticket creators) identifiers. * @param $rowsPerPage (OPTIONAL) * @param $rowOffset (OPTIONAL) * @throws InvalidArgumentException * @return kyResultSet */ public static function getAll($departments, $ticket_statuses = array(), $owner_staffs = array(), $users = array(), $max_items = null, $starting_ticket_id = null) { $search_parameters = array('ListAll'); $department_ids = array(); if ($departments instanceof kyDepartment) { $department_ids = array($departments->getId()); } elseif ($departments instanceof kyResultSet) { $department_ids = $departments->collectId(); } //department if (count($department_ids) === 0) { throw new InvalidArgumentException('You must provide at least one department to search for tickets.'); } $ticket_status_ids = array(); if ($ticket_statuses instanceof kyTicketStatus) { $ticket_status_ids = array($ticket_statuses->getId()); } elseif ($ticket_statuses instanceof kyResultSet) { $ticket_status_ids = $ticket_statuses->collectId(); } elseif (is_array($ticket_statuses)) { $ticket_status_ids = $ticket_statuses; } $owner_staff_ids = array(); if ($owner_staffs instanceof kyStaff) { $owner_staff_ids = array($owner_staffs->getId()); } elseif ($owner_staffs instanceof kyResultSet) { $owner_staff_ids = $owner_staffs->collectId(); } $user_ids = array(); if ($users instanceof kyUser) { $user_ids = array($users->getId()); } elseif ($users instanceof kyResultSet) { $user_ids = $users->collectId(); } $search_parameters[] = implode(',', $department_ids); //ticket status if (count($ticket_status_ids) > 0) { $search_parameters[] = implode(',', $ticket_status_ids); } else { $search_parameters[] = '-1'; } //owner staff if (count($owner_staff_ids) > 0) { $search_parameters[] = implode(',', $owner_staff_ids); } else { $search_parameters[] = '-1'; } //user if (count($user_ids) > 0) { $search_parameters[] = implode(',', $user_ids); } else { $search_parameters[] = '-1'; } if (is_numeric($starting_ticket_id) && $starting_ticket_id > 0) { if (!is_numeric($max_items) || $max_items <= 0) { $max_items = 1000; } $search_parameters[] = $max_items; $search_parameters[] = $starting_ticket_id; } return parent::getAll($search_parameters); }
/** * Process tickets related data. You must provide at least one department identifier. * * @param string $method * @param kyDepartment|kyResultSet $departments Non-empty list of department identifiers. * @param array|kyResultSet|kyTicketStatus $ticket_statuses List of ticket status identifiers. * @param array|kyResultSet|kyStaff $owner_staffs List of staff (ticket owners) identifiers. * @param array|kyResultSet|kyUser $users List of user (ticket creators) identifiers. * * @throws InvalidArgumentException * @return array $search_parameters */ public static function processData($method, $departments, $ticket_statuses = array(), $owner_staffs = array(), $users = array()) { $search_parameters = array($method); $department_ids = array(); if ($departments instanceof kyDepartment) { $department_ids = array($departments->getId()); } elseif ($departments instanceof kyResultSet) { $department_ids = $departments->collectId(); } //department if (count($department_ids) === 0) { throw new InvalidArgumentException('You must provide at least one department to search for tickets.'); } $ticket_status_ids = array(); if ($ticket_statuses instanceof kyTicketStatus) { $ticket_status_ids = array($ticket_statuses->getId()); } elseif ($ticket_statuses instanceof kyResultSet) { $ticket_status_ids = $ticket_statuses->collectId(); } $owner_staff_ids = array(); if ($owner_staffs instanceof kyStaff) { $owner_staff_ids = array($owner_staffs->getId()); } elseif ($owner_staffs instanceof kyResultSet) { $owner_staff_ids = $owner_staffs->collectId(); } $user_ids = array(); if ($users instanceof kyUser) { $user_ids = array($users->getId()); } elseif ($users instanceof kyResultSet) { $user_ids = $users->collectId(); } $search_parameters[] = implode(',', $department_ids); //ticket status if (count($ticket_status_ids) > 0) { $search_parameters[] = implode(',', $ticket_status_ids); } else { $search_parameters[] = '-1'; } //owner staff if (count($owner_staff_ids) > 0) { $search_parameters[] = implode(',', $owner_staff_ids); } else { $search_parameters[] = '-1'; } //user if (count($user_ids) > 0) { $search_parameters[] = implode(',', $user_ids); } else { $search_parameters[] = '-1'; } return $search_parameters; }