'设计',
						'2'=>'造价管理',
						'3'=>'业主',
						'4'=>'交通局',
						'5'=>'公路局',
						'6'=>'审计',
						'7'=>'财政',
						'8'=>'审核',
						'9'=>'施工',
						'10'=>'咨询',
						'11'=>'招标代理',
						'12'=>'监理',
						'13'=>'学校',
						'14'=>'个人',
						'15'=>'合作伙伴',
						);
	public $tooltip=array('1'=>array('L','点击筛选标签'),
						'2'=>array('M','点击筛选标签'),
						'3'=>array('N','点击筛选标签'),
						'4'=>array('O','点击筛选标签'),
						'5'=>array('P','点击筛选标签'),
						'6'=>array('Q','点击筛选标签'),
						'7'=>array('R','点击筛选标签'),
	);
	public $webPath="http://cld.smartcost.com.cn/upload/emailAnnex/";
	function __construct() {
		if(isset($_COOKIE["adStaff"])){
			if(!empty($_COOKIE["adStaff"])){
				Doo::loadModel ( 'staff' );
				$staff = new staff ();
				$this->staff=$staff->getUserByIdList($_COOKIE["adStaff"]);
				self::$NEW= $this->getReceiptCount();include './protected/controller/ReceiptController.php';
				ReceiptController::$NEW=self::$NEW;
				
				if ($this->staff[0]['isadmin']==1&&$this->staff[0]['username']=='admin'){
					return "/adminoffice";
				}
			}
		}
		//添加注释8998 2222
//我的代码
		Doo::loadCore ( 'uri/DooUriRouter' );
		$router = new DooUriRouter ();
		$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );
		if($routeRs['1']!="adlogin"){
			header ( 'Content-Type:text/html;charset=utf-8' );
			@header ( "Location: /adlogin"  );
		}
	}
	function adlogin(){
		$passwork = isset ( $_POST['passwork'] ) ? $_POST['passwork'] : "";
		$uid = isset ( $_POST['user'] ) ? $_POST['user'] : "";
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		if(!empty($passwork)){
			$userinfo=$staff->getOne(array('where'=>"username='admin'",'asArray'=>true));
			
			if(!empty($userinfo)){
				if ($userinfo['username']==$uid&&$userinfo['passwork']==md5($passwork)){
					setcookie("adStaff", $userinfo['sid'], time()+36000,"/");
					return "/adminoffice";
				}
			}
		}
		$data ['staff'] = "";
		$data['login']="";
		if(!empty($passwork))
			$data['login']="inputErrow";
		$this->render ( "/admin/adminLogin", $data );
	}
	
	function adout(){
		setcookie("adStaff", "", time()-3600,"/");
		return "/adlogin";
	}
	
	function adminPW(){
		$msg= $this->params['msg']?$this->params['msg']:"";
		
		$data['msg']="msg";
		$data['memu']="adminpw";
		$data['staff']=$this->staff;
		$data['msg']=urldecode($this->params['msg']);
		$this->render ( "/admin/admin-admininfo", $data );
	}
	
	function upAdP(){
		$opw=$this->get_args('opw')?$this->get_args('opw'):"";
		$npw1=$this->get_args('npw1')?$this->get_args('npw1'):"";
		$npw2=$this->get_args('npw2')?$this->get_args('npw2'):"";
			
		if(!empty($opw)){
			Doo::loadModel ( 'staff' );
			$staff = new staff ();
			
			$userinfo=$staff->getOne(array('where'=>"username='admin'",'asArray'=>true));
			
			if(!empty($userinfo)){
				if ($userinfo['sid']==$_COOKIE["adStaff"]&&$userinfo['passwork']==md5($opw)){
					if (($npw1==$npw2)&&($npw1!="")){
						$staff->passwork=md5($npw1);
						$staff->update(array('where'=>"sid='".$_COOKIE["adStaff"]."'"));
						return "/adminpw/".urlencode('密码修改成功');
					}else
						return "/adminpw/".urlencode('新密码不一致');
				}else 
					return "/adminpw/".urlencode('旧密码不正确');
			}else 
				return "/adminpw/".urlencode('未找到用户');
		}else 
			return "/adminpw/".urlencode('请输入旧密码');
		
	}
	
	function adminoffice(){
		$data['memu']="adminoffice";
		$data['staff']=$this->staff;
		Doo::loadModel ( 'L_category' );
		Doo::loadModel ( 'staff' );
		Doo::loadModel('district');
		$district= new district();
		$staff = new staff ();
		$L_category = new L_category ();
		$data['category']=$L_category->getCategory();
		$data['district']=$district->get_lv(1);
		foreach ($data['category'] as $key=>$value){
			$data['category'][$key]['count']=$staff->count(array('where'=>'cid='.$value['cid']));
		}
		$data['msg']=urldecode($this->params['msg']);
		$this->render ( "/admin/admin_group", $data );
	}
	
