123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506 |
- $(function() {
- 'use strict';
- var searchView = BWA.SearchView = BWA.SearchView || {};
- var day = 'day',
- days = 'days',
- month = 'month',
- months = 'months',
- year = 'year',
- years = 'years';
- // hcLee 2016 04 04
- function dateBySubtract2(date, number, unit) {
- return moment(date).subtract(number, unit).toDate();
- }
- function dateBySubtract(number, unit) {
- return moment().subtract(number, unit).toDate();
- }
- function dateStartOf(unit) {
- return moment().startOf(unit).toDate();
- }
- // hcLee 2016 04 04
- function dateStartOf2(date, unit) {
- return moment(date).startOf(unit).toDate();
- }
- function now() {
- return new Date();
- }
- function HourBox() {
- this.startDate = ko.observable();
- this.startTime = ko.observable();
- this.endDate = ko.observable();
- this.endTime = ko.observable();
- /*
- this.startDate = new Date();
- this.startTime = new Date();
- this.endDate = new Date();
- this.endTime = new Date();*/
- this.timeChange = function () {
- alert('1');
- }.bind(this);
- this.set24hours = function () {
- //this.startDate(dateBySubtract(1, days));
- this.startDate(dateBySubtract2(this.endDate(), 1, days));
- this.startTime(this.endTime());
- //this.endDate();
- //this.endTime();
- }.bind(this);
- this.set3days = function() {
- //this.startDate(dateBySubtract(3, days));
- this.startDate(dateBySubtract2(this.endDate(), 3, days));
- //this.startTime(now());
- this.startTime(dateStartOf(day));
- //this.endDate(now());
- //this.endTime(now());
- }.bind(this);
- this.setToday = function() {
- this.startDate(now());
- this.startTime(dateStartOf(day));
- this.endDate(now());
- this.endTime(now());
- }.bind(this);
- this.getStartDate = function () {
- /*this.startDate(BWA.DataUtil.getDateTimeZeroMin(
- this.startDate(),
- this.startTime()));*/
- this.startTime(BWA.DataUtil.getDateTimeZeroMin( //getDateTimeZeroSecond
- this.startDate(),
- this.startTime()));
- return BWA.DataUtil.getDateTimeFromDateAndTime(this.startDate(), this.startTime());
- /*
- return BWA.DataUtil.getDateTimeZeroMin(
- this.startDate(),
- this.startTime());*/
- }.bind(this);
- this.getEndDate = function () {
- /*
- this.endTime(BWA.DataUtil.getDateTimeZeroMin(
- this.endDate(),
- this.endTime()));
- return BWA.DataUtil.getDateTimeFromDateAndTime(
- this.endDate(),
- this.endTime()); */
- this.endTime(BWA.DataUtil.getDateTimeZeroMin(
- this.endDate(),
- this.endTime()));
- return BWA.DataUtil.getDateTimeFromDateAndTime(this.endDate(), this.endTime());
- }.bind(this);
- this.setToday();
- }
- function HourBox1() {
- this.startDate = ko.observable();
- this.startTime = ko.observable();
- this.endDate = ko.observable();
- this.endTime = ko.observable();
- /*
- this.startDate = new Date();
- this.startTime = new Date();
- this.endDate = new Date();
- this.endTime = new Date();*/
- this.timeChange = function () {
- alert('1');
- }.bind(this);
- this.set24hours = function () {
- //this.startDate(dateBySubtract(1, days));
- this.startDate(dateBySubtract2(this.endDate(), 1, days));
- this.startTime(this.endTime());
- //this.endDate();
- //this.endTime();
- }.bind(this);
- this.set3days = function () {
- //this.startDate(dateBySubtract(3, days));
- this.startDate(dateBySubtract2(this.endDate(), 3, days));
- //this.startTime(now());
- this.startTime(dateStartOf(day));
- //this.endDate(now());
- //this.endTime(now());
- }.bind(this);
- this.setToday = function () {
- this.startDate(now());
- this.startTime(dateStartOf(day));
- this.endDate(now());
- this.endTime(now());
- }.bind(this);
- this.getStartDate = function () {
- /*this.startDate(BWA.DataUtil.getDateTimeZeroMin(
- this.startDate(),
- this.startTime()));*/
- this.startTime(BWA.DataUtil.getDateTimeZeroSecond( //getDateTimeZeroSecond
- this.startDate(),
- this.startTime()));
- return BWA.DataUtil.getDateTimeFromDateAndTime(this.startDate(), this.startTime());
- /*
- return BWA.DataUtil.getDateTimeZeroMin(
- this.startDate(),
- this.startTime());*/
- }.bind(this);
- this.getEndDate = function () {
- /*
- this.endTime(BWA.DataUtil.getDateTimeZeroMin(
- this.endDate(),
- this.endTime()));
-
- return BWA.DataUtil.getDateTimeFromDateAndTime(
- this.endDate(),
- this.endTime()); */
- this.endTime(BWA.DataUtil.getDateTimeZeroSecond(
- this.endDate(),
- this.endTime()));
- return BWA.DataUtil.getDateTimeFromDateAndTime(this.endDate(), this.endTime());
- }.bind(this);
- this.setToday();
- }
- function DayBox() {
- this.startDate = ko.observable();
- this.endDate = ko.observable();
- // 추가 2020.05 kgpark
- this.setToday = function () {
- this.startDate(now());
- this.endDate(now());
- }.bind(this);
- this.set3days = function() {
- //this.startDate(dateBySubtract(3, days));
- this.startDate(dateBySubtract2(this.endDate(), 3, days));
- this.endDate(now());
- }.bind(this);
- this.set1week = function() {
- //this.startDate(dateBySubtract(7, days));
- this.startDate(dateBySubtract2(this.endDate(), 7, days));
- //this.endDate(now());
- }.bind(this);
- this.set1month = function() {
- //this.startDate(dateBySubtract(1, months));
- this.startDate(dateBySubtract2(this.endDate(), 1, months));
- //this.endDate(now());
- }.bind(this);
- this.setThisMonth = function() {
- this.startDate(dateStartOf(month));
- //this.startTime(dateStartOf(day)); // hcLee
- this.endDate(now());
- }.bind(this);
- this.getStartDate = function () {
- this.startDate(BWA.DataUtil.getDateTimeZeroHour(this.startDate()));
- return this.startDate();
- //return BWA.DataUtil.getDateTimeZeroHour(this.startDate());
- }.bind(this);
- this.getEndDate = function () {
- this.endDate(BWA.DataUtil.getDateTimeMaxHour(this.endDate()));
- return this.endDate();
- }.bind(this);
- this.setThisMonth();
- }
- function MonthBox(startthisyear) {
- this.startDate = ko.observable();
- this.endDate = ko.observable();
- this.set3months = function() {
- //this.startDate(dateBySubtract(2, months));
- this.startDate(dateBySubtract2(this.endDate(), 2, months));
- //this.endDate(now());
- }.bind(this);
- this.set6months = function() {
- //this.startDate(dateBySubtract(5, months));
- this.startDate(dateBySubtract2(this.endDate(), 5, months));
- //this.endDate(now());
- }.bind(this);
- this.set1year = function() {
- //this.startDate(dateBySubtract(11, months));
- this.startDate(dateBySubtract2(this.endDate(), 11, months));
- this.endDate(now());
- }.bind(this);
- this.setThisYear = function() {
- this.startDate(dateStartOf(year));
- this.endDate(now());
- }.bind(this);
- this.getStartDate = function() {
- //return this.startDate();
- this.startDate(BWA.DataUtil.getDateTimeStartDay(this.startDate()));
- return this.startDate();
- }.bind(this);
- this.getEndDate = function () {
- this.endDate(BWA.DataUtil.getDateTimeEndDay(this.endDate()));
- return this.endDate();
- }.bind(this);
-
- if (startthisyear == null)
- this.set1year(); // hcLee 2016 02 26 월별 조회가 기본인 화면들을 위하여 스타트 검색조건을 최근12개월로 변경한다.
- else
- this.setThisYear(); // // hcLee 2016 04 26 가동시간 비용 속도문제때문에
- }
- function YearBox() {
- this.startYear = ko.observable();
- this.endYear = ko.observable();
- this.set3years = function() {
- this.startYear(dateBySubtract(3, years).getFullYear());
- this.endYear(now().getFullYear());
- }.bind(this);
- this.set5years = function() {
- this.startYear(dateBySubtract(5, years).getFullYear());
- this.endYear(now().getFullYear());
- }.bind(this);
- this.set10years = function() {
- this.startYear(dateBySubtract(10, years).getFullYear());
- this.endYear(now().getFullYear());
- }.bind(this);
- this.getStartDate = function() {
- var year = this.startYear();
- return moment([year, 1, 1]).toDate();
- }.bind(this);
- this.getEndDate = function() {
- var year = this.startEnd();
- return moment([year, 1, 1]).toDate();
- }.bind(this);
- this.set3years();
- }
- var HOUR = $Code.TimeType.HOUR;
- var DAY = $Code.TimeType.DAY;
- var MONTH = $Code.TimeType.MONTH;
- var YEAR = $Code.TimeType.YEAR;
- // cyim 2016.08.22 : 생성자에 읽기전용인지 구분자 포함
- searchView.createDateTimeBox = function(dataSource, startthisyear, readonly) {
- var type = ko.observable();
- var isHour = ko.observable();
- var isDay = ko.observable();
- var isMonth = ko.observable();
- var isYear = ko.observable();
- var isReadOnly = ko.observable(false); // cyim 2016.08.22 : 성능분석 그래프의 경우 시간 데이타만 표시되어야 한다
- type.subscribe(function(type) {
- isHour(type === HOUR);
- isDay(type === DAY);
- isMonth(type === MONTH);
- isYear(type === YEAR);
- });
- // type(HOUR); 원래코드
- // hcLee 2015 06 25 , 요일별 에너지 사용량분석 처럼 검색조건에 '시' 가 필요없는 경우를 처리 하기 위하여
- if (dataSource == null)
- type(HOUR);
- else type(dataSource[0].TimeTypeId);
- var dateTimeBox = {
- type: type,
- typeDataSource: (dataSource == null) ? $G.TimeTypes : dataSource, // hcLee 2015 06 25
- //typeDataSource: $G.TimeTypes, // // hcLee 2015 06 25
- isHour: isHour,
- isDay: isDay,
- isMonth: isMonth,
- isYear: isYear,
- isReadOnly: readonly, // cyim 2016.08.22 : 성능분석 그래프의 경우 시간 데이타만 표시되어야 한다
- hour: new HourBox(),
- day: new DayBox(),
- month: new MonthBox(startthisyear),
- year: new YearBox(),
- };
- //2016 07 21 hcLee
- dateTimeBox.setDefaultDate = function () {
- type(HOUR);
- this.hour.endTime(now());
- this.hour.set24hours();
- },
- // 추가 2020.05 kgpark
- dateTimeBox.setDefaultDateToday = function () {
- type(DAY);
- this.day.setToday();
- },
-
- dateTimeBox.getDate = function() {
- var timeObject = null;
- switch (this.type()) {
- case HOUR:
- timeObject = this.hour;
- break;
- case DAY:
- timeObject = this.day;
- break;
- case MONTH:
- timeObject = this.month;
- break;
- case YEAR:
- timeObject = this.year;
- break;
- }
-
- return {
- startDate: timeObject.getStartDate(),
- endDate: timeObject.getEndDate()
- };
- }.bind(dateTimeBox);
- return dateTimeBox;
- }
- searchView.createDateTimeBox1 = function (dataSource, startthisyear, readonly) {
- var type = ko.observable();
- var isHour = ko.observable();
- var isDay = ko.observable();
- var isMonth = ko.observable();
- var isYear = ko.observable();
- var isReadOnly = ko.observable(false); // cyim 2016.08.22 : 성능분석 그래프의 경우 시간 데이타만 표시되어야 한다
- type.subscribe(function (type) {
- isHour(type === HOUR);
- isDay(type === DAY);
- isMonth(type === MONTH);
- isYear(type === YEAR);
- });
- // type(HOUR); 원래코드
- // hcLee 2015 06 25 , 요일별 에너지 사용량분석 처럼 검색조건에 '시' 가 필요없는 경우를 처리 하기 위하여
- if (dataSource == null)
- type(HOUR);
- else type(dataSource[0].TimeTypeId);
- var dateTimeBox = {
- type: type,
- typeDataSource: (dataSource == null) ? $G.TimeTypes : dataSource, // hcLee 2015 06 25
- //typeDataSource: $G.TimeTypes, // // hcLee 2015 06 25
- isHour: isHour,
- isDay: isDay,
- isMonth: isMonth,
- isYear: isYear,
- isReadOnly: readonly, // cyim 2016.08.22 : 성능분석 그래프의 경우 시간 데이타만 표시되어야 한다
- hour: new HourBox1(),
- day: new DayBox(),
- month: new MonthBox(startthisyear),
- year: new YearBox(),
- };
- //2016 07 21 hcLee
- dateTimeBox.setDefaultDate = function () {
- type(HOUR);
- this.hour.endTime(now());
- this.hour.set24hours();
- },
- dateTimeBox.getDate = function () {
- var timeObject = null;
- switch (this.type()) {
- case HOUR:
- timeObject = this.hour;
- break;
- case DAY:
- timeObject = this.day;
- break;
- case MONTH:
- timeObject = this.month;
- break;
- case YEAR:
- timeObject = this.year;
- break;
- }
- return {
- startDate: timeObject.getStartDate(),
- endDate: timeObject.getEndDate()
- };
- }.bind(dateTimeBox);
- return dateTimeBox;
- }
- });
|