/** * 编辑员工信息 */ 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; }