<?php 
	$tablename = 'instock'; 
?>
<?php include $_SERVER['DOCUMENT_ROOT'] . '/' . $tablename . '/common/head.php' ; ?> <!-- head 정보 불러오기  -->

<?php

$item_name = isset($row['item_name']) ? $row['item_name'] : '';


$itemTitle = '전기 아연도금 강대 <br>
(KS D 3528, SECC) "EGI 절곡코일"';

// 두께(thickness) 추출
if (preg_match('/(\d+\.\d+)T/', $spec, $matches_thickness)) {
    $thickness = $matches_thickness[1]; // 두께 값 추출
}

// 너비(width) 추출 (소수점 포함)
if (preg_match('/W(\d+(\.\d+)?)/', $spec, $matches_width)) {
    $width = $matches_width[1]; // 너비 값 추출
}

// 추출한 너비와 길이로 $spec 값 설정
$spec = $thickness . ' * ' . $width ;

$today = date("Y-m-d");

require_once $_SERVER['DOCUMENT_ROOT'] . '/instock/commonDriveLoad.php'; // 구글드라이브 파일형태 이미지형태 읽어오기 모듈

$savetitle ='수입검사성적서';
?>


<?php include $_SERVER['DOCUMENT_ROOT'] . '/' . $tablename . '/common/instock_btn.php'; ?> <!-- Btn 정보 불러오기  -->


<div id="content-to-print">	
<br>
<div class="container mt-3">
<div class="d-flex align-items-center justify-content-center m-1">
    <table class="table " style="border-collapse: collapse;">
        <thead>
            <tr>                
                <th rowspan="3" class="text-center" style="width:70%;">
					<div class="row">
					<div class="col-sm-2">
						<img src="../img/kdlogo.png" alt="경동기업" class="me-1" style="width:100%; height:auto;">                    						
					</div>
					<div class="col-sm-10">
						<div class="d-flex align-items-center justify-content-center m-1">												
							<span class="text-dark ms-1 me-1 fs-2" > &nbsp; 수 </span>
							<span class="text-dark me-1 fs-2" > &nbsp; 입 </span>
							<span class="text-dark me-1 fs-2" > &nbsp; 검 </span>
							<span class="text-dark me-1 fs-2" > &nbsp; 사 </span>
							<span class="text-dark me-1 fs-2" > &nbsp;  </span>
							<span class="text-dark me-1 fs-2" > &nbsp; 성 </span>
							<span class="text-dark me-1 fs-2" > &nbsp; 적 </span>
							<span class="text-dark me-1 fs-2" > &nbsp; 서 </span>							
						</div>												
					</div>							
					</div>    
                </th>            
                <th rowspan="3" class="text-center fw-bold" style="height:100px;">결 재</th>
                <th class="text-center p-1" style="width : 100px; height:22px; padding:2px;">담당</th>
                <th class="text-center p-1" style="width : 100px; height:22px; padding:2px;">부서장</th>
            </tr> 
            <tr style="height:40px;">
                <th class="text-center"> 
					<div id="chargedDiv" style="display: none;">
					  <span id="orderman">  <?=$orderman?> </span> <br>  <?=$indateStr ?>
					</div>
				</th>    
                <th class="text-center"> 				
					<div id="approvalDiv" style="display: none;">
					    <?=$user_name?> <br>  <?=$todayStr ?>
					</div>                
				</th>    
			</tr>
            <tr>
                <th colspan="2"> 입고일자 : <?=$inspection_date?></th>                
            </tr>
        </thead>
    </table>
</div>
   