function addCategory(){
		$msg="添加成功";
		$title=isset($_POST['title'])?$_POST['title']:"";
		$district=isset($_POST['district'])?$_POST['district']:"";
		if(!empty($title)&&!empty($district)){
			Doo::loadModel ( 'L_category' );
			$L_category = new L_category ();
			$L_category->title=$title;
			$L_category->districtid=$district;
			$L_category->insert();
		}else{
			$msg="请输入正确的信息";
		}
		return "/adminoffice/".$msg;
	}
	
function adminuser(){
		$data['memu']="adminuser";
		$data['staff']=$this->staff;
		Doo::loadModel ( 'L_category' );
		Doo::loadModel ( 'staff' );
		$staff = new staff ();
		$L_category = new L_category ();
		$data['category']=$L_category->getCategory();
		$data['stafflist']=$staff->getStaff();
		$data['staff']=$this->staff;
		$this->render ( "/admin/admin_user", $data );
	}
function adduser(){
		$username=$this->get_args('username')?$this->get_args('username'):"";
		$password=$this->get_args('password')?$this->get_args('password'):"";
		$cid=is_numeric($this->get_args('cid'))?$this->get_args('cid'):0;
		$hiredate=$this->get_args('hiredate')?$this->get_args('hiredate'):"";
		$nature=is_numeric($this->get_args('nature'))?$this->get_args('nature'):1;
		if(!empty($username)&&!empty($password)&&!empty($cid)&&!empty($hiredate)&&!empty($nature)){
			Doo::loadModel ( 'L_category' );
			Doo::loadModel ( 'staff' );
			Doo::loadModel ( 'tag' );
			$staff = new staff ();
			$L_category = new L_category ();
			//加入默认总部分类
			$cagegory=$L_category->getCategoryById($cid);
			//根据这个分类加入管理权限
			if($cagegory[0]['defult']==1){
				$staff->isadmin=1;
			}
			$staff->username=$username;
			$staff->passwork=md5($password);
			$staff->cid=$cagegory[0]['cid'];
			$staff->category=$cagegory[0]['title'];
			$staff->hiredate=$hiredate;
			$staff->nature=$nature;
			$id=$staff->insert();
			for ($i=1;$i<=7;$i++){
				$tag = new tag ();
				$tag->name="个人标签";
				$tag->sid=$id;
				$tag->colorid=$i;
				$tag->insert();
			}
		}
		return "/adminuser";
	}
	
function adminEdiUser(){
		$sid= is_numeric($this->params['sid'])?$this->params['sid']:0;
		$msg= isset($this->params['msg'])?$this->params['msg']:"";
		if(!empty($sid)){
			$data['msg']=urldecode($msg);
			Doo::loadModel ( 'L_category' );
			Doo::loadModel ( 'staff' );
			$staff = new staff ();
			$L_category = new L_category ();
			$data['newPw']='';
			$data['staffInfo']=$staff->getUserById($sid);
			$data['category']=$L_category->getCategory();
			$data['staff']=$this->staff;
			$data['memu']="adminuser";
			$this->render ( "/admin/admin_EdiUser", $data );
		}else
			return "/adminuser";
	}
	
function adminResetUserPw(){
		$sid= is_numeric($this->params['sid'])?$this->params['sid']:0;
		$msg= isset($this->params['msg'])?$this->params['msg']:"";
		if(!empty($sid)){
			$data['msg']=urldecode($msg);
			Doo::loadModel ( 'L_category' );
			Doo::loadModel ( 'staff' );
			$staff = new staff ();
			$L_category = new L_category ();
			$newPw=$this->getRandChar(6);
			$staff->sid=$sid;
			$staff->passwork=md5($newPw);
			$staff->update();	
			
			$data['newPw']=$newPw;
			$data['staffInfo']=$staff->getUserById($sid);
			$data['category']=$L_category->getCategory();
			$data['staff']=$this->staff;
			$data['memu']="adminuser";
			$this->render ( "/admin/admin_EdiUser", $data );
		}else
			return "/adminuser";
	}
	
