diff --git a/apier/v1/accounts.go b/apier/v1/accounts.go index bea313852..7ac11b36d 100644 --- a/apier/v1/accounts.go +++ b/apier/v1/accounts.go @@ -489,21 +489,18 @@ func (self *ApierV1) modifyBalance(aType string, attr *AttrAddBalance, reply *st } if attr.TimingIds != nil { a.Balance.TimingIDs = utils.StringMapPointer(utils.ParseStringMap(*attr.TimingIds)) - } - if attr.TimingIds != nil && *attr.TimingIds != "" { - timingIds := strings.Split(*attr.TimingIds, utils.INFIELD_SEP) - for _, timingID := range timingIds { - timing, err := self.DataManager.GetTiming(timingID, false, utils.NonTransactional) + for _, timingID := range strings.Split(*attr.TimingIds, utils.INFIELD_SEP) { + tmg, err := self.DataManager.GetTiming(timingID, false, utils.NonTransactional) if err != nil { return err } a.Balance.Timings = append(a.Balance.Timings, &engine.RITiming{ - Years: timing.Years, - Months: timing.Months, - MonthDays: timing.MonthDays, - WeekDays: timing.WeekDays, - StartTime: timing.StartTime, - EndTime: timing.EndTime, + Years: tmg.Years, + Months: tmg.Months, + MonthDays: tmg.MonthDays, + WeekDays: tmg.WeekDays, + StartTime: tmg.StartTime, + EndTime: tmg.EndTime, }) } } @@ -587,22 +584,18 @@ func (self *ApierV1) SetBalance(attr *utils.AttrSetBalance, reply *string) error } if attr.TimingIds != nil { a.Balance.TimingIDs = utils.StringMapPointer(utils.ParseStringMap(*attr.TimingIds)) - } - - if attr.TimingIds != nil && *attr.TimingIds != "" { - timingIds := strings.Split(*attr.TimingIds, utils.INFIELD_SEP) - for _, timingID := range timingIds { - timing, err := self.DataManager.GetTiming(timingID, false, utils.NonTransactional) + for _, timingID := range strings.Split(*attr.TimingIds, utils.INFIELD_SEP) { + tmg, err := self.DataManager.GetTiming(timingID, false, utils.NonTransactional) if err != nil { return err } a.Balance.Timings = append(a.Balance.Timings, &engine.RITiming{ - Years: timing.Years, - Months: timing.Months, - MonthDays: timing.MonthDays, - WeekDays: timing.WeekDays, - StartTime: timing.StartTime, - EndTime: timing.EndTime, + Years: tmg.Years, + Months: tmg.Months, + MonthDays: tmg.MonthDays, + WeekDays: tmg.WeekDays, + StartTime: tmg.StartTime, + EndTime: tmg.EndTime, }) } } diff --git a/engine/tpreader.go b/engine/tpreader.go index 711681d03..b70447f19 100644 --- a/engine/tpreader.go +++ b/engine/tpreader.go @@ -593,18 +593,22 @@ func (tpr *TpReader) LoadActions() (err error) { if tpact.TimingTags != "" { timingIds := strings.Split(tpact.TimingTags, utils.INFIELD_SEP) for _, timingID := range timingIds { - if timing, found := tpr.timings[timingID]; found { - acts[idx].Balance.Timings = append(acts[idx].Balance.Timings, &RITiming{ - Years: timing.Years, - Months: timing.Months, - MonthDays: timing.MonthDays, - WeekDays: timing.WeekDays, - StartTime: timing.StartTime, - EndTime: timing.EndTime, - }) - } else { - return fmt.Errorf("could not find timing: %v", timingID) + timing, found := tpr.timings[timingID] + if !found { + if timing, err = tpr.dm.GetTiming(timingID, false, + utils.NonTransactional); err != nil { + return fmt.Errorf("error: <%s> querying timing with id: <%s>", + err.Error(), timingID) + } } + acts[idx].Balance.Timings = append(acts[idx].Balance.Timings, &RITiming{ + Years: timing.Years, + Months: timing.Months, + MonthDays: timing.MonthDays, + WeekDays: timing.WeekDays, + StartTime: timing.StartTime, + EndTime: timing.EndTime, + }) } } }