<?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");  

if (!isset($_SESSION["level"]) || $_SESSION["level"] > 5) {
    sleep(1);
    header("Location:" . $WebSite . "login/login_form.php");
    exit;
}   

include $_SERVER['DOCUMENT_ROOT'] . '/load_header.php';
$title_message = '기타절곡품 생성'; 

?>

<link href="css/style.css" rel="stylesheet">   <!-- pdf 프린터설정에 대한 css -->
<title> <?=$title_message?> </title> 
<style>
#myTable, #myTable_wrapper table {
    border: none;
}
</style>
</head> 

<body>         
<?php
$header = isset($_REQUEST['header']) ? $_REQUEST['header'] : '';  

if($header ==='header')
	require_once($_SERVER['DOCUMENT_ROOT'] . '/myheader.php');

function checkNull($strtmp) {
    return ($strtmp !== null && trim($strtmp) !== '');
}

$search = isset($_REQUEST['search']) ? $_REQUEST['search'] : '';  
$mode = isset($_REQUEST["mode"]) ? $_REQUEST["mode"] : '';

$tablename = 'etcbending';

require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
$pdo = db_connect();

$order = " ORDER BY num DESC ";

if (checkNull($search)) {
    $sql = "SELECT * FROM ".$DB.".".$tablename." 
            WHERE search_tag LIKE '%$search%' AND is_deleted IS NULL " . $order;    
} else {
    $sql = "SELECT * FROM ".$DB.".".$tablename . " WHERE is_deleted IS NULL " . $order;   
}

$today = date("Y-m-d"); // 현재일자 변수지정

try {      
    $stmh = $pdo->query($sql);
    $total_row = $stmh->rowCount();        
?>    

<form id="board_form" name="board_form" method="post" enctype="multipart/form-data">             
    <input type="hidden" id="mode" name="mode" value="<?=$mode?>">             
    <input type="hidden" id="num" name="num"> 
    <input type="hidden" id="tablename" name="tablename" value="<?=$tablename?>">                 
    <input type="hidden" id="header" name="header" value="<?=$header?>">      

<div class="container-fluid">
	<!-- Modal -->
	<div id="myModal" class="modal">
		<div class="modal-content"  style="width:900px; height:700px;">
			<div class="modal-header">
				<span class="modal-title"><?=$title_message?></span>
				<span class="close closeBtn">&times;</span>
			</div>
			<div class="modal-body d-flex justify-content-center">
				<div class="modal_detail" style="width:1350px;">
					 
				</div>
			</div>
		</div>
	</div>
</div>

<div class="container-fluid">
	<!-- 전개도 Modal -->
	<div id="ModalFlat" class="modal">	   
		<div class="modal-content"  style="width:900px; height:750px;">
			<div class="modal-header">
				<span class="modal-title"><?=$title_message?></span>				
				<span class="close closeBtn">&times;</span>
			</div>
			<div class="modal-body d-flex justify-content-center">			
				<div class="ModalFlat_detail" style="width:1350px;">
					 
				</div>
			</div>
		</div>
	</div>	
</div>

<div class="container">
<div class="card justify-content-center text-center mt-1 mb-5">   
    <div class="card-header">
        <span class="text-center fs-5">  <?=$title_message?>   </span>                		
    </div>
    <div class="card-body">  
	  <div class="d-flex justify-content-center align-items-center text-center mt-2 mb-5">   
			▷ <?= $total_row ?> &nbsp; 
			<div class="inputWrap30">            
				<input type="text" id="search" class="form-control text-start" style="width:200px;" name="search" value="<?=$search?>" autocomplete="off" onKeyPress="if (event.keyCode==13){ enter(); }">
				<button class="btnClear"></button>
			</div>                            
			&nbsp;&nbsp;
			<button class="btn btn-outline-dark btn-sm" type="button" id="searchBtn"> <i class="bi bi-search"></i> </button> &nbsp;&nbsp;&nbsp;&nbsp;        
			
			<button id="newBtn" type="button" class="btn btn-dark btn-sm me-2"> <i class="bi bi-pencil-square"></i> 신규 </button>    
			<?php if($level=='1') { ?>
				<!-- <button id="uploadBtn" type="button" class="btn btn-dark btn-sm me-2"> <i class="bi bi-box-arrow-up"></i> 업로드 </button>	 -->
			<?php } ?>        
      </div>  
	  <div class="d-flex justify-content-center text-center mt-5 mb-2">   
		<style>
		#specailTable th, #specailTable td {
			padding: 3px!important;
		}
		#specailTable2 th, #specailTable2 td {
			padding: 3px!important;
		}
		</style>
	
    <div class="table-responsive mt-3 mb-5">   
       <table class="table table-hover table-bordered" id="myTable">         
            <thead class="table-primary">
                 <th class="text-center" style="width:70px;"  > 번호 </th>
                 <th class="text-center" style="width:120px;" > 등록일 </th>
                 <th class="text-center" style="width:150px;" > 제품명 </th>                 
                 <th class="text-center" style="width:100px;" > 절곡품 전개 </th>
                 <th class="text-center" style="width:100px;" > 작성 </th>
                 <th class="text-center" style="width:300px;" > 비고 </th>				 
            </thead>
            <tbody>                  
            <?php          
            $start_num = $total_row;                  
            while($row = $stmh->fetch(PDO::FETCH_ASSOC)) {
                include '_row.php';
            ?>                     
            <tr >
                <td class="text-center"><?= $start_num ?></td>
                <td class="text-center" onclick="loadForm('modify', '<?=$row['num']?>');"><?= $row['reg_date'] ?></td>
                <td class="text-center" onclick="loadForm('modify', '<?=$row['num']?>');"><?= $row['prod_model'] ?></td>                                
				<td class="text-center" >
					<h6> <span class="badge bg-dark " onclick="viewUnfold('modify', '<?=$row['num']?>');"> 전개 보기 </span> </h6>
				</td>
                <td class="text-center" onclick="loadForm('modify', '<?=$row['num']?>');"><?= $row['author'] ?></td>
                <td class="text-start" onclick="loadForm('modify', '<?=$row['num']?>');"><?= $row['remark'] ?></td>				
            </tr>
        <?php
            $start_num--;
                 } 
              } catch (PDOException $Exception) {
                  print "오류: ".$Exception->getMessage();
              }  
        ?>         
      </tbody>
     </table>
    </div>
    </div>
    </div>        
    </div>        
   
   </div>       
