"; 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 "" .$file_list[$fct] .""; 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 "
"; //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 "
"; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; for($ict = 1;$ict < $item_ct;$ict++) { $no_ = $ict + 1; print ""; print ""; print ""; print ""; print ""; } print "
検査項目名" .$_POST['inspection_name'] ."
確認項目項目1" .$item[0] ."
項目" .$no_ ."" .$item[$ict] ."
"; print ""; print ""; 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 "
"; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; for($ict = 1;$ict < $item_ct;$ict++) { $no = $ict +1; print ""; print ""; print ""; print ""; } print "
検査項目名
確認項目項目1"; print ""; print "
項目" .$no .""; print ""; print "
"; print ""; print ""; 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 ""; print ""; print ""; print ""; print ""; print ""; for($ict = 1;$ict < $item_ct;$ict++) { $no = $ict +1; print ""; print ""; print ""; print ""; } print "
検査項目名
確認項目項目1"; print ""; print "
項目" .$no .""; print ""; print "
"; print ""; print "
"; print "
"; print "チェック項目の "; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print ""; print "
CB検査項目名確認項目"; for($ii = 0;$ii < $ct_v;$ii++) { $row_v = pg_fetch_array($res_v,$ii); $inspection_id = $row_v['inspection_id']; $inspection_name = $row_v['inspection_name']; $item_name = $row_v['item_name']; if($row_v['item_id'] == 1) { print "
"; //●編集ボタン print ""; print ""; print ""; print $inspection_name; print ""; print $item_name; } else { print "
"; print $item_name; } } print "
"; } ?>