浏览代码

Merge branch 'master' of http://192.168.1.12:3000/caipin/cld

caipin 7 年之前
父节点
当前提交
65e5b03a50

+ 16 - 0
protected/config/routes.conf.php

@@ -575,6 +575,22 @@ $route['*']['/addholiday2'] = array('HolidayController', 'addHoliday2');
 $route['*']['/holidayvacation'] = array('HolidayController', 'holidayVacation');
 $route['*']['/holidayvacation/:cid'] = array('HolidayController', 'holidayVacation');
 $route['*']['/setstaffholiday'] = array('HolidayController', 'setStaffHoliday');
+$route['*']['/holidayattendance'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/cate/:cate'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/cate/:cate/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/cate/:cate'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/cate/:cate/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/type/:type'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/type/:type/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/cate/:cate/type/:type'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/cate/:cate/type/:type/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/type/:type'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/type/:type/page/:pindex'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/cate/:cate/type/:type'] = array('HolidayController', 'holidayAttendance');
+$route['*']['/holidayattendance/day/:day/cate/:cate/type/:type/page/:pindex'] = array('HolidayController', 'holidayAttendance');
 
 
 ?>

+ 31 - 0
protected/controller/AdminController.php

@@ -1564,6 +1564,14 @@ class AdminController extends DooController {
 		$acman->pinyinname = $cspinyinnamemsg;
 		$acman->update();
 
+		Doo::loadModel('holidaystaff');
+		$hstaff = new HStaff();
+		$hstaffmsg = $hstaff->getOne(array('where' => 'uid=?','param' => array($cidstaff[0]), 'asArray' => TRUE));
+		if(!empty($hstaffmsg) && $hstaffmsg['iscc'] == 0){
+			$hstaff->uid = $cidstaff[0];
+			$hstaff->iscc = 1;
+			$hstaff->update();
+		}
 		return '/hcsgroup';
 	}
 
@@ -1622,6 +1630,29 @@ class AdminController extends DooController {
 		}
 		$acman->update();
 
+		//删除抄送员资格
+		$acman3 = new HACMan();
+		$same = 0;
+		$approverlist = $acman3->find(array('where' => 'idname like "%'.$cidstaff[0].'%" and type!=0', 'asArray' => TRUE));
+		if(!empty($approverlist)){
+			foreach($approverlist as $ak => $av){
+				$aidname = explode(',', $av['idname']);
+				foreach($aidname as $ik => $iv){
+					if($iv == $cidstaff[0]){
+						$same = 1;
+						break;
+					}
+				}
+			}
+		}
+		if($same == 0){
+			Doo::loadModel('holidaystaff');
+			$hstaff = new HStaff();
+			$hstaff->uid = $cidstaff[0];
+			$hstaff->iscc = 0;
+			$hstaff->update();
+		}
+
 		return '/hcsgroup';
 	}
 

+ 202 - 0
protected/controller/HolidayController.php

