TOP901.php 11.3 KB
<?php 
//*****************************************************************************
//* 
//* プログラム名:スケジュールCSVファイル吐き出し
//* プログラムID:RPT093.php
//* 機能        :CSVファイルにデータを吐き出す
//* 作成者      :
//* 
//* Copyright (C) 2004 Media Tech Inc. All rights reserved.
//*****************************************************************************

//***************************
//* インクルードファイル
//***************************
include("include/session_start.inc");
include("include/SessionChk.inc");
include("include/jcode.phps");
$strDBinc="include/dbcon.inc";
include($strDBinc);

include('include/date.inc');

//****ユーザー関数****//
function GetWeekchange($strKijun,$strToday,$NowBiweekly){
		$NowWeek = $NowBiweekly;
		switch($strKijun){
			case 0:
				if($strToday == "6"){
					$NowWeek = $NowWeek - 1;
				}
				break;
			case 1:
				if($strToday == "0"){
					$NowWeek = $NowWeek - 1;
				}
				break;
			case 2:
				if($strToday == "1"){
					$NowWeek = $NowWeek - 1;
				}
				break;
			case 3:
				if($strToday == "2"){
					$NowWeek = $NowWeek - 1;
				}
				break;
			case 4:
				if($strToday == "3"){
					$NowWeek = $NowWeek - 1;
				}
				break;
			case 5:
				if($strToday == "4"){
					$NowWeek = $NowWeek - 1;
				}
				break;
			case 6:
				if($strToday == "5"){
					$NowWeek = $NowWeek - 1;
				}
				break;
		}
		return $NowWeek;
}
$youbi=array("日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日");
$filename = "スケジュール".date("Y").date("m").date("d").".csv";

//20100128 文字コード修正
//$filename = JcodeConvert($filename, 1, 2);

$Agent = getenv( "HTTP_USER_AGENT" );

/*201310対応 eregがphp5.3で非推奨になったのでmb_eregに変更
if( ereg( "MSIE", $Agent ) ){ 
		$filename = JcodeConvert($filename, 1, 2);
} elseif( ereg( "Firefox", $Agent ) ) {
} elseif( ereg( "Safari", $Agent ) ) {
} else {
	$filename = JcodeConvert($filename, 1, 2);
}
*/
if( preg_match( "/MSIE/", $Agent ) ){ 
		$filename = JcodeConvert($filename, 1, 2);
} elseif( preg_match( "/Chrome/", $Agent ) ) {
		$filename = JcodeConvert($filename, 1, 2);
} elseif( preg_match( "/Firefox/", $Agent ) ) {
} elseif( preg_match( "/Safari/", $Agent ) ) {
} else {
	$filename = JcodeConvert($filename, 1, 2);
}

function Name_Get($pList,$Mode){
		$strName="";
		switch ($Mode) {
		case "1":
				//一人だけ取得
				$strSQL = "select name_kj_sei, name_kj_mei from syain_tbl ";
				$strSQL .= "where syain_cd = '$pList' order by disp_rank";
				$objName = pg_exec($strSQL);
				if($objName == false){
						echo("SQL実行に失敗しました(SELECT)");
						exit;
				}
				if(pg_numrows($objName) > 0){
						$objNameRec = pg_fetch_object($objName, 0);
						$strName = $objNameRec->name_kj_sei.$objNameRec->name_kj_mei;
				}
				break;
		case "2":
				//"/"区切り複数人
				$strwhere = str_replace("//", "", $pList);
				$strwhere = substr($strwhere, 1, (strlen($strwhere) - 1));
				$strwhere = str_replace("/", "' or syain_cd = '", $strwhere);
			
				$strSQL  = "select name_kj_sei, name_kj_mei from syain_tbl ";
				$strSQL .= "where syain_cd = '".$strwhere."' ";
				$strSQL .= "order by disp_rank";
				$objName = pg_exec($strSQL);
				if($objName == false){
						echo("SQL実行に失敗しました(SELECT)");
						exit;
				}
				if(pg_numrows($objName) > 0){
						for($i=0;$i<pg_numrows($objName);$i++){
								$objNameRec = pg_fetch_object($objName, $i);
								$strName .= $objNameRec->name_kj_sei.$objNameRec->name_kj_mei."/";
						}
				}
				break;
		}
		return $strName;
}

Header("Content-Disposition: attachment; filename=\"$filename\"");
Header("Content-Type: text/csv");


