<?php
// EsDetail_screen.php 견적파일을 output 수주에서 사용하게 개선한 코드임. 
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");  

// output_head.php에서 사용할 변수 선언 
$title_message = '거래명세서 '; 
$title_message_sub = '거래명세서'; 
$tablename = 'output'; // 수주 테이블
$item = '거래명세서 ';   
$emailTitle = '거래명세서';   
$subTitle = '비인정제품';

// 필요한 함수가 있다면 공통 유틸 파일 포함
if (!function_exists('number_to_korean')) {
    @include_once($_SERVER['DOCUMENT_ROOT'] . '/lib/common.php'); // 예: 함수 정의 파일
}
?>

<?php include $_SERVER['DOCUMENT_ROOT'] . '/load_header.php';   
// 수주내역에서 거래명세표 표시
$selectWork = '거래명세표';
?>
<title> <?=$title_message?> </title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>	
<?php
$num = isset($_REQUEST['num']) ? $_REQUEST['num'] : '';   
// echo 'num: ' . $num . '<br>';
// echo 'DB: ' . $DB . '<br>';
// echo 'tablename: ' . $tablename . '<br>';
$option = isset($_REQUEST['option']) ? $_REQUEST['option'] : '';   // 견적서와 산출서의 다른점을 표현하는 것
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/estimate/fetch_unitprice.php");
$pdo = db_connect();
	try {
		$sql = "select * from {$DB}.{$tablename} where num = ? ";
		$stmh = $pdo->prepare($sql);
		$stmh->bindValue(1, $num, PDO::PARAM_STR);
		$stmh->execute();
		$count = $stmh->rowCount();
		if ($count < 1) { 
			print "검색결과가 없습니다.<br>";
		} else {
			$row = $stmh->fetch(PDO::FETCH_ASSOC);			
			include $_SERVER['DOCUMENT_ROOT'] . "/output/_row.php";		

			// output_extra 불러오기
			$sql_extra = "SELECT * FROM {$DB}.output_extra WHERE parent_num = ?";
			$stmh_extra = $pdo->prepare($sql_extra);
			$stmh_extra->bindValue(1, $num, PDO::PARAM_STR);
			$stmh_extra->execute();
			$row_extra = $stmh_extra->fetch(PDO::FETCH_ASSOC);

			if ($row_extra) {
				include $_SERVER['DOCUMENT_ROOT'] . "/output/_row_extra.php";
			}
			
			// echo '<pre>	';
			// print_r($estimateSlatList);
			// echo '</pre>';			
		}
	} catch (PDOException $Exception) {
		print "오류: " . $Exception->getMessage();
	}
	// 회계 데이터를 row_extra에서 불러옵니다
	$accountList = isset($row_extra['accountList']) ? $row_extra['accountList'] : '';
	
	// 디버그: 원본 데이터 확인
	echo '<div style="display:none;" id="debug-original">';
	echo 'Original accountList: ';
	var_dump($accountList);
	echo '</div>';

	// 디버그: JSON 디코딩 전 데이터 타입 확인
	echo '<div style="display:none;" id="debug-type">';
	echo 'Type of accountList: ';
	var_dump(gettype($accountList));
	echo '</div>';

	$decodedAccountList = json_decode($accountList, true);
	
	// 디버그: JSON 디코딩 결과 확인
	echo '<div style="display:none;" id="debug-decode">';
	echo 'Decoded accountList: ';
	var_dump($decodedAccountList);
	echo '</div>';

	// 디버그: JSON 디코딩 오류 확인
	echo '<div style="display:none;" id="debug-json-error">';
	echo 'JSON decode error: ';
	var_dump(json_last_error());
	echo 'JSON decode error message: ';
	var_dump(json_last_error_msg());
	echo '</div>';

	// 디코딩된 데이터가 배열인지 확인합니다.
	if (!is_array($decodedAccountList)) {
		echo '<div class="alert alert-danger">';
		echo '데이터가 정상적이지 않습니다. 확인바랍니다.<br>';
		echo 'Error Type: ' . gettype($decodedAccountList) . '<br>';
		echo 'JSON Error: ' . json_last_error_msg() . '<br>';
		echo '</div>';
		exit;
	}

	// 디버그: 배열 구조 확인
	echo '<div style="display:none;" id="debug-structure">';
	echo 'Array structure: ';
	print_r($decodedAccountList);
	echo '</div>';

	// 디코딩된 데이터를 JavaScript 변수로 전달
	echo '<script>';
	echo 'var accountListData = ' . json_encode($decodedAccountList) . ';';
	echo 'console.log("accountListData:", accountListData);'; // JavaScript 콘솔에 데이터 출력
	echo '</script>';

	$shutterboxMsg = '';

	// 테이블 데이터 처리
	$totalSupply = 0;
	$totalVat = 0;
	$totalAmount = 0;
	$rowCount = 0;

	foreach ($decodedAccountList as $item) {

		$supplyAmount = floatval(str_replace(',', '', $item['col6']));
		$vatAmount = floatval(str_replace(',', '', $item['col7']));
		$total = $supplyAmount + $vatAmount;

		$totalSupply += $supplyAmount;
		$totalVat += $vatAmount;
		$totalAmount += $total;
		$rowCount++;
	}

	// ET_unapproved와 ET_total 설정
	$ET_unapproved = $totalAmount;
	$ET_total = $ET_unapproved + (isset($estimateTotal) ? floatval(str_replace(',', '', $estimateTotal)) : 0);

