<?php
/***********************************************************************************/
/* MassCRM客户关系管理系统							   */
/* ========================      						   */
/* 欢迎使用 MassCRM ,在您开始使用之前,请务必完整阅读本软件附带的全部说明档	   */
/***********************************************************************************/
/* Welcome to http://www.massboxes.com & http://masscrm.massboxes.com		   */
/***********************************************************************************/
	require_once "../includes/check_login.inc.php";
	require_once "../includes/config.inc.php";
	require_once "../includes/common.inc.php";
	require_once "../includes/function.inc.php";
	require_once"../includes/BiaoCommon.class.php";
	
	$table_name		= $_REQUEST[table_name];
	$module_name	= $_REQUEST[module_name];
	$module_num		= $_REQUEST[module_num];
	global $boxesDB;
	$boxesDB=new BiaoCommon($conn); 
	
	$boxesDB->setTableName("field_display_table");
	$sql="where table_name='".$table_name."'";
	$boxesDB->setCondition($sql);
	$boxes_check=$boxesDB->selectResult();
	if(!count($boxes_check)){
		echo"<script>alert(\"表field_display_table设置出问题啦！\");</script>";
		exit;
	}
	$prefix=$boxes_check[0][prefix];
	$name=$prefix."name";
	$auto_id=$prefix."auto_id";
	
	$bu_auto_id=$HTTP_SESSION_VARS["user_auto_id"];
	checkRole($table_name,$module_num,$bu_auto_id,"IMPORT");
	
	/************************/
	/*增加功能，按当前单据增加*/
	/************************/
	function add_new($table_name,$add_array){
		global $boxesDB;
		$boxesDB->setTableName($table_name);
		for($i=0;$i<count($add_array);$i++){
			$boxesDB->setInsertArray($add_array[$i][0],$add_array[$i][1]);
		}
		$boxes_result=$boxesDB->insertRow();
	}
	
	//导入
	if($_POST[load_confirm]){
		for($i=0;$i<count($_POST[selected_value]);$i++){
			$field_array[]=array("id"		=>	$i,
								 "field"	=>	$_POST[selected_value][$i]);
		}
		$file_name=$_POST[file_name];
		$handle = fopen ($file_name,"r");
		$rowNum=0;
		while ($data = fgetcsv ($handle, 1000, ",")) {
			$row[$rowNum++]=$data;
		}
		
		$add_number=0;
		for($i=1;$i<count($row);$i++){
			$c_row=$row[$i];
			$error="";
			$add_array[$add_number]=null;
			for($j=0;$j<count($c_row);$j++){
				if($field_array[$j][field]){
					if($_POST[checkerror]){
						//检查有无重复或者不能为空
						$boxesDB->setTableName("field_display_table");
						$boxesDB->setSelectField("*");
						$sql="where (table_name='$_POST[select_table]' and field_name='".$field_array[$j][field]."')";
						$boxesDB->setCondition($sql);
						$boxes_check_list=$boxesDB->selectResult();
						$check_row=$boxes_check_list[0];
						if(!$check_row[can_be_empty] and !$c_row[$j]){
							$error="错误提示：第 $i 行 字段“".$row[0][$j]."”不能为空！该行没有导入数据库<br>";
							echo"<font color=red>$error</font>";
							break;
						}
						if(!$check_row[can_be_same] and $c_row[$j]){//判断是否可以相同
							$boxesDB->setTableName($_POST[select_table]);
							$boxesDB->setSelectField("Count(*) AS total");
							$sql="where ".$field_array[$j][field]."='".$c_row[$j]."'";
							$boxesDB->setCondition($sql);
							$boxes_temp=$boxesDB->selectResult();
			
							if($boxes_temp[0][total]){
								$error="错误提示：第 $i 行 字段“".$row[0][$j]."”有资料重复！该行没有导入数据库<br>";
								echo"<font color=red>$error</font>";
								break;
							}
						}
					}
					if($field_array[$j][field]=="parent_id"/* and $_POST[IdIsAUTO]*/){
						if($c_row[$j]){
							$boxesDB->setTableName($_POST[select_table]);
							$boxesDB->setSelectField("*");
							$sql="where $name='".$c_row[$j]."'";
							$boxesDB->setCondition($sql);
							$boxes_temp=$boxesDB->selectResult();
							if(count($boxes_temp)){
								$field_value=$boxes_temp[0][$auto_id];
							}
							else{
								$field_value=0;
							}
						}
						else{
							$field_value=0;
						}
					}
					else{
						$field_value=$c_row[$j];
					}
					if(!$error){
						$add_array[$add_number][] = array($field_array[$j][field],$field_value);
					}
				}				
			}
			if(!$error){
				add_new($_POST[select_table],$add_array[$add_number]);
				$add_number++;
			}
		}
		echo"<script>alert('导入成功，按确定返回！');self.close();</script>";
		
		exit;
	}
	
	
	//对应字段
	if($_POST[load]){
		$uploaddir = './upload/';
		
		$textfname=strstr($_FILES['userfile']['name'],".");
		$uploadfile=$uploaddir .time().$textfname;
		
		if($textfname!=".csv"){
			echo"<script>alert(\"文件类型错误，文件类型必须为CSV类型\");</script>";
			echo"<META HTTP-EQUIV=Refresh CONTENT=0.2;URL=load_information.php?table_name=$table_name&&module_name=$module_name>";
			exit;
		}

		if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
//		   echo "文件有效，并且已经上传服务器！\n";
		} else {
			echo"<script>alert(\"文件上传失败！\");</script>";
			echo"<META HTTP-EQUIV=Refresh CONTENT=0.2;URL=load_information.php?table_name=$table_name&&module_name=$module_name>";
			exit;
		}
		
		//获取数据
		$rowNum=0;
		$handle = fopen ($uploadfile,"r");
		while ($data = fgetcsv ($handle, 1000, ",")) {
			$row[$rowNum++]=$data;
		}
		
		for($i=0;$i<count($row[0]);$i++){
			//文档字段
			$file_array[]=array(
								"display"	=>	"true",
								"auto_id"	=>	$i,
								"name"		=>	$row[0][$i]);
			$select_array[]=array(
								"display"	=>	"false",
								"auto_id"	=>	$i,
								"name"		=>	$row[0][$i]);					
		}
		
		//数据库字段
		$boxesDB->setTableName("field_display_table");
		$boxesDB->setSelectField("*");
		$sql="where (table_name='$_POST[select_table]') order by field_display_auto_id asc";
		$boxesDB->setCondition($sql);
		$boxes_field=$boxesDB->selectResult();
		for($i=0;$i<count($boxes_field);$i++){
			$row=$boxes_field[$i];
			$database_array[]=array(
								"display"	=>	"true",
								"auto_id"	=>	$i,
								"value"		=>	$row[field_name],
								"name"		=>	$row[display_name]);
			if($row[field_type]=="isAUTO"){
				$IdIsAUTO="<input type='checkbox' name='IdIsAUTO' value='1'>编号是否由系统自动生成<br>";
			}
		}
		
		/**********************************************************************************/
		/*                                   套用模板显示                                  */
		/**********************************************************************************/
		$action_file=$_SERVER['PHP_SELF']."?table_name=$table_name&&module_name=$module_name";
		$smart->assign(array(
						"module_name"			=>	$module_name,
						"table_name"			=>	$_POST[select_table],
						"file_name"				=>	$uploadfile,
						"file_array"			=>	$file_array,
						"select_array"			=>	$select_array,
						"database_array"		=>	$database_array,
//						"IdIsAUTO"				=>	$IdIsAUTO,
						"judgement"				=>	$judgement));
	
		//输出结果
		$smart->display('import_check_field.tpl.htm');
		/**********************************************************************************/
		/*                                   套用模板显示                                  */
		/**********************************************************************************/		
		
		
		exit;
	}

	/**********************************************************************************/
	/*                                   套用模板显示                                  */
	/**********************************************************************************/
	$action_file=$_SERVER['PHP_SELF']."?table_name=$table_name&&module_name=$module_name";
	$smart->assign(array(
					"module_name"			=>	$module_name,
					"table_name"			=>	$table_name,
					"judgement"				=>	$judgement));

	//输出结果
	$smart->display('import_common.tpl.htm');
	/**********************************************************************************/
	/*                                   套用模板显示                                  */
	/**********************************************************************************/
?>