<div class="d-flex align-items-center justify-content-center m-1">
    <table class="table table-bordered" style="border-collapse: collapse;">
        <tbody>
            <tr>
                <td class="text-center align-middle lightgray">품 명</td>
                <td colspan="2" class="text-center fw-bold"><?=$itemTitle?></td>
                <td class="text-center align-middle lightgray">납품업체<br>제조업체</td>
                <td class="text-center text-primary fw-bold"><?=$supplier?>  <br> (<?=$manufacturer?>) </td>	
            </tr>
            <tr>
                <td class="text-center align-middle lightgray">규       격<br>(두께*너비) </td>
                <td colspan="2" class="text-center fw-bold"><?=$spec?></td>
                <td class="text-center align-middle lightgray">로트번호</td>
                <td colspan="1" class="text-center text-primary fw-bold"> 
					<?=$lot_no?>
				</td>
            </tr>
            <tr>
                <td class="text-center align-middle lightgray">자재번호</td>
                <td colspan="2" class="text-center fw-bold"><?=$material_no?></td>
                <td class="text-center align-middle lightgray">검사일자</td>
                <td colspan="1" class="text-center text-primary fw-bold"> 
					<?=$indateStr?>
				</td>
            </tr>
			<tr>
				<td class="text-center align-middle lightgray">로트크기</td>
				<td class="text-center text-dark fw-bold"><?=$received_qty?> </td>                
				<td class="text-center text-dark fw-bold"><?=$unit?> </td>                
				<td class="text-center align-middle lightgray">검사자</td>
				<td class="text-center">
				    <div class="d-flex justify-content-center">
						<button type="button" id="editButton" class="btn btn-primary btn-sm">검사자</button>
						<div id="inputContainer" style="display: none;">
							<input type="text" id="userNameInput" class="form-control  d-inline-block noborder-input text-center" style="width:100px;" autocomplete="off" style="widtd: 100px;" value="<?=$user_name?>">
							<button  type="button"  id="cancelButton" class="btn btn-outline-danger btn-sm"> <i class="bi bi-x"> </i> </button>
						</div>
					</div>
				</td>
			</tr>

			<script>
				$(document).ready(function() {
					// '담당자 입력' 버튼 클릭 시 input 표시 및 버튼 숨김
					$('#editButton').on('click', function() {
						$('#editButton').hide();
						$('#inputContainer').show();
						$('#workdate').text('<?php echo $todayStr; ?>');
						$('#chargedDiv').show();
						
					});

					// '취소' 버튼 클릭 시 원래 상태로 되돌림
					$('#cancelButton').on('click', function() {
						$('#inputContainer').hide();
						$('#chargedDiv').hide();
						$('#workdate').text('');
						$('#editButton').show();
					});
				});
			</script>

        </tbody>
        
    </table>
</div>

