SIM0200.php 11.5 KB
<?PHP 
//*****************************************************************************
//* プログラム名:入金画面
//* プログラムID:SIM0200.php
//* 機能        :入金画面
//*****************************************************************************
header("Content-type: text/html; charset=EUC-JP");
include("./inc/session_start.inc");
include("./inc/SessionChk.inc");
include("./inc/dbcon.inc");
include('./inc/smarty.conf');
include("./inc/const.inc");
include("./inc/pagetitle.inc");
include("./inc/pagefooter.inc");

$yyyy = $_POST["yyyy"];         //年
$bSeq = $_POST["bSeq"];         //期間区分シーケンスNo.
$dSeq = $_POST["dSeq"];         //項目シーケンスNo.
$chgmode = $_GET["chgmode"];    //絞込みモード
$bFlg = $_GET["back"];        //入力画面から遷移フラグ
$sMode = $_POST["sMode"];       //収支モード
$bumon = $PHP_BUMON_SEQ;

//メニューボックスの年取得
if($yyyy == False){
	$yyyy = date("Y");
}
$lstY = year_lst($yyyy);

//メニューボックスの分類名取得
if ($bFlg ==="1") {
	$bunrui = edit_bunrui("999");
}else{
	$bunrui = edit_bunrui($bSeq);
}

//メニューボックスの大項目取得
if ($chgmode === "b") {
	$dkoumoku = edit_dai($bumon, $bSeq, "999");
}elseif($bFlg ==="1") {
	$dkoumoku = edit_dai($bumon, "999", "999");
}else{
	$dkoumoku = edit_dai($bumon, $bSeq, $dSeq);
}

//デバッグ
//echo("sMode".$sMode."<br>");

//初回表示時全件表示
if ($bSeq == False || $bFlg == 1){
	$bSeq = "999";
}
if ($dSeq == False || $bFlg == 1){
	$dSeq = "999";
}

$strSQL = "";

//デバッグ
//echo("bSeq:".$bSeq." dseq:".$dSeq." cseq:".$cSeq." chgmode:".$chgmode."bFlg:".$bFlg."<br>");

//収支切替・更新
if ($bSeq == True && $dSeq == True) {

	$strSQL = "SELECT bt.bunrui_seq, bt.bunrui_name, kt.koumoku_seq AS kt_seq, kt.koumoku_name AS kt_name, ";
	$strSQL .= "kt2.koumoku_seq AS kt2_seq, kt2.koumoku_name AS kt2_name ";
	$strSQL .= "FROM bunrui_tbl AS bt INNER JOIN koumoku_tbl AS kt ON (bt.bunrui_seq = kt.koumoku_parent) ";
	$strSQL .= "INNER JOIN koumoku_tbl AS kt2 ON (kt.koumoku_seq = kt2.koumoku_parent) ";
	$strSQL .= "INNER JOIN kengen_tbl AS ken ON (ken.koumoku_seq = kt2.koumoku_seq) ";
	$strSQL .= "WHERE kt.koumoku_mode = 1 AND kt2.koumoku_mode = 2 AND ken.bumon_seq = ".$bumon." " ;

	//入力画面からの遷移時、全件表示
	if ($bFlg == False){
		//分類の絞込み
		if ($bSeq !== "999") {
			$strSQL .= "AND bt.bunrui_seq = ". $bSeq ." ";
			//大項目の絞込み
			if ($chgmode !== "b") {
				if ($dSeq !== "999") {
					$strSQL .= "AND kt.koumoku_seq = ". $dSeq ." ";
				}
			}
		}
	}
	$strSQL .= "ORDER BY bt.disp_rank, kt.disp_rank, kt2.disp_rank";
}

$objRec = pg_exec($strSQL);
if($objRec==false){
	echo("SQL実行に失敗しました(SELECT)");
	exit;
}
$bSeq = 0;
$dSeq = 0;

//デバッグ
//echo("<br> SQL:".$strSQL."num_rows ".pg_num_rows($objRec));

