/**
  * This action is used for adding/updating data.
  * @parameters
  * @param $id  =  id of users (optional)
  * 
  * @return Zend_Form.
  */
 public function editAction()
 {
     $popConfigPermission = array();
     $user_model = new Default_Model_Usermanagement();
     $role_model = new Default_Model_Roles();
     $identity_code_model = new Default_Model_Identitycodes();
     $identity_codes = $identity_code_model->getIdentitycodesRecord();
     $identity_codes = isset($identity_codes[0]) ? $identity_codes[0] : array();
     $id = $this->getRequest()->getParam('id', null);
     $auth = Zend_Auth::getInstance();
     if ($auth->hasIdentity()) {
         $loginUserId = $auth->getStorage()->read()->id;
         $login_group_id = $auth->getStorage()->read()->group_id;
         $login_role_id = $auth->getStorage()->read()->emprole;
     }
     if (sapp_Global::_checkprivileges(IDENTITYCODES, $login_group_id, $login_role_id, 'edit') == 'Yes') {
         array_push($popConfigPermission, 'identitycodes');
     }
     $this->view->popConfigPermission = $popConfigPermission;
     $callval = $this->getRequest()->getParam('call');
     if ($callval == 'ajaxcall') {
         $this->_helper->layout->disableLayout();
     }
     $form = new Default_Form_Usermanagement();
     $err_messages = array();
     $roles_arr = $role_model->getRolesListForUsers('');
     $form->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr);
     $emp_identity_code = isset($identity_codes['backgroundagency_code']) ? $identity_codes['backgroundagency_code'] : "";
     $identity_arr = array();
     if ($emp_identity_code != '') {
         $identity_arr = array($identity_codes['users_code'] => "Users (" . $identity_codes['users_code'] . ")");
     } else {
         $emp_id = '';
     }
     $form->employeeId->addMultiOptions($identity_arr);
     if ($id != '' && $id > 0) {
         try {
             $id = (int) $id;
             $id = abs($id);
             $form->submit->setLabel('Update');
             $data = $user_model->getUserDataById($id);
             if (count($data) > 0) {
                 if ($data['jobtitle_id'] != '') {
                     $this->_redirect('/employee/edit/id/' . $id);
                 }
                 $role_data = $role_model->getRoleDataById($data['emprole']);
                 $data['emplockeddate'] = sapp_Global::change_date($data['emplockeddate'], 'view');
                 $form->populate($data);
                 $this->view->data = $data;
                 //$id_arr = preg_split('/-/', $data['employeeId']);
                 $id_arr = preg_split('/(?=\\d)/', $data['employeeId'], 2);
                 $identity_arr[$identity_codes['backgroundagency_code']] = "Background Agency (" . $identity_codes['backgroundagency_code'] . ")";
                 if (isset($identity_arr[$id_arr[0]]) && !empty($identity_arr[$id_arr[0]])) {
                     $empIDSetVal = $identity_arr[$id_arr[0]];
                 } else {
                     $empIDSetVal = '';
                 }
                 $form->employeeId->setValue($empIDSetVal);
                 if ($role_data['group_id'] == USERS_GROUP) {
                     $form->emprole->clearMultiOptions();
                     $roles_arr = $role_model->getRolesListForUsers($id, $empIDSetVal);
                     $form->emprole->addMultiOptions(array('' => 'Select Role') + $roles_arr);
                 }
             } else {
                 $this->view->nodata = "nodata";
             }
         } catch (Exception $e) {
             $this->view->nodata = "nodata";
         }
     } else {
         if ($id == '') {
         } else {
             echo $this->view->nodata = "nodata";
         }
     }
     if ($id == '') {
         if ($emp_identity_code == '') {
             $err_messages['employeeId'] = "Identity codes are not configured yet.";
         }
         if (count($roles_arr) == 0) {
             $err_messages['emprole'] = "Roles are not added yet.";
         }
     }
     $this->view->messages = $err_messages;
     $this->view->form = $form;
 }