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

// 연차계산 함수 포함
require_once($_SERVER['DOCUMENT_ROOT'] . "/common.php");	

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

// load_DB.php를 통해 almember, eworks 관련 데이터를 가져오고
// 기본 정보 및 연차 사용량 배열($basic_name_arr, $availableday_arr, $totalused_arr 등)을 생성합니다.
require_once($_SERVER['DOCUMENT_ROOT'] . "/almember/load_DB.php");

if (isset($_POST['name'])) {
    $name = $_POST['name'];
    try {
        // member 테이블에서 division, part, enterDate(입사일) 컬럼을 조회합니다.
        $sql = "SELECT division, part, enterDate FROM {$DB}.member WHERE name = ?";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$name]);
        $data = $stmt->fetch(PDO::FETCH_ASSOC);

        // load_DB.php에서 생성한 배열을 활용하여 연차 잔여일(remainday)을 계산합니다.
        // $basic_name_arr: almember 테이블에서 불러온 이름 배열
        // $availableday_arr: 각 직원의 연차 총 사용 가능일수
        // $totalused_arr: 해당 직원이 사용한 연차 일수 (계산 결과)
        $index = array_search($name, $basic_name_arr);
        if ($index !== false) {
            // 문자열로 전달될 수 있으므로 floatval()를 이용해 숫자로 변환합니다.
            $available = floatval($availableday_arr[$index]);
            $previous_year_usage = floatval($previous_year_usage_arr[$index]);
            $used = floatval($totalused_arr[$index]);
            $remainday = $available - $used;

            // 추가 데이터도 포함 (연차 계산 결과)
            $continueYear = isset($continueYear_arr[$index]) ? $continueYear_arr[$index] : 0;
            $initial_less_than_one_year = isset($initial_less_than_one_year_arr[$index]) ? $initial_less_than_one_year_arr[$index] : 0;
            $service_based = isset($service_based_arr[$index]) ? $service_based_arr[$index] : 0;
            $referencedate = isset($referencedate_arr[$index]) ? $referencedate_arr[$index] : 0;
        } else {
            // 해당 이름이 almember 테이블에 없는 경우 기본값 0을 할당합니다.
            $available = 0;
            $used = 0;
            $remainday = 0;
            $continueYear = 0;
            $initial_less_than_one_year = 0;
            $service_based = 0;
            $previous_year_usage = 0;
        }

        // 조회한 회원 정보에 연차 관련 데이터 추가
        $data['available'] = $available;
        $data['used'] = $used;
        $data['remainday'] = $remainday;
        $data['continueYear'] = $continueYear;
        $data['initial_less_than_one_year'] = $initial_less_than_one_year;
        $data['service_based'] = $service_based;
        $data['referencedate'] = $referencedate;
        $data['previous_year_usage'] = $previous_year_usage;
        $data['part'] = $data['part'];
        $data['company'] = $data['division'];
        $data['dateofentry'] = $data['enterDate'];

        echo json_encode($data);
    } catch (PDOException $e) {
        echo json_encode(['error' => $e->getMessage()]);
    }
} else {
    echo json_encode(['error' => 'No name provided']);
}
?>