if(pg_num_rows($objRec) > 0){
	//レコード取得
	for ($i = 0; $i < pg_numrows($objRec); $i++) {
	
		$objData = pg_fetch_object($objRec, $i);
		$objTabDat[$i] = $objData;
		$cSeqDisp[$i] = intval($objData->kt2_seq);
		$cNameDisp[$i] = $objData->kt2_name;

//デバッグ
//echo(" <BR>cSeq:".$cSeqDisp[$i]."←".$objData->kt2_seq." cName:".$cNameDisp[$i]."←".$objData->kt2_name." <BR>");

		if ($sMode == 1 || $sMode == False){
			//収入 金額の取得
			$strSQL2 = "select * from nyukin_tbl where koumoku_seq = ".$cSeqDisp[$i]." and nyukin_year = ".$yyyy." and nyukin_mode = 1 order by nyukin_month";
			$objRec2 = pg_exec($strSQL2);
			if($objRec2==false){
				echo("SQL実行に失敗しました(SELECT)");
				exit;
			}
			for ($j = 0; $j < pg_numrows($objRec2); $j++) {
				$objData2 = pg_fetch_object($objRec2, $j);
				$dataIn[$i][$j] = number_format($objData2->nyukin_data);

				//コメントの取得
				$jbuff = intval($j)+1;
				$strSQL3 = "SELECT * FROM comment_tbl WHERE koumoku_seq = ".$cSeqDisp[$i]." AND nyukin_year = ".$yyyy." AND nyukin_month = ".$jbuff." AND nyukin_mode = 1 ORDER BY nyukin_month";
				$objRec3 = pg_exec($strSQL3);
				if(pg_numrows($objRec3) > 0){
					$objData3 = pg_fetch_object($objRec3, 0);
					$CommentIn[$i][$j] = $objData3->comment_text;

//echo("<br>SQL3:".$strSQL3);
//echo(" ".$objRec3->comment_text." com".$i."/".$j.":".$CommentIn[$i][$j]." ");

				}
			}
			
		}elseif ($sMode == 2){
			//支出
			$strSQL2 = "select * from nyukin_tbl where koumoku_seq = ".$cSeqDisp[$i]." and nyukin_year = ".$yyyy." and nyukin_mode = 2 order by nyukin_month";
			$objRec2 = pg_exec($strSQL2);
			if($objRec2==false){
				echo("SQL実行に失敗しました(SELECT)");
				exit;
			}
			for ($j = 0; $j < pg_numrows($objRec2); $j++) {
				$objData2 = pg_fetch_object($objRec2, $j);
				$dataOut[$i][$j] = number_format($objData2->nyukin_data);

				//コメントの取得
				$ibuff = intval($j)+1;
				$strSQL3 = "SELECT * FROM comment_tbl WHERE koumoku_seq = ".$cSeqDisp[$i]." AND nyukin_year = ".$yyyy." AND nyukin_month = ".$ibuff." AND nyukin_mode = 2 ORDER BY nyukin_month";
				$objRec3 = pg_exec($strSQL3);
				if(pg_numrows($objRec3) > 0){
					$objData3 = pg_fetch_object($objRec3, 0);
					$CommentOut[$i][$j] = $objData3->comment_text;
				
				}
			}
		}
	}
	//表の縦の行数取得
	$cCnt = pg_num_rows($objRec);
}

//金額単位取得
$strSQL = "select * from start_tbl";
$objRec = pg_exec($strSQL);
if($objRec==false){
	echo("SQL実行に失敗しました(SELECT)");
	exit;
}
if(pg_numrows($objRec)>0){
	$objData = pg_fetch_object($objRec, 0);
	$sUnit  = $objData->start_unit;

	switch ($sUnit) {
	    case 0:
	        $sUnitName = "円";
	        break;
	    case 1:
	        $sUnitName = "千円";
	        break;
	    case 2:
	        $sUnitName = "万円";
	        break;
	}

}else{
	$sUnitName  = "";
}

//HTMLヘッダの書き出し
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 

