Skip to content

Commit

Permalink
[5.1] MSPB-292: Fix issue where updating a range holiday to single/ad…
Browse files Browse the repository at this point in the history
…vanced… (#458)

* MSPB-292: Fix issue where updating a range holiday to single/advanced breaks

* Just omit the value instead of removing it
  • Loading branch information
pcandia authored Aug 31, 2022
1 parent aa4076a commit 587da11
Showing 1 changed file with 29 additions and 16 deletions.
45 changes: 29 additions & 16 deletions submodules/strategyHolidays/strategyHolidays.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 587da11

Please sign in to comment.