//ヘッダー行出力
$strWk="氏名,登録者,パターン,条件,開始日,開始時間,終了日,終了時間,予定種別,種別内容,予定,場所,備考,共有者,公開先,公開者,コード\n";
echo  JcodeConvert($strWk, 1, 2);

//*****スケジュール抽出期間*****//
$objdate = new CalcDate();
if (($st_year=="") || ($st_mon=="") || ($st_day=="")){
		$st_year = "2004";
		$st_mon  = "01";
		$st_day  = "01";
}
if (($ed_year=="") || ($ed_mon=="") || ($ed_day=="")){
		$ed_year = date("Y")+3;
		$ed_mon  = "12";
		$ed_day  = "31";
}
$kikan= (strtotime($ed_year."-".$ed_mon."-".$ed_day ) - strtotime($st_year."-".$st_mon."-".$st_day )) / ( 60 * 60 * 24);

//スケジュールデータ出力
$Syain_Data=split(",", $lst_data);
if($kikan >= 0){
		for ($i = 0; $i < count($Syain_Data); $i++){
				if ($Syain_Data[$i]!=""){
						$strSQL = "SELECT * FROM schedule_tbl WHERE ";
						$strSQL.= "(disp_cd='".$Syain_Data[$i]."' or share_syain like '%/".$Syain_Data[$i]."/%') ";
						$strSQL.= " AND (scdl_ed_date >= '".$st_year."/".$st_mon."/".$st_day."')";
						$strSQL.= " AND (scdl_st_date <= '".$ed_year."/".$ed_mon."/".$ed_day."')";
		/*
						if (($st_year!="") && ($st_mon!="") && ($st_day!="")){
								$strSQL.= " AND (scdl_st_date >= '".$st_year."/".$st_mon."/".$st_day."')";
						}
						if (($ed_year!="") && ($ed_mon!="") && ($ed_day!="")){
								$strSQL.= " AND (scdl_ed_date <= '".$ed_year."/".$ed_mon."/".$ed_day."')";
						}
		*/
						if ($Syain_Data[$i]!=$PHP_SYAIN_CD){
								$strSQL.= " AND ((flg_pub = 0) OR (flg_pub = 2))";
						}
						$strSQL.= " Order by scdl_st_date,scdl_st_time,scdl_ed_date,scdl_ed_time ";

						$objRec = pg_exec($strSQL);

						if (strlen($st_day)==1){
								$strDay="0".$st_day;
						}else{
								$strDay=$st_day;
						}

						for ($intCnt = 0; $intCnt < pg_numrows($objRec); $intCnt++){
								$objData = pg_fetch_object($objRec, $intCnt);

								$strHyouji = 0;
								switch ($objData->scdl_type) {
									case "0":
											$strHyouji = 1;
											break;
									case "1":	
											for($j = 0; $j < $kikan ; $j++) {
													$intdata=date("w", mktime (0,0,0,$st_mon,$strDay+$j,$st_year));
													if ($intdata==$objData->scdl_code){
														$strHyouji = 1;
													}
											}
											break;
									case "2":
											for($j = 0; $j < $kikan+1 ; $j++) {
													$intdata =date("j", mktime (0,0,0,$st_mon,$strDay+$j,$st_year));
													if ($objData->scdl_code == 32){
														if ($intdata == date("t", mktime (0,0,0,$st_mon,$strDay+$j,$st_year))){
															$strHyouji=1;
														}
													}else if ($intdata==$objData->scdl_code){
														$strHyouji=1;
													}
											}
											break;
									case "3":
											$strHyouji = 1;
											break;
									case "4":
											for($j = 0; $j < $kikan ; $j++) {
													$Biweekly=substr($objData->scdl_code, 0, 1); //第何週
													$intervalWeek=substr($objData->scdl_code, 1, 1); //曜日
													//計算基準日
													$strDate=date("Y/m/d", mktime (0,0,0,$st_mon,$strDay+$j,$st_year));
													list($chk_year,$chk_mon,$chk_day)=split("/", $strDate);
													//曜日計算
													$startOneDay=date("w", mktime (0,0,0,$chk_mon,"1",$chk_year));
													$intdata=date("w", mktime (0,0,0,$st_mon,$strDay+$j,$st_year)); 
													//第何週かを計算
													$wday = date("w", mktime(0, 0, 0, $chk_mon, 1, $chk_year));
													$NowBiweekly = (int)(($chk_day + $wday - 1) / 7)+1;

													if ($Biweekly==$NowBiweekly){	
														if($intervalWeek==$intdata){
															$strHyouji = 1;
														}
													}
											}
											break;
									case "5":
											for($j = 0; $j < $kikan ; $j++) {
													$Biweekly=substr($objData->scdl_code, 0, 1); //第何週
													//第何週かを計算
													$strDate=date("Y/m/d", mktime (0,0,0,$st_mon,$strDay+$j,$st_year));
													list($chk_year,$chk_mon,$chk_day)=split("/", $strDate);

													$wday = date("w", mktime(0, 0, 0, $chk_mon, 1, $chk_year));
													$NowBiweekly = (int)(($chk_day + $wday - 1) / 7)+1;
													if ($Biweekly==$NowBiweekly){
															$strHyouji = 1;
													}
											}
											break;
								}

								if($strHyouji == 1) {
										//氏名
										echo JcodeConvert(Name_Get($objData->disp_cd,1), 1, 2).",";
										//登録者
										echo JcodeConvert(Name_Get($objData->write_cd,1), 1, 2).",";

										//パターン
										switch ($objData->scdl_type) {
											case "0":
													$strWk = "標準".",,";
													break;
											case "1":
													$strWk = "毎週".",".$youbi[$objData->scdl_code].",";
													break;
											case "2":
													if ($objData->scdl_code == 32){
														$strWk = "毎月,月末,";
													}else{
														$strWk = "毎月".",".$objData->scdl_code."日,";
													}
													break;
											case "3":
													$strWk = "バナー".",,";
													break;
											case "4":
													$strWk = "毎月".",第".substr($objData->scdl_code,0,1)."週".$youbi[substr($objData->scdl_code,1,1)].",";
													break;
											case "5":
													$strWk = "バナー".",,";
													break;
											default:
													$strWk = ",,";
										}
										echo  JcodeConvert($strWk, 1, 2);

										//開始日
										echo $objData->scdl_st_date.",";
										//開始時間
										echo $objData->scdl_st_time.",";

										//終了日
										echo $objData->scdl_ed_date.",";
										//終了時間,
										echo $objData->scdl_ed_time.",";

										//予定種別,種別内容
										switch ($objData->plan_kbn) {
										case "1":
												$strWk = "社内".",,";
												break;
										case "2":
												$strWk = "社外".",,";
												break;
										case "3":
												$strChk = str_replace(",",",",$objData->plan_komoku);
												$strWk = "その他,".$strChk.",";
												break;
										default:
												$strWk = ",,";
										}
										echo  JcodeConvert($strWk, 1, 2);

										//予定
										$strWk = str_replace(",",",",$objData->scdl_plan);
										echo JcodeConvert($strWk, 1, 2).",";
										//場所
										$strWk = str_replace(",",",",$objData->scdl_place);
										echo JcodeConvert($strWk, 1, 2).",";
										//備考
										$strWk = str_replace("\r\n"," ",$objData->scdl_biko);
										$strWk = str_replace("\r"," ",$strWk);
										$strWk = str_replace("\n"," ",$strWk);
										$strWk = str_replace(",",",",$strWk);
										echo JcodeConvert($strWk, 1, 2).",";

										//共有者
										if ($objData->share_syain!=""){
												echo JcodeConvert(Name_Get($objData->share_syain,2), 1, 2).",";
										}else{
												echo ",";
										}

										//公開先,公開者
										switch ($objData->flg_pub) {
										case "0":
												$strWk = "公開".",,";
												break;
										case "1":
												$strWk = "完全非公開".",";
												if ($objData->share_syain!=""){
														$strWk .= Name_Get($objData->share_syain,2).",";
												}else{
														$strWk .= ",";
												}
												break;
										//20090819 一部公開
										case "2":
												$strWk = "一部公開".",";
												if ($objData->share_syain!=""){
														$strWk .= Name_Get($objData->share_syain,2).",";
												}else{
														$strWk .= ",";
												}
												break;
										case "3":
												$strWk = "非公開".",";
												if ($objData->share_syain!=""){
														$strWk .= Name_Get($objData->share_syain,2).",";
												}else{
														$strWk .= ",";
												}
												break;
										}
										echo  JcodeConvert($strWk, 1, 2);

										//コード
										if ($objData->disp_cd==$Syain_Data[$i]){
												echo "1";
										}else{
												echo "0";
										}
										echo "\n";
								}
						}
				}
		}

}
?>