<div class="row justify-content-start m-1 mt-2">
    <table id="mainTable" class="table table-hover" style="border-collapse: collapse;">
        <thead>
            <tr>
                <th class="text-center align-middle" rowspan="2">NO</th>
                <th class="text-center align-middle" rowspan="2" colspan="2">검사항목</th>
                <th class="text-center align-middle" rowspan="2" colspan="2">검사기준</th>
                <th class="text-center align-middle" rowspan="2">검사방식</th>
                <th class="text-center align-middle" rowspan="2">검사주기</th>
                <th class="text-center align-middle" colspan="3">측정치</th>
                <th class="text-center align-middle" rowspan="2">판정 <br> (적/부)</th>
            </tr>
            <tr>
                <th class="text-center">n1 <br> 양호/불량 </th>
                <th class="text-center">n2 <br> 양호/불량 </th>
                <th class="text-center">n3 <br> 양호/불량 </th>
            </tr>
        </thead>
        <tbody>
            <!-- 첫 번째 행 (겉모양) -->
            <tr>
                <td class="text-center align-middle">1</td>
                <td class="text-center align-middle" colspan="2">겉모양</td>
                <td class="text-center align-middle" colspan="2">사용상 해로울 <br> 결함이 없을 것</td>
                <td class="text-center align-middle">육안검사</td>
                <td class="text-center align-middle" rowspan="5">n = 3 <br>c = 0</td>
                <td class="text-center align-middle">
                    <label>
                        <input type="checkbox" class="check-good"> OK
                    </label>
                    <label>
                        <input type="checkbox" class="check-bad"> NG
                    </label>
                </td>
                <td class="text-center align-middle">
                    <label>
                        <input type="checkbox" class="check-good"> OK
                    </label>
                    <label>
                        <input type="checkbox" class="check-bad"> NG
                    </label>
                </td>
                <td class="text-center align-middle">
                    <label>
                        <input type="checkbox" class="check-good"> OK
                    </label>
                    <label>
                        <input type="checkbox" class="check-bad"> NG
                    </label>
                </td>
                <td class="text-center align-middle judgement"></td>
            </tr>

            <?php

            // 두께 범위에 맞는 체크된 사각형을 표시하는 함수
            function renderCheckBox($min, $max, $value) {
                if ($value >= $min && $value < $max) {
                    return '✅'; // 체크된 사각형
                } else {
                    return '□'; // 빈 사각형
                }
            }

            // 길이 범위에 맞는 체크된 사각형을 표시하는 함수
            function renderLengthCheckBox($min, $max, $length) {
                if ($length >= $min && $length < $max) {
                    return '✅'; // 체크된 사각형
                } else {
                    return '□'; // 빈 사각형
                }
            }
            ?>

            <!-- 두 번째 행 (치수) -->
            <tr>
                <td class="text-center align-middle" rowspan="4">2</td>
                <td class="text-center align-middle" rowspan="4">치수</td>
                <td class="text-center align-middle" rowspan="3">
				두께
				  <input type="text" class="form-control  text-center noborder-input inputItem" id="input_thickness" name="input_thickness" value="<?=$thickness?>" autocomplete="off">
				</td>

                <!-- 0.8 이상 ~ 1.0 미만 범위 체크 -->
                <td class="text-center align-middle"> <?= renderCheckBox(0.8, 1.0, $thickness) ?>  0.8 이상 <br> ~ 1.0 미만</td>
                <td class="text-center align-middle"> ± 0.07 </td>
                <td class="text-center align-middle" rowspan="4">체크검사</td>
                <td class="text-center align-middle" rowspan="3">
                    <input type="text" class="form-control  text-center noborder-input inputItem" id="record_thickness1" name="record_thickness1" value="" autocomplete="off">
                </td>
                <td class="text-center align-middle" rowspan="3">
					<input type="text" class="form-control  text-center noborder-input inputItem" id="record_thickness2" name="record_thickness2" value="" autocomplete="off">
                </td>
                <td class="text-center align-middle" rowspan="3">
                    <input type="text" class="form-control  text-center noborder-input inputItem" id="record_thickness3" name="record_thickness3" value="" autocomplete="off">
                </td>
                <td class="text-center align-middle judgement" rowspan="3"></td>
            </tr>
            <tr>
                <!-- 1.0 이상 ~ 1.25 미만 범위 체크 -->
                <td class="text-center align-middle"> <?= renderCheckBox(1.0, 1.25, $thickness) ?>  1.0 이상 <br> ~ 1.25 미만</td>
                <td class="text-center align-middle"> ± 0.08 </td>
            </tr>
            <tr>
                <!-- 1.25 이상 ~ 1.6 미만 범위 체크 -->
                <td class="text-center align-middle"> <?= renderCheckBox(1.25, 1.6, $thickness) ?>  1.25 이상 <br> ~ 1.6 미만</td>
                <td class="text-center align-middle"> ± 0.10 </td>
            </tr>

            <!-- 너비 검사 -->
            <tr>
                <td class="text-center align-middle" rowspan="1">
				너비
				<input type="text" class="form-control   text-center noborder-input inputItem" id="input_width" name="input_width" value="<?=$width?>" autocomplete="off">
				</td>
                <td class="text-center align-middle">✅ 1250 미만</td>
                <td class="text-center align-middle"> + 7 <br> - 0 </td>
                <td class="text-center align-middle" rowspan="1">
                    <input type="text" class="form-control  text-center noborder-input inputItem" id="record_widh1" name="record_widh1" value="" autocomplete="off">
                </td>
                <td class="text-center align-middle" rowspan="1">
					<input type="text" class="form-control  text-center noborder-input inputItem" id="record_widh2" name="record_widh2" value="" autocomplete="off">
                </td>
                <td class="text-center align-middle" rowspan="1">
                    <input type="text" class="form-control  text-center noborder-input inputItem" id="record_widh3" name="record_widh3" value="" autocomplete="off">
                </td>
                <td class="text-center align-middle judgement"></td>
            </tr>
            <!-- 인장강도 -->
            <tr>
                <td class="text-center align-middle">3</td>
                <td class="text-center align-middle" colspan="2">인장강도 (N/㎟)</td>
                <td class="text-center align-middle" colspan="2">270 이상</td>
                <td class="text-center align-middle" rowspan="4">공급업체 <br> 밀시트</td>
                <td class="text-center align-middle" rowspan="4">입고시</td>
                <td class="text-center align-middle" colspan="3">
                    <input type="text" class="form-control  text-center noborder-input inputItem" id="tensile_strength" name="tensile_strength"  autocomplete="off">
                </td>
                <td class="text-center align-middle judgement"></td>
            </tr>

            <!-- 연신율 -->
            <tr>
                <td class="text-center align-middle" rowspan="2">4</td>
                <td class="text-center align-middle" colspan="2" rowspan="2">연신율 <br> %</td>

                <!-- 두께 0.6 이상 ~ 1.0 미만 범위 체크 -->
                <td class="text-center align-middle"><?= renderCheckBox(0.6, 1.0, $thickness) ?> 두께 0.6 이상 <br> ~ 1.0 미만</td>
                <td class="text-center align-middle">36 이상</td>
                <td class="text-center align-middle" rowspan="2" colspan="3">
                    <input type="text" class="form-control  text-center noborder-input inputItem" id="elongation" name="elongation" autocomplete="off">
                </td>
                <td class="text-center align-middle judgement" rowspan="2"></td>				
            </tr>
            <tr>
                <!-- 두께 1.0 이상 ~ 1.6 미만 범위 체크 -->
                <td class="text-center align-middle"><?= renderCheckBox(1.0, 1.6, $thickness) ?> 두께 1.0 이상 <br> ~ 1.6 미만</td>
                <td class="text-center align-middle">37 이상</td>
            </tr>

            <!-- 아연의 최소 부착량 -->
            <tr>
                <td class="text-center align-middle">5</td>
                <td class="text-center align-middle" colspan="2">아연의 최소<br> 부착량 (g/㎡)</td>
                <td class="text-center align-middle" colspan="2">한면 17 이상</td>
                <td class="text-center align-middle" colspan="3" >
                   <input type="text" class="form-control  text-center noborder-input inputItem" id="Zinc" name="Zinc" autocomplete="off">     
				</td>
                <td class="text-center align-middle judgement" ></td>
            </tr>

            <!-- 종합판정 -->
            <tr>
                <td colspan="8" rowspan="4" class="text-center align-top">
                    <div class="text-start fw-bold mt-1">
                        <span># 1.55mm의 경우 KS F 4510에 따른 MIN 15의 기준에 따름</span><br>
                        <span># 두께의 경우 너비 1000 이상 ~ 1250 미만 기준에 따름</span>
                        <br><br>
                        <span>[부적합 내용]</span> <br>
                        <span>
						<input type="text" class="form-control text-start inputItem noborder-input" id="input_memo" name="input_memo" autocomplete="off">
						&nbsp;</span>
                    </div>
                </td>
                <td colspan="3" class="text-center align-middle yellowredBold">
                    <div class="d-flex justify-content-center align-items-center fw-bold">
                        <span class="text-dark">종합판정</span>
                    </div>
                </td>
            </tr>
            <tr>
                <td colspan="3" rowspan="3" class="text-center align-middle">
                    <div class="text-center fw-bold mt-3 fs-1 ">
						<input type="text" class="form-control  fs-2 text-center inputItem noborder-input" style="height:50px;" id="resultJudgement" name="resultJudgement" autocomplete="off">
					</div>
                </td>
            </tr>
        </tbody>
    </table>
