From e6b6394c1305fd463d13077d0d14c8dddbe9a4eb Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Thu, 30 Sep 2021 17:12:22 +0300 Subject: [PATCH] Added constINcr default value --- accounts/abstractbalance.go | 6 ++---- accounts/libaccounts.go | 8 +++++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/accounts/abstractbalance.go b/accounts/abstractbalance.go index 68e501d77..ef28957df 100644 --- a/accounts/abstractbalance.go +++ b/accounts/abstractbalance.go @@ -19,6 +19,7 @@ along with this program. If not, see package accounts import ( + "github.com/cgrates/birpc/context" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" @@ -53,7 +54,6 @@ func (aB *abstractBalance) id() string { // debitAbstracts implements the balanceOperator interface func (aB *abstractBalance) debitAbstracts(ctx *context.Context, usage *decimal.Big, cgrEv *utils.CGREvent, dbted *decimal.Big) (ec *utils.EventCharges, err error) { - evNm := utils.MapStorage{ utils.MetaOpts: cgrEv.APIOpts, utils.MetaReq: cgrEv.Event, @@ -94,7 +94,6 @@ func (aB *abstractBalance) debitAbstracts(ctx *context.Context, usage *decimal.B //dbtUnits = utils.MultiplyBig(dbtUnits, uF.Factor.Big) hasUF = true } - if blncLmt != nil { maxBlcDbt := new(decimal.Big).Copy(aB.blnCfg.Units.Big) if hasUF { @@ -105,7 +104,6 @@ func (aB *abstractBalance) debitAbstracts(ctx *context.Context, usage *decimal.B usage = maxBlcDbt } } - var ecCost *utils.EventCharges if costIcrm != nil && ((costIcrm.FixedFee != nil && costIcrm.FixedFee.Cmp(decimal.New(0, 0)) != 0) || @@ -123,7 +121,6 @@ func (aB *abstractBalance) debitAbstracts(ctx *context.Context, usage *decimal.B return } } - var dbtUnits *decimal.Big if ecCost != nil { usage = ecCost.Abstracts.Big @@ -173,6 +170,7 @@ func (aB *abstractBalance) debitAbstracts(ctx *context.Context, usage *decimal.B RecurrentFee: costIcrm.RecurrentFee, } } else { // take it from first increment, not copying since it will be done bellow + ratingID = ecCost.Accounting[ecCost.Charges[0].ChargingID].RatingID } // AccountingID diff --git a/accounts/libaccounts.go b/accounts/libaccounts.go index 6ee4ec55a..320ac3e58 100644 --- a/accounts/libaccounts.go +++ b/accounts/libaccounts.go @@ -115,7 +115,7 @@ func rateSCostForEvent(ctx *context.Context, connMgr *engine.ConnManager, cgrEv if len(rateSConns) == 0 { return nil, utils.NewErrNotConnected(utils.RateS) } - if cgrEv.APIOpts[utils.OptsRatesRateProfileIDs] != nil { + if _, has := cgrEv.APIOpts[utils.OptsRatesRateProfileIDs]; !has { cgrEv.APIOpts[utils.OptsRatesRateProfileIDs] = utils.CloneStringSlice(rpIDs) } var tmpReply utils.RateProfileCost @@ -129,6 +129,12 @@ func rateSCostForEvent(ctx *context.Context, connMgr *engine.ConnManager, cgrEv // costIncrement computes the costIncrement for the event func costIncrement(ctx *context.Context, cfgCostIncrmts []*utils.CostIncrement, fltrS *engine.FilterS, tnt string, ev utils.DataProvider) (costIcrm *utils.CostIncrement, err error) { + // no cost increment in our balance, return a default increment to query to rateS + if len(cfgCostIncrmts) == 0 { + return &utils.CostIncrement{ + Increment: utils.NewDecimal(1, 0), + }, nil + } for _, cIcrm := range cfgCostIncrmts { var pass bool if pass, err = fltrS.Pass(ctx, tnt, cIcrm.FilterIDs, ev); err != nil {