/**
  * 
  * @param type $requisitionform
  * @param type $data
  * @return type
  */
 public function save($requisitionform, $data)
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $loginuserGroup = $auth->getStorage()->read()->group_id;
     }
     $requi_model = new Default_Model_Requisition();
     $user_model = new Default_Model_Usermanagement();
     $req_status = $this->_getParam('req_status', null);
     try {
         //update HR Executive for Requisition
         $hrExecutiveID = $this->_getParam('hrexecutive_id', null);
         $requisition_code = $this->_getParam('requisition_code', null);
         $requisition_id = $this->_getParam('id', null);
         $result1 = $requi_model->update_requisition_hrexecutive($requisition_id, $requisition_code, $hrExecutiveID, $loginUserId, gmdate("Y-m-d H:i:s"));
         //send emails
         $this->hrexecutive_to_requisition_emails($data, $requisition_code, $hrExecutiveID);
     } catch (Exception $xyz) {
     }
     $flag = 'true';
     if ($requisitionform->isValid($this->_request->getPost()) && $flag != 'false') {
         $id = $this->_getParam('id', null);
         $req_status = $this->_getParam('req_status', null);
         $onboard_date = $this->_getParam('onboard_date', null);
         $data = array('req_status' => $req_status, 'modifiedby' => trim($loginUserId), 'modifiedon' => gmdate("Y-m-d H:i:s"));
         if ($onboard_date != '') {
             $data = $data + array('onboard_date' => sapp_Global::change_date($onboard_date, 'database'));
         }
         $where = "id = " . $id;
         $result = $requi_model->SaveorUpdateRequisitionData($data, $where);
         $requisition_data = $requi_model->getReqDataForView($id);
         $requisition_data = $requisition_data[0];
         if ($loginUserId == $requisition_data['approver1']) {
             $result1 = $requi_model->insert_requisition_approvalLog($id, $requisition_data['requisition_code'], $data['req_status'], $loginUserId, gmdate("Y-m-d H:i:s"));
         }
         $tableid = $id;
         $actionflag = 2;
         if ($result != '') {
             if ($req_status == 'Complete' || $req_status == 'Closed') {
                 $requi_model->change_to_requisition_closed($id);
                 $report_person_data = $user_model->getUserDataById($requisition_data['createdby']);
                 $closed_person_data = $user_model->getUserDataById($loginUserId);
                 //HR
                 $mail_arr[0]['name'] = 'HR';
                 $mail_arr[0]['email'] = constant('REQ_HR_0');
                 $mail_arr[0]['type'] = 'HR';
                 //Management
                 $mail_arr[1]['name'] = 'Management';
                 $mail_arr[1]['email'] = constant('REQ_MGMT_0');
                 $mail_arr[1]['type'] = 'Management';
                 //Requester
                 $mail_arr[2]['name'] = $report_person_data['userfullname'];
                 $mail_arr[2]['email'] = $report_person_data['emailaddress'];
                 $mail_arr[2]['type'] = 'Raise';
                 for ($ii = 0; $ii < count($mail_arr); $ii++) {
                     $base_url = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
                     $view = $this->getHelper('ViewRenderer')->view;
                     $this->view->emp_name = $mail_arr[$ii]['name'];
                     $this->view->base_url = $base_url;
                     $this->view->type = $mail_arr[$ii]['type'];
                     $this->view->requisition_code = $requisition_data['requisition_code'];
                     $this->view->req_status = $status = strtolower($req_status == 'Closed' ? "Closed" : $req_status);
                     $this->view->raised_name = $report_person_data['userfullname'];
                     $this->view->approver_str = $closed_person_data['userfullname'];
                     $text = $view->render('mailtemplates/changedrequisition.phtml');
                     $options['subject'] = APPLICATION_NAME . ':' . $requisition_data['requisition_code'] . '-Requisition is ' . $status;
                     $options['header'] = 'Requisition is ' . $status;
                     $options['toEmail'] = $mail_arr[$ii]['email'];
                     $options['toName'] = $mail_arr[$ii]['name'];
                     $options['message'] = $text;
                     //$options['cron'] = 'yes';
                     sapp_Global::_sendEmail($options, "changedrequisition", REQUISITIONMODULESENDEMAIL);
                 }
             }
             $menumodel = new Default_Model_Menu();
             $objidArr = $menumodel->getMenuObjID('/approvedrequisitions');
             $objID = $objidArr[0]['id'];
             $result = sapp_Global::logManager($objID, $actionflag, $loginUserId, $tableid);
             if ($id != '') {
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Requisition updated successfully."));
             } else {
                 $this->_helper->getHelper("FlashMessenger")->addMessage(array("success" => "Requisition added successfully."));
             }
             $this->_redirect('/approvedrequisitions');
         }
     } else {
         $messages = $requisitionform->getMessages();
         $msgarray = array();
         foreach ($messages as $key => $val) {
             foreach ($val as $key2 => $val2) {
                 $msgarray[$key] = $val2;
                 break;
             }
         }
         return $msgarray;
     }
 }