@@ -186,6 +186,94 @@ class HolidayController extends DooController {
 		$data ['holidaymenu'] = 'borad';
 		$data ['staff'] = $this->staff;
 		$data['noindexjs'] = 'noindexjs';
+
+		//公司每日考勤内容
+		if($hstaffmsg['isadmin'] == 1 || $hstaffmsg['iscc'] == 1){
+			$data['youcantseeme'] = 0;
+			//今日请假人员,区分总部和办事处
+			Doo::loadModel('staff');
+			$staff = new staff();
+			$headquarters = $branch = $leaves = array();
+			$today = date('Y-m-d',time());
+			$data['today'] = date('m月d日',time());
+			//短假的
+			$hdayarr = $hday->find(array('where' => 'daytime=?', 'param' => array($today), 'asArray' => TRUE));
+			if(!empty($hdayarr)){
+				foreach($hdayarr as $hk => $hv){
+					$onearr = array();
+					$onehmsg = $holiday->getOne(array('where' => 'id=?', 'param' => array($hv['hid']), 'asArray' => TRUE));
+					$staffmsg = $staff->getOne(array('where' => 'sid=?', 'param' => array($hv['uid']), 'asArray' => TRUE));
+					$onearr['type'] = $type->getTypeNamebyid($onehmsg['type']);
+					$onearr['staff'] = $staffmsg['username'];
+					$onearr['day'] = floatval($onehmsg['daynum']);
+					if($staffmsg['cid'] == 12){
+						array_push($headquarters,$onearr);
+					}else{
+						array_push($branch,$onearr);
+					}
+					array_push($leaves,$hv['uid']);
+				}
+			}
+			//长假的
+			$hdayarr2 = $holiday->find(array('where' => 'status=1 and type in (6,7,8,9) and UNIX_TIMESTAMP(starttime)<=UNIX_TIMESTAMP(?) and UNIX_TIMESTAMP(endtime)>=UNIX_TIMESTAMP(?)', 'param' => array($today,$today), 'asArray' => TRUE));
+			if(!empty($hdayarr2)){
+				foreach($hdayarr2 as $hk2 => $hv2){
+					$onearr = array();
+					$staffmsg = $staff->getOne(array('where' => 'sid=?', 'param' => array($hv2['uid']), 'asArray' => TRUE));
+					$onearr['type'] = $type->getTypeNamebyid($hv2['type']);
+					$onearr['staff'] = $staffmsg['username'];
+					$onearr['day'] = floatval($hv2['daynum']);
+					if($staffmsg['cid'] == 12){
+						array_push($headquarters,$onearr);
+					}else{
+						array_push($branch,$onearr);
+					}
+					array_push($leaves,$hv2['uid']);
+				}
+			}
+			$data['headquarters'] = $headquarters;
+			$data['branch'] = $branch;
+
+			//今天在勤人员名单
+			$hqstaffarr = $staff->find(array('where' => 'cid=12 and departmentID=0', 'asArray' => TRUE));
+			$onlinehq = array();
+			foreach($hqstaffarr as $hqk => $hqv){
+				if(!in_array($hqv['sid'],$leaves)){
+					array_push($onlinehq,$hqv['username']);
+				}
+			}
+			$onlinebr = array();
+			Doo::loadModel('L_category');
+			$lcate = new L_category();
+			$catearr = $lcate->find(array('where' => 'cid!=34', 'asArray' => TRUE));
+			foreach($catearr as $ck => $cv){
+				if($cv['cid'] == 12){
+					$brstaffarr = $staff->find(array('where' => 'cid=? and departmentID=1', 'param' => array($cv['cid']), 'asArray' => TRUE));
+				}else{
+					$brstaffarr = $staff->find(array('where' => 'cid=?', 'param' => array($cv['cid']), 'asArray' => TRUE));
+				}
+				$brsarr = array();
+				if(!empty($brstaffarr)){
+					foreach($brstaffarr as $brk => $brv){
+						if(!in_array($brv['sid'],$leaves)) {
+							array_push($brsarr, $brv['username']);
+						}
+					}
+				}
+				$brstaffstr = !empty($brsarr) ? implode('、', $brsarr) : '';
+				$title = $cv['cid'] == 12 ? '总部-造价研究中心' : $cv['title'];
+				$onebrarr = array('title' => $title,'online' => $brstaffstr);
+				array_push($onlinebr,$onebrarr);
+			}
+//			var_dump($onlinebr);
+//			$brstaffarr = $staff->find(array('where' => ''));
+			$data['onlineheadquarters'] = implode('、',$onlinehq);
+			$data['onlinebranch'] = $onlinebr;
+
+//			var_dump(array_unique($leaves));
+		}else{
+			$data['youcantseeme'] = 1;
+		}
 		$this->render ( "/holiday-borad", $data );
 	}
 
@@ -827,6 +915,120 @@ class HolidayController extends DooController {
 		exit(json_encode(array('code' => 400)));
 	}
 
