function getClientProjectListAction()
 {
     $currentUserId = User::currentLoginId();
     $currentUser = $this->find('User\\Entity\\User', $currentUserId);
     $employer = $currentUser->getEmployer();
     if ($employer) {
         $user_id = $currentUser->getId();
     } else {
         $user_id = null;
     }
     $params = $this->getRequest()->getQuery();
     foreach ($params as $key => $value) {
         if (strpos($value, '{') !== false) {
             $params->{$key} = json_decode($value);
         }
     }
     //var_dump($params); exit;
     $entityManager = $this->getEntityManager();
     $projectList = $entityManager->getRepository('User\\Entity\\Project');
     $queryBuilder = $projectList->createQueryBuilder('project');
     // Sửa lại chổ này, tạm để đó
     $queryBuilder->where("project.client=?1")->setParameter(1, $user_id);
     $queryBuilder->andWhere('project.is_deleted = 0');
     // Unpaid Task
     if ($params->payStatus != null && $params->payStatus != '') {
         $queryBuilder->andWhere('project.payStatus = :payStatus');
         $queryBuilder->setParameter('payStatus', $params->payStatus);
     }
     if ($params->bsearch != null && $params->bsearch != '') {
         $queryBuilder->andWhere('project.reference LIKE :reference');
         $queryBuilder->setParameter('reference', "%" . $params->bsearch . "%");
     } else {
         // Advance Search
         if ($params->reference != null && $params->reference != '') {
             $queryBuilder->andWhere('project.reference LIKE :reference');
             $queryBuilder->setParameter('reference', "%" . $params->reference . "%");
         }
         if ($params->projectId != null && $params->projectId != '') {
             $queryBuilder->andWhere('project.id LIKE :projectId');
             $queryBuilder->setParameter('projectId', "%" . $params->projectId . "%");
         }
         if ($params->startDate != null && $params->startDate != '') {
             $time = strtotime($params->startDate);
             $time = date("Y-m-d", $time);
             $begin = $time . " 00:00:00";
             $end = $time . " 23:59:59";
             $queryBuilder->andWhere('project.startDate BETWEEN ?6 AND ?7')->setParameter(6, $begin)->setParameter(7, $end);
         }
         if ($params->dueDate != null && $params->dueDate != '') {
             $time = strtotime($params->dueDate);
             $time = date("Y-m-d", $time);
             $begin = $time . " 00:00:00";
             $end = $time . " 23:59:59";
             $queryBuilder->andWhere('project.dueDate BETWEEN ?8 AND ?9')->setParameter(8, $begin)->setParameter(9, $end);
         }
         if ($params->dueMonth != null && $params->dueMonth != '') {
             $time = strtotime($params->dueMonth);
             //$time = date("Y-m-d", $time);
             $begin = date("Y-m-d", $time) . " 00:00:00";
             $end = date("Y-m-t", $time) . " 23:59:59";
             //var_dump($begin); var_dump($end); exit;
             $queryBuilder->andWhere('project.dueDate BETWEEN :begin AND :end')->setParameter('begin', $begin)->setParameter('end', $end);
         }
     }
     $query = $queryBuilder->getQuery();
     //$result = $query->getArrayResult();
     //var_dump($result); exit;
     $adapter = new DoctrineAdapter(new ORMPaginator($query));
     $paginator = new Paginator($adapter);
     $paginator->setDefaultItemCountPerPage(10);
     $page = (int) $this->getRequest()->getQuery('page');
     if ($page) {
         $paginator->setCurrentPageNumber($page);
     }
     $data = array();
     foreach ($paginator as $project) {
         $data[] = $project->getData();
     }
     return new JsonModel(array('projects' => $data, 'pages' => $paginator->getPages()));
 }
 public function getList()
 {
     //error_reporting(E_ALL);
     //ini_set('display_errors', 1);
     $entityManager = $this->getEntityManager();
     //var_dump($this->params()->fromQuery()); exit;
     // Get freelancer group
     $projectList = $entityManager->getRepository('User\\Entity\\Project');
     //->findBy(array('group' => $freelancerGroup));
     $queryBuilder = $projectList->createQueryBuilder('project');
     $queryBuilder->andWhere('project.is_deleted = 0');
     if ($q = $this->params()->fromQuery('q')) {
         $queryBuilder->andWhere($queryBuilder->expr()->orX($queryBuilder->expr()->like('project.reference', $queryBuilder->expr()->literal("%{$q}%")), $queryBuilder->expr()->like('project.id', $queryBuilder->expr()->literal("%{$q}%"))));
     }
     /** start filter */
     if ($project_id = $this->params()->fromQuery('project_id')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.id', $project_id));
     }
     if ($project_no = $this->params()->fromQuery('project_no')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.project_no', $project_no));
         //$queryBuilder->expr()->like('project.project_no', $project_no);
     }
     if ($reference = $this->params()->fromQuery('reference')) {
         $queryBuilder->andWhere($queryBuilder->expr()->like('project.reference', $queryBuilder->expr()->literal("%{$reference}%")));
     }
     if ($field = $this->params()->fromQuery('field')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.field', $field['id']));
     }
     if ($status = $this->params()->fromQuery('status')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.status', $status['id']));
     }
     if ($payStatus = $this->params()->fromQuery('payStatus')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.payStatus', $payStatus['id']));
     }
     if ($unpay = $this->params()->fromQuery('unpay')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.payStatus', $unpay));
     }
     if ($sale = $this->params()->fromQuery('sale')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.sale', $sale['id']));
     }
     if ($pm = $this->params()->fromQuery('pm')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.pm', $pm['id']));
     }
     $currentUserId = User::currentLoginId();
     $currentUser = $this->find('User\\Entity\\User', $currentUserId);
     if ($currentUser->isEmployer()) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.client', $currentUserId));
     }
     if ($clientId = $this->params()->fromQuery('clientId')) {
         $queryBuilder->andWhere($queryBuilder->expr()->eq('project.client', $clientId));
     }
     if ($statusproject = $this->params()->fromQuery('statusproject')) {
         if ($statusproject == '7and8') {
             $queryBuilder->andWhere("project.status = 7 or project.status = 8");
         } else {
             if ($statusproject == 'client') {
                 $queryBuilder->andWhere("project.status = 0 or project.status = 1 or project.status = 2 or project.status = 3 or project.status = 4");
             } else {
                 $queryBuilder->andWhere($queryBuilder->expr()->eq('project.status', $statusproject));
             }
         }
     }
     if ($getQuote = $this->params()->fromQuery('quote')) {
         //echo 'hi'; exit;
         if ($getQuote == 1) {
             $queryBuilder->andWhere("project.status = 1 or project.status = 0");
         } else {
             $queryBuilder->andWhere($queryBuilder->expr()->like('project.status', $getQuote));
         }
         //$queryBuilder->andWhere("project.status = 2");
     }
     if ($startDate = $this->params()->fromQuery('startDate')) {
         $queryBuilder->andWhere($queryBuilder->expr()->gte('project.startDate', $startDate));
     }
     if ($dueDate = $this->params()->fromQuery('dueDate')) {
         $queryBuilder->andWhere($queryBuilder->expr()->gte('project.dueDate', $dueDate));
     }
     if ($source = $this->params()->fromQuery('source')) {
         $queryBuilder->andWhere($queryBuilder->expr()->gte('project.sourceLanguage', $source['id']));
     }
     if ($target = $this->params()->fromQuery('target')) {
         // TODO: Many to many problem
     }
     /** end filter */
     $queryBuilder->orderBy('project.id', 'DESC');
     $adapter = new DoctrineAdapter(new ORMPaginator($queryBuilder));
     $paginator = new Paginator($adapter);
     $number = $this->params()->fromQuery('number');
     if (!$number) {
         $number = 10;
     }
     $paginator->setDefaultItemCountPerPage($number);
     $page = (int) $this->getRequest()->getQuery('page');
     if ($page) {
         $paginator->setCurrentPageNumber($page);
     }
     $data = array();
     $helper = new Helper();
     foreach ($paginator as $user) {
         $userData = $user->getData();
         // var_dump($userData); exit;
         $data[] = $userData;
     }
     //var_dump($paginator);die;
     return new JsonModel(array('projects' => $data, 'pages' => $paginator->getPages()));
 }
Example #3
0
 public function FreelancerUnpaidTaskAction()
 {
     $lang_code = $this->params()->fromRoute('lang');
     $currentUserId = User::currentLoginId();
     $currentUser = $this->find('User\\Entity\\User', $currentUserId);
     $freelancer = $currentUser->getFreelancer();
     return new ViewModel(['freelancer_id' => $freelancer->getId(), "lang_code" => $lang_code]);
 }
 /**
  * @return null|\User\Entity\User
  */
 public function getCurrentUser()
 {
     if ($this->currentUser === null) {
         $userId = User::currentLoginId();
         if ($userId) {
             $this->currentUser = $this->getUserById($userId);
         }
     }
     return $this->currentUser;
 }