</div>


</div>
</form>

</div> <!-- end of container -->
<div class="container mb-5 mt-2">
	<div class="d-flex align-items-center justify-content-center mb-5">
	</div>
</div>

<!-- 페이지로딩 -->
<script>
$(document).ready(function(){	
    var loader = document.getElementById('loadingOverlay');
	if(loader)
		loader.style.display = 'none';
});
	
function generatePDF() {
	var workplace = '<?php echo $title_message; ?>';
	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' + workplace +'_' + 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();
}

// 모달을 호출할 때 tr 요소를 저장하는 변수
var selectedRow;

$(document).on('click', '.saveData', function() {
	   saveData();
});



$(document).on('click', '.approvalBtn', function() {
    // 승인자의 이름과 오늘 날짜 가져오기
    const userName = '<?=$user_name?>'; // PHP로부터 가져온 사용자 이름
    const todayStr = '<?=$todayStr?>';  // PHP로부터 가져온 오늘 날짜

    // 승인 정보를 approvalDiv에 표시
    $('#approvalDiv').html(
        userName + '<br>' + todayStr +
        ' <i class="bi bi-x-circle remove-approval" style="cursor: pointer;"></i>'
    );
    $('#approvalDiv').show();

    // 결재 정보를 업데이트하여 저장 로직에 반영
    updateApprovalData(userName, todayStr);
	
	saveData();
});

