ÿØÿà JFIF ` ` ÿþ
Server : Apache System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : tkt_travelbus ( 1137) PHP Version : 7.0.0p1 Disable Function : mysql_pconnect Directory : /tkt_travelbus/www/admin/work_request/ |
Upload File : |
<? include "../include/top.html"; // 관리자목록 $admin_arr = member_fetch(" and mb_level <= 10 "); if(!$mb_id || $TK_MEMBER['mb_id'] > 1) { $mb_id = $TK_MEMBER['mb_id']; } /***** 달력 환경설정 (시작) *****/ // 달력 배경 설정 $cal_bg = "/js/ajaxcalendar/cal_bg.gif"; // 요일 영문 (기본) // 달력 글자 색상 $cal_day_color = "#464646"; // 평일 $cal_sat_color = "#0066CC"; // 토요일 $cal_sun_color = "#FF0000"; // 일요일(공휴일) $cal_today_color = "#2C852C"; // 오늘 $cal_none_color = "#BBBBBB"; // 비활성일 // 마지막 날,요일 설정 $cal_lastday = array(1=>31,28,31,30,31,30,31,31,30,31,30,31); // 각 달의 마지막 날 지정 $yyoil = array("일","월","화","수","목","금","토"); // 요일명 지정 /***** 달력 초기화 *****/ // 오늘 $cal_now_yy = (int)date("Y"); $cal_now_mm = (int)date("m"); $cal_now_dd = (int)date("d"); // 파라메터 if (!$yy) $yy = (int)date("Y"); if (!$mm) $mm = (int)date("m"); $sdate = $sdate; // 달력 시작일 $edate = $edate; // 달력 종료일 $format = $format; // 출력 포멧 // 공통 파라메터 $cal_param = "&sdate={$sdate}&edate={$edate}&format={$format}"; // 윤년 계산을 통해 2월의 마지막 날 계산 if ($yy % 4 == 0 && $yy % 100 != 0 || $yy % 400 == 0) { $cal_lastday[2] = 29; } // 전해까지 평년 기준으로 날짜수 계산 및 윤년의 횟수를 더함 $cal_total = ($yy-1)*365+(int)(($yy-1)/4) - (int)(($yy-1)/100) + (int)(($yy-1)/400); // 해당월의 1일 for ($i=1; $i<$mm; $i++) { $cal_total += $cal_lastday[$i]; // 전달까지의 날짜수 더함 } $cal_total++; // 그 달의 1일 $cal_startday = $cal_total % 7; // 시작 요일을 구함 (0:일요일,...,6:토요일) // 해당월의 마지막 날짜 $cal_endday = $cal_lastday[$mm]; // DB용 년월 (YYYY-MM); $cur_month = $yy . "-" . str_pad($mm, 2, "0", STR_PAD_LEFT); /***** 이전달, 다음달 *****/ if ($mm == 12) { $cal_ny = $yy + 1; // 다음년 $cal_nm = 1; // 다음월 $cal_py = $yy; // 이전년 $cal_pm = $mm - 1; // 이전월 } elseif ($mm == 1) { $cal_ny = $yy; $cal_nm = $mm + 1; $cal_py = $yy - 1; $cal_pm = 12; } else { $cal_ny = $yy; $cal_nm = $mm + 1; $cal_py = $yy; $cal_pm = $mm - 1; } // 링크 $cal_prev_href = "document.location.href = '{$PHP_SELF}?mb_id={$mb_id}&yy={$cal_py}&mm={$cal_pm}&{$cal_param}';"; // 이전달 $cal_next_href = "document.location.href ='{$PHP_SELF}?mb_id={$mb_id}&yy={$cal_ny}&mm={$cal_nm}{$cal_param}';"; // 다음달 /***** 근태기록 *****/ // 연차휴가 기록 $sql = "SELECT * from TB_MEMBER_S03 where SUBSTR(mb_date,1,7)='{$cur_month}' and mb_id='{$mb_id}'"; $rs = db_query($sql); while($row=db_fetch_array($rs)) { switch ($row['gubun']) { case "A"; $row['gubun_text'] = "연차휴가"; // 연차휴가 / 반차 텍스트 $gubun_code = "F"; // F 연차휴가 / H 반차 break; case "B"; $row['gubun_text'] = "반차"; $gubun_code = "H"; break; } // 연차휴가 일 수 만큼 데이터 입력 $vac_duration_time = strtotime($row['end_dt']) - strtotime($row['start_dt']); $vac_days = $vac_duration_time / (60*60*24) + 1; // 연차휴가 일 수 for($i=0; $i<$vac_days; $i++){ $vac_date = date("Y-m-d", strtotime($row['mb_date']." +{$i} days")); $vac_yoil = date('w', strtotime($vac_date)); if($vac_yoil != 0 && $vac_yoil != 6){ // 주말 제외 $working[$vac_date][$gubun_code] = $row; } } } // 출퇴근 기록 $sql = "SELECT * from TB_MEMBER_S01 where SUBSTR(mb_date,1,7)='{$cur_month}' and mb_id='{$mb_id}'"; $rs = db_query($sql); while($row=db_fetch_array($rs)) { switch ($row['gubun']) { case "A"; $gubun_code = "S"; // S 출근 / E 퇴근 코드 $row['gubun_text'] = "출근"; // 출근 / 퇴근 텍스트 $row['status_text'] = ""; // 기타 상태값 break; case "AA"; $row['gubun_text'] = "출근"; $gubun_code = "S"; $row['status_text'] = "지각"; break; case "B"; $row['gubun_text'] = "퇴근"; $gubun_code = "E"; $row['status_text'] = ""; break; case "BB"; $row['gubun_text'] = "퇴근"; $gubun_code = "E"; $row['status_text'] = "조기퇴근"; break; } $working[$row['mb_date']][$gubun_code] = $row; } // 연차(반차) 수 $sql = "SELECT SUM(IF(gubun='A',1,0)) AS FULL, SUM(IF(gubun='B',1,0)) AS HALF FROM TB_MEMBER_S03 WHERE SUBSTR(mb_date,1,4) = SUBSTR(CURDATE(),1,4) AND mb_id='{$mb_id}'"; $emp_work_holy = db_fetch($sql); $emp_work_holy[T] = $emp_work_holy[FULL] + ($emp_work_holy[HALF] / 2); // 휴일 $sql = "SELECT * FROM TB_HOLIDAY ORDER BY holiday_date ASC"; $rs = db_query($sql); $holidayData = array(); $calendarHolidayData = array(); $calendayNationList = array(); while($row = db_fetch_array($rs)){ array_push($holidayData, $row); $calendarHolidayData[$row['holiday_date']][$row['nation']] = $row; array_push($calendayNationList, $row['nation']); } //한국 키값제거 $calendayNationList = array_unique($calendayNationList); $koKey = array_search( 'ko', $calendayNationList ); array_splice( $calendayNationList, $koKey, 1 ); ?> <div class="contents_wrap"> <div class="contents_wrap_in"> <div class="title">인트라넷<span class="arrow">></span><strong>근무달력</strong></div> <div class="contents_detail"> <div id="Content_box"> <!-- 달력 테이블 --> <div class="calendar_wrap3 no_line"> <!-- 년,월 이동 --> <div class="Big_cal_c"> <? if ($TK_MEMBER['mb_level'] == 1) { ?> <div style="position:absolute; width:200px; right:200px;"> 직원 선택 : <select name="mb_id" id="mb_id" hname="직원" required> <option value="">==선택==</option> <? for($i=0 ; $i < count($admin_arr) ; $i++){ $arr = $admin_arr[$i]; if($arr['del_flag'] == 'Y') continue; ?> <option value="<?=$arr['mb_id']?>" <?=($arr['mb_id']==$mb_id)?"selected":""?>><?=$arr['mb_nm']?></option> <?}?></select> </div> <? } ?> <div class="cal_label"> <table> <tr> <td style="width:55px; background-color:#FFFCDD;" class="cal_label_box">근무일</td> <td style="width:20px;"></td> <td style="width:55px; background-color:#ffd9d9;" class="cal_label_box">휴무일</td> <td style="width:20px;"></td> <td style="width:55px; background-color:#E0FAFB;" class="cal_label_box"> 연차일수</b> </td> <td style="width:140px; text-align:center;"> <b>지급 <?=$TK_MEMBER['emp_vacation_days']?>일 / <b>잔여 <?=$TK_MEMBER['emp_vacation_days']-$emp_work_holy[T]?>일 </td> </tr> </table> </div> <div class="cal_info" style="position:absolute; left:200px;"> </div> <div class="year_wrap"> <i class="xi-caret-up-circle xi-rotate-270" alt="이전달" title="이전달" style="cursor:pointer; font-size:26px; float:left; padding-top:3px; vertical-align:middle;" onclick="<?=$cal_prev_href?>" id="cal_pre_month"></i> <p class="cal_year" ><?=$yy?>년 <?=$mm?>월</p> <i class="xi-caret-up-circle xi-rotate-90" alt="다음달" title="다음달" style="cursor:pointer; font-size:26px; float:right; padding-top:3px; vertical-align:middle;" onclick="<?=$cal_next_href?>" id="cal_next_month"></i> </div> <div class="Top_r_btn" style="right:100px;"><a class="Tbtn red" nohref="" style="cursor:pointer;" onclick="to_dialog.iframe('schedule_write.html?SqlType=sch_ins&t_date=<?=date("Y-m-d")?>','[<?=date("Y-m-d")?>] 일정 추가','700','500',true,true,'yes');">일정추가</a></div> <div class="Top_r_btn"><a class="Tbtn gray1" nohref="" style="cursor:pointer;" onclick="to_dialog.iframe('../mypage/member_working.html','연차관리','830','600',true,true,'yes');">연차신청</a></div> <!-- //년,월 이동 --> </div> <!-- 달력 시작 --> <table width="100%" border="0" cellspacing="0" cellpadding="0" class="cal_t"> <thead> <tr> <th class="c_red">일</th> <th>월</th> <th>화</th> <th>수</th> <th>목</th> <th>금</th> <th class="c_blue">토</th> </tr> </thead> <? // $day_num 변수 초기화 $day_num = 0; for ($i=1; $i<=6; $i++) { // 1주 ~ 마지막주 - 최대 6주까지 있음 echo "<tr>\n"; for ($j=0; $j<7; $j++) { // 요일 if ($i == 1 && $cal_startday > 0) { // 첫주의 빈공간 for ($k=0; $k<$cal_startday; $k++) { echo "<td> </td>\n"; // 첫주의 빈공간을 표시함 $j++; // 빈공간 만큼 요일 증가 } // 빈공간을 다 채었으므로 2주차부터는 일요일(0)부터 시작함, // 이렇게 안하면 첫주에는 날짜 사이마다 빈공간 입력됨 $cal_startday = 0; } // 일자 증가 $day_num++; // 달력 배경 색상 $cal_bgcolor = "#FFFFFF"; // 마우스 아웃 $cal_over_bgcolor = "#EEE"; // 마우스 오버 // 오늘 판단 $is_today = false; if ($yy == $cal_now_yy && $mm == $cal_now_mm && $day_num == $cal_now_dd) { $is_today = true; } // 요일별 출력 if ($j == 0) { // 일요일 $day_color = $cal_sun_color; } elseif ($j == 6) { // 토요일 $day_color = $cal_sat_color; } else { // 평일 $day_color = $cal_day_color; } // 오늘 설정 if ($is_today == true) { // 오늘 $day_color = $cal_today_color; $cal_bgcolor = "#EEE"; } // full_day 설정 $full_day = date("Y-m-d", strtotime($yy . "-" . $mm . "-" . $day_num)); // 출력 포멧 설정 // 필요한 출력 포멧을 직접 추가하면됨 (20100419 ) $format_day = $full_day; switch ($format) { case "1": $format_day = $format_day; break; // YYYY-MM-DD case "2": $format_day = str_replace("-", "", $format_day); break; // YYYYMMDD } // 일정 데이터 $data = array(); $sql = "select seq,t_date,title,cont,left(right(ins_dt,8),5) as ins_tm from TB_MEMBER_SCHEDULE where t_date='{$full_day}' order by ins_dt desc "; $rs = db_query($sql); $schedule_data = db_fetch_all($rs); // 근무일 강조 표시 if($working[$full_day]){ if(isset($working[$full_day]['F'])){ $cal_bgcolor = "#e0fafb"; } else if(isset($working[$full_day]['H'])){ $cal_bgcolor = "#e0fafb"; } else { $cal_bgcolor = "#fffcdd"; } } // day_event 설정 $day_event = " onmouseover=\"this.style.backgroundColor='{$cal_over_bgcolor}'\" onmouseout=\"this.style.backgroundColor='{$cal_bgcolor}'\" "; // 날짜 기간 체크 (시작일) if ($sdate) { // 비활성 판단 if ($sdate > $full_day) { $day_color = $cal_none_color; $day_event = ""; } } // 날짜 기간 체크 (종료일) if ($edate) { if ($edate < $full_day) { $day_color = $cal_none_color; $day_event = ""; } } // 공휴일 $isCalendarHoliday = false; $idxMonth = $mm; $idxDay = $day_num; if(strlen($idxMonth) == 1){ $idxMonth = '0'.$idxMonth; } if(strlen($idxDay) == 1){ $idxDay = '0'.$idxDay; } $srchHolidayCalendarIdx = $yy.'-'.$idxMonth.'-'.$idxDay; // echo $srchHolidayCalendarIdx.'<br>'; // exit; if(isset($calendarHolidayData[$srchHolidayCalendarIdx]['ko'])){ $isCalendarHoliday = $calendarHolidayData[$srchHolidayCalendarIdx]['ko']; //p($isCalendarHoliday); // exit; $day_color = "red"; } /*if(isset($calendarHolidayData[$srchHolidayCalendarIdx])){ $isCalendarHoliday = $calendarHolidayData[$srchHolidayCalendarIdx]; $day_color = "red"; }*/ // 날짜 출력 echo "<td align='center' " . $day_event . " style='background-color:" . $cal_bgcolor . "'>"; echo "<span style='color:" . $day_color . ";cursor:pointer;' onclick=\"to_dialog.iframe('schedule_write.html?SqlType=sch_ins&t_date={$full_day}','[{$full_day}] 일정 추가','700','500',true,true,'yes');\">"; echo $day_num; echo (($isCalendarHoliday) ? '<p style="float:right;font-size:11px;color:red;width:100px;position:relative;left:-100px;font-weight:normal">'.$isCalendarHoliday['holiday_name'].'</p>' : ''). "</span>"; foreach($calendayNationList as $nationName){ if(isset($calendarHolidayData[$srchHolidayCalendarIdx][$nationName])){ $isCalendarHoliday = $calendarHolidayData[$srchHolidayCalendarIdx][$nationName]; //p($isCalendarHoliday); // exit; $day_color = $cal_sat_color; echo (($isCalendarHoliday) ? '<p style="clear:both;float:left;font-size:12px;color:'.$day_color.';margin-left:28px">'.$isCalendarHoliday['holiday_name'].'</p>' : ''); } } echo "<div class='schedule2'>"; // 출퇴근 출력 if($working[$full_day]){ echo "<div class='working' style='padding:5px 0;'>"; foreach($working[$full_day] as $key => $row) { echo "<i class='xi-time' style='line-height:12px; vertical-align:middle;'></i> <span style='font-weight:bold; font-size:12px;'>" . $row['gubun_text'] . "</span>"; if($key=='S' || $key=='E'){ echo " : " . substr($row['ins_dt'], 11); } if($key=='F' || $key=='H'){ echo " : " . $row['reason']; } if($row['status_text']) { echo " (" . $row['status_text'] . ")"; } echo "<br>"; } echo "</div>"; } // 일정 출력 for($ii=0 ; $ii<count($schedule_data) ; $ii++) { $row = $schedule_data[$ii]; ?> <div class="view_content" style="cursor:pointer;" code='<?=$row['seq']?>' onclick="to_dialog.iframe('schedule_write.html?SqlType=sch_updt&seq=<?=$row['seq']?>','[<?=$row['t_date']?>] 일정 조회','700','500',true,true,'yes');"><i class='xi-calendar' style='line-height:12px; vertical-align:middle;'></i> <?=cut_str($row['title'],15,"..")?></div> <!--<div class="lo_right">[<?=$row['ins_tm']?>]</div> --> <div style='position:absolute; display:none;z-index:99999; background:#fff; border:1px solid #ccc; padding:10px; width:12%;' id="cont_<?=$row['seq']?>"> <?=nl2br($row['cont'])?> </div> <? } echo "</div> </td>\n"; if ($day_num >= $cal_endday) { // 마지막 날짜 까지만 for ($h=$j; $h<6; $h++) { // 마지막 날짜 다음부터는 빈공간 출력 echo "<td> </td>\n"; // 마지막 날짜 다음부처 빈공간 } break; } } // 요일끝 echo "</tr>\n"; if ($day_num >= $cal_endday) { // 마지막 날짜 까지만, 이렇게 안하면 31일이 토요일인 경우 32일도 출력됨 break; } } // ~31 for 끝 ?> </table> <!-- //달력 끝 --> </div> <!-- //달력 테이블 --> </div> </div> </div> </div> <script type="text/javascript"> $(".view_content").bind({ mouseover: function(){ //alert($(this).attr('code')); $("#cont_"+$(this).attr('code')).show(); }, mouseleave: function(){ $("#cont_"+$(this).attr('code')).hide(); } }); $("#mb_id").on('change', function(){ var mb_id = $(this).val(); document.location.href = '<?=$PHP_SELF?>?mb_id='+mb_id+'<?=$cal_param?>'; }); </script> <? include "../include/footer.html" ?>