?>
  
<form id="board_form"  name="board_form" method="post" enctype="multipart/form-data">
	<input type="hidden" id="mode" name="mode" value="<?= isset($mode) ? $mode : '' ?>">
	<input type="hidden" id="num" name="num" value="<?= isset($num) ? $num : '' ?>">
	<input type="hidden" id="user_name" name="user_name" value="<?= isset($user_name) ? $user_name : '' ?>">
	<input type="hidden" id="update_log" name="update_log" value="<?= isset($update_log) ? $update_log : null ?>">
	<input type="hidden" id="tablename" name="tablename" value="<?= isset($tablename) ? $tablename : '' ?>">
	<input type="hidden" id="header" name="header" value="<?= isset($header) ? $header : '' ?>">		

<div class="container mt-2">
    <div class="d-flex align-items-center justify-content-end mt-3 m-1 mb-4">	     
        <button type="button" class="btn btn-dark btn-sm  ms-1 me-1" onclick="generatePDF()"> PDF 저장 </button>
		<button type="button" class="btn btn-dark btn-sm me-1" onclick="sendmail();"> <i class="bi bi-envelope-arrow-up"></i> 전송 </button> 
        <button type="button" class="btn btn-secondary btn-sm  ms-5" onclick="self.close();"> &times; 닫기 </button>&nbsp;
    </div>
	<br>      
</div>
</form>

<div id="content-to-print">	
<br>
<div class="container mt-1">
<div class="d-flex align-items-center justify-content-center ">
    <table class="table table-sm" style="border-collapse: collapse;">
        <tbody>
            <tr>                
                <td class="text-center align-middle fw-bold fs-4" style="border-top:none; border-bottom:none;" > 
				<?php 
				if($option!=='option')
					echo '<span class="text-dark"> ' . $title_message . ' </span>  </td>'; // <span id="updateText" class="text-danger"> </span> 
                   else
					echo '<span class="text-dark"> ' . $title_message_sub . ' </span> </td>';
				?>				
				</tr>				
        </tbody>
    </table>   
</div>

