";
for($j= $min_int ;$j < $max_int;$j += $interval)
{
$sel = ($j == $selected) ? "selected" : "";
print "";
}
if (is_null($selected) && $Space)
{
print "";
}
print "";
}
//■フォルダ内のファイル削除($dirは該当ファイルがあるディレクトリの絶対パス)
function deleteData ( $dir )
{
if ( $dirHandle = opendir ( $dir )) {
while ( false !== ( $fileName = readdir ( $dirHandle ) ) ) {
if ( $fileName != "." && $fileName != ".." ) {
unlink ( $dir.$fileName );
}
}
closedir ( $dirHandle );
}
}
//■フォルダ内のファイル移動($dir1元ディレクトリ,$dir2移動先ディレクトリ)
function moveData ( $dir1,$dir2 )
{
if ( $dirHandle = opendir ( $dir1 )) {
while ( false !== ( $fileName = readdir ( $dirHandle ) ) ) {
if ( $fileName != "." && $fileName != ".." ) {
rename($dir1.$fileName , $dir2.$fileName);
}
}
closedir ( $dirHandle );
}
}
//■元画像からサムネイル画像の作成
function ThumbnailMake($tmp_dir_,$in_pict,$out_pict,$x_size,$y_size)
{
list($width, $hight) = getimagesize($tmp_dir_ .$in_pict); // 元の画像名を指定してサイズを取得
$baseImage = imagecreatefromjpeg($tmp_dir_.$in_pict); // 元の画像から新しい画像を作る準備
$image = imagecreatetruecolor($x_size, $y_size); // サイズを指定して新しい画像のキャンバスを作成
// 画像のコピーと伸縮
imagecopyresampled($image, $baseImage, 0, 0, 0, 0, $x_size, $y_size, $width, $hight);
// コピーした画像を出力する
$name_replace = str_replace("." ,"_s.",$in_pict);
$out_pict = $out_pict. $name_replace;
imagejpeg($image , $out_pict);
}
//■ファイルのダウンロードリンク作成(テキスト・画像サムネイル)
//DlLinkMake(リンクタイプ[1:テキスト、2:画像],データid,ファイルのパス1,ファイルのパス2,表内の位置)
function DlLinkMake($dl_type_,$id_,$save_dir_,$dir_path_,$chkbox_flag)
{
//$data_ct_ = count($data_name_);
$dir = $save_dir_ .$id_ .$dir_path_;
// print "";
if (is_dir($dir))
{
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false)
{
if ( $file != "." && $file != ".." )
{
$time_list[] = filemtime($dir .$file); //ソート用にファイル時刻を取得
$file_list[] = $file;
}
}
closedir($dh);
array_multisort($time_list,SORT_ASC,$file_list);
}
$f_count = count($file_list);
for($fct=0;$fct < $f_count;$fct++)
{
if($dl_type_ == 1)
{
$updateDate = filemtime($dir .$file);
$updateDate = $time_list[$fct];
if($chkbox_flag) print "";
print "" .$file_list[$fct] ." ";
}
else
{
$thum_name = "./inspection/" .$id_ ."/pict_s/" .str_replace("." ,"_s." ,$file_list[$fct]);
if($chkbox_flag) print "";
print "";
print " ";
print " ";
}
}
}
// print " | ";
}
//-------------------------------------------------------------------------------------------------
//初期値設定
//-------------------------------------------------------------------------------------------------
//■現在時刻の取得・設定
$now_time = time() + 86400;
$now_time_date = date("Y年m月d日 H時i分",$now_time);
$reg_date_time = $now_time;
$date_y = date("Y",$now_time);
$date_m = date("m",$now_time );
$date_d = date("d",$now_time);
$time_h = date("H",$now_time);
$time_m = date("i",$now_time);
//■アップロード時の一時保存パス
$tmp_record_dir = "/www/geye/tmp_record/";
$tmp_pict_dir = "/www/geye/tmp_pict/";
$tmp_pict_dir_s = "/www/geye/tmp_pict_s/";
//■アップロード時の保存パス
$save_dir = "/www/geye/inspection/";
$record_dir = "/record/";
$pict_dir = "/pict/";
$pict_dir_s = "/pict_s/";
$delete_dir = "/delete/";
$upload_pict_dir = "/www/geye/pict/";
//■zip保存用
$zip_dir = "/geye/";
//■POST・GETデータの出力
EXTRACT($_GET);
EXTRACT($_POST);
//print_r($_GET);
//print_r($_POST);
//-------------------------------------------------------------------------------------------------
// 接続設定(サーバ/データベース/ユーザ/パスワード)
//-------------------------------------------------------------------------------------------------
$sv = "localhost";
$dbname = "geye";
$user = "postgres";
$pass = "postgres";
$conn = pg_connect("host=$sv dbname=$dbname user=$user password=$pass") or die("接続エラー");
//-------------------------------------------------------------------------------------------------
// 調書に使用する項目リストをDBから取得
//-------------------------------------------------------------------------------------------------
$sql_item = "SELECT * FROM check_item_name ORDER BY id;";
$res_item = pg_query($conn,$sql_item);
$count_item = pg_num_rows($res_item);
//$row_item = pg_fetch_array($res_e,0);
//-------------------------------------------------------------------------------------------------
// アップロードされた画像の振り分け
//-------------------------------------------------------------------------------------------------
if($_POST['pictupload'])
{
$sql_p = "SELECT * FROM inspection_record WHERE del_flag=false ORDER BY scheduled_date desc;";
$res_p = pg_query($conn,$sql_p);
$count_p = pg_num_rows($res_p);
//対象データの期間(デフォルト3時間)
$range_1 = 10800; //秒
$range_2 = 10800; //秒
for($p=0;$p<$count_p;$p++)
{
$row_p = pg_fetch_array($res_p,$p);
$id = $row_p['id'];
$schedul_unix = strtotime($row_p['scheduled_date']);
$schedul_date = date("Ymd" ,$schedul_unix);
//希望日から*時間前
$past_unix = $schedul_unix - $range_1;
$past_date = date("Ymd" ,$past_unix);
//希望日から*時間後
$future_unix = $schedul_unix + $range_2;
$future_date = date("Ymd" ,$future_unix);
//今日のフォルダ画像を検索
$upload_pict_dir_ = $upload_pict_dir .$schedul_date;
//print $upload_pict_dir_ ."
";
if ($dirHandle = opendir ($upload_pict_dir_))
{
while ( false !== ( $fileName = readdir ( $dirHandle)))
{
if ( $fileName != "." && $fileName != ".." )
{
//ファイルの更新時間
$file_datetime = filemtime($upload_pict_dir_ ."/" .$fileName);
//print $id ."_" .$past_unix ."_" .$file_datetime ."_" .$future_unix ."
";
if(($past_unix < $file_datetime) && ($file_datetime < $future_unix))
{
//print $id ."_" .$past_unix ."_" .$file_datetime ."_" .$future_unix ."
";
copy($upload_pict_dir_ ."/" .$fileName , $save_dir .$id .$pict_dir.$fileName );
ThumbnailMake($save_dir .$id .$pict_dir,$fileName,$save_dir .$id .$pict_dir_s ,77,75);
}
}
}
closedir ( $dirHandle );
}
if($schedul_date != $past_date)
{
print "前日";
//前日のフォルダ画像を検索
$upload_pict_dir_ = $upload_pict_dir .$past_date;
//print $upload_pict_dir_ ."
";
if ($dirHandle = opendir ($upload_pict_dir_))
{
while ( false !== ( $fileName = readdir ( $dirHandle)))
{
if ( $fileName != "." && $fileName != ".." )
{
//ファイルの更新時間
$file_datetime = filemtime($upload_pict_dir_ ."/" .$fileName);
//print $id ."_" .$past_unix ."_" .$file_datetime ."_" .$future_unix ."
";
if(($past_unix < $file_datetime) && ($file_datetime < $future_unix))
{
//print $id ."_" .$past_unix ."_" .$file_datetime ."_" .$future_unix ."
";
copy($upload_pict_dir_ ."/" .$fileName , $save_dir .$id .$pict_dir.$fileName );
ThumbnailMake($save_dir .$id .$pict_dir,$fileName,$save_dir .$id .$pict_dir_s ,77,75);
}
}
}
closedir ( $dirHandle );
}
}
if($schedul_date != $future_date)
{
print "後日";
//後日のフォルダ画像を検索
$upload_pict_dir_ = $upload_pict_dir .$future_date;
//print $upload_pict_dir_ ."
";
if ($dirHandle = opendir ($upload_pict_dir_))
{
while ( false !== ( $fileName = readdir ( $dirHandle)))
{
if ( $fileName != "." && $fileName != ".." )
{
//ファイルの更新時間
$file_datetime = filemtime($upload_pict_dir_ ."/" .$fileName);
if(($past_unix < $file_datetime) && ($file_datetime < $future_unix))
{
//print $id ."_" .$past_unix ."_" .$file_datetime ."_" .$future_unix ."
";
copy($upload_pict_dir_ ."/" .$fileName , $save_dir .$id .$pict_dir.$fileName );
ThumbnailMake($save_dir .$id .$pict_dir,$fileName,$save_dir .$id .$pict_dir_s ,77,75);
}
}
}
closedir ( $dirHandle );
}
}
}
}
//-------------------------------------------------------------------------------------------------
// フォームアクション処理(削除・ダウンロード)
//-------------------------------------------------------------------------------------------------
//■データの削除処理
if($del)
{
$DelSql = "UPDATE check_item_name2 SET ";
$DelSql .= "del_flag = 'TRUE' ";
$DelSql .= " WHERE inspection_id IN (" .$del .");";
if (!($resDelSql = pg_query($conn, $DelSql)))
{
print pg_last_error() ."
";
// throw new Exception("データ取得に失敗
". $DelArea. "
". pg_last_error(). "
");
}
}
//■ダウンロード処理
if($file_dl)
{
//データidの分割
$id_ = explode(",",$file_dl);
$id_count_ = count($id_);
//zip用ファイルの初期化(削除)
$cmd_del = "rm -Rf " .$zip_dir ."*";
exec($cmd_del);
//deleteData($zip_dir);
for($k = 0;$k < $id_count_ ;$k++)
{
//ZIP用のフォルダの作成
$zip_sub_dir = $zip_dir.$id_[$k];
mkdir($zip_sub_dir , 0777);
$zip_sub_dir_rec = $zip_sub_dir ."/record/";
$zip_sub_dir_pict = $zip_sub_dir ."/pict/";
mkdir($zip_sub_dir_rec , 0777);
mkdir($zip_sub_dir_pict , 0777);
//対象ファイルをコピー
$cmd_1 = "cp -a " .$save_dir .$id_[$k] .$record_dir ."/*" ." " .$zip_sub_dir_rec;
$cmd_2 = "cp -a " .$save_dir .$id_[$k] .$pict_dir ."/*" ." " .$zip_sub_dir_pict;
exec($cmd_1);
exec($cmd_2);
}
//zipの作成
$file_name_date = date("YmdHis" ,time());
$zip_path = $zip_dir .$file_name_date .".zip";
//$zip_path = $id_[$k] .".zip";
//print $zip_path;
$cmd_3 = "zip -r " .$zip_path ." /geye/*";
exec($cmd_3);
//print $cmd_3 ;
$file_name = $file_name_date .".zip";
header('Location: http://penta-02.ptgw.net/geye/download.php?u=3&f=' .$file_name );
}
//-------------------------------------------------------------------------------------------------
// 画面上部に画面更新ボタンの配置
//-------------------------------------------------------------------------------------------------
print "";
print "";
print "| ";
print "";
print " | ";
//print "";
//print "";
//print " | ";
print "
";
print "
";
//-------------------------------------------------------------------------------------------------
// 新規項目登録・編集処理
//-------------------------------------------------------------------------------------------------
//■■新規登録
if($_POST['regist'])
{
print "【検査項目の登録】
";
$item_ct = count($_POST['check_name']);
$item = array();
for($ict = 0;$ict < $item_ct;$ict++)
{
if($_POST['check_name'][$ict]) $item[] = $_POST['check_name'][$ict];
}
$item_ct2 = count($item);
if($_POST['inspection_name'] && $item_ct2 != 0)
{
print "以下の内容で登録します。よろしいですか?";
print "
";
print "";
}
else
{
$alert_name = (!$_POST['inspection_name']) ? "\"検査項目名\"" :"";
$alert_name .=(!$item_ct2) ? "\"確認項目名\"" :"";
print "";
}
}
//■■編集処理
else if($_POST['edit_id'] && (!$_POST['edit_cancel']))
{
//送信されたデータ
//検査項目ID
$edit_id_ = ($_POST['edit_id']) ? $_POST['edit_id'] : $edit_id;
/////////////////////////////////////////////////////////////////////////////////////////
//■保存を押した場合
if($_POST['edit_save'])
{
//検査項目名
$inspection_name_ = $_POST['inspection_name'];
//項目名
$item_ct = count($_POST['check_name']);
$item = array();
for($ict = 0;$ict < $item_ct;$ict++)
{
if($_POST['check_name'][$ict]) $item[] = $_POST['check_name'][$ict];
}
$item_ct2 = count($item);
//■DBから最新データの抽出
$sql_v = "SELECT * FROM check_item_name2 WHERE inspection_id=" .$edit_id_ ." AND del_flag ='false' ORDER BY inspection_id,sort_no;";
$res_v = pg_query($conn,$sql_v);
$ct_v = pg_num_rows($res_v);
//print $sql_v ."
";
//項目最大数
$item_ct = 10;
//検査項目名があれば処理
if($inspection_name_ && $item_ct2 != 0)
{
//登録する確認項目
for($ict = 0;$ict < $item_ct2;$ict++)
{
if($item[$ict])
{
$item_id_ = $ict+1;
$sql_a = "SELECT * FROM check_item_name2 WHERE inspection_id=" .$edit_id_ ." AND item_id=".$item_id_ ." AND del_flag=false;";
//print "AAAA_" .$sql_a ."
";
$res_a = pg_query($conn,$sql_a);
$ct_a = pg_num_rows($res_a);
if($ct_a)
{
$sql_up = "UPDATE check_item_name2 SET ";
$sql_up .= ($inspection_name_) ? "inspection_name='" .$inspection_name_ ."',":"";
$sql_up .= ($item[$ict]) ? "item_name='" .$item[$ict] ."',":"";
$sql_up .= "regdatetime= '".date("Y-m-d H:i:s",time()) ."'";
$sql_up .= " WHERE inspection_id=" .$edit_id_ ." AND item_id=".$item_id_ ." AND del_flag=false;";
$res_up = pg_query($conn,$sql_up) or die(pg_last_error() ."
" .$sql_up);
}
else
{
//データの登録
print "新規__";
$sql_ins = "INSERT INTO check_item_name2 (inspection_id, ";
$sql_ins .= "inspection_name,";
$sql_ins .= "item_id,";
$sql_ins .= "item_name,";
$sql_ins .= "sort_no,";
$sql_ins .= "regdatetime) VALUES (";
$sql_ins .= $edit_id_ .",";
$sql_ins .= "'" .$inspection_name_ ."',";
$sql_ins .= $item_id_ .",";
$sql_ins .= "'" .$item[$ict] ."',";
$sql_ins .= $item_id_ .",";
$sql_ins .= "'" .date("Y-m-d H:i", time()) ."')";
$res_ins = pg_query($conn,$sql_ins) or die(pg_last_error() ."
" .$sql_ins);
}
}
}
//検査項目名をアップデート
$sql_up2 = "UPDATE check_item_name2 SET ";
$sql_up2 .= "inspection_name='" .$inspection_name ."'";
$sql_up2 .= " WHERE inspection_id=" .$edit_id_ ." AND del_flag=false;";
$res_up2 = pg_query($conn,$sql_up2);
//無記入の項目名を全て削除状態にする
$sql_up3 = "UPDATE check_item_name2 SET ";
$sql_up3 .= "del_flag=true";
$sql_up3 .= " WHERE inspection_id=" .$edit_id_ ." AND item_id > " .$item_ct2 .";";
$res_up3 = pg_query($conn,$sql_up3);
}
else
{
$alert_name = (!$_POST['inspection_name']) ? "\"検査項目名\"" :"";
$alert_name .=(!$item_ct2) ? "\"確認項目名\"" :"";
print "";
}
}
//■DBから最新データの抽出
$sql_v = "SELECT * FROM check_item_name2 WHERE inspection_id=" .$edit_id_ ." AND del_flag ='false' ORDER BY sort_no;";
$res_v = pg_query($conn,$sql_v);
$ct_v = pg_num_rows($res_v);
//print $sql_v ."
";
//■データ表の作成
//項目最大数
$item_ct = 10;
$row_v = pg_fetch_array($res_v,0);
$inspection_name = $row_v['inspection_name'];
$chek_name_value[0] = "VALUE='" .$row_v['item_name'] ."'";
for($ii =1;$ii < $item_ct;$ii++)
{
$row_v = pg_fetch_array($res_v,$ii);
$chek_name_value[$ii] = ($row_v['item_name']) ? "VALUE='" .$row_v['item_name'] ."'" :"";
}
print "【編集中】
";
print "";
/////////////////////////////////////////////////////////////////////////////////////////
}
//■■初期画面(画面更新時)
else
{
print "【検査項目新規登録】
";
//---------------------------------------------------------------------------------------------
//●新規申請確認画面で"はい"を選択した場合の処理
if($_POST['sentaku_yes'])
{
//登録データの最大値(検査項目NO)を取得
$sql_max = "SELECT MAX(inspection_id) FROM check_item_name2;";
$res_max = pg_query($conn,$sql_max) or die(pg_last_error() ."
" .$sql_max);
// $res_max = pg_query($conn,$sql_max);
$row_max = pg_fetch_array($res_max,0);
$inspection_id = $row_max[0] + 1;
//登録する確認項目の数だけINSERT
$item_ct = count($_POST['check_name']);
$inspection_name = $_POST['inspection_name'];
for($ict = 0;$ict < $item_ct;$ict++)
{
if($_POST['check_name'][$ict])
{
$item_id = $item_id+1;
//データの登録
$sql_ins = "INSERT INTO check_item_name2 (inspection_id, ";
$sql_ins .= "inspection_name,";
$sql_ins .= "item_id,";
$sql_ins .= "item_name,";
$sql_ins .= "sort_no,";
$sql_ins .= "regdatetime) VALUES (";
$sql_ins .= $inspection_id .",";
$sql_ins .= "'" .$inspection_name ."',";
$sql_ins .= $item_id .",";
$sql_ins .= "'" .$_POST['check_name'][$ict] ."',";
$sql_ins .= $item_id .",";
$sql_ins .= "'" .date("Y-m-d H:i", time()) ."')";
$res_ins = pg_query($conn,$sql_ins) or die(pg_last_error() ."
" .$sql_ins);
}
}
}
//●新規申請確認画面で"いいえ"を選択した場合の処理
else if($_POST['sentaku_no'])
{
//print "";
}
//---------------------------------------------------------------------------------------------
//データの一覧表の作成
//---------------------------------------------------------------------------------------------
//■DBから最新データの抽出
// $sql_v = "SELECT * FROM inspection_record WHERE del_flag ='false' ORDER BY id DESC;";
$sql_v = "SELECT * FROM check_item_name2 WHERE del_flag ='false' ORDER BY inspection_id,sort_no;";
$res_v = pg_query($conn,$sql_v);
$ct_v = pg_num_rows($res_v);
//■データ表の作成
//項目数
$item_ct = 10;
$inspection_name = ($_POST['inspection_name']) ? "VALUE='" .$_POST['inspection_name'] ."'" :"";
$chek_name_value[0] = ($_POST['check_name'][0]) ? "VALUE='" .$_POST['check_name'][0] ."'" :"";
$chek_name_value[1] = ($_POST['check_name'][1]) ? "VALUE='" .$_POST['check_name'][1] ."'" :"";
$chek_name_value[2] = ($_POST['check_name'][2]) ? "VALUE='" .$_POST['check_name'][2] ."'" :"";
$chek_name_value[3] = ($_POST['check_name'][3]) ? "VALUE='" .$_POST['check_name'][3] ."'" :"";
$chek_name_value[4] = ($_POST['check_name'][4]) ? "VALUE='" .$_POST['check_name'][4] ."'" :"";
$chek_name_value[5] = ($_POST['check_name'][5]) ? "VALUE='" .$_POST['check_name'][5] ."'" :"";
$chek_name_value[6] = ($_POST['check_name'][6]) ? "VALUE='" .$_POST['check_name'][6] ."'" :"";
$chek_name_value[7] = ($_POST['check_name'][7]) ? "VALUE='" .$_POST['check_name'][7] ."'" :"";
$chek_name_value[8] = ($_POST['check_name'][8]) ? "VALUE='" .$_POST['check_name'][8] ."'" :"";
$chek_name_value[9] = ($_POST['check_name'][9]) ? "VALUE='" .$_POST['check_name'][9] ."'" :"";
print "";
print "
";
print "チェック項目の ";
print "";
print "";
}
?>