+	public function holidayAttendance(){
+		$checkadmin = $this->checkisadmin();
+		if($checkadmin){
+			$data['cansee'] = 1;
+		}
+
+		Doo::loadModel('holidayday');
+		Doo::loadModel('holiday');
+		Doo::loadModel('holidaystaff');
+		Doo::loadModel('holidaytype');
+		Doo::loadModel('staff');
+		$hday = new HDay();
+		$holiday = new Holiday();
+		$hstaff = new HStaff();
+		$type = new HType();
+		$staff = new staff();
+
+		$sqlstr = '';
+		$pagestr = '';
+		if(isset($this->params['day'])){
+			$today = $this->params['day'];
+			$todayarr = explode('~',$today);
+			if(count($todayarr) != 2){
+				$sqlstr .= ' and ((UNIX_TIMESTAMP(starttime)<=UNIX_TIMESTAMP("'.$todayarr[0].'") and UNIX_TIMESTAMP(endtime)>=UNIX_TIMESTAMP("'.$todayarr[0].'")) OR (id in (select hid From `holiday_day` where daytime="'.$todayarr[0].'")))';
+			}else{
+				$sqlstr .= ' and ((UNIX_TIMESTAMP(starttime)<=UNIX_TIMESTAMP("'.$todayarr[0].'") and UNIX_TIMESTAMP(endtime)>=UNIX_TIMESTAMP("'.$todayarr[0].'")) OR (UNIX_TIMESTAMP(starttime)<=UNIX_TIMESTAMP("'.$todayarr[1].'") and UNIX_TIMESTAMP(endtime)>=UNIX_TIMESTAMP("'.$todayarr[1].'")) OR (id in (select hid From `holiday_day` where UNIX_TIMESTAMP(daytime) between UNIX_TIMESTAMP("'.$todayarr[0].'") and UNIX_TIMESTAMP("'.$todayarr[1].'"))))';
+			}
+		}else{
+			$today = date('Y-m-d',time());
+			$sqlstr .= ' and ((UNIX_TIMESTAMP(starttime)<=UNIX_TIMESTAMP("'.$today.'") and UNIX_TIMESTAMP(endtime)>=UNIX_TIMESTAMP("'.$today.'")) OR (id in (select hid from `holiday_day` where daytime="'.$today.'")))';
+		}
+		$pagestr .= '/day/'.$today;
+		$data['today'] = $today;
+
+		if(isset($this->params['cate'])){
+			$cate = 'headquarters';
+			$pagestr .= '/cate/'.$cate;
+			$data['cate'] = 1;
+			$sqlstr .= ' and uid in (select sid from `CLD_staff` where cid=12 and departmentID=0)';
+		}else{
+			$data['cate'] = 0;
+		}
+		$data['typeurl'] = $pagestr;
+		if(isset($this->params['type'])){
+			$data['type'] = $this->params['type'];
+			$pagestr .= '/type/'.$this->params['type'];
+			if($this->params['type'] == 4 ){//加班、值班
+				$sqlstr .= ' and (type=4 or type=5)';
+			}elseif($this->params['type'] == 6){//其他长假
+				$sqlstr .= ' and type in(3,6,7,8,9)';
+			}else{
+				$sqlstr .= ' and type='.$this->params['type'];
+			}
+		}else{
+			$data['type'] = '';
+		}
+
+		Doo::loadHelper('DooPager');
+		$totalArchive = $holiday->count(array('where' => 'status=1'.$sqlstr, 'asArray' => TRUE));
+		$pager = new DooPager(Doo::conf()->APP_URL . "holidayattendance".$pagestr."/page", $totalArchive, 10, 10);
+		if (isset($this->params['pindex']))
+			$pager->paginate(intval($this->params['pindex']));
+		else
+			$pager->paginate(1);
+		if ($pager->limit != ' -10,10')
+			$holidaymsg = $holiday->find(array('where' => 'status=1'.$sqlstr, 'limit' => $pager->limit, 'asArray' => TRUE));
+		if(isset($holidaymsg) && !empty($holidaymsg)){
+			foreach($holidaymsg as $k => $v){
+				$staffmsg = $staff->getOne(array('where' => 'sid=?', 'param' => array($v['uid']), 'asArray' => TRUE));
+				$holidaymsg[$k]['username'] = $staffmsg['username'];
+				$holidaymsg[$k]['category'] = $staffmsg['cid'] == 12 && $staffmsg['departmentID'] == 1 ? '总部(造价研究中心)' : $staffmsg['category'];
+				$holidaymsg[$k]['typename'] = $type->getTypeNamebyid($v['type']);
+				$holidaymsg[$k]['daynum'] = floatval($v['daynum']);
+				$holidaymsg[$k]['approvetime'] = !empty($v['approvetime']) ? date('Y-m-d H:i:s',$v['approvetime']) : '';
+				$msg = '';
+				if(in_array($v['type'],array(1,2,3,4,5,10,11,12))){
+					$dayjson = json_decode($v['dayjson']);
+					if($v['type'] != 11){
+						$holidaydays = $this->geyDayMsg($dayjson->holiday);
+						foreach($holidaydays as $hk => $hv){
+							$msg .= $hv['daytime'].' '.$hv['daymsg'].',';
+						}
+						$msg = substr($msg,0,strlen($msg)-1);
+					}else{
+						$msg .= '休假时间:';
+						$holidaydays = $this->geyDayMsg($dayjson->holiday);
+						foreach($holidaydays as $hk => $hv){
+							$msg .= $hv['daytime'].' '.$hv['daymsg'].',';
+						}
+						$msg = substr($msg,0,strlen($msg)-1);
+						$msg .= '<br>加班时间:';
+						$overtimedays = $this->geyDayMsg($dayjson->overtime);
+						foreach($overtimedays as $ok => $ov){
+							$msg .= $ov['daytime'].' '.$ov['daymsg'].',';
+						}
+						$msg = substr($msg,0,strlen($msg)-1);
+					}
+				}elseif(in_array($v['type'],array(6,7,8,9))){
+					$msg .= $v['starttime']. ' 至 '.$v['endtime'];
+				}elseif(in_array($v['type'],array(13,14,15,16,17,18,19))){
+					$msg .= date('Y-m-d H:i:s',$v['addtime']);
+				}
+				$holidaymsg[$k]['daymsg'] = $msg;
+			}
+			$data['holidaylist'] = $holidaymsg;
+		}
+		$data['pager'] = $pager->output;
+		$data ['memu'] = 'holiday';
+		$data ['holidaymenu'] = 'borad';
+		$data ['staff'] = $this->staff;
+		$data['noindexjs'] = 'noindexjs';
+		$this->render ( "/holiday-allList2", $data );
+	}
+
 
 	private function geyDayMsg($dayjson){
 		$holidayday = array();

+ 2 - 1
protected/model/holidaystaff.php

@@ -10,10 +10,11 @@ class HStaff extends DooModel {
 	public $addnum;
 	public $othernum;
 	public $isadmin;
+	public $iscc;
 
 	public $_table = 'holiday_staff';
 	public $_primarykey = 'uid';
-	public $_fields = array ('uid', 'yearnum', 'hadyear', 'addnum', 'hunjianum', 'chanjianum', 'sangjianum', 'gongjianum', 'isadmin');
+	public $_fields = array ('uid', 'yearnum', 'hadyear', 'addnum', 'hunjianum', 'chanjianum', 'sangjianum', 'gongjianum', 'isadmin', 'iscc');
 
 	public function __construct() {
 		parent::setupModel(__CLASS__);

文件差异内容过多而无法显示
+ 125 - 0
protected/view/holiday-allList2.html


+ 49 - 0
protected/view/holiday-borad.html

@@ -55,6 +55,55 @@
 								<blockquote><p class="colGray">暂时没有请假申请 </p></blockquote>
 								<!-- endif -->
 							</div>
+							<!-- if {{youcantseeme}} == 0 -->
+							<div class="clearfix">
+								<legend><div class="fR"><a href="/holidayattendance">查看更多</a></div>公司今日考勤({{today}})</legend>
+								<table class="table table-bordered table-condensed">
+									<tbody>
+									<tr><th class="taC" width="100">办事处</th><th class="taC">缺勤员工</th></tr>
+									<tr>
+										<th>总部</th>
+										<td>
+										<!-- if !empty({{headquarters}}) -->
+											<!-- loop headquarters -->
+											<span data-placement="bottom" data-toggle="ctooltip" data-original-title="{{headquarters' value.type}}、{{headquarters' value.day}}天">{{headquarters' value.staff}}</span>&nbsp;&nbsp;
+											<!-- endloop -->
+										<!-- else -->
+											无
+										<!-- endif -->
+										</td>
+									</tr>
+									<tr>
+										<th>办事处</th>
+										<td>
+											<!-- if !empty({{branch}}) -->
+											<!-- loop branch -->
+											<span data-placement="bottom" data-toggle="ctooltip" data-original-title="{{branch' value.type}}、{{branch' value.day}}天">{{branch' value.staff}}</span>&nbsp;&nbsp;
+											<!-- endloop -->
+											<!-- else -->
+											无
+											<!-- endif -->
+										</td>
+									</tr>
+									</tbody>
+								</table>
+								<table class="table table-bordered table-condensed">
+									<tbody>
+									<tr><th class="taC" width="100">办事处</th><th class="taC">在岗员工</th></tr>
+									<tr><th>总部</th><td>{{onlineheadquarters}}</td></tr>
+									<tr><th>办事处</th>
+										<td>
+											<!-- if !empty({{onlinebranch}}) -->
+											<!-- loop onlinebranch -->
+											<p>{{onlinebranch' value.title}}:{{onlinebranch' value.online}}</p>
+											<!-- endloop -->
+											<!-- endif -->
+										</td>
+									</tr>
+									</tbody>
+								</table>
+							</div>
+							<!-- endif -->
 						</div>
 					</div>
 				</div>