// 결재 정보 업데이트 함수
function updateApprovalData(userName, date) {
    // 저장 로직을 위해 결재 정보 업데이트
    let approvalData = {
        writer: {
            name: $('#orderman').text().trim(),
            date: '<?=$indateStr?>'
        },
        reviewer: {
            name: $('#reviewDiv').is(':visible') ? '<?=$user_name?>' : '',
            date: '<?=$todayStr?>'
        },
        approver: {
            name: userName,
            date: date
        }
    };

    // 저장할 JSON 데이터 업데이트
    let formData = JSON.parse($('#iList').val() || '[]');
    const approvalIndex = formData.findIndex(item => item.approval);

    if (approvalIndex !== -1) {
        formData[approvalIndex].approval = approvalData;
    } else {
        formData.push({ approval: approvalData });
    }

    // JSON 문자열로 다시 저장
    $('#iList').val(JSON.stringify(formData));
}

// 결재 취소 기능
$(document).on('click', '.remove-approval', function() {
    // 결재 정보를 지우고 화면에서 숨김
    $('#approvalDiv').html('').hide();

    // JSON 데이터에서 결재자의 정보 제거
    let formData = JSON.parse($('#iList').val() || '[]');
    const approvalIndex = formData.findIndex(item => item.approval);

    if (approvalIndex !== -1) {
        formData[approvalIndex].approval.approver.name = '';
        formData[approvalIndex].approval.approver.date = '';
    }

    // JSON 문자열로 다시 저장
    $('#iList').val(JSON.stringify(formData));

    Toastify({
        text: "결재 정보가 삭제되었습니다.",
        duration: 2000,
        close: true,
        gravity: "top",
        position: "center",
        style: {
            background: "linear-gradient(to right, #ff5f6d, #ffc371)"
        },
    }).showToast();
	
	saveData();  
	
});


function captureReturnKey(e) {
    if(e.keyCode==13 && e.srcElement.type != 'textarea')
    return false;
}

function recaptureReturnKey(e) {
    if(e.keyCode==13 && e.srcElement.type != 'textarea')
    return false;
}

// 삽입/수정하는 모듈 
function saveData() {
    // json 형태로 form문에 저장하기
    let formData = [];

    // 결재 부분 정보 저장
    let approvalData = {
        writer: {
            name: $('#chargedDiv').is(':visible') ? '<?=$user_name?>' : '',
            date: '<?=$indateStr?>'
        },
        approver: {
            name: $('#approvalDiv').is(':visible') ? '<?=$user_name?>' : '',
            date: '<?=$todayStr?>'
        }
    };
    formData.push({ approval: approvalData });

    // 검사자 정보 저장
    let productionManager = $('#userNameInput').val();
    formData.push({ productionManager: productionManager });

    // 추가 정보 저장
    formData.push({ num: $('#num').val() });       
    formData.push({ update_log: $('#update_log').val() });
    formData.push({ memo: $('#memo').val() });

    // Class 'inputItem' 값 저장
    let inputItems = {};
    $('.inputItem').each(function() {
        let inputName = $(this).attr('name');
        inputItems[inputName] = $(this).val();
    });
    formData.push({ inputItems: inputItems });

    // 체크박스 상태 저장
    let checkboxData = [];
    $('#mainTable tbody tr').each(function(index) {
        let rowCheckboxes = {
            good: [],
            bad: [],
            judgement: $(this).find('.judgement').text()
        };

        $(this).find('.check-good').each(function() {
            rowCheckboxes.good.push($(this).prop('checked'));
        });

        $(this).find('.check-bad').each(function() {
            rowCheckboxes.bad.push($(this).prop('checked'));
        });

        checkboxData.push(rowCheckboxes);
    });
    formData.push({ checkboxData: checkboxData });

    // JSON 문자열로 변환
    let jsonString = JSON.stringify(formData);

    // 숨겨진 필드에 JSON 데이터 설정
    $('#iList').val(jsonString);

    $("#overlay").show(); // 오버레이 표시
    $("button").prop("disabled", true); // 모든 버튼 비활성화

    // 폼데이터 전송시 사용함 Get form
    var form = $('#board_form')[0];
    var datasource = new FormData(form);

	showMsgModal(2); // 파일저장중
    $.ajax({
        enctype: 'multipart/form-data',
        processData: false,
        contentType: false,
        cache: false,
        timeout: 600000,
        url: "insert_iList.php",
        type: "post",
        data: datasource,
        dataType: "json",
		success: function(data) {
            console.log(data);
            setTimeout(function() {
                Toastify({
                    text: "저장완료",
                    duration: 3000,
                    close: true,
                    gravity: "top",
                    position: "center",
                    style: {
                        background: "linear-gradient(to right, #00b09b, #96c93d)"
                    },
                }).showToast();
				
				saveAndClose(); //부모창 변경
			    hideMsgModal();	
                $("button").prop("disabled", false); // 모든 버튼 활성화
            }, 1000);
            $("#overlay").hide(); // 오버레이 숨김
        },
        error: function(jqxhr, status, error) {
            console.log(jqxhr, status, error);
            alert("An error occurred: " + error);
        }
    });
}


