<?php
/*
===========================注册模块控制器
*/
class cls_tab_temp_site extends cls_base_table
{
	private $perms;
	//构造函数
	function __construct()
	{
		parent::__construct();
		global $obj_db;
		$this->obj_db=$obj_db;
		$this->perms["state"]=array("关闭"=>0,"开启"=>1);
		$this->perms["type"]=array("企业"=>1);
	}
	function __get($name){
		if(isset($this->perms["$name"])){
			return $this->perms["$name"];
		}
	}
	function __set($name,$value){
		if(isset($this->perms["$name"])){
			$this->perms["$name"]=$value;
		}else{
		}
	}
	//保存
	function on_save($arr_fields)
	{
		$arr_return=array("err"=>"","id"=>0);
		(!isset($arr_fields["site_id"]))? $arr_fields["site_id"]=0:$arr_fields["site_id"]=intval($arr_fields["site_id"]);
		//保存操作
		$lng_id=$arr_fields["site_id"];
		unset($arr_fields["site_id"]);//释放id
		if($lng_id<1){
			$arr_return=self::_insert($arr_fields);
		}else{
			global $obj_db;
			$str_where="site_id='".$lng_id."'";
			$lng_source_id=0;
			$obj_result = $obj_db->query("SELECT site_user_id,site_state,site_source_id FROM ".DB_PRE."temp_site where site_id=".$lng_id);
			if($obj_rs = $obj_db->fetch_array($obj_result))
			{
				$lng_source_id=$obj_rs["site_source_id"];
				$lng_old_source_id=$obj_rs["site_source_id"];
				if(isset($arr_fields["site_user_id"]) && $obj_rs["site_user_id"]!=$arr_fields["site_user_id"]){
					$obj_result=$obj_db->query("select company_id from ".DB_PRE."hr_company where company_user_id=".$arr_fields["site_user_id"]);
					if($obj_rs=$obj_db->fetch_array($obj_result)){
						$arr_fields["site_source_id"]=$obj_rs["company_id"];
						$lng_source_id=$arr_fields["site_source_id"];
					}
				}
				if(isset($arr_fields["site_state"])){
					$lng_site_state=$arr_fields["site_state"];
				}else{
					$lng_site_state=$obj_rs["site_state"];
				}
			}
			$arr_return=self::_update($arr_fields,$str_where);
			$arr_return["id"]=$lng_id;
			if($arr_return["err"]=="" && $lng_source_id>0){
				self::update_state($arr_return["id"],$lng_source_id,$lng_site_state);
				if(isset($arr_fields["site_source_id"]) && $lng_old_source_id!=$arr_fields["site_source_id"]){
					$obj_db->execute("update ".DB_PRE."hr_company set company_site_id=0 where company_id=".$lng_old_source_id." and company_site_id=".$lng_id);
				}
			}
		}
		return $arr_return;
	}
	//添加
	private function _insert($arr_fields)
	{
		$arr_return=array("err"=>"");
		global $obj_db;
		$arr_return=array("err"=>"","id"=>0);
		$arr_fields["site_addtime"]=TIME;
		if(!isset($arr_fields["site_temp_id"])){
			$arr_return["err"]="请选择模板!";
			return $arr_return;
		}
		if(!isset($arr_fields["site_user_id"]) || empty($arr_fields["site_user_id"])){
			$arr_return["err"]="请指定企业！";
			return $arr_return;
		}
		if(!isset($arr_fields["site_state"])) $arr_fields["site_state"]=1;
		$obj_result=$obj_db->query("select company_id from ".DB_PRE."hr_company where company_user_id=".$arr_fields["site_user_id"]);
		if($obj_rs=$obj_db->fetch_array($obj_result)){
			$arr_fields["site_source_id"]=$obj_rs["company_id"];
		}
		//初始默认值
		$arr_val=array();
		$obj_tab_temp=new cls_tab_site_temp();
		$arr_fields=$obj_tab_temp->get_fields($arr_fields["site_temp_id"]);
		$lng_count=count($arr_fields);
		for($i=0;$i<$lng_count;$i++){
			$arr_val[$arr_fields[$i]["name"]]=$arr_fields[$i]["value"];
		}
		$arr_fields["site_content"]=serialize($arr_val);


		$arr_return=parent::on_insert(DB_PRE."temp_site",$arr_fields);
		if($arr_return["err"]=="" && isset($arr_fields["site_source_id"])){
			self::update_state($arr_return["id"],$arr_fields["site_source_id"],$arr_fields["site_state"]);
		}
		return $arr_return;
	}
	//修改
	private function _update($arr_fields,$msg_where)
	{
		$arr_return=array("err"=>"","id"=>0);
		$arr_return=parent::on_update(DB_PRE."site",$arr_fields,$msg_where);
		return $arr_return;
	}
	function update_state($msg_id,$msg_source_id,$msg_state){
		global $obj_db;
		if($msg_state>0){
			$obj_db->execute("update ".DB_PRE."temp_site set site_state=0 where site_source_id=".$msg_source_id." and site_id!=".$msg_id);
			$obj_db->execute("update ".DB_PRE."hr_company set company_site_id=".$msg_id." where company_id=".$msg_source_id);
		}else{
			$obj_db->execute("update ".DB_PRE."hr_company set company_site_id=0 where company_id=".$msg_source_id." and company_site_id=".$msg_id);
		}
	}
	//删除
	function on_del($arr_id)
	{
		$arr_return=array("err"=>"");
		$str_id=get_arr_id($arr_id);
		if($str_id==""){
			$arr_return["err"]="没有指定要删除的记录！";
			return $arr_return;
		}
		$arr_return=parent::on_del(DB_PRE."temp_site","site_id in(".$str_id.")");
		return $arr_return;
	}

}
?>
