query($holidaySql); $holidayRows = $holidayStmt->fetchAll(PDO::FETCH_ASSOC); foreach ($holidayRows as $holidayRow) { $startdate = $holidayRow['startdate']; $enddate = $holidayRow['enddate']; // enddate가 '0000-00-00'이거나 비어있으면 startdate만 휴일 if (empty($enddate) || $enddate === '0000-00-00' || $enddate === null) { $holidayDates[] = $startdate; } else { // 기간 내의 모든 날짜를 배열에 추가 $start = new DateTime($startdate); $end = new DateTime($enddate); $end->modify('+1 day'); // 종료일 포함 $period = new DatePeriod($start, new DateInterval('P1D'), $end); foreach ($period as $date) { $holidayDates[] = $date->format('Y-m-d'); } } } } catch (PDOException $e) { // 오류 발생 시 빈 배열 유지 error_log("Holiday 데이터 로드 오류: " . $e->getMessage()); } if ($mode === 'update' && $num) { try { $sqlModal = "SELECT * FROM " . $DB . "." . $tablename . " WHERE num=?"; $stmh = $pdo->prepare($sqlModal); $stmh->bindValue(1, $num, PDO::PARAM_STR); $stmh->execute(); $row = $stmh->fetch(PDO::FETCH_ASSOC); include 'rowDBask.php'; } catch (PDOException $Exception) { echo "오류: " . $Exception->getMessage(); } } else { include '_request.php'; $mode = 'insert'; $registdate = date("Y-m-d H:i:s"); $al_askdatefrom = date("Y-m-d"); $al_askdateto = date("Y-m-d"); $al_usedday = abs(strtotime($al_askdateto) - strtotime($al_askdatefrom)) + 1; $al_item = '연차'; $status = 'send'; $statusstr = '결재요청'; $author = $_SESSION["name"]; $author_id = $user_id; $al_company = $_SESSION["mycompany"]; $al_part = $_SESSION["mypart"]; } try { $totalusedday = 0; $totalremainday = 0; $previous_usage = 0; for ($i = 0; $i < count($totalname_arr); $i++) { if ($author == $totalname_arr[$i]) { $previous_usage = $previous_usage_arr[$i]; $availableday = $availableday_arr[$i] - $previous_usage; } } for ($i = 0; $i < count($totalname_arr); $i++) { if ($author == $totalname_arr[$i]) { $totalusedday = $totalused_arr[$i]; $previous_usage = $previous_usage_arr[$i]; $totalremainday = $availableday - $previous_usage - $totalusedday; } } } catch (PDOException $Exception) { echo "오류: " . $Exception->getMessage(); } // echo '
';
// print_r($employee_data);
// echo '
'; ?>

연차 신청 #

$approvalName , "date" => $formattedDate), ); } } else { $approver_ids = explode('!', $e_confirm_id); $approver_details = explode('!', $e_confirm); $approvals = array(); foreach ($approver_ids as $index => $id) { if (isset($approver_details[$index])) { preg_match("/^(.+ \d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})$/", $approver_details[$index], $matches); if (count($matches) === 3) { $nameWithTitle = $matches[1]; $time = $matches[2]; $date = substr($nameWithTitle, -10); $nameWithTitle = trim(str_replace($date, '', $nameWithTitle)); $formattedDate = date("m/d H:i:s", strtotime("$date $time")); $approvals[] = array("name" => $nameWithTitle, "date" => $formattedDate); } } } } if ($status === 'end') { ?>
결재
성명   회사   파트
구분 $item) { echo ""; // if ($i == 1) echo "
"; } ?>
신청시작일
신청종료일
신청 기간 산출
연차 잔여일수
신청 사유
결재 상태
파일첨부
(10MB 이하, PDF, 문서, 압축파일 등)
(이미지 파일: GIF, JPG, PNG)
0 and $level =='1' ) { print ''; } else if ($statusstr !== '결재완료') { print ''; } if ((int)$num > 0 and $level =='1' ) { ?>