shuba_ivan

getActivitiesVacancy

Sep 9th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.96 KB | None | 0 0
  1.         $firstResult = (integer) ($paramFetcher->get('count') * ($paramFetcher->get('page') - 1));
  2.         $maxResults = (integer) $paramFetcher->get('count');
  3.         $sortOrder = strtoupper($paramFetcher->get('sort_order') ? : 'DESC');
  4.         $bidSortOrder = $sortOrder == 'ASC' ? 'ASC' : 'DESC';
  5.  
  6.         $where = [];
  7.         if ($dateTo instanceof \DateTime && $dateTo instanceof \DateTime) {
  8.             $where[] = '`p`.`created_at` BETWEEN :from_date AND :to_date';
  9.         }
  10.  
  11.         if ($paramFetcher->get('status')) {
  12.             $where[] = '`p`.`status` = :status';
  13.         }
  14.  
  15.         if ($paramFetcher->get('assigned_id')) {
  16.             $where[] = '`a`.`id` = :assigned_id';
  17.         }
  18.  
  19.         if ($paramFetcher->get('project_type')) {
  20.             $where[] = '`p`.`type` = :project_type';
  21.         }
  22.  
  23.         if ($where) {
  24.             $inject = 'WHERE ' . implode(' AND ', $where);
  25.         } else {
  26.             $inject = '';
  27.         }
  28.  
  29.         $conn = $this->getEntityManager()->getConnection();
  30.  
  31.         $stmt = $conn->prepare('
  32.            SELECT
  33.                  `p`.`created_at` as `created_at`,
  34.                  `p`.`deal_name` as `deal_name`,
  35.                  `p`.`link_to_crm` as `link_to_crm`,
  36.                  `p`.`id` as `_project_id`,
  37.                  CASE
  38.                     WHEN `p`.`level` = 1 THEN "'.$this->getProjectLevelString(1).'"
  39.                     WHEN `p`.`level` = 2 THEN "'.$this->getProjectLevelString(2).'"
  40.                     WHEN `p`.`level` = 3 THEN "'.$this->getProjectLevelString(3).'"
  41.                     WHEN `p`.`level` = 4 THEN "'.$this->getProjectLevelString(4).'"                  
  42.                     ELSE "0"
  43.                  END as `project_talent_level`,
  44.                  `p`.`numbers_of_talent` as `numbers_of_talent`,
  45.                  `p`.`type` as `project_type`,
  46.                  TRIM(CONCAT(IFNULL(`a`.`first_name`, "")," ",IFNULL(a.last_name, ""))) as `assigend_name`,
  47.                  `p`.`current_status`,
  48.                  `rc`.`comment`,
  49.                  `rc`.`created_at`                
  50.            FROM `project` as `p`
  51.            LEFT JOIN              
  52.                (
  53.                  SELECT
  54.                      `com`.`comment`,
  55.                      `com`.`id`,
  56.                      `com`.`project_id`,
  57.                      `com`.`created_at`
  58.                  FROM `comments` as `com` WHERE `com`.`id`IN
  59.                        (
  60.                          SELECT
  61.                              MAX(`c`.`id`) as `id`
  62.                          FROM `comments` as `c`
  63.                              WHERE `c`.`project_id`
  64.                              GROUP BY `c`.`project_id`
  65.                              ORDER BY `c`.`created_at` DESC
  66.                        )
  67.                ) as `rc`
  68.            ON `rc`.`project_id` = `p`.`id`
  69.            LEFT JOIN `users` as `a` ON `a`.`id` = `p`.`assigned_id`    
  70.            '.$inject.'
  71.  
  72.            ORDER BY `p`.`created_at` ' . $bidSortOrder . '
  73.            LIMIT :offset, :limit                              
  74.        ');
  75.         if ($paramFetcher->get('status')) {
  76.             $stmt->bindValue(':status', $paramFetcher->get('status'));
  77.         }
  78.  
  79.         if ($paramFetcher->get('assigned_id')) {
  80.             $stmt->bindValue(':assigned_id', $paramFetcher->get('assigned_id'));
  81.         }
  82.  
  83.         if ($paramFetcher->get('project_type')) {
  84.             $stmt->bindValue(':project_type', $paramFetcher->get('project_type'));
  85.         }
  86.  
  87.         if ($dateTo instanceof \DateTime && $dateTo instanceof \DateTime) {
  88.             $stmt->bindValue(':from_date', $dateFrom->format('Y-m-d H:i:s'));
  89.             $stmt->bindValue(':to_date', $dateTo->format('Y-m-d H:i:s'));
  90.         }
  91.  
  92.         $stmt->bindValue(':offset', $firstResult, \PDO::PARAM_INT);
  93.         $stmt->bindValue(':limit', $maxResults, \PDO::PARAM_INT);
  94.  
  95.         $stmt->execute();
  96.         $rows = $stmt->fetchAll(\PDO::FETCH_ASSOC);
  97.  
  98.         return $rows;
Advertisement
Add Comment
Please, Sign In to add comment