PRJ904.php 8.27 KB
<?php 
//*****************************************************************************
//* 
//* プログラム名:プロジェクト管理
//* プログラムID:PRJ904.php
//* 機能        :タスク登録・修正
//* 作成者      :
//* 
//*****************************************************************************

header( "Content-type: text/html; charset=EUC-JP");

include("inc/session_start.inc");
include("inc/SessionChk.inc");

include('./include/smarty.conf');

$strDBinc="include/dbcon.inc";
include($strDBinc);

$prjName = mb_convert_encoding($prjName, "eucJP-win", "auto");
$prjNaiyo = mb_convert_encoding($prjNaiyo, "eucJP-win", "auto");

$dateS = $start_y.$start_m.$start_d;
$dateE = $end_y.$end_m.$end_d;
$stradd1 = "/".$stradd1;

//mode → 1:タスク新規 2:タスク修正 3:タスク詳細新規 4:タスク詳細修正
if($mode == 1){
	//seq設定
	$strSQL = "select * from prj_task_tbl where seq = ".$seq." order by task_seq desc";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if (pg_numrows($objRec) > 0){
		$objNo = pg_fetch_object($objRec, 0);
		$tseq = ($objNo->task_seq) + 1;
	}else{
		$tseq = 1;
	}
	
	//disp_rank取得
	$strSQL = "select * from prj_task_tbl where seq = ".$seq." and task_sub_seq = 0 order by disp_rank desc";
	if($objRec == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if (pg_numrows($objRec) > 0){
		$objNo = pg_fetch_object($objRec, 0);
		$dispRank = ($objNo->disp_rank) + 1;
	}else{
		$dispRank = 1;
	}
	
	//いんさーと
	$strSQL = "insert into prj_task_tbl ";
	$strSQL .= "(seq, task_seq, task_sub_seq, task_name, task_naiyo, start_date, end_date, unit_seq, progress_max, progress, tanto_list, koshin_date, disp_rank) ";
	$strSQL .= "values(".$seq.", ".$tseq.", 0, '".addslashes($prjName)." ', '".addslashes($prjNaiyo)." ', '".$dateS."', '".$dateE."', ".(int)$progUnit.", ".(int)$progMax.", 0, '".$stradd1."', '".date("Ymd")."', ".$dispRank.")";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(INSERT)");
		exit;
	}

}else if($mode == 2){
	//あっぷでーと
	$strSQL = "update prj_task_tbl set ";
	$strSQL .= "task_name = '".addslashes($prjName)." ', task_naiyo = '".addslashes($prjNaiyo)." ', start_date = '".$dateS."', end_date = '".$dateE."', unit_seq = ".(int)$progUnit.", progress_max = ".(int)$progMax.", tanto_list = '".$stradd1."', koshin_date = '".date("Ymd")."' ";
	$strSQL .= "where seq = ".$seq." and task_seq = ".$tseq." and task_sub_seq = 0";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

}else if($mode == 3){
	//seq設定
	$strSQL = "select * from prj_task_tbl where seq = ".$seq." and task_seq = ".$tseq." order by task_sub_seq desc";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if (pg_numrows($objRec) > 0){
		$objNo = pg_fetch_object($objRec, 0);
		$sseq = ($objNo->task_sub_seq) + 1;
	}else{
		$sseq = 1;
	}

	//disp_rank取得
	$strSQL = "select * from prj_task_tbl where seq = ".$seq." and task_sub_seq <> 0 order by disp_rank desc";
	if($objRec == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if (pg_numrows($objRec) > 0){
		$objNo = pg_fetch_object($objRec, 0);
		$dispRank = ($objNo->disp_rank) + 1;
	}else{
		$dispRank = 1;
	}

	//いんさーと
	$strSQL = "insert into prj_task_tbl ";
	$strSQL .= "(seq, task_seq, task_sub_seq, task_name, task_naiyo, start_date, end_date, unit_seq, progress_max, progress, tanto_list, koshin_date, disp_rank) ";
	$strSQL .= "values(".$seq.", ".$tseq.", ".$sseq.", '".addslashes($prjName)." ', '".addslashes($prjNaiyo)." ', '".$dateS."', '".$dateE."', ".(int)$progUnit.", ".(int)$progMax.", 0, '".$stradd1."', '".date("Ymd")."', ".$dispRank.")";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(INSERT)");
		exit;
	}
	
	//タスク期間再設定
	$strSQL = "select min(start_date) as minDate, max(end_date) as maxDate from prj_task_tbl where seq = ".$seq." and task_seq = ".$tseq." and start_date <> ''";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	$strStart = pg_result($objRec,0,"minDate");
	$strEnd = pg_result($objRec,0,"maxDate");

	$strSQL = "update prj_task_tbl set ";
	$strSQL .= "start_date = '".$strStart."', end_date = '".$strEnd."' ";
	$strSQL .= "where seq = ".$seq." and task_seq = ".$tseq." and task_sub_seq = 0";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

}else if($mode == 4){
	//あっぷでーと
	$strSQL = "update prj_task_tbl set ";
	$strSQL .= "task_name = '".addslashes($prjName)." ', task_naiyo = '".addslashes($prjNaiyo)." ', start_date = '".$dateS."', end_date = '".$dateE."', unit_seq = ".(int)$progUnit.", progress_max = ".(int)$progMax.", tanto_list = '".$stradd1."', koshin_date = '".date("Ymd")."' ";
	$strSQL .= "where seq = ".$seq." and task_seq = ".$tseq." and task_sub_seq = ".$sseq;
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

	//タスク期間再設定
	$strSQL = "select min(start_date) as minDate, max(end_date) as maxDate from prj_task_tbl where seq = ".$seq." and task_seq = ".$tseq." and start_date <> ''";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	$strStart = pg_result($objRec,0,"minDate");
	$strEnd = pg_result($objRec,0,"maxDate");

	$strSQL = "update prj_task_tbl set ";
	$strSQL .= "start_date = '".$strStart."', end_date = '".$strEnd."' ";
	$strSQL .= "where seq = ".$seq." and task_seq = ".$tseq." and task_sub_seq = 0";
	$objRec = pg_exec($strSQL);
	if($objRec == false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}
}

