public function execute($request) { $loggedInEmpNum = $this->getUser()->getEmployeeNumber(); $loggedInUserName = $_SESSION['fname']; $job = $request->getParameter('job'); $empNumber = isset($job['emp_number']) ? $job['emp_number'] : $request->getParameter('empNumber'); $this->empNumber = $empNumber; $this->ownRecords = $loggedInEmpNum == $empNumber ? true : false; $this->allowEdit = $this->isAllowedAdminOnlyActions($loggedInEmpNum, $empNumber); $adminMode = $this->getUser()->hasCredential(Auth::ADMIN_ROLE); if (!$this->IsActionAccessible($empNumber)) { $this->forward(sfConfig::get('sf_secure_module'), sfConfig::get('sf_secure_action')); } $this->essMode = !$adminMode && !empty($loggedInEmpNum) && $empNumber == $loggedInEmpNum; if ($this->getUser()->hasFlash('templateMessage')) { list($this->messageType, $this->message) = $this->getUser()->getFlash('templateMessage'); } $employee = $this->getEmployeeService()->getEmployee($empNumber); $param = array('empNumber' => $empNumber, 'ESS' => $this->essMode, 'employee' => $employee, 'loggedInUser' => $loggedInEmpNum, 'loggedInUserName' => $loggedInUserName); $paramForTerminationForm = array('empNumber' => $empNumber, 'employee' => $employee); $this->form = new EmployeeJobDetailsForm(array(), $param, true); $this->employeeTerminateForm = new EmployeeTerminateForm(array(), $paramForTerminationForm, true); if ($this->getRequest()->isMethod('post')) { if (!$this->allowEdit) { $this->forward(sfConfig::get('sf_secure_module'), sfConfig::get('sf_secure_action')); } // Handle the form submission $this->form->bind($request->getParameter($this->form->getName()), $request->getFiles($this->form->getName())); if ($this->form->isValid()) { // save data $service = new EmployeeService(); $service->saveJobDetails($this->form->getEmployee(), false); $this->form->updateAttachment(); $this->getUser()->setFlash('templateMessage', array('success', __(TopLevelMessages::UPDATE_SUCCESS))); } else { $validationMsg = ''; foreach ($this->form->getWidgetSchema()->getPositions() as $widgetName) { if ($this->form[$widgetName]->hasError()) { $validationMsg .= $this->form[$widgetName]->getError()->getMessageFormat(); } } $this->getUser()->setFlash('templateMessage', array('warning', $validationMsg)); } $this->redirect('pim/viewJobDetails?empNumber=' . $empNumber); } }