コード例 #1
0
 public function create($data)
 {
     $projectid = $this->getRequest()->getQuery('projectid');
     $iterm = new Itermdtpmac();
     if ($data['file']) {
         $file = $this->find('\\User\\Entity\\File', $data['file']['id']);
     }
     $project = $this->find('User\\Entity\\Project', $projectid);
     $iterm->setProject($project);
     $language = $this->find('User\\Entity\\Language', $data['languageid']);
     $software = $this->find('\\User\\Entity\\DesktopSoftware', $data['software']['id']);
     $taskList = $this->getEntityManager()->getRepository('User\\Entity\\Task')->findBy(array('project' => $project));
     $taskOrderArr = array();
     foreach ($taskList as $task) {
         $order = explode('-', $task->getTaskNumber());
         $order = $order[1];
         $taskOrderArr[] = (int) $order;
     }
     $max = max($taskOrderArr);
     $max++;
     $task_number = $project->getProjectNo() . '-' . $max;
     if ($data['task_id']) {
         $task = $this->find('User\\Entity\\Task', $data['task_id']);
         $iterm->setData(['name' => $data['name'], 'unit' => $data['unit']['id'], 'file' => $file ? $file : null, 'rate_freelancer' => $data['rate'], 'quantity' => $data['quantity'], 'total_freelancer' => $data['total'], 'language' => $language, 'task' => $task, 'software' => $software, 'of_freelancer' => $data['of_freelancer'] ? $data['of_freelancer'] : 0]);
     } else {
         $entityManager = $this->getEntityManager();
         $repository = $entityManager->getRepository('User\\Entity\\Task');
         $task = $repository->findBy(array('project' => $project, 'language' => $language, 'type' => 4));
         //var_dump($task);exit;
         if ($task) {
             if ($data['rate_client']) {
                 $iterm->setData(['name' => $data['name'], 'unit' => $data['unit']['id'], 'file' => $file ? $file : null, 'rate' => $data['rate_client'], 'quantity' => $data['quantity'], 'total' => $data['total'], 'language' => $language, 'task' => $task[0], 'software' => $software, 'of_freelancer' => $data['of_freelancer'] ? $data['of_freelancer'] : 0]);
             } else {
                 $iterm->setData(['name' => $data['name'], 'unit' => $data['unit']['id'], 'file' => $file ? $file : null, 'rate_freelancer' => $data['rate'], 'quantity' => $data['quantity'], 'total_freelancer' => $data['total'], 'language' => $language, 'task' => $task[0], 'software' => $software, 'of_freelancer' => $data['of_freelancer'] ? $data['of_freelancer'] : 0]);
             }
         } else {
             if ($data['rate_client']) {
                 $iterm->setData(['name' => $data['name'], 'unit' => $data['unit']['id'], 'file' => $file ? $file : null, 'rate' => $data['rate_client'], 'quantity' => $data['quantity'], 'total' => $data['total'], 'language' => $language, 'software' => $software, 'of_freelancer' => $data['of_freelancer'] ? $data['of_freelancer'] : 0]);
             } else {
                 $iterm->setData(['name' => $data['name'], 'unit' => $data['unit']['id'], 'file' => $file ? $file : null, 'rate_freelancer' => $data['rate'], 'quantity' => $data['quantity'], 'total_freelancer' => $data['total'], 'language' => $language, 'software' => $software, 'of_freelancer' => $data['of_freelancer'] ? $data['of_freelancer'] : 0]);
             }
         }
     }
     $iterm->save($this->getEntityManager());
     //add task if have not
     $entityManager = $this->getEntityManager();
     $repository = $entityManager->getRepository('User\\Entity\\Task');
     $task = $repository->findBy(array('project' => $project, 'language' => $language, 'type' => 4));
     if (!$task) {
         $task = new Task();
         $task->setData(['project' => $project, 'language' => $language, 'type' => 4, 'status' => 3, 'task_number' => $task_number]);
         $task->save($this->getEntityManager());
     }
     return new JsonModel(['iterm' => $iterm->getData()]);
 }