/**
  * This function is used to add/update data in database.
  * @param  $user_form =    all form data.
  * 
  * @return        JSON  success/error messages in json format.
  */
 public function saveupdateAction()
 {
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
     }
     $agencylistmodel = new Default_Model_Agencylist();
     $user_form = new Default_Form_Usermanagement();
     $user_model = new Default_Model_Usermanagement();
     $logmanagermodel = new Default_Model_Logmanager();
     $menumodel = new Default_Model_Menu();
     $messages = $user_form->getMessages();
     $actionflag = '';
     $tableid = '';
     $agencyuser = '******';
     if ($this->getRequest()->getPost()) {
         if ($user_form->isValid($this->_request->getPost())) {
             $id = $this->_request->getParam('id');
             $employeeId = $this->_request->getParam('employeeId', null);
             //$userfullname = $this->_request->getParam('userfullname',null);
             $firstname = $this->_request->getParam('firstname', null);
             $lastname = $this->_request->getParam('lastname', null);
             $userfullname = $firstname . ' ' . $lastname;
             $entrycomments = $this->_request->getParam("entrycomments", null);
             $emailaddress = $this->_request->getParam("emailaddress", null);
             $emprole = $this->_request->getParam("emprole", null);
             $emplockeddate = $this->_request->getParam("emplockeddate", null);
             $act_inact = $this->_request->getParam("act_inact", null);
             $empreasonlocked = $this->_request->getParam("empreasonlocked", null);
             $emppassword = sapp_Global::generatePassword();
             $data = array('emprole' => $emprole, 'firstname' => $firstname, 'lastname' => $lastname, 'userfullname' => $userfullname, 'emailaddress' => $emailaddress, 'modifiedby' => $loginUserId, 'modifieddate' => gmdate("Y-m-d H:i:s"), 'emppassword' => md5($emppassword), 'entrycomments' => $entrycomments, 'userstatus' => 'old');
             if ($emplockeddate == '') {
                 unset($data['emplockeddate']);
             }
             if ($id != '') {
                 if ($act_inact != '') {
                     $data['isactive'] = $act_inact;
                     $data['emptemplock'] = $act_inact == 0 ? "1" : "0";
                     $agencyroles = $agencylistmodel->getagencyrole();
                     $userData = $user_model->getUserDataById($id);
                     $agencyuser = '';
                     $user_role = $userData['emprole'];
                     foreach ($agencyroles as $agrole) {
                         if ($agrole['id'] == $user_role) {
                             $agencyuser = '******';
                         }
                     }
                     if ($agencyuser == 'yes') {
                         $agencyData = $user_model->getAgencyData($id);
                         if ($act_inact == '1') {
                             $user_model->activateAllagencydetails($agencyData['agencyid'], $loginUserId);
                             if ($agencyData['isactive'] != $act_inact) {
                                 $this->sendEMails($agencyData, 'activated');
                             }
                         } else {
                             $user_model->deleteAllagencydetails($agencyData['agencyid'], $loginUserId);
                             if ($agencyData['isactive'] != $act_inact) {
                                 $this->sendEMails($agencyData, 'inactivated');
                             }
                         }
                     }
                 }
                 $where = array('id=?' => $id);
                 unset($data['emppassword']);
                 $messages['message'] = 'User updated successfully.';
                 $_SESSION['usermanagement_msg'] = $messages['message'];
                 $actionflag = 2;
             } else {
                 $data['createdby'] = $loginUserId;
                 $data['createddate'] = gmdate("Y-m-d H:i:s");
                 $data['isactive'] = 1;
                 $where = '';
                 $messages['message'] = 'User added successfully.';
                 $_SESSION['usermanagement_msg'] = $messages['message'];
                 $actionflag = 1;
             }
             $Id = $user_model->SaveorUpdateUserData($data, $where);
             if ($Id == 'update') {
                 $tableid = $id;
             } else {
                 $employeeId = $employeeId . str_pad($Id, 4, '0', STR_PAD_LEFT);
                 $user_model->SaveorUpdateUserData(array('employeeId' => $employeeId), "id = " . $Id);
                 $tableid = $Id;
                 $base_url = 'http://' . $this->getRequest()->getHttpHost() . $this->getRequest()->getBaseUrl();
                 $view = $this->getHelper('ViewRenderer')->view;
                 $this->view->emp_name = $userfullname;
                 $this->view->password = $emppassword;
                 $this->view->emp_id = $employeeId;
                 $this->view->base_url = $base_url;
                 $text = $view->render('mailtemplates/newpassword.phtml');
                 $options['subject'] = APPLICATION_NAME . ' login credentials';
                 $options['header'] = 'Greetings from Sentrifugo';
                 $options['toEmail'] = $emailaddress;
                 $options['toName'] = $this->view->emp_name;
                 $options['message'] = $text;
                 try {
                     $result = sapp_Global::_sendEmail($options);
                 } catch (Exception $e) {
                     echo $e->getMessage();
                 }
             }
             $objidArr = $menumodel->getMenuObjID('/usermanagement');
             $objID = $objidArr[0]['id'];
             $result = sapp_Global::logManager($objID, $actionflag, $loginUserId, $tableid);
             if ($act_inact != '') {
                 if ($data['isactive'] == 1) {
                     $logarr = array('userid' => $loginUserId, 'recordid' => $tableid, 'date' => gmdate("Y-m-d H:i:s"), 'isactive' => 1);
                     $jsonlogarr = json_encode($logarr);
                 } else {
                     $logarr = array('userid' => $loginUserId, 'recordid' => $tableid, 'date' => gmdate("Y-m-d H:i:s"), 'isactive' => 0);
                     $jsonlogarr = json_encode($logarr);
                 }
                 $id = $logmanagermodel->addOrUpdateLogManager($objID, 4, $jsonlogarr, $loginUserId, $tableid);
             }
             $messages['result'] = 'saved';
             $this->_helper->json($messages);
         } else {
             $messages = $user_form->getMessages();
             $messages['result'] = 'error';
             $this->_helper->json($messages);
         }
     }
 }