Exemplo n.º 1
0
 public function editAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserRole = $auth->getStorage()->read()->emprole;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $objName = 'projects';
     $emptyFlag = 0;
     $id = $this->getRequest()->getParam('id');
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $popConfigPermission = array();
     $projectsForm = new Timemanagement_Form_Projects();
     $projectModel = new Timemanagement_Model_Projects();
     $clientModel = new Timemanagement_Model_Clients();
     $clientData = $clientModel->getActiveClientsData();
     $msgarray = array();
     array_push($popConfigPermission, 'client');
     array_push($popConfigPermission, 'currency');
     $this->view->popConfigPermission = $popConfigPermission;
     if (sizeof($clientData) > 0) {
         foreach ($clientData as $client) {
             $projectsForm->client_id->addMultiOption($client['id'], $client['client_name']);
         }
     } else {
         $msgarray['client_id'] = 'Clients are not configured yet.';
         $emptyFlag++;
     }
     $base_projectData = $projectModel->getProjectList();
     if (sizeof($base_projectData) > 0) {
         foreach ($base_projectData as $base_project) {
             $projectsForm->base_project->addMultiOption($base_project['id'], $base_project['project_name']);
         }
     }
     $this->view->msgarray = $msgarray;
     $this->view->emptyFlag = $emptyFlag;
     try {
         if ($id) {
             //Edit Record...
             if (is_numeric($id) && $id > 0) {
                 $auth = Zend_Auth::getInstance();
                 if ($auth->hasIdentity()) {
                     $loginUserId = $auth->getStorage()->read()->id;
                     $loginuserRole = $auth->getStorage()->read()->emprole;
                     $loginuserGroup = $auth->getStorage()->read()->group_id;
                 }
                 $projectResourcesModel = new Timemanagement_Model_Projectresources();
                 $checkResourceExistsforProject = $projectResourcesModel->checkProjectResource($id, $loginUserId);
                 if ($loginUserId == 1 || $checkResourceExistsforProject > 0) {
                     $data = $projectModel->getSingleProjectData($id);
                     if (!empty($data) && $data != "norows") {
                         $projectsForm->populate($data[0]);
                         $projectsForm->submit->setLabel('Update');
                         $this->view->form = $projectsForm;
                         $this->view->controllername = $objName;
                         $this->view->data = $data;
                         $this->view->id = $id;
                         $this->view->ermsg = '';
                         $this->view->inpage = 'Edit';
                     } else {
                         $this->view->form = $projectsForm;
                         $this->view->controllername = $objName;
                         $this->view->data = $data;
                         $this->view->ermsg = 'norecord';
                         $this->view->inpage = 'Edit';
                     }
                 } else {
                     $this->view->form = $projectsForm;
                     $this->view->controllername = $objName;
                     $this->view->data = array();
                     $this->view->ermsg = 'norecord';
                     $this->view->inpage = 'Edit';
                 }
             } else {
                 $this->view->form = $projectsForm;
                 $this->view->controllername = $objName;
                 $this->view->data = 'norows';
                 $this->view->inpage = 'Edit';
             }
         } else {
             if ($this->getRequest()->getParam('cid')) {
                 $cid = $this->getRequest()->getParam('cid');
                 $projectsForm->client_id->setValue($cid);
             }
             $this->view->form = $projectsForm;
             $this->view->ermsg = '';
             $this->view->id = '';
             $this->view->inpage = 'Add';
         }
     } catch (Exception $ex) {
         $this->view->ermsg = 'nodata';
     }
     if ($this->getRequest()->getPost()) {
         if ($projectsForm->isValid($this->_request->getPost())) {
             $id = $this->_request->getParam('id');
             $project_name = $this->_request->getParam('project_name');
             $project_status = $this->_request->getParam('project_status');
             $base_project = $this->_request->getParam('base_project');
             $client_id = $this->_request->getParam('client_id');
             $description = $this->_request->getParam('description');
             $date = new Zend_Date();
             $data = array('project_name' => ucfirst(trim($project_name)), 'project_status' => trim($project_status), 'base_project' => trim($base_project) != '' ? $base_project : NUll, 'description' => trim($description), 'client_id' => trim($client_id), 'modified_by' => $loginUserId, 'modified' => gmdate("Y-m-d H:i:s"));
             if ($id != '') {
                 $where = array('id=?' => $id);
             } else {
                 $data['created_by'] = $loginUserId;
                 $data['created'] = gmdate("Y-m-d H:i:s");
                 $data['is_active'] = 1;
                 $where = '';
             }
             $insertedId = $projectModel->SaveorUpdateProjectsData($data, $where);
             if ($insertedId == 'update') {
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Project updated successfully."));
             } else {
                 if (Zend_Registry::get('tm_role') == 'Manager') {
                     $projectResourcesModel = new Timemanagement_Model_Projectresources();
                     $projectResourceData = array('project_id' => trim($insertedId), 'emp_id' => $loginUserId, 'created_by' => $loginUserId, 'created' => gmdate("Y-m-d H:i:s"), 'is_active' => 1, 'modified_by' => $loginUserId, 'modified' => gmdate("Y-m-d H:i:s"));
                     $result = $projectResourcesModel->SaveorUpdateProjectResourceData($projectResourceData, '');
                 }
                 $id = $insertedId;
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Project added successfully."));
             }
             $this->_redirect('timemanagement/projects/tasks/projectid/' . $id);
         } else {
             $messages = $projectsForm->getMessages();
             foreach ($messages as $key => $val) {
                 foreach ($val as $key2 => $val2) {
                     $msgarray[$key] = $val2;
                     break;
                 }
             }
             if (sizeof($clientData) < 1) {
                 $msgarray['client_id'] = 'Clients not configured yet.';
             }
             $this->view->msgarray = $msgarray;
         }
     }
 }