function adminDoEdiUser(){
		$sid=is_numeric($this->get_args('sid'))?$this->get_args('sid'):0;
		$cid=is_numeric($this->get_args('cid'))?$this->get_args('cid'):0;
		$gender=$this->get_args('gender')?$this->get_args('gender'):"";
		$qq=is_numeric($this->get_args('qq'))?$this->get_args('qq'):0;
		$phone=$this->get_args('phone')?$this->get_args('phone'):"";
		$telephone=$this->get_args('telephone')?$this->get_args('telephone'):"";
		$email=$this->get_args('email')?$this->get_args('email'):"";
		$username=$this->get_args('username')?$this->get_args('username'):"";
		$nature=$this->get_args('nature')?$this->get_args('nature'):"";
		$hiredate=$this->get_args('hiredate')?$this->get_args('hiredate'):"";
		if(!empty($sid)){
			$msg="";
			Doo::loadModel ( 'L_category' );
			Doo::loadModel ( 'staff' );
			$staff = new staff ();
			$L_category = new L_category ();
			$categoryInfo=$L_category->getCategoryById($cid);
			$staff->sid=$sid;
			if ($cid!=0){
				$staff->cid=$categoryInfo[0]['cid'];
				$staff->category=$categoryInfo[0]['title'];
			}
			if($categoryInfo[0]['defult']==1){
				$staff->isadmin=1;
			}else{
				$staff->isadmin=0;
			}
			if (!empty($username))
				$staff->username=$username;
			if(!empty($gender))
				$staff->gender=$gender;
			if(!empty($qq)&&is_numeric($qq))
				$staff->qq=$qq;
			if(!empty($phone))
				$staff->phone=$phone;
			if(!empty($telephone))
				$staff->telephone=$telephone;
			if(!empty($email)&&filter_var($email, FILTER_VALIDATE_EMAIL))
				$staff->email=$email;
			else
				$msg="邮箱不正确";
			if(!empty($hiredate))
				$staff->hiredate=$hiredate;
			$staff->nature=$nature;
			$staff->update();
			return "/edi/user/".$sid."/".$msg;
		}else{
			return "/adminuser";
		}
	}
	
function adminDoAddCategory(){
		$sid=is_numeric($this->get_args('sid'))?$this->get_args('sid'):0;
		$cid=is_numeric($this->get_args('cid'))?$this->get_args('cid'):0;
		if(!empty($sid)){
			Doo::loadModel ( 'L_category' );
			Doo::loadModel ( 'staff' );
			$staff = new staff ();
			$L_category = new L_category ();
			$stfInfo=$staff->getOne(array('where'=>'sid ='.$sid,'asArray'=>true));
			if($stfInfo['cid']==$cid)
				return "/adminuser";
			$othcid=explode(',', $stfInfo['othercid']);
			if(in_array($cid, $othcid))
				return "/adminuser";
			array_push($othcid, $cid);
			$strCid=implode(',',array_filter($othcid));
			$catename=$L_category->getCategoryById($cid);
			$othcategory=explode(',', $stfInfo['othercategory']);
			array_push($othcategory, $catename[0]['title']);
			$strcategory=implode(',',array_filter($othcategory));
			$staff->sid=$sid;
			$staff->othercid=$strCid;
			$staff->othercategory=$strcategory;
			$staff->update();
		}
		return "/adminuser";
	}
	
