From 587da1158e8a7bb82e2914ea2f9eebd83d04d77e Mon Sep 17 00:00:00 2001 From: Pilar Candia Date: Tue, 30 Aug 2022 22:06:04 -0400 Subject: [PATCH] =?UTF-8?q?[5.1]=20MSPB-292:=20Fix=20issue=20where=20updat?= =?UTF-8?q?ing=20a=20range=20holiday=20to=20single/advanced=E2=80=A6=20(#4?= =?UTF-8?q?58)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * MSPB-292: Fix issue where updating a range holiday to single/advanced breaks * Just omit the value instead of removing it --- .../strategyHolidays/strategyHolidays.js | 45 ++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/submodules/strategyHolidays/strategyHolidays.js b/submodules/strategyHolidays/strategyHolidays.js index 51f34689..c92a38e1 100644 --- a/submodules/strategyHolidays/strategyHolidays.js +++ b/submodules/strategyHolidays/strategyHolidays.js @@ -448,24 +448,37 @@ define(function(require) { holidayRule: holidayRule, isNew: false, callback: function(err, data) { - /*Compare old holidayData with new holidayData if it's recurring*/ - var isOldRecurring = _.get(holidayRule, 'holidayData.recurring', false), - isNewRecurring = _.get(data, 'holidayData.recurring', false); - - if (isOldRecurring && (isOldRecurring !== isNewRecurring)) { - /* update existing rule */ - if (_.isUndefined(holidayRule.holidayData.excludeYear)) { - holidayRule.holidayData.excludeYear = []; - } - holidayRule.holidayData.excludeYear.push(yearSelected); - holidayRule.modified = true; - self.appFlags.strategyHolidays.allHolidays[key] = holidayRule; + var holidayId = _.get(data, 'holidayData.id'); - /* add new rule */ - delete data.holidayData.id; - self.appFlags.strategyHolidays.allHolidays.push(data); + if (holidayRule.holidayType === 'range' && data.holidayType !== 'range') { + if (holidayId) { + self.appFlags.strategyHolidays.deletedHolidays.push(holidayId); + } + delete allHolidays.splice(key, 1); + self.appFlags.strategyHolidays.allHolidays.push( + _.omit(data, ['holidayData.id', 'holidayData.set']) + ); } else { - self.appFlags.strategyHolidays.allHolidays[key] = data; + /*Compare old holidayData with new holidayData if it's recurring*/ + var isOldRecurring = _.get(holidayRule, 'holidayData.recurring', false), + isNewRecurring = _.get(data, 'holidayData.recurring', false); + + if (isOldRecurring && (isOldRecurring !== isNewRecurring)) { + /* update existing rule */ + if (_.isUndefined(holidayRule.holidayData.excludeYear)) { + holidayRule.holidayData.excludeYear = []; + } + holidayRule.holidayData.excludeYear.push(yearSelected); + holidayRule.modified = true; + self.appFlags.strategyHolidays.allHolidays[key] = holidayRule; + + /* add new rule */ + self.appFlags.strategyHolidays.allHolidays.push( + _.omit(data, ['holidayData.id']) + ); + } else { + self.appFlags.strategyHolidays.allHolidays[key] = data; + } } self.strategyHolidaysListingRender(parent);