<div class="d-flex align-items-center justify-content-center ">
    <table class="table" style="border-collapse: collapse;">
        <tbody>
            <tr>
                <td class="text-center fw-bold yellowBold " style="width:10%;">업체명</td>
                <td class="text-center yellowBold " style="width:40%;"> <?=$secondord?> (귀하) </td>		
                <td rowspan="5" class="text-center align-middle fw-bold" style="width:5%; border-top:none; border-bottom:none;" >공 급 자</td>
                <td class="text-center fw-bold lightgray " > 상호 </td>
                <td class="text-center fw-bold" colspan="3" >㈜ 경동기업 </td>             
                
            </tr>
            <tr>
                <td class="text-center fw-bold">제품명</td>
                <td class="text-center" > <?=$subTitle?>   </td>
				<td class="text-center fw-bold lightgray "  style="width:10%;" >등록번호</td>
                <td class="text-center" style="width:10%;"> 139-87-00333 </td>
                <td class="text-center fw-bold lightgray " >대표자</td>
                <td class="text-center fw-bold">
					<div class="d-flex align-items-center justify-content-center ">
						이 경 호 &nbsp;
						<!-- <img src="../img/daehanstamp.png" alt="도장" style="width:45px; height:45px;"> -->
					</div>
                </td>				
			<tr>
                <td class="text-center fw-bold">현장명</td>
                <td class="text-center fw-bold" > <?=$outworkplace?></td>
                <td class="text-center fw-bold lightgray " > 사업장주소 </td>
                <td colspan="3" class="text-center"> 경기도 김포시 통진읍 옹정로 45-22</td>				
            </tr>
			<tr>				
				<td class="text-center fw-bold">담당자</td>
                <td class="text-center"><?=$secondordman?></td>
                <td class="text-center fw-bold lightgray " > 업 태 </td>
                <td class="text-center" > 제조업 </td>
                <td class="text-center fw-bold lightgray " >종목</td>
                <td class="text-center" > 방화셔터, 금속창호 </td>				
                
            </tr>
			<tr>
                <td  class="text-center fw-bold">연락처</td>
                <td  class="text-center"><?=$secondordmantel?></td>
                <td class="text-center fw-bold lightgray " > TEL. </td>
                <td class="text-center" > 031-983-5130</td>
                <td class="text-center fw-bold lightgray " > FAX </td>
                <td class="text-center" > 02-6911-6315 </td>		                
            </tr>            
        </tbody>
    </table>   
	</div>
	<div class="d-flex align-items-center justify-content-center ">	
		<table class="table" style="border-collapse: collapse;">
			<tbody>
				<tr>
					<td class="text-center fw-bold" style="width:250px;" >
					합계 금액(VAT포함)  <br>
					아래와 같이 계산합니다.				
					</td>
					<td class="text-center  align-middle fs-6 fw-bold" style="width:50px;">  금 </td>				
					<td rowspan="5" class="text-end align-middle fw-bold fs-6" style="width:500px;" > <span id="koreantotalsum"> </span> </td>                
					<td class="text-center fw-bold  align-middle fs-6"  style="width:50px;" > 원 </td>
					<td class="align-middle text-end fs-6 fw-bold" style="width:250px;"> ( ￦ <span id="totalsum"> </span> )</td>
				</tr>
			</tbody>
		</table>
	</div>	

<?php

// 전체 SET 내역 표시 일련번호, 종류, 부호, 제품명, 오픈사이즈 등 전체금액 나오는 부분
// 2025/05/23 모터 견적가 포함 검색 추가
// 견적서, 거래명세표는 테이블형태가 다름, 거래명세표는 부가세 부분 표시하고 합계를 나타냄