function adminDeleteUser(){
		$sid= is_numeric($this->params['sid'])?$this->params['sid']:0;
		if (!empty($sid)){
			Doo::loadModel ( 'staff' );
			$staff = new staff ();
			$staff->sid=$sid;
			$staff->delete();
		}
		return "/adminuser";
	}
	
	function adminproduct(){
		$data['memu']="adminproduct";
		$data['staff']=$this->staff;
		Doo::loadModel ( 'product' );
		Doo::loadModel ( 'longle' );
		$product = new product ();
		$longle = new longle ();
		$data['product']=$product->getProudct();
		foreach ($data['product'] as $key=>$value){
			$data['product'][$key]['count']=$longle->count(array('where'=>'product="'.$value['title'].'"'));
		}
		$this->render ( "/admin/admin_product", $data );
	}
	
	function addproduct(){
		$title=$this->get_args('title')?$this->get_args('title'):"";
		if(!empty($title)){
			Doo::loadModel ( 'product' );
			$product = new product ();
			$product->title=$title;
			$product->insert();
		}
		return "/adminproduct";
	}
	
	function adminDeleteProduct(){
		$pid= is_numeric($this->params['pid'])?$this->params['pid']:0;
		if (!empty($pid)){
			Doo::loadModel ( 'product' );
			$product = new product ();
			$product->pid=$pid;
			$product->delete();
		}
		return "/adminproduct";
	}
	
	function adminEdiProduct(){
		$pid= is_numeric($this->params['pid'])?$this->params['pid']:0;
		$msg= isset($this->params['msg'])?$this->params['msg']:"";
		if(!empty($pid)){
			$data['msg']=urldecode($msg);
			Doo::loadModel ( 'product' );
			$product = new product ();
			
			$data['productInfo']=$product->getProductById($pid);
			$data['memu']="adminproduct";
			$data['staff']=$this->staff;
			$this->render ( "/admin/admin_EdiProduct", $data );
		}else
			return "/adminproduct";
	}
	
	function adminDoEdiProduct(){
		$pid=is_numeric($this->get_args('pid'))?$this->get_args('pid'):"";
		$title=$this->get_args('title')?$this->get_args('title'):"";
		$typeid=$this->get_args('typeid')?$this->get_args('typeid'):"";
		if(!empty($pid)&&!empty($title)&&!empty($typeid)){
			$msg="";
			Doo::loadModel ( 'product' );
			$product = new product ();
			$product->pid=$pid;
			$product->title=$title;
			$product->typeid=$typeid;
			$product->update();
			return "/adminproduct";
		}else{
			return "/adminproduct";
		}
	}
	
	function adminverify(){
		Doo::loadModel('staff');
		Doo::loadModel("verify");
		$verify=new verify();
		$staff=new staff();
		Doo::loadModel("role");
		$role=new role();
		
		$data['staffList']=$staff->find(array('select'=>'username,sid,avatar','asArray'=>true));
		$list=$verify->find(array('asArray'=>true));
		$roleList=$role->find(array('asArray'=>true));
		
		foreach ($roleList as $key=>$value){
			$staffList=json_decode($value['staff']);
			
			foreach ($staffList as $k=>$v){
				$staffList[$k]=substr(strstr($v, '_'), 1);
			}
			
			$roleList[$key]['staff']=implode(',', $staffList);
		}
		
		foreach ($list as $key=>$value){
			$name=json_decode($value['staff']);
			$list[$key]['staff']="";
			foreach ($name as $k=>$v){
				if ($v[1]=='ROLE'){
					$roleInfo=$role->getOne(array('where'=>'rid = "'.$v[0].'"','asArray'=>true));
					$v[1]=$roleInfo['name'];
				}
				$list[$key]['staff'].=" ".$v[1];
			}
		}
		
		$data['roleList']=$roleList;
		$data['verify']=$list;
		$data['memu']="verify";
		$data['staff']=$this->staff;
		$this->render ( "/admin/admin_reportGroup", $data );
	}
	
	function addVerify(){
		$description=$this->get_args('description')?$this->get_args('description'):"";
		$staff=$this->get_args('staff')?$this->get_args('staff'):"";
		$uidlist=$this->get_args('uidlist')?$this->get_args('uidlist'):"";
		
		$uidlist=explode(",", $uidlist);
		
		Doo::loadModel("role");
		$role=new role();
		
		$list=array();
		foreach ($uidlist as $key=>$value){
			$info=explode(":", $value);
			if ($info[1]=='ROLE'){
				$roleInfo=$role->getOne(array('where'=>'rid = "'.$info[0].'"','asArray'=>true));
				array_push($info, $roleInfo['staff']);
			}
			array_push($list, $info);
		}
		
		if(!empty($description)&&!empty($list)){
			Doo::loadModel("verify");
			$verify=new verify();
			$verify->description=$description;
			$verify->staff=json_encode($list);
			$verify->insert();
		}
		return "/adminverify";
	}
	
	function adminRole(){
		
		Doo::loadModel('staff');
		$staff=new staff();
		Doo::loadModel("verify");
		$verify=new verify();
		Doo::loadModel("role");
		$role=new role();
		
		
		$data['staffList']=$staff->find(array('select'=>'username,sid,avatar','asArray'=>true));
		$list=$verify->find(array('asArray'=>true));
		$roleList=$role->find(array('asArray'=>true));
		
		foreach ($list as $key=>$value){
			$name=json_decode($value['staff']);
			$list[$key]['staff']="";
			foreach ($name as $k=>$v){
				$list[$key]['staff'].=" ".$v[1];
			}
		}
		
		foreach ($roleList as $key=>$value){
			$staff=json_decode($value['staff']);
			
			foreach ($staff as $k=>$v){
				//print_r($info);
				//$staff[$k]=substr(strstr($v, '_'), 1);
				$info=explode('_', $v);
				$staff[$k]=$info;
			}
			$roleList[$key]['list']=$staff;
		}
		
		$data['roleList']=$roleList;
		$data['verify']=$list;
		$data['memu']="verify";
		$data['staff']=$this->staff;
		$this->render ( "/admin/adminReportGroupRole", $data );
	}
	
	function addRole(){
		$name=$this->get_args('title')?$this->get_args('title'):"";
		$staff=$this->get_args('staff')?$this->get_args('staff'):"";
		$list=array();
		foreach ($staff as $key=>$value){
			$na=explode(":", $value);
			array_push($list, $na[0].'_'.$na[1]);
		}
		if(!empty($name)&&!empty($list)){
			Doo::loadModel("role");
			$role=new role();
			$role->name=$name;
			$role->staff=json_encode($list);
			$role->insert();
		}
		return "/adminRole";
	}
	
	function delRole(){
		$rid= isset($this->params['rid'])?$this->params['rid']:0;
		
		if(!empty($rid)){
			Doo::loadModel("role");
			$role=new role();
			$role->delete(array('where'=>'rid="'.$rid.'"'));
		}
		return "/adminRole";
	}
	
	function updateRole(){
		$oldStaff=$this->get_args('oldStaff')?$this->get_args('oldStaff'):"";
		$newStaff=$this->get_args('newStaff')?$this->get_args('newStaff'):"";
		$rid=$this->get_args('rid')?$this->get_args('rid'):"";
		
		if(!empty($oldStaff)&&!empty($newStaff)&&!empty($rid)){
			Doo::loadModel("role");
			$role=new role();
			$roleInfo=$role->getOne(array('where'=>'rid = "'.$rid.'"','asArray'=>true));
			
			$staffList=json_decode($roleInfo['staff'],true);
			
			foreach ($staffList as $key=>$value){
				if ($value==$oldStaff){
					$staffList[$key]=$newStaff;
					break;
				}
			}
			
			$role->staff=json_encode($staffList);
			$role->update(array('where'=>'rid = "'.$rid.'"'));
		}
		return "/adminRole";
	}
	
	function adminExecute(){
		
		Doo::loadModel('staff');
		$staff=new staff();
		Doo::loadModel("execute");
		$execute=new execute();
		
		$data['staffList']=$staff->find(array('select'=>'username,sid,avatar','asArray'=>true));
		$list=$execute->find(array('asArray'=>true));
		
		$execute=array('借款执行人'=>'','借款费用执行人'=>'','报销单执行人'=>'','对公汇款执行人'=>'');
		foreach ($list as $key=>$value){
			$name=json_decode($value['staff']);
			$staffString="";
			if (!empty($name)){
				foreach ($name as $k=>$v){
					
					$staffString.=" ".$v[1].'k';
				}
			}
			foreach ($execute as $k=>$v){
				if ($k==$value['mold']){
					$execute[$k]=$name=$staffString;
				}
			}
		}
		//print_r($execute);die;
		$data['execute']=$execute;
		$data['memu']="verify";
		$data['staff']=$this->staff;
		$this->render ( "/admin/adminCarriedout", $data );
	}
	
	function addExecute(){
		$mold=$this->get_args('mold')?$this->get_args('mold'):"";
		$staff=$this->get_args('staff')?$this->get_args('staff'):"";
		if(!empty($mold)&&!empty($staff)){
			Doo::loadModel("execute");
			$execute=new execute();
			
			$executeInfo=$execute->getOne(array('where'=>'mold ="'.$mold.'" ','asArray'=>true));
			if (empty($executeInfo)){
				
				$list=array();
				foreach ($staff as $key=>$value){
					$info=explode(":", $value);
					array_push($list, $info);
				}
				
				$execute->mold=$mold;
				$execute->staff=json_encode($list);
			
				$execute->insert();
			}else{
				$list=json_decode($executeInfo['staff'],true);
				
				foreach ($staff as $k=>$v){
					$info=explode(":", $v);
					foreach ($list as $key=>$value){
						if($value[1]==$info[1]){
							unset($staff[$k]);
							break;
						}
					}
				}
				foreach ($staff as $k=>$v){
					$info=explode(":", $v);
					array_push($list, $info);
				}
				
				$execute->staff=json_encode($list);
				$execute->update(array('where'=>'eid = '.$executeInfo['eid']));
			}
		}
		return "/adminExecute";
	}
	
	function delExecute(){
		$uid=isset($this->params['uid'])&&is_numeric($this->params['uid'])?$this->params['uid']:0;	
		$eid=isset($this->params['eid'])&&is_numeric($this->params['eid'])?$this->params['eid']:0;	
		
		if(!empty($uid)&&!empty($eid)){
			Doo::loadModel("execute");
			$execute=new execute();
			
			$executeInfo=$execute->getOne(array('where'=>'eid ="'.$eid.'" ','asArray'=>true));
			if (empty($executeInfo))
				return "/adminExecute";
			
			$ini=array();
			$list=json_decode($executeInfo['staff'],true);
			foreach ($list as $k=>$v){
				if ($v[0]==$uid){
					$ini=$list[$k];
					unset($list[$k]);break;
				}
			}	
			
			file_put_contents("protected/config/execute/execute.ini", ",".$ini[0], FILE_APPEND);
			
			$execute->staff=json_encode($list);
			$execute->update(array('where'=>'eid = '.$executeInfo['eid']));
		}
		
		return "/adminExecute";
	}
	
	function ajaxRoleStaff(){
		
		$name=$this->get_args('name')?$this->get_args('name'):"";
		
		Doo::loadModel('staff');
		$staff=new staff();
		
		$staffList=$staff->find(array('select'=>'username,sid,avatar','where'=>'username != "'.$name.'" and username !="admin"','asArray'=>true));
		
		$html='';
		foreach ($staffList as $key=>$value){
			$html.='';
		}
		
		echo json_encode(array("success"=>true,'html'=>$html));die;
	}
	
	function loadCVS(){
		
		Doo::loadModel('longle');
		$longle=new longle();
		$list=$longle->find(array('select'=>'key_num','asArray' => TRUE));
		
		$file = fopen(DOO::conf()->SITE_PATH."upload/key2.csv",'r'); 
		while ($data = fgetcsv($file)) { 
			$goods_list[$data[0]] = $data[1] ;
		}
		fclose($file);
		
		$sqlArray=array();
		$sql='UPDATE CLD_longle SET SerialNumber = CASE key_num ';
		foreach($list as $key=>$value){
			
			if(array_key_exists($value['key_num'],$goods_list)){
				//echo $value['key_num'].'-'.$goods_list[$value['key_num']].'
';
				//$longle->SerialNumber=$goods_list[$value['key_num']];
				//$longle->update(array('where'=>'key_num="'.$value['key_num'].'"'));
				$sql.=' WHEN "'.$value['key_num'].'" THEN "'.$goods_list[$value['key_num']].'" ';
				
				array_push($sqlArray, '"'.$value['key_num'].'"');
				unset($goods_list[$value['key_num']]);
			}
		}
		$sql.='END WHERE key_num IN ('.implode(',', $sqlArray).')';
		echo $sql.'
--------------------------------
';
		foreach ($goods_list as $key=>$value){
			echo $key.','.$value.'
';
		}
	}
	
	private function getRandChar($length){
	   $str = null;
	   $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
	   $max = strlen($strPol)-1;
	
	   for($i=0;$i<$length;$i++){
	    $str.=$strPol[rand(0,$max)];//rand($min,$max)生成介于min和max两个数之间的一个随机整数
	   }
	
	   return $str;
  	}
	private function getReceiptCount(){
		$status=2;
		$year=date('Y');
		Doo::loadModel('receipt');
		$receipt=new receipt();
		Doo::loadModel('verify');
		$verify=new verify();
		//user verify ID
		$vidList=array();
		$verifyDetail=$verify->find(array('where'=>'staff like "%\"'.$this->staff[0]['sid'].'\"%"','asArray'=>true));
		foreach ($verifyDetail as $key=>$value){
			array_push($vidList, $value['vid']);
		}
		$vid=implode(",", $vidList);
		if(empty($verifyDetail))
			$vid=0;
		$dateCondition=" and Year(date) =".$year;
		$approvalCondition=' and verifyStaff not like "%\"'.$this->staff[0]['sid'].'\":{%" ';
		$receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$approvalCondition,'desc'=>'rid','asArray'=>true));
		return count($receiptList);
	}
	/**
	 * 格式化excel文件为数组
	 * @param unknown_type $file_url
	 * @param unknown_type $mcid
	 */
	function _format_excel_to_array($file_url = "") {
		if (! file_exists ( $file_url ))
			return array ();
		Doo::loadClass ( 'PHPExcel' );
		$PHPExcel = new PHPExcel ();
		$PHPReader = new PHPExcel_Reader_Excel2007 ();
		if (! $PHPReader->canRead ( $file_url )) {
			$PHPReader = new PHPExcel_Reader_Excel5 ();
			if (! $PHPReader->canRead ( $file_url )) {
				echo 'no Excel';
				return;
			}
		}
		$PHPExcel = $PHPReader->load ( $file_url );
		/**读取excel文件中的第一个工作表*/
		$currentSheet = $PHPExcel->getSheet ( 0 );
		/**取得最大的列号*/
		$allColumn = $currentSheet->getHighestColumn ();
		/**取得一共有多少行*/
		$allRow = $currentSheet->getHighestRow ();
		$excel_array = array ();
		for($currentRow = 2; $currentRow <= $allRow; $currentRow ++) {
			$excel_column = array ();
			//后期改进
			if($allColumn=='AM')
				$allColumn='Z';
			/**从第A列开始输出*/
			for($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn ++) {
				$val = $currentSheet->getCellByColumnAndRow ( ord ( $currentColumn ) - 65, $currentRow )->getValue ();
				/**ord()将字符转为十进制数 iconv ( 'utf-8', 'gb2312',*/
				$val = "'" . addslashes ( $val ) . "'";
					if ($currentColumn == 'A')
						$excel_column ['key_num'] = $val;
					elseif ($currentColumn == 'C')
						$excel_column ['product'] = $val;
					elseif ($currentColumn == 'D'){
						$val=str_replace("'","",$val);
						$excel_column ['make_day'] = $this->excelTime($val);
					}elseif($currentColumn == 'E'){
						$val=str_replace("'","",$val);
						$excel_column ['alloted_time'] = $this->excelTime($val);
					}elseif($currentColumn == 'F'){
						$val=str_replace("'","",$val);
						$excel_column ['version'] = $val;
					}elseif ($currentColumn == 'B'){
						$val=str_replace("'","",$val);
						$excel_column ['SerialNumber'] = $val;
					}
			}
			array_push ( $excel_array, $excel_column );
		}
		return $excel_array;
	}
