Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $firstResult = (integer) ($paramFetcher->get('count') * ($paramFetcher->get('page') - 1));
- $maxResults = (integer) $paramFetcher->get('count');
- $sortOrder = strtoupper($paramFetcher->get('sort_order') ? : 'DESC');
- $bidSortOrder = $sortOrder == 'ASC' ? 'ASC' : 'DESC';
- $where = [];
- if ($dateTo instanceof \DateTime && $dateTo instanceof \DateTime) {
- $where[] = '`p`.`created_at` BETWEEN :from_date AND :to_date';
- }
- if ($paramFetcher->get('status')) {
- $where[] = '`p`.`status` = :status';
- }
- if ($paramFetcher->get('assigned_id')) {
- $where[] = '`a`.`id` = :assigned_id';
- }
- if ($paramFetcher->get('project_type')) {
- $where[] = '`p`.`type` = :project_type';
- }
- if ($where) {
- $inject = 'WHERE ' . implode(' AND ', $where);
- } else {
- $inject = '';
- }
- $conn = $this->getEntityManager()->getConnection();
- $stmt = $conn->prepare('
- SELECT
- `p`.`created_at` as `created_at`,
- `p`.`deal_name` as `deal_name`,
- `p`.`link_to_crm` as `link_to_crm`,
- `p`.`id` as `_project_id`,
- CASE
- WHEN `p`.`level` = 1 THEN "'.$this->getProjectLevelString(1).'"
- WHEN `p`.`level` = 2 THEN "'.$this->getProjectLevelString(2).'"
- WHEN `p`.`level` = 3 THEN "'.$this->getProjectLevelString(3).'"
- WHEN `p`.`level` = 4 THEN "'.$this->getProjectLevelString(4).'"
- ELSE "0"
- END as `project_talent_level`,
- `p`.`numbers_of_talent` as `numbers_of_talent`,
- `p`.`type` as `project_type`,
- TRIM(CONCAT(IFNULL(`a`.`first_name`, "")," ",IFNULL(a.last_name, ""))) as `assigend_name`,
- `p`.`current_status`,
- `rc`.`comment`,
- `rc`.`created_at`
- FROM `project` as `p`
- LEFT JOIN
- (
- SELECT
- `com`.`comment`,
- `com`.`id`,
- `com`.`project_id`,
- `com`.`created_at`
- FROM `comments` as `com` WHERE `com`.`id`IN
- (
- SELECT
- MAX(`c`.`id`) as `id`
- FROM `comments` as `c`
- WHERE `c`.`project_id`
- GROUP BY `c`.`project_id`
- ORDER BY `c`.`created_at` DESC
- )
- ) as `rc`
- ON `rc`.`project_id` = `p`.`id`
- LEFT JOIN `users` as `a` ON `a`.`id` = `p`.`assigned_id`
- '.$inject.'
- ORDER BY `p`.`created_at` ' . $bidSortOrder . '
- LIMIT :offset, :limit
- ');
- if ($paramFetcher->get('status')) {
- $stmt->bindValue(':status', $paramFetcher->get('status'));
- }
- if ($paramFetcher->get('assigned_id')) {
- $stmt->bindValue(':assigned_id', $paramFetcher->get('assigned_id'));
- }
- if ($paramFetcher->get('project_type')) {
- $stmt->bindValue(':project_type', $paramFetcher->get('project_type'));
- }
- if ($dateTo instanceof \DateTime && $dateTo instanceof \DateTime) {
- $stmt->bindValue(':from_date', $dateFrom->format('Y-m-d H:i:s'));
- $stmt->bindValue(':to_date', $dateTo->format('Y-m-d H:i:s'));
- }
- $stmt->bindValue(':offset', $firstResult, \PDO::PARAM_INT);
- $stmt->bindValue(':limit', $maxResults, \PDO::PARAM_INT);
- $stmt->execute();
- $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
- return $rows;
Advertisement
Add Comment
Please, Sign In to add comment