//プロジェクト期間再設定
$strSQL = "select min(start_date) as minDate, max(end_date) as maxDate from prj_task_tbl where seq = ".$seq." and start_date <> ''";
$objRec = pg_exec($strSQL);
if($objRec == false){
	echo("SQL実行に失敗しました(SELECT)");
	exit;
}
$strStart = pg_result($objRec,0,"minDate");
$strEnd = pg_result($objRec,0,"maxDate");

$strSQL = "update prj_tbl set ";
$strSQL .= "start_date = '".$strStart."', end_date = '".$strEnd."' where seq = ".$seq;
$objRec = pg_exec($strSQL);
if($objRec == false){
	echo("SQL実行に失敗しました(UPDATE)");
	exit;
}

//率2
if($sseq > 0){
	$strSQL2 = "select seq, task_seq, task_sub_seq, task_name, task_naiyo, start_date, end_date, unit_seq, progress_max, progress, tanto_list, koshin_date from prj_task_tbl ";
	$strSQL2 .= "where seq = ".$seq." and task_seq = ".$tseq." and task_sub_seq > 0";
	$objRec2 = pg_exec($strSQL2);
	if($objRec2 == false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec2) > 0){
		$numProg = 0;
		for($j=0;$j<pg_numrows($objRec2);$j++){
			$objftc2 = pg_fetch_object($objRec2, $j);
			//率計算
			$numProg = $numProg + $objftc2->progress / $objftc2->progress_max;
		}
		$newProg = floor($numProg / pg_numrows($objRec2) * 100);
		//更新
		$strSQL = "update prj_task_tbl set ";
		$strSQL .= "progress_max = 100, progress  = ".$newProg." ";
		$strSQL .= "where seq = ".$seq." and task_seq = ".$tseq." and task_sub_seq = 0";
		$objRec = pg_exec($strSQL);
		if($objRec == false){
			echo("SQL実行に失敗しました(UPDATE)");
			exit;
		}
	}
}

//率
$strSQL2 = "select seq, task_seq, task_sub_seq, task_name, task_naiyo, start_date, end_date, unit_seq, progress_max, progress, tanto_list, koshin_date from prj_task_tbl ";
$strSQL2 .= "where seq = ".$seq." and task_sub_seq = 0";
$objRec2 = pg_exec($strSQL2);
if($objRec2 == false){
	echo("SQL実行に失敗しました(SELECT)");
	exit;
}
if(pg_numrows($objRec2) == 0){
	$endFlg = 0;			
}else{
	$numProg = 0;
	for($j=0;$j<pg_numrows($objRec2);$j++){
		$objftc2 = pg_fetch_object($objRec2, $j);
		//率計算
		$numProg = $numProg + $objftc2->progress / $objftc2->progress_max;
	}
	$strProg[$i] = floor($numProg / pg_numrows($objRec2) * 100);
	if(floor($numProg / pg_numrows($objRec2) * 100) == 100){
		$endFlg = 1;
	}else{
		$endFlg = 0;
	}
}
//完了状態更新
$strSQL = "update prj_tbl set ";
$strSQL .= "end_flg = ".$endFlg." ";
$strSQL .= "where seq = ".$seq;
$objRec = pg_exec($strSQL);
if($objRec == false){
	echo("SQL実行に失敗しました(UPDATE)");
	exit;
}


//監査状態更新
$strSQL = "update prj_comm_tbl set ";
$strSQL .= "comment = '0' ";
$strSQL .= "where seq = ".$seq." and comm_flg = 3 ";
$objRec = pg_exec($strSQL);
if($objRec == false){
	echo("SQL実行に失敗しました(UPDATE)");
	exit;
}


?>