diff --git a/modules/worker/front/time-control/index.js b/modules/worker/front/time-control/index.js index 094e200a4..9a4c4b559 100644 --- a/modules/worker/front/time-control/index.js +++ b/modules/worker/front/time-control/index.js @@ -4,10 +4,11 @@ import './style.scss'; import UserError from 'core/lib/user-error'; class Controller extends Section { - constructor($element, $, vnWeekDays) { + constructor($element, $, vnWeekDays, moment) { super($element, $); this.weekDays = []; this.weekdayNames = vnWeekDays.locales; + this.moment = moment; this.entryDirections = [ {code: 'in', description: this.$t('In')}, {code: 'middle', description: this.$t('Intermediate')}, @@ -364,14 +365,8 @@ class Controller extends Section { } getWeekNumber(date) { - const tempDate = new Date(date); - let dayOfWeek = tempDate.getDay(); - dayOfWeek = (dayOfWeek === 0) ? 7 : dayOfWeek; - const firstDayOfWeek = new Date(tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() - (dayOfWeek - 1)); - const firstDayOfYear = new Date(tempDate.getFullYear(), 0, 1); - const differenceInMilliseconds = firstDayOfWeek.getTime() - firstDayOfYear.getTime(); - const weekNumber = Math.floor(differenceInMilliseconds / (1000 * 60 * 60 * 24 * 7)) + 1; - return weekNumber; + const tempDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); + return this.moment(tempDate).isoWeek(); } isSatisfied() { @@ -499,7 +494,7 @@ class Controller extends Section { } } -Controller.$inject = ['$element', '$scope', 'vnWeekDays']; +Controller.$inject = ['$element', '$scope', 'vnWeekDays', 'moment']; ngModule.vnComponent('vnWorkerTimeControl', { template: require('./index.html'),