isLogin() || !parent::model('AdminMenu')->is_url())exit('您无权访问该页面!');
$this->teacher=parent::model('BlogTeacher');
$this->classes=parent::model('BlogClasses');
$this->school=parent::model('BlogSchool');
$this->jingli=parent::model('BlogTeacherJingli');
$this->student=parent::model('BlogStudent');
$this->pinggu=parent::model('AsMoon');
}
public function school(){
$this->title='学校列表';
$school_list=$this->school->field('s.id,s.name as school_name,count(t.id) as teacher_counts')->from($this->school->tableName().' s')
->join($this->teacher->tableName().' t','t.school_id=s.id','left')
->where(array('s.status'=>1,'t.status'=>1))->group('s.id')->select();
foreach($school_list as $k=>$v){
$school_list[$k]['classes_counts'] =$this->classes->where(array('school_id'=>$v['id'],'status'=>1))->counts();
$school_list[$k]['student_counts']=$this->student->where(array('school_id'=>$v['id'],'status'=>1))->counts();
}
$data['list']=$school_list;
parent::render('personnel/school',$data);
}
public function classes(){
$this->title='班级列表';
$sid=$_GET['id'];
$classes_list=$this->classes->field('c.id,c.catoon_name,c.open_time,count(t.id) as teacher_counts')->from($this->classes->tableName().' c')
->join($this->teacher->tableName().' t','t.classes_id=c.id','left')
->where(array('c.school_id'=>$sid,'c.status'=>1))->group('c.id')->select();
foreach($classes_list as $k=>$v){
$classes_list[$k]['student_counts']=$this->student->where(array('classes_id'=>$v['id'],'status'=>1))->group('c.id')->counts();
}
$data['list']=$classes_list;
parent::render('personnel/classes',$data);
}
public function myclasses(){
$this->title='我的班级';
$admin=parent::model('Admin')->getOne(Session::get('sp_id'));
$sid=$admin['agent_id'];
$classes_list=$this->classes->field('c.id,c.catoon_name,c.open_time,count(t.id) as teacher_counts')->from($this->classes->tableName().' c')
->join($this->teacher->tableName().' t','t.classes_id=c.id','left')
->where(array('c.school_id'=>$sid,'t.status'=>1))->group('c.id')->select();
foreach($classes_list as $k=>$v){
$classes_list[$k]['student_counts']=$this->student->where(array('classes_id'=>$v['id'],'status'=>1))->counts();
}
$data['list']=$classes_list;
parent::render('personnel/myclasses',$data);
}
public function pinggu(){
if($_POST){
$_POST['chuqin']=str_replace('%','',$_POST['chuqin']);
$info=$this->pinggu->where(array('year'=>$_POST['year'],'moon'=>$_POST['moon'],'classes_id'=>$_GET['id']))->find();
if($info){
$this->pinggu->where('id',$info['id'])->update(array('chuqin'=>$_POST['chuqin']));
}else{
$_POST['classes_id']=$_GET['id'];
$this->pinggu->insert($_POST);
}
}
$this->title='月度评估';
$data['list']=$this->pinggu->where('classes_id',$_GET['id'])->select();
parent::render('personnel/pinggu',$data);
}
public function tpinggu(){
$this->tmoon=parent::model('AsTmoon');
if($_POST){
$info=$this->tmoon->where(array('year'=>$_POST['year'],'moon'=>$_POST['moon'],'teacher_id'=>$_GET['id']))->find();
$gongzi=$this->teacher->field('jiangjin,guding')->where('id',$_GET['id'])->find();
$guding=$gongzi['guding'];
$jiangjin=explode(',',$gongzi['jiangjin']);
//优秀
if($_POST['shijian']=0 && $_POST['chuqin']>=90 && $_POST['shigu']==0 && $_POST['guifan']>=2){
$_POST['gongzi']=$guding+$jiangjin[2];
$_POST['level']='优秀';
$_POST['jiangjin']=$jiangjin[2];
//良好
}elseif($_POST['shijian']=0 && $_POST['chuqin']>=85 && $_POST['shigu']==0 && $_POST['guifan']>=2){
$_POST['gongzi']=$guding+$jiangjin[1];
$_POST['level']='良好';
$_POST['jiangjin']=$jiangjin[1];
//一般
}elseif($_POST['shijian']<=3 && $_POST['chuqin']>=70 && $_POST['shigu']==0 && $_POST['guifan']>=1){
$_POST['gongzi']=$guding+$jiangjin[0];
$_POST['level']='一般';
$_POST['jiangjin']=$jiangjin[0];
//差
}else{
$_POST['gongzi']=$guding;
$_POST['level']='差';
$_POST['jiangjin']=0;
}
if($info){
$this->tmoon->where('id',$info['id'])->update($_POST);
}else{
$_POST['teacher_id']=$_GET['id'];
$this->tmoon->insert($_POST);
}
}
$data['list']=$this->tmoon->field('m.*,pg.chuqin')
->from($this->tmoon->tableName().' m')
->join($this->teacher->tableName().' t','t.id=m.teacher_id','left')
->join($this->pinggu->tableName().' pg','pg.classes_id=t.classes_id','left')
->where('teacher_id',$_GET['id'])->select();
$data['info']=$this->teacher->field('m.chuqin')->from($this->teacher->tableName().' t')
->join($this->pinggu->tableName().' m','m.classes_id=t.classes_id')
->where(array('t.id'=>$_GET['id'],'m.year'=>date('Y'),'m.moon'=>date('m')-1))->find();
$data['teacher']=$this->teacher->getOne($_GET['id']);
parent::render('personnel/tpinggu',$data);
}
public function my(){
if(isset($_GET['download'])){
$list=$this->teacher->field('t.name,tm.shijia,m.chuqin,tm.guifan,tm.shigu,t.guding,tm.jiangjin,tm.gongzi')->from($this->teacher->tableName().' t ')
->join(parent::model('AsTmoon')->tableName().' tm','teacher_id=t.id','left')
->join($this->pinggu->tableName().' m','m.year=tm.year and m.moon=tm.moon','left')
->group('t.id')->order('t.id asc')->select();
array_unshift($list, array('姓名','教师出勤','班级出勤率','工作常规执行','事故','固定工资','奖金','实发'));
$guifan=parent::model('AsTmoon')->guifan();
foreach($list as $k=>$v)$list[$k]['guifan']=$guifan[$v['guifan']]['name'];
$exc=new Excel;
$exc->create(date('Y').'-'.date('m')-1,$list);
}elseif(parent::getIsAjaxRequest()){
if(isset($_POST['teacher_type_id'])){
$this->teacher->where('id',$_POST['tid'])->update(array('teacher_type_id'=>$_POST['teacher_type_id']));
}elseif(isset($_POST['school_id'])){
$re=$this->classes->getSchoolList($_POST['school_id']);
$option='';
foreach($re as $v)$option.="";
echo $option;
}elseif(isset($_POST['xueli_id'])){
$this->teacher->where('id',$_POST['tid'])->update(array('xueli_id'=>$_POST['xueli_id']));
}elseif(isset($_POST['did'])){
$this->teacher->where('id',$_POST['did'])->update(array('status'=>0,'quit_time'=>date('Y-m-d',time()),'quit_cause'=>$_POST['value']));
parent::model('BlogMember')->where('id',$_POST['did'])->update(array('status'=>0));
}
}else{
$this->title='教师列表';
$p=$this->request->get('p',1);
$size=20;
if(isset($_GET['sid']))$data['classes_list']=$this->classes->getSchoolList($_GET['sid']);
$where.='t.status=1';
$adminid = parent::model('Admin')->getOne(Session::get('sp_id'));
$where .= ' and t.school_id='. $adminid['agent_id'];
if($_GET['cid'])$where.=" and t.classes_id={$_GET['cid']}";
if($_GET['tid'])$where.=" and t.teacher_type_id={$_GET['tid']}";
if($_GET['teacher_name'])$where.=" and t.name like '%{$_GET['teacher_name']}%'";
$data['list']=$this->teacher->field('t.xueli_id,t.jiben,t.guding,c.classes_type,tp.name as teacher_type_name,c.classes_number,t.id,t.school_id,t.name,t.birthday,t.teacher_type_id,c.catoon_name as classes_name,t.classes_id,t.onboard_time,t.sex,t.country')
->from($this->teacher->tableName().' t')
->join($this->classes->tableName().' c','t.classes_id=c.id','left')
->join($this->school->tableName().' s','t.school_id=s.id','left')
->join(parent::model('BlogTeacherType')->tableName().' tp','t.teacher_type_id=tp.id','left')
->where($where)->limit(($p-1)*$size,$size)->select();
$pagenation=new Pagenation;
$data['pagenation']=$pagenation->offset($p)->size($size)->counts($this->teacher->_counts())->get();
$data['teacher_type']=$this->teacher->types();
$data['country']=$this->teacher->country();
$data['xueli']=$this->teacher->xueli();
parent::render('personnel/teacher',$data);
}
}
public function teacher(){
if(parent::getIsAjaxRequest()){
if(isset($_POST['teacher_type_id'])){
$this->teacher->where('id',$_POST['tid'])->update(array('teacher_type_id'=>$_POST['teacher_type_id']));
}elseif(isset($_POST['school_id'])){
$re=$this->classes->getSchoolList($_POST['school_id']);
$option='';
foreach($re as $v)$option.="";
echo $option;
}elseif(isset($_POST['xueli_id'])){
$this->teacher->where('id',$_POST['tid'])->update(array('xueli_id'=>$_POST['xueli_id']));
}elseif(isset($_POST['did'])){
$this->teacher->where('id',$_POST['did'])->update(array('status'=>0,'quit_time'=>date('Y-m-d',time()),'quit_cause'=>$_POST['value']));
}
}else{
$this->title='教师列表';
$where='1';
$p=$this->request->get('p',1);
$size=20;
if($_GET['cid'])$where.=" and t.classes_id={$_GET['cid']}";
if($_GET['tid'])$where.=" and t.teacher_type_id={$_GET['tid']}";
if($_GET['teacher_name'])$where.=" and t.name like '%{$_GET['teacher_name']}%'";
if($_GET['sid'])$where.=" and t.school_id={$_GET['sid']}";
//$where['t.status']=1;
$where .= ' and t.status=1';
// $where['t.school_id']=$admin['agent_id'];
$data['list']=$this->teacher->field('t.xueli_id,t.jiben,t.guding,c.classes_type,tp.name as teacher_type_name,c.classes_number,t.id,t.school_id,t.name,t.birthday,t.teacher_type_id,c.catoon_name as classes_name,t.classes_id,t.onboard_time,t.sex,t.country')
->from($this->teacher->tableName().' t')
->join($this->classes->tableName().' c','t.classes_id=c.id','left')
->join($this->school->tableName().' s','t.school_id=s.id','left')
->join(parent::model('BlogTeacherType')->tableName().' tp','t.teacher_type_id=tp.id','left')
->where($where)->order('t.classes_id asc')->limit(($p-1)*$size,$size)->select();
$pagenation=new Pagenation;
$data['pagenation']=$pagenation->offset($p)->size($size)->counts($this->teacher->_counts())->get();
$data['teacher_type']=$this->teacher->types();
$data['country']=$this->teacher->country();
$data['xueli']=$this->teacher->xueli();
$admin=parent::model('Admin')->getOne(Session::get('sp_id'));
if($_GET['sid']){
$data['classes_list']=$this->classes->getSchoolList($_GET['sid']);
}
parent::render('personnel/teacher',$data);
}
}
//添加老师
public function add(){
if(isset($_POST['j_username'])){
if(!parent::model('BlogMember')->where('username',$_POST['j_username'])->counts())echo 1;
}elseif(parent::getIsAjaxRequest()){
$member=parent::model('BlogMember');
$_POST['classes_id']=implode(',',$_POST['classes_id']);
$_POST['jiangjin']=implode(',',array($_POST['jiangjin1'],$_POST['jiangjin2'],$_POST['jiangjin3']));
$_POST['created_at']=time();
$_POST['status']=1;
$_POST['type']=2;
$_POST['seed']=rand(10000,99999);
$_POST['password']=$member->enCodePassword('123456',$_POST['seed']); //默认密码都是123456
$id=$member->insert($_POST);
if($id){
$_POST['id']=$id;
$_POST['edu'] = serialize($_POST['jy']);
$_POST['work'] = serialize($_POST['gz']);
if($this->teacher->insert($_POST)!==false){
echo json_encode(array('message'=>'添加成功','type'=>1));
}else{
echo json_encode(array('message'=>'添加失败','type'=>0));
}
}else{
echo json_encode(array('message'=>'添加失败','type'=>0));
}
}else{
$this->title='添加教师';
$admin=parent::model('Admin')->getOne(Session::get('sp_id'));
$data['school_id']=$admin['agent_id'];
$data['classes_list']=$this->classes->getSchoolList($admin['agent_id']);
$data['types']=$this->teacher->types();
$data['school_list']=$this->school->getList();
$data['xueli_list']=$this->teacher->xueli();
parent::render('personnel/teacher_action',$data);
}
}
public function modify(){
if(parent::getIsAjaxRequest()){
$_POST['jiangjin']=implode(',',array($_POST['jiangjin1'],$_POST['jiangjin2'],$_POST['jiangjin3']));
$_POST['edu'] = serialize($_POST['jy']);
$_POST['work'] = serialize($_POST['gz']);
$id=$this->teacher->where('id',$_GET['id'])->update($_POST);
if($id)echo json_encode(array('message'=>'修改成功','type'=>1));
else echo json_encode(array('message'=>'修改失败','type'=>2));
}else{
$this->title='信息修改';
$data['info']=$this->teacher->getOne($_GET['id']);
$data['types']=$this->teacher->types();
$data['school_list']=$this->school->getList();
$data['xueli_list']=$this->teacher->xueli();
$data['classes_list']=$this->classes->getSchoolList($data['info']['school_id']);
parent::render('personnel/teacher_modify',$data);
}
}
//查看简历
public function read(){
$data['info']=$this->teacher->getOne($_GET['id']);
$data['xueli']=$this->teacher->xueli();
parent::render('personnel/teacher_info',$data);
}
public function lizhi(){
$this->title='离职教师列表';
$data['list']=$this->teacher->where('status',0)->select();
$data['xueli']=$this->teacher->xueli();
$data['teacher_type']=$this->teacher->types();
parent::render('personnel/lizhi',$data);
}
//教育经历
public function jiaoyu(){
if(parent::getIsAjaxRequest()){
$_POST['type_id']=1;
$_POST['teacher_id']=$id=$_GET['id'];
$id=$this->jingli->insert($_POST);
if($id)echo json_encode(array('message'=>'添加成功','type'=>1));
else echo json_encode(array('message'=>'添加失败','type'=>2));
}else{
$data['list']=$this->jingli->getJiaoyuList($_GET['id']);
parent::render('personnel/jiaoyu',$data);
}
}
//工作经历
public function gongzuo(){
if(parent::getIsAjaxRequest()){
$_POST['type_id']=2;
$_POST['teacher_id']=$_GET['id'];
$id=$this->jingli->insert($_POST);
if($id)echo json_encode(array('message'=>'添加成功','type'=>1));
else echo json_encode(array('message'=>'添加失败','type'=>2));
}else{
$data['list']=$this->jingli->getGongzuoList($_GET['id']);
parent::render('personnel/gongzuo',$data);
}
}
//薪酬
public function xinchou(){
if(parent::getIsAjaxRequest()){
$_POST['type_id']=3;
$_POST['teacher_id']=$_GET['id'];
$id=$this->jingli->insert($_POST);
if($id)echo json_encode(array('message'=>'添加成功','type'=>1));
else echo json_encode(array('message'=>'添加失败','type'=>2));
}else{
$data['list']=$this->jingli->getXinchouList($_GET['id']);
parent::render('personnel/xinchou',$data);
}
}
//证书
public function zhengshu(){
if(parent::getIsAjaxRequest()){
$_POST['type_id']=4;
$_POST['teacher_id']=$_GET['id'];
$id=$this->jingli->insert($_POST);
if($id)echo json_encode(array('message'=>'添加成功','type'=>1));
else echo json_encode(array('message'=>'添加失败','type'=>0));
}else{
$data['list']=$this->jingli->getZhengshuList($_GET['id']);
parent::render('personnel/zhengshu',$data);
}
}
//合同
public function hetong(){
if(parent::getIsAjaxRequest()){
$_POST['type_id']=5;
$_POST['created_at']=strtotime($_POST['created_at']);
$_POST['teacher_id']=$_GET['id'];
$id=$this->jingli->insert($_POST);
if($id)echo json_encode(array('message'=>'添加成功','type'=>1));
else echo json_encode(array('message'=>'添加失败','type'=>0));
}else{
$data['list']=$this->jingli->getHetongList($_GET['id']);
parent::render('personnel/hetong',$data);
}
}
//调班
public function tiaoban(){
if(parent::getIsAjaxRequest()){
$ids=implode(',',$_POST['ids']);
$is=$this->teacher->where('id',$_GET['id'])->update(array('classes_id'=>$ids));
if($is)echo json_encode(array('message'=>'修改成功','type'=>1));
else echo json_encode(array('message'=>'修改失败','type'=>0));
}else{
$id=$_GET['id'];
$info=$this->teacher->getOne($id);
$data['classes_list']=$this->classes->field('id,catoon_name')->where('school_id',$info['school_id'])->select();
$data['classes_id']=explode(',',$info['classes_id']);
parent::render('personnel/tiaoban',$data);
}
}
//在校期间更改
public function genggai(){
$this->genggai=parent::model('BlogGenggai');
if(parent::getIsAjaxRequest()){
$_POST['teacher_id']=$_GET['id'];
if($_POST['classes_id'])$this->teacher->where('id',$_GET['id'])->update(array('classes_id'=>$_POST['classes_id'])); //学校ID
if($_POST['school_id'])$this->teacher->where('id',$_GET['id'])->update(array('school_id'=>$_POST['school_id'])); //班级ID
if($_POST['gangwei'])$this->teacher->where('id',$_GET['id'])->update(array('teacher_type_id'=>$_POST['gangwei'])); //岗位ID
if($_POST['xueli'])$this->teacher->where('id',$_GET['id'])->update(array('xueli_id'=>$_POST['gangwei'])); //岗位ID
$id=$this->genggai->insert($_POST);
if($id)echo json_encode(array('message'=>'添加成功','type'=>1));
else echo json_encode(array('message'=>'添加失败','type'=>0));
}else{
$data['list']=$this->genggai->field('g.*,c.catoon_name')->from($this->genggai->tableName().' g')
->join($this->classes->tableName().' c','c.id=g.classes_id','left')
->group('g.id')->where('g.teacher_id',$_GET['id'])->select();
$data['info']=$this->teacher->getOne($_GET['id']);
$data['types']=$this->teacher->types();
$data['school_list']=$this->school->getList();
$data['xueli_list']=$this->teacher->xueli();
parent::render('personnel/genggai',$data);
}
}
public function zhuanzheng(){
if(parent::getIsAjaxRequest()){
$is = $this->teacher->where('id',$_POST['id'])->update(array('try_status'=>2));
if($is){
echo json_encode(array('message'=>'修改成功','type'=>1));
}else{
echo json_encode(array('message'=>'修改失败','type'=>0));
}
}else{
$this->title = '即将转正人员';
$where = '((UNIX_TIMESTAMP()-UNIX_TIMESTAMP(j.start_time))/3600/24) >75';
$where .= ' and t.try_status = 1';
$data['list'] = $this->jingli->field('j.start_time,t.*')->from($this->jingli->tableName() . ' j')
->join($this->teacher->tableName() . ' t','j.teacher_id = t.id','left')
->where($where)->select();
parent::render('personnel/zhuanzheng',$data);
}
}
public function xuqian(){
$this->title = "即将续签的";
$where = '((UNIX_TIMESTAMP()-UNIX_TIMESTAMP(j.end_time))/3600/24) < 16'
$where .= ' and t.try.status = 2';
$data['list'] = $this->jingli->field('j.end_time,t.*')->from($this->jingli->tableName() . ' j')
->join($this->teacher->tableName() . ' t','j.teacher_id = t.id','left')
->where($where)->select();
parent::render('personnel/xuqian',$data);
}
}