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

print 'estimateList를 json형태의 파일 내용을 강제로 생성하기 위한 화면 ';
print 'work_backup의 자료를 가져와서 estimateList를 json형태의 파일 내용을 강제로 생성하기 위한 화면 ';

include '_request.php';

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

// PDO에서 버퍼링된 쿼리를 사용하도록 설정
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);

// 이 스크립트의 메모리 제한 증가
ini_set('memory_limit', '256M');

$sql = "SELECT * FROM " . $DB . "." . $tablename;
try {
    $stmh = $pdo->prepare($sql);
    $stmh->execute();
    $rows = $stmh->fetchAll(PDO::FETCH_ASSOC);

    $pdo->beginTransaction();

    foreach ($rows as $row) {
        $estimateListData = [];

        // 기본 행 추가
        if (!empty($row["estimate1"]) || !empty($row["estimate1_vat"])) {
            $data = [
                'col1' => ($row["condate"] === '0000-00-00') ? '' : ($row["condate"] ?? ''),
                'col2' => $row["estimate1_supply"] ?? '',
                'col3' => $row["estimate1_vat"] ?? '',
                'col4' => $row["estimate1"] ?? '',
                'col5' => $row["file_name_0"] ?? '',
                'col6' => $row["file_copied_0"] ?? ''
            ];

            $estimateListData[] = $data;
        }

        // 1차 행 추가
        if (!empty($row["estimate2"]) || !empty($row["estimate2_vat"])) {
            $data = [
                'col1' => ($row["condate1"] === '0000-00-00') ? '' : ($row["condate1"] ?? ''),
                'col2' => $row["estimate2_supply"] ?? '',
                'col3' => $row["estimate2_vat"] ?? '',
                'col4' => $row["estimate2"] ?? '',
                'col5' => $row["file_name_1"] ?? '',
                'col6' => $row["file_copied_1"] ?? ''
            ];

            $estimateListData[] = $data;
        }

        // 2차 행 추가
        if (!empty($row["estimate3"]) || !empty($row["estimate3_vat"])) {
            $data = [
                'col1' => ($row["condate2"] === '0000-00-00') ? '' : ($row["condate2"] ?? ''),
                'col2' => $row["estimate3_supply"] ?? '',
                'col3' => $row["estimate3_vat"] ?? '',
                'col4' => $row["estimate3"] ?? '',
                'col5' => $row["file_name_2"] ?? '',
                'col6' => $row["file_copied_2"] ?? ''
            ];

            $estimateListData[] = $data;
        }

        // JSON으로 변환
        $estimateListJson = json_encode($estimateListData, JSON_UNESCAPED_UNICODE);

        // 데이터베이스 업데이트
        $updateSql = "UPDATE {$DB}.work SET estimateList = :estimateList WHERE num = :num";
        $updateStmh = $pdo->prepare($updateSql);
        $updateStmh->bindValue(':estimateList', $estimateListJson, PDO::PARAM_STR);
        $updateStmh->bindValue(':num', $row['num'], PDO::PARAM_INT);
        $updateStmh->execute();
    }

    $pdo->commit();
    echo "모든 레코드의 estimateList가 성공적으로 업데이트되었습니다.";
} catch (PDOException $Exception) {
    $pdo->rollBack();
    echo "오류: " . $Exception->getMessage();
}
?>
