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())); }
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; }