if(True) {
	$data = [];
	$counter = 0;    
	$index = 0;    
	$sums = [];  // 각 행의 합을 저장할 배열	
	$col7_sum = 0; // col7 수량 합계    
	$col89_sum = 0; // col8 + col9 합계
	$col10_sum = 0; 
	$row_count = 0;

	echo '<div class="d-flex align-items-center justify-content-center ">';
	echo '<table id="tableDetail" class="table table-bordered">';
	echo '<thead>';
	echo '<tr>';
	echo '<th>월/일</th>';
	echo '<th>품명 및 규격</th>';
	echo '<th>수량</th>';	
	echo '<th>단가</th>';
	echo '<th>공급가액</th>';
	echo '<th>부가세</th>';
	echo '<th>합계</th>';
	echo '<th>비고</th>';
	echo '</tr>';
	echo '</thead>';
	echo '<tbody>';
			
	// 전체 반복 찾기
	foreach ($decodedAccountList as $item) {		
			// 품목명과 규격 정보 가져오기
			$itemTitle = $item['col2'] ;
			$specifications = '';
			if (isset($item['col2']) && isset($item['col3'])) {
				$specifications = $item['col2'] . '[' . $item['col3'] . ']';
			}
			
			// 수량과 단가 정보
			$quantity = floatval(str_replace(',', '', $item['col4']));
			$unitPrice = floatval(str_replace(',', '', $item['col5']));
			
			// 금액 계산
			$supplyAmount = $quantity * $unitPrice;
			$vat = round($supplyAmount * 0.1);
			$total = $supplyAmount + $vat;

			// 비고 
			$remarks = '';

			echo '<tr class="calculation-row calculation-firstrow" data-row="' . $row_count . '" data-serial="' . $row_count . '">';
			echo '<td class="text-center">' . date('m/d') . '</td>';
			echo '<td class="text-start ">' . htmlspecialchars($itemTitle) . ' ' . htmlspecialchars($specifications) . '</td>';
			echo '<td class="text-end total-su-input" data-serial="' . $row_count . '">' . $quantity . '</td>';			
			echo '<td class="text-end text-dark total-unit-price" data-serial="' . $row_count . '">' . number_format($unitPrice) . '</td>';
			echo '<td class="text-end subtotal-cell" data-serial="' . $row_count . '">' . number_format($supplyAmount) . '</td>';
			echo '<td class="text-end vat-cell" data-serial="' . $row_count . '">' . number_format($vat) . '</td>';
			echo '<td class="text-end fw-bold subtotalamount-cell" data-serial="' . $row_count . '">' . number_format($total) . '</td>';
			echo '<td class="text-center w150px">' . htmlspecialchars($remarks) . '</td>';
			echo '</tr>';

			$col7_sum += $quantity;
			$supply_sum += $supplyAmount;
            $vat_sum += $vat;
			$total_sum += $total;
			$row_count++;		
	}

	// 소계 행 추가
	echo '<tr class="subtotal">';
	echo '<td class="text-center" colspan="2"><strong>소계</strong></td>';
	echo '<td class="text-end fw-bold ">' . number_format($col7_sum) . '</td>';
	echo '<td class="text-end fw-bold "></td>';
	echo '<td class="text-end fw-bold ">' . number_format($supply_sum) . '</td>';
	echo '<td class="text-end fw-bold ">' . number_format($vat_sum) . '</td>';
	echo '<td class="text-end fw-bold grand-sum">' . number_format($total_sum) . '</td>';
	echo '</tr>';

	echo '</tbody>';
	echo '</table>';
	echo '</div>';
}

// 비고
    echo '<div class="d-flex align-items-center justify-content-center mt-5 mb-5 ">';
    echo '<table class="table mt-3" style="border-collapse: collapse;">';
    echo '<thead>';    
    echo '<tr>';    // 2행
    echo '<th colspan="1" class="text-center">계좌정보</th>';
    echo '<th colspan="1" class="text-start">국민은행 796801-00-039630 &nbsp;&nbsp; 예금주 : (주)경동기업 </th>';    
    echo '<th colspan="1" class="text-center">E-mail</th>';    
    echo '<th colspan="1" class="text-center"> <span class="text-primary" >  kd5130@naver.com </span> </th>';    
    echo '</tr>';        
    echo '</thead>';
    echo '</table>';
    echo '</div>';	
?>
</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>
// 견적서의 lastJS를 변형해서 수주내역에서 인정제품의 거래명세표를 저장하기 위함이다.