<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">
	<script type="text/javascript" src="./js/jquery1.3.2.js"></script>
	<script type="text/javascript" src="./js/jquery-ui-1.7.1.custom.min.js"></script>
	<script type="text/javascript" src="./js/jquery.tipsy.js"></script>
	<script type="text/javascript" src="./js/SIM0200.js"></script>
	<title><?PHP  echo($PHP_SYSNAME); ?></title>
	<link type="text/css" href="./templates/jquery-ui-1.7.1.css" rel="stylesheet" />
	<link type="text/css" href="./templates/tipsy.css" rel="stylesheet" />
	<link rel="stylesheet" href="./templates/SIMmain.css" type="text/css" />
</head>
<?PHP 

//タイトル部分の表示
dspTitle($PHP_SYSNAME, $PHP_GROUP_NAME, $PHP_BUMON_NAME, $PHP_USER_NAME, "0200");

//メインHTML部分の表示
//[0]システムURL、[1]HP URL、[2]マニュアルURL、[3]MTC HP URL、[4]マスタメールアドレス、
//[5]期間区分名、[6]大区分名、[7]小区分名、[8]支出名、[9]収入名、[10]消費税率(文字型)
$o_smarty->assign('DEFARR',$DEFARR);

$o_smarty->assign('PHP_SYSNAME',$PHP_SYSNAME);
$o_smarty->assign('PHP_GROUP_NAME',$PHP_GROUP_NAME);
$o_smarty->assign('PHP_BUMON_NAME',$PHP_BUMON_NAME);
$o_smarty->assign('PHP_USER_NAME',$PHP_USER_NAME);
$o_smarty->assign('PHP_USER_ADMIN',$PHP_USER_ADMIN);
$o_smarty->assign('PHP_USER_NYUKIN',$PHP_USER_NYUKIN);
$o_smarty->assign('PHP_USER_SHIKIN',$PHP_USER_SHIKIN);
$o_smarty->assign('START_YEAR',$START_YEAR);
$o_smarty->assign('START_MONTH',$START_MONTH);

$o_smarty->assign('lstY',$lstY);

$o_smarty->assign('sUnitName',$sUnitName);
$o_smarty->assign('bSeq',$bSeq);
$o_smarty->assign('bunrui',$bunrui);

$o_smarty->assign('dSeq',$dSeq);
$o_smarty->assign('dkoumoku',$dkoumoku);

$o_smarty->assign('cCnt',$cCnt);
$o_smarty->assign('cSeq',$cSeqDisp);
$o_smarty->assign('cName',$cNameDisp);

$o_smarty->assign('sMode',$sMode);

$o_smarty->assign('objTabDat',$objTabDat);

$o_smarty->assign('dataIn',$dataIn);
$o_smarty->assign('dataOut',$dataOut);
$o_smarty->assign('CommentIn',$CommentIn);
$o_smarty->assign('CommentOut',$CommentOut);

$o_smarty->display('SIM0200.tpl');

//フッタ部分の表示
dspFooter($DEFARR[1], $DEFARR[3]);


//関数
function year_lst($prm){
	$ret = "";
	for($i=($prm-2);$i<=($prm+2);$i++){
		if($i==$prm){
			$ret .= "<option value='".$i."' selected>".$i."</option>";
		}else{
			$ret .= "<option value='".$i."'>".$i."</option>";
		}
	}
	return $ret;
}

function edit_bunrui($prm){
	$strSQL = "select * from bunrui_tbl order by disp_rank";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	for ($j = 0; $j < pg_numrows($objRec); $j++) {
		$objData = pg_fetch_object($objRec, $j);
		$bSeq[$j] = $objData->bunrui_seq;
		$bName[$j] = $objData->bunrui_name;
	}
	//引数が空のとき、全件取得
	if ($prm == false){
		$prm = 999;
	}
	
	$ret = "";
	for($i=0;$i<count($bSeq);$i++){
		if($bSeq[$i] == $prm){
			$ret .= "<option value='".$bSeq[$i]."' selected>".$bName[$i]."</option>";
		}else{
			$ret .= "<option value='".$bSeq[$i]."'>".$bName[$i]."</option>";
		}
	}
	if (999 == $prm) {
		$ret .= "<option value="."\"999\""." selected>全て</option>";
	}else{
		$ret .= "<option value="."\"999\"".">全て</option>";
	}
	
	return $ret;
}

