SIM0962.php 5.47 KB
<?PHP 
//*****************************************************************************
//* プログラム名:部門更新処理
//* プログラムID:SIM0962.php
//* 機能        :部門更新処理
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");
include("./inc/session_start.inc");
include("./inc/SessionChk.inc");
include("./inc/dbcon.inc");

$mode = $_POST["mode"];

$allCnt = $_POST["allCnt"];
$bseq = $_POST["bseq"];
$bname = $_POST["bname"];

//全部門アクセス権
if ($_POST["chkall"]){
	$allflg = 1;
}else{
	$allflg = 0;
}

//部門個別アクセス権
for($i = 0; $i < $allCnt; $i++) {
if ($_POST["chkshou".$i]){
		$chkshou[$i] = 1;
		$shouSeq[$i] = $_POST["shouSeq".$i];
	}else{
		$chkshou[$i] = 0;
		$shouSeq[$i] = 0;
	}
}

//デバッグ
//echo("mode:".$mode." shouSeq[0]:".$shouSeq[0]." shouSeq[1]:".$shouSeq[1]." shouSeq[3]:".$shouSeq[3]."<br>");

if($mode == "add"){
	//新規
	//部門テーブルINSERT
	//seq設定
	$strSQL = "SELECT * FROM bumon_tbl ORDER BY bumon_seq DESC";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 0){
		$objData = pg_fetch_object($objRec, 0);
		$newSeq = $objData->bumon_seq + 1;

		//disp_rank
		$strSQL2 = "SELECT * FROM bumon_tbl ORDER BY disp_rank DESC";
		$objRec2 = pg_exec($strSQL2);
		if($objRec2==false){
			echo("SQL実行に失敗しました(SELECT)");
			exit;
		}
		if(pg_numrows($objRec2) > 0){
			$objData2 = pg_fetch_object($objRec2, 0);
			$newRank = $objData->disp_rank + 1;
		}

	}else{
		$newSeq = 1;
		$newRank = 1;
	}
	$strSQL = "INSERT INTO bumon_tbl (bumon_seq, bumon_name, disp_rank, all_flg) ";
	$strSQL .= "VALUES (".$newSeq.", '".$bname."', ".$newRank.", ".$allflg.")";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(INSERT)");
		exit;
	}

	//権限テーブルINSERT
	$ret = kengenIns($allCnt, $newSeq, $shouSeq );

}else if($mode == "edt"){
	//修正
	$strSQL = "UPDATE bumon_tbl SET bumon_name = '".$bname."', all_flg = ".$allflg ;
	$strSQL .= " WHERE bumon_seq = ".$bseq ;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

	//権限テーブルINSERT
	$ret = kengenIns($allCnt, $bseq, $shouSeq );

}else if($mode == "del"){

	//削除
	$strSQL = "SELECT * FROM bumon_tbl ORDER BY bumon_seq DESC";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 1){
		//部門削除
		$strSQL = "DELETE FROM bumon_tbl WHERE bumon_seq = ".$bseq;
//デバグ
//echo($strSQL."<br>");
		$objRec = pg_exec($strSQL);
		if($objRec==false){
			echo("SQL実行に失敗しました(DELETE)");
			exit;
		}
	}

	//権限テーブルINSERT
	$ret = kengenIns(0, $bseq, $shouSeq );

}else if($mode == "up" || $mode == "down"){

	if($mode == "up"){				//上へ
		$addNum = -1;
	}else if($mode == "down"){		//下へ
		$addNum = 1;
	}

	//変更対象のレコード取得
	$strSQL = "SELECT * FROM bumon_tbl ORDER BY disp_rank";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 0){
		for ($i = 0; $i < pg_numrows($objRec); $i++) {
			//親Seqが同じレコードを配列に格納
			$objDspRec[$i] = pg_fetch_object($objRec, $i);
			$dspSeq[$i] = $objDspRec[$i]->bumon_seq ;
			$dspRnk[$i] = $objDspRec[$i]->disp_rank ;
//デバッグ
//echo($i." : ".$dspRnk[$i]." : ".$dspSeq[$i]." : ".$bseq."<br>");
			if ($dspSeq[$i] == $bseq) {
				//自分が何番目かを取得
				$ownCnt = $i ;
			}
		}
	}
//デバッグ
//echo($ownCnt." : ".$dspRnk[$ownCnt]." : ".$dspSeq[$ownCnt]);

	//変更対象の↑のデータ更新
	$strSQL  = "UPDATE bumon_tbl SET disp_rank = ".$dspRnk[$ownCnt]." ";
	$strSQL .= " WHERE bumon_seq = ".$dspSeq[$ownCnt+$addNum] ;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}
	//変更対象のデータ更新
	$strSQL  = "UPDATE bumon_tbl SET disp_rank = ".$dspRnk[$ownCnt+$addNum]." ";
	$strSQL .= " WHERE bumon_seq = ".$dspSeq[$ownCnt];
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(UPDATE)");
		exit;
	}

}

function kengenIns($allCnt, $bseq, $shouSeq ){
	//権限テーブルINSERT
	$newSeq = 0;

	//kengen_seq DELETE
	$strSQL = "DELETE FROM kengen_tbl WHERE bumon_seq = ".$bseq ;
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(DELETE)");
		exit;
	}

	//kengen_seq取得
	$strSQL = "SELECT * FROM kengen_tbl ORDER BY kengen_seq DESC";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if(pg_numrows($objRec) > 0){
		$objData = pg_fetch_object($objRec, 0);
		$newSeq = $objData->kengen_seq + 1;
	}else{
		$newSeq = 1;
	}

	for ($i = 0; $i < $allCnt; $i++) {
		if ($shouSeq[$i] > 0){
			//INSERT
			$strSQL = "INSERT INTO kengen_tbl (kengen_seq, bumon_seq, koumoku_seq) ";
			$strSQL .= "VALUES (".$newSeq.", '".$bseq."', ".$shouSeq[$i].")";
			$objRec = pg_exec($strSQL);
			if($objRec==false){
				echo("SQL実行に失敗しました(INSERT)");
				exit;
			}
			$newSeq = $newSeq + 1;
		}
	}
	
	return true;
}


?>

<html>
<head>
<meta http-equiv="content-type" content="text/html; cahrset=euc-jp">
<meta http-equiv="content-style-type" content="text/css">
<meta name="robots" content="noindex, nofollow">
<title></title>
<script language="javascript">
function trans(){
	document.frm.action = "SIM0960.php";
	document.frm.method="POST";
	document.frm.submit();
}
</script>
</head>
<body onload="trans();">
<form name="frm">
<input type="hidden" name="idx" value="<?PHP  echo $_POST["idx"]?>">
</form>
</body>
</html>