var ajaxRequest_write = null;
$(document).ready(function() {
    $('#loadingOverlay').hide(); // 로딩 오버레이 숨기기
});


function inputNumber(input) {
    const value = input.value.replace(/,/g, ''); // 콤마 제거
    input.value = parseInt(value, 10).toLocaleString(); // 다시 콤마 추가
    calculateRowTotal($(input).closest('tr')); // 행의 합계 다시 계산
}

function generatePDF() {
    var title_message = '<?php echo $title_message; ?>';
    var workplace = '<?php echo $outworkplace; ?>';
    var deadline = '<?php echo $indate; ?>';
    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' + title_message + '(' + workplace +')' + formattedDate + '.pdf';
    
    var element = document.getElementById('content-to-print');

    // 강제로 input 요소의 폰트 크기 변경
    var inputs = element.querySelectorAll('input');
    inputs.forEach(function(input) {
        input.style.fontSize = '6px';  // 모든 input 요소에 10px 폰트 크기 적용
    });

    var opt = {
        margin: [15, 8, 17, 8], // Top, right, bottom, left margins
        filename: result,
        image: { type: 'jpeg', quality: 0.70 },
        html2canvas: { scale: 4 },
        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
        pagebreak: { mode: [''] }
    };

    html2pdf().from(element).set(opt).save();
}

    
$(document).ready(function () {
    var rowArray = <?= isset($row_array_json) ? $row_array_json : '[]' ?>;

    if (Array.isArray(rowArray) && rowArray.length > 0) {
        rowArray.forEach(function (rowspanValue, index) {
            var cell = document.getElementById('dynamicRowspan-' + index);
            console.log('index', index);
            if (cell && rowspanValue > 0) {
                cell.setAttribute('rowspan', rowspanValue);
            }
        });
    }
});

// 숫자 포맷팅 함수 (콤마 추가 및 소수점 둘째자리에서 반올림)
function formatNumber(value) {
    // 소수점 둘째 자리에서 반올림
    const roundedValue = Math.round(value);    
    // 콤마 추가 포맷팅
    return new Intl.NumberFormat().format(roundedValue);
}

// 숫자에서 콤마를 제거하는 함수
function cleanNumber(value) {
    // value가 null 또는 undefined인 경우 0을 반환하도록 처리
    if (!value) return 0;
    return parseFloat(value.replace(/,/g, '')) || 0;
}

// 입력 필드에서 숫자를 포맷팅하는 함수
function inputNumber(input) {
    const cursorPosition = input.selectionStart; // 현재 커서 위치를 저장
    const value = input.value.replace(/,/g, ''); // 입력값에서 숫자만 남기고 제거
    const formattedValue = Number(value).toLocaleString(); // 천 단위 콤마 추가
    input.value = formattedValue; // 포맷팅된 값으로 설정
    input.setSelectionRange(cursorPosition, cursorPosition); // 커서 위치 유지
}

// 숫자만 남기는 헬퍼
function cleanNumber(str) {
    return Number(String(str).replace(/[^0-9.-]/g, '')) || 0;
}

// 3자리마다 콤마 찍되, 먼저 소수점 이하는 반올림 처리
function formatNumber(num) {
    // 1) 문자열이면 콤마 없애고 숫자로 변환
    const value = typeof num === 'string'
        ? parseFloat(num.replace(/,/g, ''))
        : num;

    // 2) 소수점 이하 반올림
    const rounded = Math.round(value || 0);

    // 3) 천 단위 구분자 추가
    return rounded.toLocaleString();
}

