RCV1020.php 8.98 KB
<?PHP 
//*****************************************************************************
//* プログラム名:請求・入金管理
//* プログラムID:RCV1020.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');

$gyousya_id   = $_POST["gyousya_id"];
$gyoumu_id    = $_POST["gyoumu_id"];
$seikyu_date  = $_POST["seikyu_date"];
$cboMode      = $_POST["cboMode"];

//モード 1:売上 2:外注
$uriageMode = $_POST["uriageMode"];

//*** 請求・入金初期情報 ***//
$strSQL = "SELECT * FROM rcv_kanri WHERE kanri_id=1";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}
if(pg_numrows($objRec)>0){
		$objData  = pg_fetch_object($objRec, 0);
		$RCV_MODE = $objData->kanri_data;
}else{
		$RCV_MODE = "0";
}

//*** 基本情報 ***//
$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);
	$start_unit = $objData->start_unit;
}else{
	$start_unit = "0";
}

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

switch ($uriageMode) {
case "1":
		$LstHead = "入金";
		break;

case "2":
		$LstHead = "支払";

		break;
}

//*** 請求情報(該当期間の請求金額) ***//
$strSQL  = "SELECT";
$strSQL .= " * ";
$strSQL .= "FROM ";
$strSQL .= " rcv_tbl, ";
$strSQL .= " mst_gyousya ";
$strSQL .= "WHERE ";
$strSQL .= " rcv_tbl.rcv_seikyukbn    = ".$uriageMode."      AND ";
$strSQL .= " rcv_tbl.rcv_gyousya_id = mst_gyousya.gyousya_id AND ";
$strSQL .= " rcv_area_id      = ".$area_id."                 AND ";
$strSQL .= " rcv_gyoumu_id    = ".$gyoumu_id."               AND ";
if ($cboBunrui==""){
		switch ($cboMode) {
		case "1":
				$strSQL .= " seikyu_kigen >='".$seikyu_date."/01' AND ";
				$strSQL .= " seikyu_kigen <='".$seikyu_date."/99' ";
				break;
		case "2":
				$strSQL .= " (";
				$strSQL .= "  (";
				$strSQL .= "   nyukin_date >='".$seikyu_date."/01' AND ";
				$strSQL .= "   nyukin_date <='".$seikyu_date."/99' ";
				$strSQL .= "  )";
				$strSQL .= "  OR ";
				$strSQL .= "  (";
				$strSQL .= "  nyukin_date = '' AND ";
				$strSQL .= "  seikyu_kigen >='".$seikyu_date."/01' AND ";
				$strSQL .= "  seikyu_kigen <='".$seikyu_date."/99' ";
				$strSQL .= "  ) ";
				$strSQL .= " )";
				break;
		}
}else{
		$strSQL .= DateGet($cboBunrui,$cboMode,$seikyu_date);
}
$strSQL .= " ORDER BY ";
//$strSQL .= "  rcv_tbl.rcv_gyousya_id, ";
$strSQL .= "  mst_gyousya.gyousya_name, ";
$strSQL .= "  rcv_seikyukbn ";
$objRec = pg_exec($strSQL);
if($objRec==false){
		echo("SQL実行に失敗しました(SELECT)");
		exit;
}

for ($intI = 0; $intI < pg_numrows($objRec); $intI++) {
		$objData = pg_fetch_object($objRec, $intI);
		$rcv_id[$intI]        = $objData->rcv_id;
		if ($objData->rcv_seikyukbn=="1"){
				$seikyukbn[$intI] = "入金";
		}else{
				$seikyukbn[$intI] = "出金";
		}
		
		$gyousya_name[$intI]  = $objData->gyousya_name;
		$seikyu_money[$intI]  = $objData->seikyu_money;
		$seikyu_kigen[$intI]  = substr($objData->seikyu_kigen,2);
		$nyukin_money[$intI]  = $objData->nyukin_money;
		$nyukin_date[$intI]   = substr($objData->nyukin_date,2);
		if($RCV_MODE == "0"){
			if ($objData->nyukin_date==""){
					$nyuukin_color[$intI] = "ConfKubunRdTd";
			}else{
					$nyuukin_color[$intI] = "ConfKubunTd";
			}
		}else{
			$nyuukin_color[$intI] = "ConfKubunTd";
		}
		$seikyu_memo[$intI]   = str_replace("\n", "<BR>", $objData->memo_txt);
}

$o_smarty->assign('Money_Tani' , $Money_Tani);				//金額単位
$o_smarty->assign('RCV_MODE'   , $RCV_MODE);					//請求管理モード

$o_smarty->assign('LstHead'    , $LstHead);						//一覧タイトル

$o_smarty->assign('div_id'    ,  $div_id);							// DIVの場所

$o_smarty->assign('rcv_id'        , $rcv_id);						// キー
$o_smarty->assign('gyousya_name'  , $gyousya_name);			// 業者名
$o_smarty->assign('seikyukbn'     , $seikyukbn);				// 請求区分

