- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
72 lines
3.2 KiB
PHP
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']);
|
|
}
|
|
?>
|