// 한글 숫자 변환 함수
function KoreanNumber(number) {
    const koreanNumbers = ['', '일', '이', '삼', '사', '오', '육', '칠', '팔', '구'];
    const koreanUnits = ['', '십', '백', '천'];
    const bigUnits = ['', '만', '억', '조'];

    let result = '';
    let unitIndex = 0;
    let numberStr = String(number);

    // 숫자가 0인 경우 '영원'을 반환
    if (number == 0) return '영원';

    // 뒤에서부터 4자리씩 끊어서 처리
    while (numberStr.length > 0) {
        let chunk = numberStr.slice(-4); // 마지막 4자리
        numberStr = numberStr.slice(0, -4); // 나머지 숫자

        let chunkResult = '';
        for (let i = 0; i < chunk.length; i++) {
            const digit = parseInt(chunk[i]);
            if (digit > 0) {
                chunkResult += koreanNumbers[digit] + koreanUnits[chunk.length - i - 1];
            }
        }
        if (chunkResult) {
            result = chunkResult + bigUnits[unitIndex] + result;
        }
        unitIndex++;
    }
    // 불필요한 '일십', '일백', '일천' 등의 단위를 제거하고 '원'을 붙여 반환
    result = result.replace(/일(?=십|백|천)/g, '').trim();
    return result + '원';
}

function removeAllButLastOccurrence(string, target) {
	// 마지막 '만'의 위치를 찾습니다
	const lastPos = string.lastIndexOf(target);

	// 마지막 '만'이 없으면 원래 문자열을 반환합니다
	if (lastPos === -1) {
		return string;
	}

	// 마지막 '만'을 제외한 모든 '만'을 제거합니다
	const beforeLastPos = string.slice(0, lastPos);
	const afterLastPos = string.slice(lastPos);

	// '만'을 빈 문자열로 대체합니다
	const result = beforeLastPos.replace(new RegExp(target, 'g'), '') + afterLastPos;

	return result;
}	

function generatePDF_server(callback) {
    var workplace = '<?php echo $title_message; ?>';
    var item = '<?php echo $emailTitle; ?>';
    var today = new Date();
    var formattedDate = "(" + String(today.getFullYear()).slice(-2) + "." + ("0" + (today.getMonth() + 1)).slice(-2) + "." + ("0" + today.getDate()).slice(-2) + ")";
    var result = 'KD' + item +'(' + 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.70 },
        html2canvas: { scale: 4 },
        jsPDF: { unit: 'mm', format: 'a4', orientation: 'portrait' },
        pagebreak: { mode: [''] }
    };

    html2pdf().from(element).set(opt).output('datauristring').then(function (pdfDataUri) {
        var pdfBase64 = pdfDataUri.split(',')[1]; // Base64 인코딩된 PDF 데이터 추출
        var formData = new FormData();
        formData.append('pdf', pdfBase64);
        formData.append('filename', result);

        $.ajax({
            type: 'POST',
            url: '/email/save_pdf.php', // PDF 파일을 저장하는 PHP 파일
            data: formData,
            processData: false,
            contentType: false,
            success: function (response) {
                var res = JSON.parse(response);
                if (callback) {
                    callback(res.filename); // 서버에 저장된 파일 경로를 콜백으로 전달
                }
            },
            error: function (xhr, status, error) {
                Swal.fire('Error', 'PDF 저장에 실패했습니다.', 'error');
            }
        });
    });
}

var ajaxRequest = null;

