ZIS0300.php 9.1 KB
<?PHP 
//*****************************************************************************
//* プログラム名:資金損益&財務運用表 月単位
//* プログラムID:ZIS0300.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");

//表示年月
$disp_y = $ZIS_cboY;
$disp_m = $ZIS_cboM;
if($disp_y == ""){
	$disp_y = date("Y");
}
if($disp_m == ""){
	$disp_m = date("n");
}
//年月リスト
$lstY  = "";
for($i=-2;$i<=2;$i++){
	if(($disp_y+$i) == $disp_y){
		$lstY .= "<option value='".($disp_y+$i)."' selected>".($disp_y+$i)."</option>";
	}else{
		$lstY .= "<option value='".($disp_y+$i)."'>".($disp_y+$i)."</option>";
	}
}
$lstM  = "";
for($i=1;$i<=12;$i++){
	if($i == $disp_m){
		$lstM .= "<option value='".($i)."' selected>".($i)."</option>";
	}else{
		$lstM .= "<option value='".($i)."'>".($i)."</option>";
	}
}

//基本データ
$strSQL = "SELECT * FROM z_mst_base";
$objRec = pg_exec($strSQL);
if($objRec==false){
	echo("SQL実行に失敗しました(SELECT)");
	exit;
}
if(pg_numrows($objRec)==0){
	echo("SQL実行に失敗しました(SELECT:0)");
	header("Location:./ZIS9900.php");
	exit;
}
$objData = pg_fetch_object($objRec, 0);
//金額単位
$zis_unit = $objData->unit_flg;
$strUnit = get_unit($zis_unit);
$numUnit = get_unitNum($zis_unit);
//決算翌月
if($objData->kessan_month == 12){
	$start_m = 1;
}else{
	$start_m = $objData->kessan_month + 1;
}
//決算翌月の年
if($start_m > $disp_m){
	$start_y = $disp_y - 1;
}else{
	$start_y = $disp_y;
}
//最初の月?
if($start_m == $disp_m){
	$dispStart = 1;
}else{
	$dispStart = 0;
}

//集計タイトル取得
$strSQL = "SELECT * FROM z_mst_title ORDER BY title_seq";
$objRec = pg_exec($strSQL);
if($objRec==false){
	echo("SQL実行に失敗しました(SELECT)");
	exit;
}
$strTITLE = "";
for($i=0;$i<pg_numrows($objRec);$i++){
	$objData = pg_fetch_object($objRec, $i);
	$strTITLE[$i][0] = $objData->title_seq;
	$strTITLE[$i][1] = $objData->title_name;
//echo $strTITLE[$i][0]." : ".$strTITLE[$i][1]."<br>";
}