</form>

<script>

// SL60
// KSS01
// KSE01
// KWE01
// KTE01
// KQTS

function loadForm(mode, num = null) {
    if (num == null) {
        $("#mode").val('insert');
    } else {
        $("#mode").val('modify');
        $("#num").val(num);
    }       
	
	var tablename= $("#tablename").val();

    $.ajax({
        type: "POST",
        url: "fetch_modal.php",
        data: { mode: mode, num: num , tablename : tablename},
        dataType: "html",
        success: function(response) {
            $(".modal_detail").html(response);
            $("#myModal").show();
						
			// 모달을 닫을 때 HTML 요소 제거
			$("#closeBtn").on("click", function() {
				$("#myModal").hide();
				$(".modal_detail").html(''); // 모달 내용을 비움
			});

			$(".closeBtn").on("click", function() {
				$("#myModal").hide();
				$(".modal_detail").html(''); // 모달 내용을 비움
			});
			
// 기타절곡품 선택에 따른 동작 구현
const checkImage = $('#checkImage');
const prodModelSelect = $('select[name="prod_model"]');

// 선택된 값에 따라 이미지 설정
const initialCheckType = $("#selected_prod_model").val();

// select 요소가 변경될 때 이미지 업데이트
prodModelSelect.on('change', function() {
    const selectedCheckType = $('input[name="check_type"]:checked').val();
    updateImage($(this).val(), selectedCheckType, 'update'); // check_type과 prod_model 둘 다 전달
});

// 이미지 업데이트 함수
function updateImage(model, checkType, mode = null) {
    let imagePath = '';
		
        switch (model) {
            case 'SL60':
                imagePath = '../img/bottombar/bottombar_SL60.png';	
                break;				
            case 'KSS01':
                imagePath = '../img/bottombar/bottombar_KSS01.png';				
                break;
            case 'KSE01':
                imagePath = '../img/bottombar/bottombar_KSE01.png';
                break;
            case 'KWE01':
                imagePath = '../img/bottombar/bottombar_KWE01.png';
                break;
            case 'KTE01':
                imagePath = '../img/bottombar/bottombar_KTE01.png';
                break;
            case 'KQTS':
                imagePath = '../img/bottombar/bottombar_KQTS.png';
                break;            
        }
  

    checkImage.attr('src', imagePath);
}


    $('#display_rail_length').val($('#rail_length').val());
    $('#display_rail_width').val($('#rail_width').val());
    
    // rail_length 입력이 변경될 때 아래 요소에 반영
    $('#rail_length').on('input', function() {
        $('#display_rail_length').val($(this).val());
    });
    
    // rail_width 입력이 변경될 때 아래 요소에 반영
    $('#rail_width').on('input', function() {
        $('#display_rail_width').val($(this).val());
    });
						
            let isSaving = false;
            
            $("#saveBtn").on("click", function() {
                if (isSaving) return;
                isSaving = true;

                var header = $("#header").val();
                var formData = $("#board_form").serialize(); // 파일전송은 안된다. serialize의 단점                

				$.ajax({
					url: "process.php",
					type: "post",
					data: formData,
					dataType: 'json',
					success: function(response) {
						Toastify({
							text: "저장완료",
							duration: 1000,
							close: true,
							gravity: "top",
							position: "center",
							backgroundColor: "#4fbe87",
						}).showToast();

						setTimeout(function() {
							Swal.fire({
								title: '저장한 전개도를 보시겠습니까?',
								icon: 'question',
								showCancelButton: true,
								confirmButtonText: '네',
								cancelButtonText: '아니오',
							}).then((result) => {
								if (result.isConfirmed) {
									$("#myModal").hide();
									$(".modal_detail").html(''); // 모달 내용을 비움									
									viewUnfold('modify', response.num); // '네'를 선택한 경우 viewUnfold 함수 실행
								} else {
									location.reload(); // '아니오'를 선택한 경우 페이지 새로고침
								}
								isSaving = false;
							});
						}, 1000);
					},
					error: function(jqxhr, status, error) {
						console.log(jqxhr, status, error);
						isSaving = false;
					}
				});

            });

            $("#deleteBtn").on("click", function() {
                var level = '<?= $_SESSION["level"] ?>';

                if (level !== '1') {
                    Swal.fire({
                        title: '삭제불가',
                        text: "관리자만 삭제 가능합니다.",
                        icon: 'error',
                        confirmButtonText: '확인'
                    });
                    return;
                }

                Swal.fire({
                    title: '자료 삭제',
                    text: "삭제는 신중! 정말 삭제하시겠습니까?",
                    icon: 'warning',
                    showCancelButton: true,
                    confirmButtonColor: '#3085d6',
                    cancelButtonColor: '#d33',
                    confirmButtonText: '삭제',
                    cancelButtonText: '취소'
                }).then((result) => {
                    if (result.isConfirmed) {
                        $("#mode").val('delete');
                        var formData = $("#board_form").serialize();

                        $.ajax({
                            url: "process.php",
                            type: "post",
                            data: formData,
                            success: function(response) {
                                Toastify({
                                    text: "파일 삭제완료",
                                    duration: 2000,
                                    close: true,
                                    gravity: "top",
                                    position: "center",
                                    style: {
                                        background: "linear-gradient(to right, #00b09b, #96c93d)"
                                    },
                                }).showToast();

                                $("#myModal").hide();
                                location.reload();
                            },
                            error: function(jqxhr, status, error) {
                                console.log(jqxhr, status, error);
                            }
                        });
                    }
                });
            });
        },
        error: function(jqxhr, status, error) {
            console.log("AJAX Error: ", status, error);
        }
    });
}