// 팝업 창에서 데이터 저장 및 닫기 함수
function saveAndClose() {
    const updatedData = {
        resultJudgement: $("#resultJudgement").val(),
        // 필요한 다른 필드도 여기에 추가할 수 있습니다.
    };

    // 부모 창의 함수 호출
    if (window.opener && typeof window.opener.closePopupAndUpdateRow === 'function') {
        window.opener.closePopupAndUpdateRow(updatedData);
    } else {
        console.error("Parent window function not found");
    }
    
    // 팝업 창 닫기
    // window.close();
}

// 초기값 불러오기
$(document).ready(function() {
	console.log(iListData);
    if (iListData.length > 0) {
        // 결재 부분 정보
        const approval = iListData.find(item => item.approval);
        if (approval) {
            if (approval.approval.writer.name && approval.approval.writer.date) {
                $('#chargedDiv').show();
                $('#chargedDiv').html(
                    approval.approval.writer.name + '<br>' + approval.approval.writer.date
                );
            } else {
                $('#chargedDiv').hide().html('');
            }
            if (approval.approval.approver.name && approval.approval.approver.date) {
                $('#approvalDiv').show();
                $('#approvalDiv').html(
                    approval.approval.approver.name + '<br>' + approval.approval.approver.date +
                    ' <i class="bi bi-x-circle remove-approval" style="cursor: pointer;"></i>'
                );
            } else {
                $('#approvalDiv').hide().html('');
            }
            $('#workdate').text(approval.approval.writer.date);
        }

        // 검사자 정보
        const productionManager = iListData.find(item => item.productionManager);
        if (productionManager && productionManager.productionManager) {
            $('#userNameInput').val(productionManager.productionManager).show();
            $('#inputContainer').show();
            $('#editButton').hide();
        } else {
            $('#userNameInput').val('');
            $('#inputContainer').hide();
            $('#editButton').show();
        }

        // inputItem 데이터 로드
        const inputItems = iListData.find(item => item.inputItems);
        if (inputItems && inputItems.inputItems) {
            for (const [name, value] of Object.entries(inputItems.inputItems)) {
                $(`.inputItem[name="${name}"]`).val(value);
            }
        }

        // 체크박스 상태 로드
        const checkboxData = iListData.find(item => item.checkboxData);
        if (checkboxData && checkboxData.checkboxData) {
            $('#mainTable tbody tr').each(function(index) {
                const rowData = checkboxData.checkboxData[index];
                if (rowData) {
                    $(this).find('.check-good').each(function(goodIndex) {
                        $(this).prop('checked', rowData.good[goodIndex]);
                    });
                    $(this).find('.check-bad').each(function(badIndex) {
                        $(this).prop('checked', rowData.bad[badIndex]);
                    });
                    $(this).find('.judgement').text(rowData.judgement);
                }
            });
        }
    }
});

// 첫번째 요소를 클릭하면 전체 로트번호 적용하기
$(document).ready(function() {
    // id가 mainTable인 테이블의 첫 번째 td를 클릭했을 때 이벤트를 등록합니다.
    $('#mainTable').on('click', 'td:first-child', function() {
        // 클릭한 첫 번째 td의 형제인 두 번째 td 요소의 값을 가져옵니다.
        var secondTdValue = $(this).siblings().find('input').val();
        
        // id가 mainTable인 테이블에서 두 번째 td 요소에 해당 값을 적용합니다.
        $('#mainTable tbody tr').each(function() {
            $(this).find('td:nth-child(2) input').val(secondTdValue);
        });
    });
});