function excelTime($date, $time = false)
{
	if (function_exists ( 'GregorianToJD' ))
	{
		if (is_numeric ( $date ))
		{
			$jd 		= GregorianToJD ( 1, 1, 1970 );
			$gregorian 	= JDToGregorian ( $jd + intval ( $date ) - 25569 );
			$date 		= explode ( '/', $gregorian );
			$date_str 	= str_pad ( $date [2], 4, '0', STR_PAD_LEFT ) . "-" .
					str_pad ( $date [0], 2, '0', STR_PAD_LEFT ) . "-" .
					str_pad ( $date [1], 2, '0', STR_PAD_LEFT ) . ($time ? " 00:00:00" : '');
			return $date_str;
		}
	} else
	{
		$date = $date > 25568 ? $date + 1 : 25569;
		/* There was a bug if Converting date before 1-1-1970 (tstamp 0) */
		$ofs  = (70 * 365 + 17 + 2) * 86400;
		$date = date ( "Y-m-d", ($date * 86400) - $ofs ) . ($time ? " 00:00:00" : '');
	}
	return $date;
}
	function _GetFileEXT($filename) {
		$pics = explode ( '.', $filename );
		$num = count ( $pics );
		return $pics [$num - 1];
	}
	/**
	 * 获取get或者POST值
	 * @param string $name 属性名称
	 * @return fixed 值
	 */
	function get_args($name) {
		if (isset ( $_GET [$name] )) {
			if (is_array ( $_GET [$name] ))
				return $_GET [$name];
			else {
				return addslashes ( $_GET [$name] );
		//return  $_GET [$name] ;
			}
		} elseif (isset ( $_POST [$name] )) {
			if (is_array ( $_POST [$name] ))
				return $_POST [$name];
			else {
				return addslashes ( $_POST [$name] );
		//return $_POST [$name];
			}
		} else {
			return false;
		}
	}
	function get_previous($on_page = 1) {
		return $on_page != 0 ? $on_page - 1 : $on_page;
	}