function sendmail() {
    var secondordnum = '<?php echo $secondordnum; ?>'; // 서버에서 가져온 값
    var item = '<?php echo $emailTitle; ?>'; 

	if (!secondordnum) {
		Swal.fire({
			icon: 'warning',
			title: '오류 알림',
			text: '발주처 코드가 없습니다.'
		});
		return; // 함수 종료
	}	

    if (typeof ajaxRequest !== 'undefined' && ajaxRequest !== null) {
        ajaxRequest.abort();
    }
    
    ajaxRequest = $.ajax({
        type: 'POST',
        url: '/email/get_companyCode.php', 
        data: { secondordnum: secondordnum },
        dataType: 'json',
        success: function(response) {
            console.log('response : ', response);
            if (response.error) {
                Swal.fire('Error', response.error, 'error');
            } else {
                var email = response.email;
                var vendorName = response.vendor_name;

                Swal.fire({
                    title: 'E메일 보내기',
                    text: vendorName + ' Email 주소확인',
                    icon: 'warning',
                    input: 'text', // input 창을 텍스트 필드로 설정
                    inputLabel: 'Email 주소 수정 가능',
                    inputValue: email, // 기존 이메일 주소를 기본값으로 설정
                    showCancelButton: true,
                    confirmButtonText: '보내기',
                    cancelButtonText: '취소',
                    reverseButtons: true,
                    inputValidator: (value) => {
                        if (!value) {
                            return '이메일 주소를 입력해주세요!';
                        }
                        const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
                        if (!emailPattern.test(value)) {
                            return '올바른 이메일 형식을 입력해주세요!';
                        }
                    }
                }).then((result) => {
                    if (result.isConfirmed) {
                        const updatedEmail = result.value; // 입력된 이메일 주소 가져오기
                        generatePDF_server(function(filename) {
                            sendEmail(updatedEmail, vendorName, item, filename);
                        });
                    }
                });

            }
        },
        error: function(xhr, status, error) {
            Swal.fire('Error', '전송중 오류가 발생했습니다.', 'error');
        }
    });
}

function sendEmail(recipientEmail, vendorName, item, filename) {
    if (typeof ajaxRequest !== 'undefined' && ajaxRequest !== null) {
        ajaxRequest.abort();
    }
    var today = new Date();
    var formattedDate = "(" + String(today.getFullYear()).slice(-2) + "." + ("0" + (today.getMonth() + 1)).slice(-2) + "." + ("0" + today.getDate()).slice(-2) + ")";
    
    ajaxRequest = $.ajax({
        type: 'POST',
        url: '/email/send_email.php', // 이메일 전송을 처리하는 PHP 파일
        data: { email: recipientEmail, vendorName: vendorName, filename: filename, item: item, formattedDate: formattedDate },
        success: function(response) {
            console.log(response);
            Swal.fire('Success', '정상적으로 전송되었습니다.', 'success'); 
        },
        error: function(xhr, status, error) {
            Swal.fire('Error', '전송에 실패했습니다. 확인바랍니다.', 'error'); 
        }
    });
}

// 페이지 로드 완료 후 실행
document.addEventListener('DOMContentLoaded', function() {
    // 총액 계산
    let totalAmount = 0;
    const rows = document.querySelectorAll('#tableDetail tbody tr:not(.subtotal)');
    
    rows.forEach(row => {
        const amountCell = row.querySelector('.subtotalamount-cell');
        if (amountCell) {
            const amount = parseFloat(amountCell.textContent.replace(/,/g, '')) || 0;
            totalAmount += amount;
        }
    });

    // 숫자 형식으로 표시
    const totalsumElement = document.getElementById('totalsum');
    if (totalsumElement) {
        totalsumElement.textContent = totalAmount.toLocaleString();
    }

    // 한글 형식으로 표시
    const koreantotalsumElement = document.getElementById('koreantotalsum');
    if (koreantotalsumElement) {
        koreantotalsumElement.textContent = KoreanNumber(totalAmount);
    }

    // ET_unapproved와 ET_total 업데이트
    const etUnapproved = document.getElementById('ET_unapproved');
    const etTotal = document.getElementById('ET_total');
    
    if (etUnapproved) {
        etUnapproved.value = totalAmount;
    }
    if (etTotal) {
        etTotal.value = totalAmount;
    }

    // 부모 창이 있는 경우 부모 창의 값도 업데이트
    if (window.opener) {
        const parentET_unapproved = window.opener.document.getElementById('ET_unapproved');
        const parentET_total = window.opener.document.getElementById('ET_total');
        
        if (parentET_unapproved) {
            parentET_unapproved.value = totalAmount;
        }
        if (parentET_total) {
            parentET_total.value = totalAmount;
        }
    }
});
</script>

</body>
</html>
