/** * */ public function addAction() { $sd_req_model = new Default_Model_Servicerequests(); $request_form = new Default_Form_Servicerequest(); $isUpdate = "0"; $msgarray = array(); $auth = Zend_Auth::getInstance(); $grid_type = $this->_getParam('t', null); $status_value = $this->_getParam('v', null); $this->view->x_grid_type = $grid_type; $this->view->x_status_value = $status_value; if ($auth->hasIdentity()) { $loginUserId = $auth->getStorage()->read()->id; $loginuserRole = $auth->getStorage()->read()->emprole; $loginuserGroup = $auth->getStorage()->read()->group_id; $login_bu = $auth->getStorage()->read()->businessunit_id; $login_dept = $auth->getStorage()->read()->department_id; $reporting_manager = $auth->getStorage()->read()->reporting_manager; $org_head_flag = $auth->getStorage()->read()->is_orghead; } if ($org_head_flag == 1) { $this->view->ermsg = 'norecord'; $this->render('form'); } if ($grid_type != '') { if ($login_bu == 0) { $service_desk_flag = 0; } else { $bu_model = new Default_Model_Businessunits(); $bu_data = $bu_model->getSingleUnitData($login_bu); $service_desk_flag = $bu_data['service_desk_flag']; } $service_types_data = $sd_req_model->getServiceTypes($login_bu, $login_dept, $service_desk_flag); $grid_type = sapp_Global::_decrypt($grid_type); $grid_type_arr = $sd_req_model->getGridtypearr(); if ($login_bu == 0 && $login_dept == 0) { $msgarray['service_desk_conf_id'] = "To use service request management, please assign to any department."; } $this->view->msgarray = $msgarray; $this->view->form = $request_form; $this->view->service_types_data = $service_types_data; $this->view->action_name = $this->getRequest()->getActionName(); $this->view->grid_type = $grid_type_arr[$grid_type]; $this->view->grid_type_arr = $sd_req_model->getGridtypearr_rev(); $this->view->status_value = $status_value; $id = $this->getRequest()->getParam('id', null); $where = ""; $actionflag = 1; if ($id > 0 && is_numeric($id)) { //update code $actionflag = 2; $id = abs($id); $serviceticketdata = $sd_req_model->getServiceTicketByID($id); if ($serviceticketdata != false) { $request_form->setDefault('service_desk_conf_id', $serviceticketdata['service_desk_conf_id']); $request_form->setDefault('priority', $serviceticketdata['priority']); $request_form->setDefault('description', $serviceticketdata['description']); $sd_dept_model = new Default_Model_Servicedeskdepartment(); $servicedeskrequesttypes = $sd_dept_model->getRequestIDNameById($serviceticketdata['service_desk_conf_id']); $request_form->service_request_id->addMultiOptions(array('' => 'Select Request') + $servicedeskrequesttypes); $request_form->setDefault('service_request_id', $serviceticketdata['service_request_id']); $request_form->submit->setLabel('Update'); } else { $this->view->ermsg = 'norecord'; } } if ($this->getRequest()->getPost()) { if ($request_form->isValid($this->_request->getPost())) { $service_desk_id = $this->_getParam('service_desk_id', null); $service_desk_conf_id = $this->_getParam('service_desk_conf_id', null); if ($service_desk_id == "") { $service_desk_id = $service_desk_conf_id; } $service_request_id = $this->_getParam('service_request_id', null); $priority = $this->_getParam('priority', null); $description = $this->_getParam('description', null); $attachment = $this->_getParam('attachment', null); $check_raiser = $sd_req_model->check_raiser($service_desk_conf_id, $loginUserId); if ($check_raiser == 'yes') { $file_original_names = $this->_getParam('file_original_names', null); $file_new_names = $this->_getParam('file_new_names', null); $org_names = explode(',', $file_original_names); $new_names = explode(',', $file_new_names); $attachment_array = array(); for ($i = 0; $i < count($org_names); $i++) { if ($new_names[$i] != '') { $attachment_array[$org_names[$i]] = $new_names[$i]; } } $data = array('service_desk_id' => $service_desk_id, 'service_desk_conf_id' => $service_desk_conf_id, 'service_request_id' => $service_request_id, 'priority' => $priority, 'description' => $description, 'attachment' => count($attachment_array) > 0 ? json_encode($attachment_array) : null, 'status' => 'Open', 'reporting_manager_id' => $reporting_manager, 'raised_by' => $loginUserId, 'isactive' => 1, 'createdby' => $loginUserId, 'modifiedby' => $loginUserId, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifieddate' => gmdate("Y-m-d H:i:s")); $trDb = Zend_Db_Table::getDefaultAdapter(); // starting transaction $trDb->beginTransaction(); try { if ($id != '') { $isUpdate = "1"; unset($data['createdby']); unset($data['createdon']); $where = "id = " . $id; $actionflag = 2; $result = $sd_req_model->SaveorUpdateRequestData($data, $where); $rslt = "Request updated successfully."; //start of saving history $reqh_model = new Default_Model_Requesthistory(); $reqh_data = array('request_id' => $id, 'description' => ucfirst($rslt), 'emp_id' => $loginUserId, 'emp_name' => ucfirst($auth->getStorage()->read()->userfullname), 'emp_profileimg' => $auth->getStorage()->read()->profileimg, 'createdby' => $loginUserId, 'modifiedby' => $loginUserId, 'comments' => trim($description), 'isactive' => 1, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifieddate' => gmdate("Y-m-d H:i:s")); $reqh_model->SaveorUpdateRhistory($reqh_data, ''); } else { $id = $sd_req_model->SaveorUpdateRequestData($data, ''); $data = array('modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'ticket_number' => "SD" . str_pad($id, 4, '0', STR_PAD_LEFT)); $sd_req_model->SaveorUpdateRequestData($data, 'id = ' . $id); $rslt = "Request raised successfully."; } if (count($new_names) > 0) { foreach ($new_names as $n) { if ($n != '') { if (file_exists(SD_TEMP_UPLOAD_PATH . $n)) { copy(SD_TEMP_UPLOAD_PATH . $n, SD_UPLOAD_PATH . $n); unlink(SD_TEMP_UPLOAD_PATH . $n); } } } } $result = sapp_Global::logManager(SERVICEDESK, 1, $loginUserId, $id); $this->send_req_mails($id, $isUpdate); $trDb->commit(); $this->_helper->getHelper("FlashMessenger")->addMessage(array(array("success" => $rslt))); $this->_redirect('servicerequests/index/t/' . sapp_Global::_encrypt('1')); } catch (Exception $ex) { $trDb->rollBack(); $msgarray['service_desk_conf_id'] = "Something went wrong, please try again."; $this->view->msgarray = $msgarray; } } else { $msgarray['service_desk_conf_id'] = "You cannot raise the request as you are the request receiver."; $this->view->msgarray = $msgarray; } } else { $file_original_names = $this->_getParam('file_original_names', null); $file_new_names = $this->_getParam('file_new_names', null); $show_attachment = $this->_getParam('show_attachment', null); $messages = $request_form->getMessages(); foreach ($messages as $key => $val) { foreach ($val as $key2 => $val2) { $msgarray[$key] = $val2; break; } } $this->view->msgarray = $msgarray; $this->view->file_original_names = $file_original_names; $this->view->file_new_names = $file_new_names; $this->view->show_attachment = $show_attachment; } if (count($msgarray) > 0) { $sd_dept_model = new Default_Model_Servicedeskdepartment(); $data = $sd_dept_model->getRequestsById($this->_getParam('service_desk_id')); $ser_req_options = array('' => 'Select request'); if (count($data) > 0) { foreach ($data as $opt) { $ser_req_options[$opt['id']] = $opt['service_request_name']; } } $request_form->service_request_id->addMultiOptions($ser_req_options); } } } else { $this->view->ermsg = 'norecord'; } $this->render('form'); }