| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 | 
							- $(function () {
 
-     'use strict';
 
-     window.utils = window.utils || {};
 
-     $.extend(window.utils, {
 
-         holiday: {
 
-             createHolidayManager: function () {
 
-                 var holidayDataSource = BemsWebApplication.db.createDataSource('CmHoliday', true, true);
 
-                 var holidayCustomDataSource = BemsWebApplication.db.createDataSource('CmHolidayCustom', true);
 
-                 var holidayWeekendDataSource = BemsWebApplication.db.createDataSource('CmHolidayWeekend', true);
 
-                 var holidaySources, holidayCustomSources, weekend;
 
-                 var isSaturday = false,
 
-                     isSunday = false;
 
-                 var cc = new CalendarConverter;
 
-                 var holidays = [];
 
-                 var isLoaded = false;
 
-                 var currentYear = 0;
 
-                 return {
 
-                     loadHolidays: function () {
 
-                         var deferred = new $.Deferred();
 
-                         $.when(holidayDataSource.load(), holidayCustomDataSource.load(), holidayWeekendDataSource.load())
 
-                             .done(function (result1, result2, result3) {
 
-                                 holidaySources = result1[0];
 
-                                 holidayCustomSources = result2[0];
 
-                                 weekend = result3[0];
 
-                                 if (weekend.length > 0) {
 
-                                     isSaturday = weekend[0].Saturday();
 
-                                     isSunday = weekend[0].Sunday();
 
-                                 }
 
-                                 isLoaded = true;
 
-                                 deferred.resolve();
 
-                             })
 
-                             .fail(function () {
 
-                                 deferred.reject();
 
-                             });
 
-                         return deferred.promise();
 
-                     },
 
-                     isLoaded: function () { return isLoaded; },
 
-                     generateHolidays: function (momentDate) {
 
-                         var year, month, day, solar;
 
-                         var self = this;
 
-                         if (currentYear !== momentDate.year()) {
 
-                             holidays = [];
 
-                             $.each(holidaySources, function (i, item) {
 
-                                 year = momentDate.year();
 
-                                 month = item.HolidayMonth() - 1;
 
-                                 day = item.HolidayDay();
 
-                                 if (item.IsLunar()) {
 
-                                     solar = cc.lunar2solar(new Date(year - 1, month, day));
 
-                                     if (solar.sYear !== year) {
 
-                                         solar = cc.lunar2solar(new Date(year, month, day));
 
-                                     }
 
-                                     year = solar.sYear;
 
-                                     month = solar.sMonth - 1;
 
-                                     day = solar.sDay;
 
-                                 }
 
-                                 holidays.push($G.date(moment([year, month, day])));
 
-                             });
 
-                             $.each(holidayCustomSources, function (i, item) {
 
-                                 var itemDate = item.HolidayDate();
 
-                                 holidays.push($G.date(moment([itemDate.getFullYear(), itemDate.getMonth(), itemDate.getDate()])));
 
-                             });
 
-                             currentYear = momentDate.year();
 
-                         }
 
-                         var weekends = self.getWeekendHolidayArray(momentDate, isSaturday, isSunday);
 
-                         return holidays.concat(weekends);
 
-                     },
 
-                     getWeekendHolidayArray: function (momentDate, isSaturday, isSunday) {
 
-                         var month = momentDate.clone().startOf('month');
 
-                         var sunday = month.clone(),
 
-                             saturday = month.clone();
 
-                         var weekends = [];
 
-                         if (month.day() !== 0) {
 
-                             sunday.day(-7);
 
-                         }
 
-                         if (month.day() !== 6) {
 
-                             saturday.day(-1);
 
-                         }
 
-                         for (var i = 0 ; i < 7 ; i++) {
 
-                             if (isSunday) {
 
-                                 weekends.push($G.date(moment([sunday.year(), sunday.month(), sunday.date()])));
 
-                                 sunday.day(7);
 
-                             }
 
-                             if (isSaturday) {
 
-                                 weekends.push($G.date(moment([saturday.year(), saturday.month(), saturday.date()])));
 
-                                 saturday.day(13);
 
-                             }
 
-                         }
 
-                         return weekends;
 
-                     },
 
-                 };
 
-             },
 
-             getWeekendHolidays: function (momentDate, isSaturday, isSunday) {
 
-                 var month = momentDate.clone().startOf('month');
 
-                 var sunday = month.clone(),
 
-                     saturday = month.clone();
 
-                 var weekends = [];
 
-                 if (month.day() !== 0) {
 
-                     sunday.day(-7);
 
-                 }
 
-                 if (month.day() !== 6) {
 
-                     saturday.day(-1);
 
-                 }
 
-                 for (var i = 0 ; i < 7 ; i++) {
 
-                     if (isSunday) {
 
-                         this.pushHolidayEventInArray(weekends, '주말 휴일', moment([sunday.year(), sunday.month(), sunday.date()]), null, true, 2, false); // 마지막 false 추가 hcLee 2016 01 22
 
-                         sunday.day(7);
 
-                     }
 
-                     if (isSaturday) {
 
-                         this.pushHolidayEventInArray(weekends, '주말 휴일', moment([saturday.year(), saturday.month(), saturday.date()]), null, true, 2, false); // 마지막 false 추가 hcLee 2016 01 22
 
-                         saturday.day(13);
 
-                     }
 
-                 }
 
-                 return weekends;
 
-             },
 
-             // holidayType : 0: 정기휴일, 1: 특정휴일, 2: 주말휴일
 
-             // hcLee 2016 01 22
 
-             //pushHolidayEventInArray: function( destArray, title, day, isYearlyHoliday, isWeekend, holidayType ) {
 
-             pushHolidayEventInArray: function (destArray, title, day, isYearlyHoliday, isWeekend, holidayType, isLunar) {
 
-                 var o = {
 
-                     title: title,
 
-                     holiday: true,
 
-                     start: day,
 
-                     allDay: true,
 
-                     backgroundColor: holidayType === 0 ? 'rgb(0,162,232)' : (holidayType === 1 ? 'rgb(255,201,14)' : 'rgb(237,28,36)'),
 
-                     // hcLee 2016 01 22
 
-                     isLunar: isLunar,
 
-                 };
 
-                 if (isWeekend) {
 
-                     o.isWeekend = isWeekend;
 
-                 }
 
-                 else if (isYearlyHoliday) {
 
-                     o.isYearlyHoliday = isYearlyHoliday;
 
-                 }
 
-                 destArray.push(o);
 
-             },
 
-             pushWorkScheduleEventInArray: function (destArray, item, day, isYearlyHoliday, isWeekend, holidayType) {
 
-                 var o = {
 
-                     title: item.Name(),
 
-                     holiday: false,
 
-                     //content: item.Content(),
 
-                     item: item,
 
-                     start: day,
 
-                     allDay: true,
 
-                     backgroundColor: holidayType === 1 ? 'rgb(160,0,255)' : (holidayType === 2 ? 'rgb(34,177,76)' : (holidayType === 5 ? 'rgb(255,183,0)' : 'rgb(204,255,0)'))
 
-                     //backgroundColor: 'rgb(34,177,76)'
 
-                 };
 
-                 if (isWeekend) {
 
-                     o.isWeekend = isWeekend;
 
-                 }
 
-                 else if (isYearlyHoliday) {
 
-                     o.isYearlyHoliday = isYearlyHoliday;
 
-                 }
 
-                 destArray.push(o);
 
-             },
 
-         }
 
-     });
 
- });
 
 
  |