/**
  * 
  */
 public function changestatusAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $id = $this->_request->getParam('objid');
     $status = $this->_getParam('status', null);
     $grid_type = $this->_getParam('grid_type', null);
     $messages['message'] = '';
     $messages['msgtype'] = '';
     $actionflag = 3;
     if ($id != '') {
         $sd_req_model = new Default_Model_Servicerequests();
         $grid_type_arr = $sd_req_model->getGridtypearr_rev();
         $display_status = array('Cancelled' => 'cancelled', 'To manager approve' => ' sent for manager approve ', 'To management approve' => ' sent for approve', 'Closed' => 'closed');
         $data = array('status' => $status, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'modifiedby' => $loginUserId);
         if ($status != 'Cancelled') {
             $data['executor_id'] = $loginUserId;
         }
         if ($status == 'To manager approve') {
             $reporting_manager = $sd_req_model->getReptId($id);
             if ($reporting_manager != '') {
                 $data['reporting_manager_id'] = $reporting_manager;
             }
             if ($reporting_manager != "" && $reporting_manager == $loginUserId) {
                 $messages['message'] = 'Service desk request cannot be sent for manager approve.';
                 $messages['msgtype'] = 'error';
                 $messages['flagtype'] = 'dont_redirect';
                 $messages['grid_type'] = sapp_Global::_encrypt($grid_type_arr[$grid_type]);
                 $this->_helper->json($messages);
             }
         } else {
             if ($status == 'To management approve') {
                 $approver_arr = $sd_req_model->getApprovers($id, 'request');
                 $data = $data + $approver_arr;
             }
         }
         $where = array('id=?' => $id);
         $trDb = Zend_Db_Table::getDefaultAdapter();
         // starting transaction
         $trDb->beginTransaction();
         try {
             $Id = $sd_req_model->SaveorUpdateRequestData($data, $where);
             if ($Id == 'update') {
                 $result = sapp_Global::logManager(SERVICEDESKREQUEST, $actionflag, $loginUserId, $id);
                 if ($status != 'Cancelled') {
                     $this->send_req_mails($id);
                 }
                 $messages['message'] = 'Service desk request ' . $display_status[$status] . ' successfully.';
                 $messages['msgtype'] = 'success';
                 $messages['flagtype'] = 'sd_request';
                 $messages['grid_type'] = sapp_Global::_encrypt($grid_type_arr[$grid_type]);
             } else {
                 $messages['message'] = 'Service desk request cannot be ' . $display_status[$status] . '.';
                 $messages['msgtype'] = 'error';
                 $messages['flagtype'] = 'sd_request';
                 $messages['grid_type'] = sapp_Global::_encrypt($grid_type_arr[$grid_type]);
             }
             $trDb->commit();
         } catch (Exception $e) {
             $trDb->rollBack();
             $messages['message'] = 'Service desk request cannot be ' . $display_status[$status] . '.';
             $messages['msgtype'] = 'error';
             $messages['flagtype'] = 'sd_request';
             $messages['grid_type'] = sapp_Global::_encrypt($grid_type_arr[$grid_type]);
         }
     } else {
         $messages['message'] = 'Service desk request cannot be ' . $display_status[$status] . '.';
         $messages['msgtype'] = 'error';
         $messages['flagtype'] = 'sd_request';
         $messages['grid_type'] = sapp_Global::_encrypt($grid_type_arr[$grid_type]);
     }
     $this->_helper->json($messages);
 }