コード例 #1
0
ファイル: EmployeeController.php プロジェクト: xindalu/evolve
 /**
  * 编辑员工信息
  */
 public function editAction()
 {
     // 返回值数组
     $result = array('success' => true, 'info' => '编辑成功');
     $request = $this->getRequest()->getParams();
     $now = date('Y-m-d H:i:s');
     $user_session = new Zend_Session_Namespace('user');
     $user_id = $user_session->user_info['user_id'];
     $json = json_decode($request['json']);
     $updated = $json->updated;
     $inserted = $json->inserted;
     $deleted = $json->deleted;
     $employee = new Hra_Model_Employee();
     $user = new Application_Model_User();
     if (count($updated) > 0) {
         foreach ($updated as $val) {
             if ($employee->fetchAll("id != " . $val->id . " and email = '" . $val->email . "'")->count() > 0) {
                 $result['success'] = false;
                 $result['info'] = '更新失败,邮箱地址重复!';
                 echo Zend_Json::encode($result);
                 exit;
             } else {
                 if ($employee->fetchAll("id != " . $val->id . " and number = '" . $val->number . "'")->count() > 0) {
                     $result['success'] = false;
                     $result['info'] = '更新失败,工号重复!';
                     echo Zend_Json::encode($result);
                     exit;
                 } else {
                     $dept_manager_id = $val->dept_manager_id == '' ? null : $val->dept_manager_id;
                     $manager_id = $val->manager_id == '' ? null : $val->manager_id;
                     $dept_id = $val->dept_id == '' ? null : $val->dept_id;
                     $post_id = $val->post_id == '' ? null : $val->post_id;
                     $area_id = $val->area_id == '' ? null : $val->area_id;
                     $professional_qualifications_id = $val->professional_qualifications_id == '' ? null : $val->professional_qualifications_id;
                     $data = array('hide' => $val->hide, 'active' => $val->active, 'leader' => $val->leader, 'number' => $val->number, 'cname' => $val->cname, 'ename' => $val->ename, 'sex' => $val->sex, 'birthday' => $val->birthday, 'id_card' => $val->id_card, 'dept_id' => $dept_id, 'post_id' => $post_id, 'area_id' => $area_id, 'professional_qualifications_id' => $professional_qualifications_id, 'dept_manager_id' => $dept_manager_id, 'manager_id' => $manager_id, 'salary' => $val->salary, 'email' => $val->email, 'tel' => $val->tel, 'official_qq' => $val->official_qq, 'work_place' => $val->work_place, 'short_num' => $val->short_num, 'msn' => $val->msn, 'address' => $val->address, 'remark' => $val->remark, 'marital_status' => $val->marital_status, 'marry_day' => $val->marry_day, 'children_birthday' => $val->children_birthday, 'insurcode' => $val->insurcode, 'accumulation_fund_code' => $val->accumulation_fund_code, 'education' => $val->education, 'school' => $val->school, 'major' => $val->major, 'entry_date' => $val->entry_date, 'regularization_date' => $val->regularization_date, 'labor_contract_start' => $val->labor_contract_start, 'labor_contract_end' => $val->labor_contract_end, 'offical_address' => $val->offical_address, 'other_contact' => $val->other_contact, 'other_relationship' => $val->other_relationship, 'other_contact_way' => $val->other_contact_way, 'work_years' => $val->work_years, 'politics_status' => $val->politics_status, 'employment_type' => $val->employment_type, 'leave_date' => $val->leave_date, 'ext' => $val->ext, 'driving_license' => $val->driving_license, 'salary' => $val->salary, 'bank' => $val->bank, 'bank_num' => $val->bank_num, 'update_time' => $now, 'update_user' => $user_id);
                     $where = "id = " . $val->id;
                     try {
                         $employee->update($data, $where);
                     } catch (Exception $e) {
                         $result['success'] = false;
                         $result['info'] = $e->getMessage();
                         echo Zend_Json::encode($result);
                         exit;
                     }
                     if ($val->account == 1) {
                         if ($user->fetchAll("employee_id = " . $val->id)->count() > 0) {
                             $account_active = $val->account_active == true ? 1 : 0;
                             // 当员工系统账号已存在时,如需要改变账号状态,则更新系统账号状态信息
                             if ($user->fetchAll("active = " . $account_active . " and employee_id = " . $val->id)->count() == 0) {
                                 try {
                                     $user->update(array('active' => $account_active, 'update_user' => $user_id, 'update_time' => $now), "employee_id = " . $val->id);
                                 } catch (Exception $e) {
                                     $result['success'] = false;
                                     $result['info'] = $e->getMessage();
                                     echo Zend_Json::encode($result);
                                     exit;
                                 }
                             }
                         } else {
                             // 当员工系统账号不存在时,则添加新的系统账号信息
                             $data = array('employee_id' => $val->id, 'active' => $val->account_active, 'password' => md5($val->number . '123456'), 'create_time' => $now, 'create_user' => $user_id, 'update_time' => $now, 'update_user' => $user_id);
                             try {
                                 $newUserId = $user->insert($data);
                                 // 初始化用户角色为普通用户
                                 $roleMember = new Admin_Model_Member();
                                 try {
                                     $roleMember->insert(array('user_id' => $newUserId));
                                 } catch (Exception $e) {
                                     $result['success'] = false;
                                     $result['info'] = $e->getMessage();
                                     echo Zend_Json::encode($result);
                                     exit;
                                 }
                             } catch (Exception $e) {
                                 $result['success'] = false;
                                 $result['info'] = $e->getMessage();
                                 echo Zend_Json::encode($result);
                                 exit;
                             }
                         }
                     } else {
                         if ($user->fetchAll("employee_id = " . $val->id)->count() > 0) {
                             // 当员工系统账号已存在时,如需要改变账号状态,则更新系统账号状态信息
                             if ($user->fetchAll("active = " . $val->account_active . " and employee_id = " . $val->id)->count() == 0) {
                                 try {
                                     $user->update(array('active' => $val->account_active, 'update_user' => $user_id, 'update_time' => $now), "employee_id = " . $val->id);
                                 } catch (Exception $e) {
                                     $result['success'] = false;
                                     $result['info'] = $e->getMessage();
                                     echo Zend_Json::encode($result);
                                     exit;
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     if (count($inserted) > 0) {
         foreach ($inserted as $val) {
             if ($employee->fetchAll("email = '" . $val->email . "'")->count() > 0) {
                 $result['success'] = false;
                 $result['info'] = '添加失败,邮箱地址重复!';
                 echo Zend_Json::encode($result);
                 exit;
             } else {
                 if ($employee->fetchAll("number = '" . $val->number . "'")->count() > 0) {
                     $result['success'] = false;
                     $result['info'] = '添加失败,工号重复!';
                     echo Zend_Json::encode($result);
                     exit;
                 } else {
                     $data = array('hide' => isset($val->hide) ? $val->hide : 0, 'active' => $val->active, 'leader' => $val->leader, 'number' => $val->number, 'cname' => $val->cname, 'ename' => $val->ename, 'sex' => $val->sex, 'birthday' => $val->birthday, 'id_card' => $val->id_card, 'dept_id' => $val->dept_id, 'post_id' => $val->post_id, 'area_id' => $val->area_id, 'professional_qualifications_id' => $val->professional_qualifications_id, 'dept_manager_id' => $val->dept_manager_id, 'manager_id' => $val->manager_id, 'salary' => $val->salary, 'email' => $val->email, 'tel' => $val->tel, 'official_qq' => $val->official_qq, 'work_place' => $val->work_place, 'short_num' => $val->short_num, 'msn' => $val->msn, 'address' => $val->address, 'remark' => $val->remark, 'marital_status' => $val->marital_status, 'marry_day' => $val->marry_day, 'children_birthday' => $val->children_birthday, 'insurcode' => $val->insurcode, 'accumulation_fund_code' => $val->accumulation_fund_code, 'education' => $val->education, 'school' => $val->school, 'major' => $val->major, 'entry_date' => $val->entry_date, 'regularization_date' => $val->regularization_date, 'labor_contract_start' => $val->labor_contract_start, 'labor_contract_end' => $val->labor_contract_end, 'offical_address' => $val->offical_address, 'other_contact' => $val->other_contact, 'other_relationship' => $val->other_relationship, 'other_contact_way' => $val->other_contact_way, 'work_years' => $val->work_years, 'politics_status' => $val->politics_status, 'employment_type' => $val->employment_type, 'leave_date' => $val->leave_date, 'ext' => $val->ext, 'driving_license' => $val->driving_license, 'salary' => $val->salary, 'bank' => $val->bank, 'bank_num' => $val->bank_num, 'create_time' => $now, 'create_user' => $user_id, 'update_time' => $now, 'update_user' => $user_id);
                     try {
                         $employee_id = $employee->insert($data);
                     } catch (Exception $e) {
                         $result['success'] = false;
                         $result['info'] = $e->getMessage();
                         echo Zend_Json::encode($result);
                         exit;
                     }
                     if ($val->account == 1 && $user->fetchAll("employee_id = " . $employee_id)->count() == 0) {
                         try {
                             $data = array('employee_id' => $employee_id, 'active' => $val->account_active, 'password' => md5($val->number . '123456'), 'create_time' => $now, 'create_user' => $user_id, 'update_time' => $now, 'update_user' => $user_id);
                             $newUserId = $user->insert($data);
                             // 初始化用户角色为普通用户
                             $roleMember = new Admin_Model_Member();
                             try {
                                 $roleMember->insert(array('user_id' => $newUserId));
                             } catch (Exception $e) {
                                 $result['success'] = false;
                                 $result['info'] = $e->getMessage();
                                 echo Zend_Json::encode($result);
                                 exit;
                             }
                         } catch (Exception $e) {
                             $result['success'] = false;
                             $result['info'] = $e->getMessage();
                             echo Zend_Json::encode($result);
                             exit;
                         }
                     }
                 }
             }
         }
     }
     if (count($deleted) > 0) {
         foreach ($deleted as $val) {
             if ($user->fetchAll("employee_id = " . $val->id)->count() == 0) {
                 try {
                     $employee->delete("id = " . $val->id);
                 } catch (Exception $e) {
                     $result['success'] = false;
                     $result['info'] = $e->getMessage();
                     echo Zend_Json::encode($result);
                     exit;
                 }
             } else {
                 $result['success'] = false;
                 $result['info'] = '员工ID' . $val->id . '存在关联系统账号,不能删除';
                 echo Zend_Json::encode($result);
                 exit;
             }
         }
     }
     echo Zend_Json::encode($result);
     exit;
 }