//大区分セレクトメニュー作成
function edit_dai($bumon, $prm, $prm2){
	
	$ret = "";

	//親シーケンスNo.が無いとき、全件取得
	if ($prm==FALSE) {
		$prm = 999;
	}

	if ($prm!="999") {
		
		$strSQL  = "SELECT DISTINCT kou1.koumoku_seq, kou1.koumoku_name ";
		$strSQL .= "FROM koumoku_tbl AS kou2 ";
		$strSQL .= "INNER JOIN koumoku_tbl AS kou1 ON (kou1.koumoku_seq = kou2.koumoku_parent) ";
		$strSQL .= "INNER JOIN kengen_tbl AS ken ON (ken.koumoku_seq = kou2.koumoku_seq) ";
		$strSQL .= "WHERE ";
		$strSQL .= "kou1.koumoku_parent = ".$prm." AND ";
		$strSQL .= "kou2.koumoku_mode = 2 AND ";
		$strSQL .= "kou1.koumoku_mode = 1 AND ";
		$strSQL .= "ken.bumon_seq = ".$bumon." " ;
//		$strSQL .= "ORDER BY kou2.disp_rank";

		$objRec = pg_exec($strSQL);
		if($objRec==false){
			echo("SQL実行に失敗しました(SELECT)");
			exit;
		}
		for ($j = 0; $j < pg_numrows($objRec); $j++) {
			$objData = pg_fetch_object($objRec, $j);
			$kSeq[$j] = $objData->koumoku_seq;
			$kName[$j] = $objData->koumoku_name;
		}

		for($i=0;$i<count($kSeq);$i++){
			if($kSeq[$i] == $prm2){
				$ret .= "<option value='".$kSeq[$i]."' selected>".$kName[$i]."</option>";
			}else{
				$ret .= "<option value='".$kSeq[$i]."'>".$kName[$i]."</option>";
			}
		}
	}
	
	if($prm2 === "999" || $prm === "999"){
		$ret .= "<option value=\"999\" selected>全て</option>";
	}else{
		$ret .= "<option value=\"999\">全て</option>";
	}
	
	return $ret;
}
	
//先頭の分類シーケンスNo.を取得
function get_bunrui_head($prm){
	
	$strSQL = "select * from bunrui_tbl order by disp_rank";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if (pg_numrows($objRec) > 0) {
		$objData = pg_fetch_object($objRec, 0);
		$ret = $objData->bunrui_seq;
	}
	
	return $ret;
}
	
//期間中で先頭となる大項目シーケンスNo.を取得(引数:部門seq,分類Seq、返り値:大項目Seq)
function get_dai_head($bumon, $prm){

	$strSQL = "SELECT * FROM koumoku_tbl WHERE koumoku_mode = 1 AND koumoku_parent = ".$prm." ORDER BY disp_rank";

		$strSQL  = "SELECT kou1.koumoku_seq, kou1.koumoku_name, kou2.koumoku_seq, kou2.koumoku_name ";
		$strSQL .= "FROM koumoku_tbl AS kou1 ";
		$strSQL .= "INNER JOIN koumoku_tbl AS kou2 ON (kou2.koumoku_parent = kou1.koumoku_seq) ";
		$strSQL .= "INNER JOIN kengen_tbl AS ken ON (kou2.koumoku_seq = ken.koumoku_seq) ";
		$strSQL .= "WHERE ";
		$strSQL .= "kou1.koumoku_mode = 1 AND kou1.koumoku_parent = ".$prm." AND ";
		$strSQL .= "kou2.koumoku_mode = 2 AND ken.bumon_seq = ".$bumon." ";
		$strSQL .= "ORDER BY disp_rank ";
	$objRec = pg_exec($strSQL);
	if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
	}
	if (pg_numrows($objRec) > 0) {
		$objData = pg_fetch_object($objRec, 0);
		$ret = $objData->koumoku_seq;
	}

	return $ret;
}

?>