Files
sam-kd/annualleave/get_employee_info.php
hskwon aca1767eb9 초기 커밋: 5130 레거시 시스템
- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경
- DB 연결 하드코딩 → .env 기반으로 변경
- MySQL strict mode DATE 오류 수정
2025-12-10 20:14:31 +09:00

72 lines
3.2 KiB
PHP

<?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']);
}
?>