/*
 0:[ 0] 1売上収入
 1:[ 1] 2原価
 2:[ 2] 3販管費
 3:[--] 4営業損益(計算値)		=1-(2+3)		判別No.101
 4:[ 3] 5営業外損益
 5:[--] 6経常損益(計算値)		=4+5			判別No.102
 6:[ 4] 7特別損益
 7:[ 5] 8法人税等資金
 8:[--] 9資金純損益(計算値)	=6+7-8			判別No.103
 9:[ 6]10資金運用
10:[ 7]11他流動資産
11:[ 8]12設備資金
12:[--]13資金支出計(計算値)	=10+11+12		判別No.104
13:[ 9]14他流動負債
14:[10]15消費税管理
15:[11]16借入金
16:[12]17自己資金
17:[--]18資金調達計(計算値)	=14+15+16+17	判別No.105
18:[13]19現預金
19:[--]20現預金(計算値)		=9+13+18		判別No.106
*/
//順番
$arrSrt = array(0,1,2,101,3,102,4,5,103,6,7,8,104,9,10,11,12,105,13,106);
$strData = "";	//[0]:初期金額 [1]:当月残高 [2]:当月(期)増減 [3]:名称
for($i=0;$i<count($arrSrt);$i++){
//echo $arrSrt[$i]."<br>"	   ;

	switch ($arrSrt[$i]) {
    case 101:	//営業損益
		$strData[$i][0] = $strData[0][0] - ($strData[2][0] + $strData[3][0]);
		$strData[$i][1] = $strData[0][1] - ($strData[2][1] + $strData[3][1]);
		$strData[$i][3] = "営業損益";
        break;
    case 102:	//経常損益
		$strData[$i][0] = $strData[3][0] + $strData[4][0];
		$strData[$i][1] = $strData[3][1] + $strData[4][1];
		$strData[$i][3] = "経常損益";
        break;
    case 103:	//資金純損益
		$strData[$i][0] = $strData[5][0] + $strData[6][0] - $strData[7][0];
		$strData[$i][1] = $strData[5][1] + $strData[6][1] - $strData[7][1];
		$strData[$i][3] = "資金純損益";
        break;
    case 104:	//資金支出計
		$strData[$i][0] = $strData[9][0] + $strData[10][0] + $strData[11][0];
		$strData[$i][1] = $strData[9][1] + $strData[10][1] + $strData[11][1];
		$strData[$i][3] = "資金支出計";
        break;
    case 105:	//資金調達計
		$strData[$i][0] = $strData[13][0] + $strData[14][0] + $strData[15][0] + $strData[16][0];
		$strData[$i][1] = $strData[13][1] + $strData[14][1] + $strData[15][1] + $strData[16][1];
		$strData[$i][3] = "資金調達計";
        break;
    case 106:	//現預金(計算値)
		$strData[$i][0] = $strData[8][0] + $strData[12][0] + $strData[17][0];
		$strData[$i][1] = $strData[8][1] + $strData[12][1] + $strData[17][1];
		$strData[$i][3] = "現預金(算出値)";
        break;
    default:
		$strSQL  = "SELECT ";
		$strSQL .= " z_mst_kanjo.kseq1, ";
		$strSQL .= " z_mst_kanjo.kseq2, ";
		$strSQL .= " z_mst_kanjo.kseq3, ";
		$strSQL .= " z_mst_kanjo.kseq4, ";
		$strSQL .= " z_mst_kanjo.kseq5, ";
		$strSQL .= " z_mst_kanjo.kanjo_name, ";
		$strSQL .= " z_mst_kanjo.ptn_flg, ";
		$strSQL .= " T1.data_seq, ";
		$strSQL .= " T1.data_money, ";
		$strSQL .= " T2.base_money ";
		$strSQL .= "FROM ";
		$strSQL .= " z_mst_kanjo ";
		$strSQL .= "LEFT JOIN ";
		$strSQL .= " z_monthly_data AS T1 ";
		$strSQL .= "ON ";
		$strSQL .= " z_mst_kanjo.kseq1 = T1.cseq1 AND ";
		$strSQL .= " z_mst_kanjo.kseq2 = T1.cseq2 AND ";
		$strSQL .= " z_mst_kanjo.kseq3 = T1.cseq3 AND ";
		$strSQL .= " z_mst_kanjo.kseq4 = T1.cseq4 AND ";
		$strSQL .= " z_mst_kanjo.kseq5 = T1.cseq5 AND ";
		$strSQL .= " T1.data_year = ".$disp_y." AND ";
		$strSQL .= " T1.data_month = ".$disp_m." ";
		$strSQL .= "LEFT JOIN ";
		$strSQL .= " z_monthly_data AS T2 ";
		$strSQL .= "ON ";
		$strSQL .= " z_mst_kanjo.kseq1 = T2.cseq1 AND ";
		$strSQL .= " z_mst_kanjo.kseq2 = T2.cseq2 AND ";
		$strSQL .= " z_mst_kanjo.kseq3 = T2.cseq3 AND ";
		$strSQL .= " z_mst_kanjo.kseq4 = T2.cseq4 AND ";
		$strSQL .= " z_mst_kanjo.kseq5 = T2.cseq5 AND ";
		$strSQL .= " T2.data_year = ".$start_y." AND ";
		$strSQL .= " T2.data_month = ".$start_m." ";
		$strSQL .= "WHERE ";
		$strSQL .= " z_mst_kanjo.use_flg = 1 AND ";
		$strSQL .= " z_mst_kanjo.title_seq = ".$strTITLE[$arrSrt[$i]][0]." ";
		$objRec = pg_exec($strSQL);
		if($objRec==false){
			echo("SQL実行に失敗しました(SELECT)");
			exit;
		}
		$strData[$i][0] = 0;
		$strData[$i][1] = 0;
		$strData[$i][2] = 0;
		$strData[$i][3] = $strTITLE[$arrSrt[$i]][1];
		if(pg_numrows($objRec) > 0){
			for($j=0;$j<pg_numrows($objRec);$j++){
				$objData = pg_fetch_object($objRec, $j);
				$strData[$i][0] = $strData[$i][0] + NtoZ($objData->base_money);
				$strData[$i][1] = $strData[$i][1] + get_PM($objData->ptn_flg) * NtoZ($objData->data_money);
			}
		}
	}
	
	$strData[$i][2] = $strData[$i][1] - $strData[$i][0];

/*
echo $strData[$i][3]."<br>";
echo $strData[$i][0]."<br>";
echo $strData[$i][1]."<br>";
echo $strData[$i][2]."<hr>";
*/

}

