diff --git a/sessionmanager/data_it_test.go b/sessionmanager/data_it_test.go index d8422d118..aecd35abd 100644 --- a/sessionmanager/data_it_test.go +++ b/sessionmanager/data_it_test.go @@ -845,7 +845,7 @@ func TestSMGDataLastUsedMultipleDataConstantUsage(t *testing.T) { if err = smgRPC.Call("SMGenericV1.SessionEnd", smgEv, &rpl); err != nil || rpl != utils.OK { t.Error(err) } - eAcntVal = 49997767680.000000 // refunded + eAcntVal = 49997757440.000000 // 10240 (from the start) if err := smgRPC.Call("ApierV2.GetAccount", attrs, &acnt); err != nil { t.Error(err) } else if acnt.BalanceMap[utils.DATA].GetTotalValue() != eAcntVal { diff --git a/sessionmanager/smg_session.go b/sessionmanager/smg_session.go index d1701a905..79160139c 100644 --- a/sessionmanager/smg_session.go +++ b/sessionmanager/smg_session.go @@ -90,13 +90,15 @@ func (self *SMGSession) debit(dur time.Duration, lastUsed *time.Duration) (time. // total usage correction self.totalUsage -= self.lastUsage self.totalUsage += *lastUsed - //utils.Logger.Debug(fmt.Sprintf("Correction: %f", self.totalUsage.Seconds())) + //utils.Logger.Debug(fmt.Sprintf("TotalUsage Correction: %f", self.totalUsage.Seconds())) } } // apply correction from previous run if self.extraDuration < dur { dur -= self.extraDuration } else { + self.lastUsage = requestedDuration + self.totalUsage += self.lastUsage ccDuration := self.extraDuration // fake ccDuration self.extraDuration -= dur return ccDuration, nil