/**
	 * 获得分页数据
	 * @param unknown_type $table
	 * @param unknown_type $condition
	 * @param unknown_type $on_page
	 * @param unknown_type $page_size
	 */
	function get_Tpage($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "",$tagSQL) {
		$page_c = "";
		$page ['previous'] = $this->get_previous ( $on_page );
		$page ['on_page'] = $on_page;
		$total_count = $this->get_table_Tcount ( $table, $condition,$tagSQL );
		$total = intval ( $total_count / $page_size );
		$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;
		$page ['total_data'] = $total_count;
		$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;
		$i = 1;
		$page_max = 1;
		if ($on_page > 10) {
			$page_max = intval ( $on_page / 10 ) + 1;
			$i = intval ( $on_page / 10 ) * 10 - 1;
		}
		$page ['page'] = $page_c;
		$page ['lower'] = (-- $on_page) * $page_size;
		return $page;
	}
	/**
	 * 获得分页数据
	 * @param unknown_type $table
	 * @param unknown_type $condition
	 * @param unknown_type $on_page
	 * @param unknown_type $page_size
	 */
	function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page",$staffid="",$search,$tooltip,$cateid,$tagSQL) {
		$page_c = "";
		$page ['previous'] = $this->get_previous ( $on_page );
		$page ['on_page'] = $on_page;
		$total_count = $this->get_table_count ( $table, $condition ,$staffid,$search,$tooltip,$cateid,$tagSQL);
		$total = intval ( $total_count / $page_size );
		$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;
		$page ['total_data'] = $total_count;
		$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;
		$i = 1;
		$page_max = 1;
		if ($on_page > 10) {
			$page_max = intval ( $on_page / 10 ) + 1;
			$i = intval ( $on_page / 10 ) * 10 - 1;
		}
		for(; $i <= $page ['total_page']; $i ++) {
			if ($i == $on_page) {
				if ($other == "page")
					$page_c .= '' . $i . '';
				else
					$page_c .= ' ' . $i . ' ';
			} else if ($other == "page")
				$page_c .= '' . $i . '';
			else
				$page_c .= ' ' . $i . ' ';
			if ($i == (10 * $page_max))
				break;
		}
		$page ['page'] = $page_c;
		$page ['lower'] = (-- $on_page) * $page_size;
		return $page;
	}
	/**
	 * 获取总页数
	 * @param unknown_type $table
	 * @param unknown_type $condition
	 */
	public function get_table_Tcount($table = "", $condition = "",$tagSQL) {
		if ($tagSQL)
			$sql = "select count(*) as count from CLD_tagCompanyNexus as a left join CLD_company as b on (a.company=b.cid )  where ".$condition ;
		else
			$sql =  "select count(*) as count from  CLD_company where " . $condition ;
		$query = Doo::db ()->query ( $sql );
		$result = $query->fetch ();
		return $result ['count'];
	}
	/**
	 * 获取总页数
	 * @param unknown_type $table
	 * @param unknown_type $condition
	 */
	public function get_table_count($table = "", $condition = "",$staffid="",$search,$tooltip,$cateid,$tagSQL) {
		//$sql = "select count(*) as count from " . $table . " where 1 " . $condition;
		//echo $staffid;die;
		//
		if (!empty($staffid)){
			//$staffid="and a.sid= '".$staffid."'"; " . $table . " as a left join on (a.cid=b.cid ".$staffid.")
			$sql = "select count(*) as count from  CLD_client as b  left join CLD_tag_client as c on (b.cid=c.client) where 1 " . $condition ;
		}else{
			if(strlen($condition)==1||empty($condition))
				$sql = "select count(*) as count from  CLD_client as a  ".$condition;
			else
				$sql = "select count(*) as count from  CLD_client  as a left join CLD_tag_client as c on (a.cid=c.client)  where 1 ".$condition;
		}
		if(!empty($search))
			$sql = "select count(*) as count from  CLD_client as a where 1 ".$condition ;
		if(!empty($tooltip)){
			$condition=str_replace("a.","c.",$condition);
			if ($tagSQL)
			$sql = "select count(*) as count from CLD_C_tooltip as a left join  CLD_tag_client as c on (a.cid=c.client) left join CLD_client as b on (c.client=b.cid )  where a.name like '%".$tooltip."%' and a.cateid = ".$cateid." ".$condition ;
			else 
			$sql = "select count(*) as count from CLD_C_tooltip as a  left join CLD_client as b on (a.cid=b.cid )  where a.name like '%".$tooltip."%' and a.cateid = ".$cateid." ".$condition ;
		}
		//echo $sql;
		$query = Doo::db ()->query ( $sql );
		$result = $query->fetch ();
		return $result ['count'];
	}
	//录入用户假期信息
	public function AddStaffHoliday(){
		Doo::loadModel('staff');
		$staff = new staff();
		$stafflist = $staff->find(array('select' => 'sid,hiredate','where' => 'nature=1', 'asArray' => TRUE));
		var_dump($stafflist);
		exit;
		Doo::loadModel('holidaystaff');
	}
}
?>