// 부트스트랩 툴팁 
$(document).ready(function() {
  var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
  var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {
    return new bootstrap.Tooltip(tooltipTriggerEl);
  });    	  
});
</script>


<script>
$(document).ready(function() {
    var thickness = <?= isset($thickness) ? $thickness : 'null' ?>;
    var width = <?= isset($width) ? $width : 'null' ?>;
    var tensile_strength = <?= isset($tensile_strength) ? $tensile_strength : 'null' ?>;
    var elongation = <?= isset($elongation) ? $elongation : 'null' ?>;
    var Zinc =  <?= isset($Zinc) ? $Zinc : 'null' ?>;
	
    // 두께 값 확인을 위한 콘솔 출력
    // console.log('thickness:', thickness);

    $('#mainTable tbody tr').each(function() {
        var $row = $(this);
        var $judgementCell = $row.find('.judgement');

        function updateJudgement() {
            var isValidThickness = true;
            var isValidWidth = true;
            var isValidTensileStrength = true;
            var isValidElongation = true;
            var isValidZinc = true;
            var allFieldsFilled = true; // 모든 필드가 채워졌는지 확인하는 플래그

            // 두께 허용 범위 설정
            var thicknessTolerance = null;
            if (thickness >= 0.8 && thickness < 1.0) {
                thicknessTolerance = 0.07;
            } else if (thickness >= 1.0 && thickness < 1.25) {
                thicknessTolerance = 0.08;
            } else if (thickness >= 1.25 && thickness < 1.6) {
                thicknessTolerance = 0.10;
            }

            // 두께 값과 tolerance 출력 (디버깅용)
            // console.log('thicknessTolerance:', thicknessTolerance);

            if (thicknessTolerance === null) {
                console.warn('thickness 범위가 유효하지 않습니다.');
                return;
            }

            // 두께 범위 비교
            $row.find('input[name^="record_thickness"]').each(function() {
                var value = parseFloat($(this).val());
                if (isNaN(value)) {
                    allFieldsFilled = false; // 필드가 비어있다면 allFieldsFilled를 false로 설정
                    return false; // 채워지지 않은 필드가 있으면 판단 중단
                }
                var lowerLimit = thickness - thicknessTolerance;
                var upperLimit = thickness + thicknessTolerance;
                // console.log('thickness 비교:', value, '(', lowerLimit, '-', upperLimit, ')');
                if (value < lowerLimit || value > upperLimit) {
                    isValidThickness = false;
                }
            });

            // 너비 허용 범위는 +7 ~ 0
            $row.find('input[name^="record_widh"]').each(function() {
                var value = parseFloat($(this).val());
                if (isNaN(value)) {
                    allFieldsFilled = false;
                    return false;
                }
                var lowerLimit = width;
                var upperLimit = width + 7;
                if (value < lowerLimit || value > upperLimit) {
                    isValidWidth = false;
                }
            });

            // 인장강도 비교
            $row.find('input[name="tensile_strength"]').each(function() {
                var value = parseFloat($(this).val());
                if (isNaN(value)) {
                    allFieldsFilled = false;
                    return false;
                }
                if (value < 270) {
                    isValidTensileStrength = false;
                }
            });

            // 연신율 비교
            $row.find('input[name="elongation"]').each(function() {
                var value = parseFloat($(this).val());
                if (isNaN(value)) {
                    allFieldsFilled = false;
                    return false;
                }
                if (thickness >= 1.0 && thickness < 1.6 && value < 37) {
                    isValidElongation = false;
                }
            });

            // 아연 부착량 비교
            $row.find('input[name="Zinc"]').each(function() {
                var value = parseFloat($(this).val());
                if (isNaN(value)) {
                    allFieldsFilled = false;
                    return false;
                }
                if (value < 17) {
                    isValidZinc = false;
                }
            });
			
			// OK/NG 체크박스 상태 검사
			var allGood = true;
			var anyBad = false;

			// 해당 행에 OK 체크박스가 있는지 확인
			if ($row.find('.check-good').length > 0) {
				$row.find('.check-good').each(function() {
					// 체크박스가 undefined이거나 제대로 체크되지 않으면 필드가 채워지지 않은 것으로 판단
					if (isNaN($(this).is(':checked'))) {
						allFieldsFilled = false;
						return false;
					}
					if (!$(this).is(':checked')) {
						allGood = false;
					}
				});
			}

			// 해당 행에 NG 체크박스가 있는지 확인
			if ($row.find('.check-bad').length > 0) {
				$row.find('.check-bad').each(function() {
					if (isNaN($(this).is(':checked'))) {
						allFieldsFilled = false;
						return false;
					}
					if ($(this).is(':checked')) {
						anyBad = true;
					}
				});
			}

			// OK/NG 체크박스 상태 검사
			var checkedGood = 0; // 체크된 OK 체크박스 수
			var checkedBad = 0;  // 체크된 NG 체크박스 수
			
			// 각 열의 OK/NG 체크박스를 한 번만 확인하도록 변경
			var goodChecks = $row.find('.check-good');
			var badChecks = $row.find('.check-bad');			

			// 해당 행에 OK 체크박스가 있는지 확인
			if (goodChecks.length > 0) {
				goodChecks.each(function() {				
					if ($(this).is(':checked')) {
						checkedGood++; // OK 체크박스가 체크되면 증가
					}
				});
			}

			// 해당 행에 NG 체크박스가 있는지 확인
			if (badChecks.length > 0) {
				badChecks.each(function() {				
					if ($(this).is(':checked')) {
						checkedBad++; // NG 체크박스가 체크되면 증가
					}
				});
			}

			// 모든 체크박스가 다 체크되지 않았다면 공백으로 처리
			if (checkedGood + checkedBad !== 3 && (goodChecks.length > 0 || badChecks.length > 0)) {
				allFieldsFilled = false; // 모두 체크되지 않았다면 공백 표시
			}

			// 결과 출력
			// console.log('isValidThickness:', isValidThickness);
			// console.log('isValidWidth:', isValidWidth);
			// console.log('isValidTensileStrength:', isValidTensileStrength);
			// console.log('isValidElongation:', isValidElongation);
			// console.log('isValidZinc:', isValidZinc);
			// console.log('allGood:', allGood);
			// console.log('anyBad:', anyBad);			

            // 모든 필드가 채워지지 않았으면 공백으로 설정
            if (!allFieldsFilled) {
                $judgementCell.text('');
            } else {
                // 판정 업데이트
                if (isValidThickness && isValidWidth && isValidTensileStrength && isValidElongation && isValidZinc && allGood && !anyBad) {
                    $judgementCell.text('적');
                } else {
                    $judgementCell.text('부');
                }
            }
        }

  updateJudgement();

        // 체크박스 토글
        $row.find('td').each(function() {
            var $goodCheck = $(this).find('.check-good');
            var $badCheck = $(this).find('.check-bad');

            $goodCheck.on('change', function() {
                if ($(this).is(':checked')) {
                    $badCheck.prop('checked', false);
                }
                updateJudgement();
				updateFinalJudgement();
            });

            $badCheck.on('change', function() {
                if ($(this).is(':checked')) {
                    $goodCheck.prop('checked', false);
                }
                updateJudgement();
                updateFinalJudgement();
            });
        });

        // input 값 변경 시 판정 업데이트
        $row.find('input').on('input', updateJudgement);
        $row.find('input').on('input', updateFinalJudgement);
    });

    
	// 최종 종합 판정 업데이트 함수
	function updateFinalJudgement() {
		var allPass = true;
		var allJudged = true;

		$('#mainTable tbody tr .judgement').each(function() {
			var judgementText = $(this).text();

			if (judgementText === '') {
				allJudged = false;
			}

			if (judgementText === '부') {
				allPass = false;
				// '부'인 경우 해당 td의 배경색을 옅은 붉은 색으로 변경
				$(this).css('background-color', '#f8d7da'); // 옅은 붉은 색
			} else {
				// '적'인 경우 배경색을 기본으로 설정
				$(this).css('background-color', ''); // 기본 배경색 (없음)
			}
		});

		if (allJudged) {
			if (allPass) {
				$('#resultJudgement').val('합격');
			} else {
				$('#resultJudgement').val('불합격');
			}
		} else {
			$('#resultJudgement').val('');
		}
		
		console.log('allJudged', allJudged);
		console.log('allPass', allPass);
	}


    // 페이지 로드 시 최종 판정 업데이트
    updateFinalJudgement();
});

</script>


<?php require_once $_SERVER['DOCUMENT_ROOT'] . '/' . $tablename . '/common/JS_instock.php'; ?> <!-- instock 후반부 공통 JS -->

</body>
</html>