$o_smarty->assign('seikyu_money'  , $seikyu_money);			// 請求金額
$o_smarty->assign('seikyu_kigen'  , $seikyu_kigen);			// 請求期限
$o_smarty->assign('nyukin_money'  , $nyukin_money);			// 入金額
$o_smarty->assign('nyukin_date'   , $nyukin_date);			// 入金日
$o_smarty->assign('seikyu_memo'   , $seikyu_memo);			// メモ
$o_smarty->assign('nyuukin_color' , $nyuukin_color);		// 色

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

function DateGet($Ptn,$Mode,$strYm){
		$strReturn = "";

		//日付パターン取得
		$strSQL = "SELECT * FROM bunrui_tbl WHERE bunrui_seq = ".$Ptn;
		$objDateRec = pg_exec($strSQL);
		if($objDateRec==false){
				echo("SQL実行に失敗しました(SELECT)");
				exit;
		}
		$objDateData = pg_fetch_object($objDateRec, 0);
		$bName       = $objDateData->bunrui_name;
		$bStart      = $objDateData->bunrui_start;
		$bEnd        = $objDateData->bunrui_end;

		if ($bStart == $bEnd){
				$DayValue = "";
				switch ($bStart) {
				case "98":
						$chkDate = split("/", $strYm);
						$Chk_Y = date("Y", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_M = date("m", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_D = date("d", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$DayValue = date("d", mktime (0,0,0,intval($Chk_M),intval($Chk_D)-2,$Chk_Y));

						break;
				case "99":
						$chkDate = split("/", $strYm);
						$Chk_Y = date("Y", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_M = date("m", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_D = date("d", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$DayValue = date("d", mktime (0,0,0,intval($Chk_M),intval($Chk_D)-1,$Chk_Y));

						break;
				default:
						$DayValue = $bStart;
						break;
				}

				switch ($Mode) {
				case "1":
						$strReturn = " seikyu_kigen ='".$strYm."/".sprintf('%02d', $DayValue)."' ";
						break;
				case "2":
						$strReturn .= " (";
						$strReturn .= "  (";
						$strReturn .= "    nyukin_date ='".$strYm."/".sprintf('%02d', $DayValue)."' ";
						$strReturn .= "  )";
						$strReturn .= "  OR ";
						$strReturn .= "  (";
						$strReturn .= "   nyukin_date = '' AND ";
						$strReturn .= "   seikyu_kigen ='".$strYm."/".sprintf('%02d', $DayValue)."' ";
						$strReturn .= "  ) ";
						$strReturn .= " )";
						break;
				}

		}else{
				$DayValue1 = "";
				switch ($bStart) {
				case "98":
						$chkDate = split("/", $strYm);
						$Chk_Y = date("Y", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_M = date("m", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_D = date("d", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$DayValue1 = date("d", mktime (0,0,0,intval($Chk_M),intval($Chk_D)-2,$Chk_Y));

						break;
				case "99":
						$chkDate = split("/", $strYm);
						$Chk_Y = date("Y", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_M = date("m", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_D = date("d", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$DayValue1 = date("d", mktime (0,0,0,intval($Chk_M),intval($Chk_D)-1,$Chk_Y));

						break;
				default:
						$DayValue1 = $bStart;
						break;
				}

				$DayValue2 = "";
				switch ($bEnd) {
				case "98":
						$chkDate = split("/", $strYm);
						$Chk_Y = date("Y", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_M = date("m", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_D = date("d", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$DayValue2 = date("d", mktime (0,0,0,intval($Chk_M),intval($Chk_D)-2,$Chk_Y));

						break;
				case "99":
						$chkDate = split("/", $strYm);
						$Chk_Y = date("Y", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_M = date("m", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$Chk_D = date("d", mktime (0,0,0,intval($chkDate[1])+1,"1",$chkDate[0]));
						$DayValue2 = date("d", mktime (0,0,0,intval($Chk_M),intval($Chk_D)-1,$Chk_Y));

						break;
				default:
						$DayValue2 = $bEnd;
						break;
				}

				switch ($Mode) {
				case "1":
						$strReturn .= " seikyu_kigen >='".$strYm."/".sprintf('%02d', $DayValue1)."' AND ";
						$strReturn .= " seikyu_kigen <='".$strYm."/".sprintf('%02d', $DayValue2)."' ";
						break;
				case "2":
						$strReturn .= " (";
						$strReturn .= "  (";
						$strReturn .= "   nyukin_date >='".$strYm."/".sprintf('%02d', $DayValue1)."' AND ";
						$strReturn .= "   nyukin_date <='".$strYm."/".sprintf('%02d', $DayValue2)."' ";
						$strReturn .= "  )";
						$strReturn .= "  OR ";
						$strReturn .= "  (";
						$strReturn .= "   nyukin_date = '' AND ";
						$strReturn .= "   seikyu_kigen >='".$strYm."/".sprintf('%02d', $DayValue1)."' AND ";
						$strReturn .= "   seikyu_kigen <='".$strYm."/".sprintf('%02d', $DayValue2)."' ";
						$strReturn .= "  ) ";
						$strReturn .= " )";
						break;
				}

		}

		return $strReturn;
}

?>