Supplier entry filters for same event, integration test

This commit is contained in:
DanB
2017-11-28 19:29:46 +01:00
parent 106baf6948
commit 013ab42cde
2 changed files with 4 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
#Tenant,ID,FilterIDs,ActivationInterval,Sorting,SortingParams,SupplierID,SupplierFilterIDs,SupplierAccountIDs,SupplierRatingPlanIDs,SupplierResourceIDs,SupplierStatIDs,SupplierWeight,Blocker,Weight
cgrates.org,SPP_1,FLTR_ACNT_dan;FLTR_DST_DE,2017-07-29T15:00:00Z,*lowest_cost,,supplier1,FLTR_ACNT_dan,,RPL_1,ResGroup1,Stat1,10,false,10
cgrates.org,SPL_WEIGHT_1,FLTR_DST_DE;FLTR_ACNT_1007,2017-11-27T00:00:00Z,*weight,,supplier1,,,,,,10,false,10
cgrates.org,SPL_WEIGHT_1,,,,,supplier2,,,,,,20,,
cgrates.org,SPL_WEIGHT_1,FLTR_DST_DE,,,,supplier2,,,,,,20,,
cgrates.org,SPL_WEIGHT_1,FLTR_ACNT_1007,,,,supplier3,FLTR_ACNT_dan,,,,,15,,
1 #Tenant ID FilterIDs ActivationInterval Sorting SortingParams SupplierID SupplierFilterIDs SupplierAccountIDs SupplierRatingPlanIDs SupplierResourceIDs SupplierStatIDs SupplierWeight Blocker Weight
2 cgrates.org SPP_1 FLTR_ACNT_dan;FLTR_DST_DE 2017-07-29T15:00:00Z *lowest_cost supplier1 FLTR_ACNT_dan RPL_1 ResGroup1 Stat1 10 false 10
3 cgrates.org SPL_WEIGHT_1 FLTR_DST_DE;FLTR_ACNT_1007 2017-11-27T00:00:00Z *weight supplier1 10 false 10
4 cgrates.org SPL_WEIGHT_1 FLTR_DST_DE supplier2 20
5 cgrates.org SPL_WEIGHT_1 FLTR_ACNT_1007 supplier3 FLTR_ACNT_dan 15

View File

@@ -168,6 +168,7 @@ func (spS *SupplierService) matchingSupplierProfilesForEvent(ev *SupplierEvent)
defer guardian.Guardian.UnguardIDs(lockIDs...)
for lpID := range sPrflIDs {
lcrPrfl, err := spS.dm.GetSupplierProfile(ev.Tenant, lpID, false, utils.NonTransactional)
//fmt.Printf("LoadedSupplier: %s\n", utils.ToJSON(lcrPrfl))
if err != nil {
if err == utils.ErrNotFound {
continue
@@ -240,7 +241,7 @@ func (spS *SupplierService) sortedSuppliersForEvent(ev *SupplierEvent) (sortedSu
for _, s := range lcrPrfl.Suppliers {
if len(s.FilterIDs) != 0 { // filters should be applied, check them here
if pass, err := spS.filterS.PassFiltersForEvent(ev.Tenant,
map[string]interface{}{"SupplierID": s.ID}, s.FilterIDs); err != nil {
ev.Event, s.FilterIDs); err != nil {
return nil, err
} else if !pass {
continue