/**
  * 
  */
 public function assignservicerequestpopupAction()
 {
     $request_form = new Default_Form_Servicerequest();
     $id = $this->_getParam('id', null);
     $req_msg = "";
     try {
         if ($id != '') {
             $sd_req_model = new Default_Model_Servicerequests();
             $grid_type_arr = $sd_req_model->getGridtypearr();
             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;
                     $login_bu = $auth->getStorage()->read()->businessunit_id;
                     $login_dept = $auth->getStorage()->read()->department_id;
                 }
                 $data = $sd_req_model->getRequestById($id);
                 if (!empty($data)) {
                     $approver_level = "view";
                     if (($grid_type_arr[$grid_type] == 'rept_app' || $grid_type_arr[$grid_type] == 'approver') && $data['status'] == 'To management approve') {
                         $approver_level = $sd_req_model->getApproverLevel($loginUserId, $id);
                     }
                     $emp_model = new Default_Model_Employee();
                     $service_conf_model = new Default_Model_Servicedeskconf();
                     $other_approvers = $emp_model->get_Service_Executors($id);
                     foreach ($app_data as $key => $value) {
                         $app_names[$key] = $app_details[$value];
                     }
                     $conf_data = $service_conf_model->getServiceDeskConfbyID($data['service_desk_conf_id']);
                     $exec_data = $emp_model->getEmployeeDetails($conf_data[0]['request_recievers']);
                     $this->view->id = $id;
                     $this->view->data = $data;
                     $this->view->loginUserId = $loginUserId;
                     $this->view->other_approvers = $other_approvers;
                     $this->view->app_names = $app_names;
                     $this->view->exec_data = $exec_data;
                     if ($this->getRequest()->getPost()) {
                         $trDb = Zend_Db_Table::getDefaultAdapter();
                         // starting transaction
                         $trDb->beginTransaction();
                         try {
                             $req_id = $this->_getParam('hid_reqid', null);
                             $hid_status = $this->_getParam('hid_status', null);
                             $selexecutorid = trim($this->_getParam('executor_action', null));
                             $request_comments = trim($this->_getParam('request_comments', null));
                             $save_data = array('executor_id' => trim($selexecutorid), 'ticket_assigned_by' => trim($loginUserId), 'ticket_assigned_comments' => trim($request_comments), 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"));
                             $req_msg['success'] = "Executor assigned to service request.";
                             $sd_result = "";
                             if ($data['status'] != 'Closed' && $data['status'] != 'Rejected') {
                                 $sd_result = $sd_req_model->SaveorUpdateRequestData($save_data, 'id = ' . $id);
                                 //email stuff ------------Start
                                 $sEmailData = $sd_req_model->getRequestDataForEmail($id);
                                 $sMailSubject = sprintf("%s - %s - %s - %s", $sEmailData['ticket_number'], $sEmailData['service_desk_name'], $sEmailData['service_request_name'], $sEmailData['status']);
                                 $smessage = "A new executor for this service request.";
                                 $summary_data = $sd_req_model->getDataSummary($id);
                                 $stoEmailAddress1 = $sd_req_model->getEmailAddress($selexecutorid);
                                 $stoEmailAddress2 = $sd_req_model->getEmailAddress($sEmailData['raised_by']);
                                 $stoEmailAddress3 = constant('ITSUPPORT_0');
                                 //$stoEmailAddress3 = $this->getSupportTeamEmailID($sEmailData['service_desk_conf_id']);
                                 $this->mail_helper_action($sMailSubject, $smessage, $summary_data, $stoEmailAddress1);
                                 $this->mail_helper_action($sMailSubject, $smessage, $summary_data, $stoEmailAddress2);
                                 $this->mail_helper_action($sMailSubject, $smessage, $summary_data, $stoEmailAddress3);
                                 //email stuff ------------End
                             }
                             //start of saving history
                             $reqh_model = new Default_Model_Requesthistory();
                             $reqh_data = array('request_id' => $id, 'description' => ucfirst($req_msg['success']), 'emp_id' => $loginUserId, 'emp_name' => ucfirst($auth->getStorage()->read()->userfullname), 'emp_profileimg' => $auth->getStorage()->read()->profileimg, 'createdby' => $loginUserId, 'modifiedby' => $loginUserId, 'comments' => trim($request_comments), 'isactive' => 1, 'createddate' => gmdate("Y-m-d H:i:s"), 'modifieddate' => gmdate("Y-m-d H:i:s"));
                             if ($sd_result == 'update') {
                                 $reqh_model->SaveorUpdateRhistory($reqh_data, '');
                                 //end of saving history
                                 //$this->send_req_mails($id);
                                 $req_msg['success'] = "Executor assigned to service request successfully.";
                             } else {
                                 $req_msg['error'] = "Some thing went wrong, please try again.";
                             }
                             $result = sapp_Global::logManager(SERVICEDESK, 2, $loginUserId, $id);
                             $trDb->commit();
                             $this->_helper->getHelper("FlashMessenger")->addMessage(array($req_msg));
                             $this->_redirect('servicerequests/index/t/' . sapp_Global::_encrypt($grid_type) . ($status_value != '' ? "/v/" . $status_value : ""));
                         } catch (Exception $ex) {
                             $trDb->rollBack();
                             $msgarray['executor_comments'] = "Something went wrong, please try again.";
                         }
                     }
                 } else {
                     $this->view->ermsg = 'norecord';
                 }
             } else {
                 $this->view->ermsg = 'norecord';
             }
         } else {
             $this->view->ermsg = 'norecord';
         }
     } catch (Exception $e) {
         $this->view->ermsg = 'nodata';
     }
     $this->view->action_name = $this->getRequest()->getActionName();
 }