5) { sleep(1); header("Location:" . $WebSite . "login/login_form.php"); exit; } $title_message = '연차 관리자모드'; $tablename = 'almember'; include $_SERVER['DOCUMENT_ROOT'] . '/load_header.php'; ?> <?= $title_message ?> "; // } require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php"); $pdo = db_connect(); // 검색 조건 변수 추가 $mode = isset($_REQUEST["mode"]) ? $_REQUEST["mode"] : ""; $search = isset($_REQUEST["search"]) ? $_REQUEST["search"] : ""; $corpSearch = isset($_REQUEST["corpSearch"]) ? $_REQUEST["corpSearch"] : $mycompany ; $partSearch = isset($_REQUEST["partSearch"]) ? $_REQUEST["partSearch"] : ""; $year = isset($_REQUEST["year"]) ? $_REQUEST["year"] : date("Y"); $showRetired = isset($_POST['showRetired']) ? $_POST['showRetired'] : 0; // JSON 파일에서 소속 및 부서 데이터 로드 $corpFile = $_SERVER['DOCUMENT_ROOT'] . '/member/corp.json'; $corpData = file_exists($corpFile) ? json_decode(file_get_contents($corpFile), true) : []; if (!is_array($corpData)) $corpData = []; $partFile = $_SERVER['DOCUMENT_ROOT'] . '/member/part.json'; $partData = file_exists($partFile) ? json_decode(file_get_contents($partFile), true) : []; if (!is_array($partData)) $partData = []; // 기본 SQL 조건 $conditions = ["referencedate = :year", "is_deleted IS NULL"]; $bindParams = [':year' => $year]; if (!$showRetired) { $conditions[] = "(comment IS NULL OR comment = '')"; } else { $conditions[] = "comment = '퇴사'"; } // 검색 조건 추가 if ($mode == "search") { if (!empty($search)) { $columns = []; $stmt = $pdo->query("SHOW COLUMNS FROM " . $DB . "." . $tablename); while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $columns[] = $row['Field']; } $searchConditions = []; foreach ($columns as $index => $col) { $paramName = ":search{$index}"; $searchConditions[] = "$col LIKE $paramName"; $bindParams[$paramName] = "%$search%"; } $conditions[] = "(" . implode(" OR ", $searchConditions) . ")"; } if (!empty($corpSearch)) { $conditions[] = "company LIKE :corpSearch"; $bindParams[":corpSearch"] = "%$corpSearch%"; } if (!empty($partSearch)) { $conditions[] = "part LIKE :partSearch"; $bindParams[":partSearch"] = "%$partSearch%"; } } // almember의 기본정보 배열을 불러옴 (예, $basic_name_arr, $basic_part_arr 등) require_once($_SERVER['DOCUMENT_ROOT'] . "/almember/load_DB.php"); // echo '
';
// print_r($previous_year_usage_arr);
// echo '
'; $sql = "SELECT * FROM {$DB}.almember WHERE " . implode(" AND ", $conditions) . " ORDER BY referencedate DESC, dateofentry ASC, num DESC"; $stmh = $pdo->prepare($sql); $stmh->execute($bindParams); $total_row = $stmh->rowCount(); // print $admin; ?>
      
주일/경동 연차는 (회계년도말) 기준으로 산정한다.
개    
>
    선택년도
 
fetch(PDO::FETCH_ASSOC)) { include "_row.php"; // 년도를 추출하여 -1을 적용 // 문자열 연결 연산자 `.` 추가 $fiscalYearEnd = ($referencedate - 1) . "-12-31"; // echo '참고년도 : ' . $referencedate ; // echo '전년도 : ' . $fiscalYearEnd ; $result = calculateAnnualLeave($dateofentry, $fiscalYearEnd); $continueYear = $result['G']; $initial_less_than_one_year = $result['H']; $service_based = $result['I']; $availableday = $result['J']; $totalusedday = 0; $totalremainday = isset($availableday) ? $availableday : 0; if (isset($totalname_arr) && is_array($totalname_arr) && count($totalname_arr) > 0) { for ($i = 0; $i < count($totalname_arr); $i++) { if (trim($name) == trim($totalname_arr[$i]) && $referencedate == $totalusedYear_arr[$i]) { $totalusedday = $totalused_arr[$i]; $previous_year_usage = $previous_year_usage_arr[$i]; $totalremainday = $availableday - $totalusedday - $previous_year_usage; } } } ?>
번호 구분 성명 회사 파트 입사일 해당연도 근속년 1~2년미만 가산 근속년수별 발생일합 전년도 선사용 사용일 합계 잔여일
' . $previous_year_usage . ' ' : '' ?>