for($i=0;$i<count($strData);$i++){
	$strData[$i][0] = number_format(floor($strData[$i][0] / $numUnit));
	$strData[$i][1] = number_format(floor($strData[$i][1] / $numUnit));
	$strData[$i][2] = number_format(floor($strData[$i][2] / $numUnit));
}

$o_smarty->assign('strUnit',$strUnit);
$o_smarty->assign('strData',$strData);
$o_smarty->assign('lstY',$lstY);
$o_smarty->assign('lstM',$lstM);

//*** 単位取得 ***//
function get_unit($ptn_flg) { 
		$strReturn = "";
		switch ($ptn_flg) {
		case "1": $strReturn = "千"; break;
		case "2": $strReturn = "万"; break;
		default : $strReturn = "円"; break;
		}
		return $strReturn;
}
//*** 単位計算値 ***//
function get_unitNum($ptn_flg) { 
		$strReturn = "";
		switch ($ptn_flg) {
		case "1": $strReturn = 1000; break;
		case "2": $strReturn = 10000; break;
		default : $strReturn = 1; break;
		}
		return $strReturn;
}

function NtoZ($prm){
//Nullと空文字をゼロに置き換えます
	if(is_null($prm) || trim($prm) == "" ){
		return 0;
	}else{
		return $prm;
	}
}
function get_PM($flg){
//加算の正負を取得する関数です
	if($flg == 1){
		return -1;
	}else if($flg == 2){
		return 1;
	}else{
		return 0;	
	}
}

//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/ZIS0300.js"></script>
	<script type="text/javascript" src="./js/input_chk.js"></script>
	<title><?PHP  echo($PHP_SYSNAME); ?></title>
	<link rel="stylesheet" href="./templates/SIMmain.css" type="text/css" />
	<link rel="stylesheet" href="./templates/css/ZIS.css" type="text/css" />
</head>
<?PHP 

//タイトル部分の表示
dspTitle($PHP_SYSNAME, $PHP_GROUP_NAME, $PHP_BUMON_NAME, $PHP_USER_NAME, "http://www.f-mtclab.net/article/149565245.html#help0");

//メイン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('PHP_USER_SEQ',$PHP_USER_SEQ);

$o_smarty->assign('User_Sikaku' , $User_Sikaku);				//入力資格

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

//フッタ部分の表示
dspFooter($DEFARR[1], $DEFARR[3],"http://www.f-mtclab.net/article/149565245.html#help0");
?>