function viewUnfold(mode, num = null) {
    var tablename = $("#tablename").val();

    $.ajax({
        type: "POST",
        url: "fetch_flat.php",
        data: { mode: mode, num: num, tablename: tablename },
        dataType: "html",
        success: function(response) {
            $(".modal-body .ModalFlat_detail").html(response);
            $("#ModalFlat").show();
					
			$('#display_rail_length').val($('#rail_length').val());
			$('#display_rail_width').val($('#rail_width').val());	
			

            // 전개도 모달을 닫을 때 HTML 요소 제거 
            $("#closeBtn").on("click", function() {
                $("#ModalFlat").hide();
                $(".ModalFlat_detail").html(''); // 모달 내용을 비움
            });

            $(".closeBtn").on("click", function() {
                $("#ModalFlat").hide();
                $(".ModalFlat_detail").html(''); // 모달 내용을 비움
            });
        },
        error: function(jqxhr, status, error) {
            console.log("AJAX Error: ", status, error);
        }
    });
}

$(document).ready(function(){    
    var loader = document.getElementById('loadingOverlay');
	if(loader)
		loader.style.display = 'none';

    // DataTables 초기 설정
	dataTable = $('#myTable').DataTable({
		"paging": true,
		"ordering": true,
		"searching": true,
		"pageLength": 50, // 한 페이지에 표시할 항목 수
		"lengthMenu": [ 50, 100, 200, 500, 1000, 2000], // 페이지당 표시 항목 선택 메뉴
		"language": {
			"lengthMenu": "Show _MENU_ entries"
		},
		"order": [[1, 'desc']] // 첫 번째 열을 기준으로 내림차순 정렬
		// "serverSide": true, // 서버 사이드 처리 활성화
		// "ajax": {
			// "url": "/phonebook/path_to_your_server_script.php", // 서버 측 스크립트 URL
			// "type": "POST",
			// "data": function (d) {
				// // 필요에 따라 추가 데이터를 서버로 전송할 수 있음
				// d.search = $('#search').val(); // 검색 값 추가
			// }
		// }
	});

    // 페이지 번호 복원 (초기 로드 시)
    var savedPageNumber = getCookie('bottombarpageNumber');
    if (savedPageNumber) {
        dataTable.page(parseInt(savedPageNumber) - 1).draw(false); // 쿠키에 저장된 페이지 번호로 이동
    }

    // 페이지 변경 이벤트 리스너
    dataTable.on('page.dt', function() {
        var bottombarpageNumber = dataTable.page.info().page + 1;
        setCookie('bottombarpageNumber', bottombarpageNumber, 10); // 쿠키에 현재 페이지 번호 저장
    });

    // 페이지 길이 셀렉트 박스 변경 이벤트 처리
    $('#myTable_length select').on('change', function() {
        var selectedValue = $(this).val();
        dataTable.page.len(selectedValue).draw(); // 페이지 길이 변경

        // 변경 후 현재 페이지 번호 복원
        savedPageNumber = getCookie('bottombarpageNumber');
        if (savedPageNumber) {
            dataTable.page(parseInt(savedPageNumber) - 1).draw(false);
        }
    });
	
    $("#newBtn").on("click", function() {		
        loadForm('insert');
    });

    $("#searchBtn").on("click", function() {
        $("#board_form").submit();
    });	
	
});

function enter() {
    $("#board_form").submit();
}

function inputNumberFormat(obj) {
    obj.value = obj.value.replace(/[^0-9]/g, '');
    
    let value = obj.value.replace(/,/g, '');
    obj.value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
}

$(document).on("keypress", "input", function(event) {
	return event.keyCode != 13;
});		


function generatePDF() {	
    // 이벤트의 기본 동작을 방지 (모달창 닫힘 방지)
    event.preventDefault();

	var deadline = '<?php echo $today; ?>';
	var deadlineDate = new Date(deadline);
	var formattedDate = "(" + String(deadlineDate.getFullYear()).slice(-2) + "." + ("0" + (deadlineDate.getMonth() + 1)).slice(-2) + "." + ("0" + deadlineDate.getDate()).slice(-2) + ")";
	var result = 'KD_기타절곡품_' + formattedDate + '.pdf';
    
    var element = document.getElementById('content-to-print');
    var opt = {
        margin: [10, 3, 12, 3], // Top, right, bottom, left margins
        filename: result,
        image: { type: 'jpeg', quality: 0.98 },
        html2canvas: { scale: 1 },
        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
        pagebreak: { mode: [''] }
    };
    html2pdf().from(element).set(opt).save();
}

function viewWork(num) {	
    // 이벤트의 기본 동작을 방지 (모달창 닫힘 방지)
    event.preventDefault();
	var tablename = '<?php echo $tablename; ?>';
	
	var url = "view.php?mode=view&num=" + num + "&tablename=" + tablename;          
	customPopup(url, '절곡 작업지시서', 1200, 850); 		
}

$(document).ready(function(){    
   // 방문기록 남김
   var title_message = '<?php echo $title_message ; ?>';
   saveMenuLog(title_message);
});

</script>

</body>
</html>