This commit is contained in:
2021-05-19 18:58:04 +00:00
parent 390f00a90c
commit aaa39bdc47
2 changed files with 16 additions and 13 deletions

View File

@@ -105,9 +105,11 @@ namespace AyaNova.PickList
using (AyContext ct = ServiceProviderProvider.DBContext)
{
var c = ct.Contract
.AsNoTracking()
.Where(z => z.Id == contractId)
.FirstOrDefault();
.Include(z => z.ServiceRateItems)
.AsNoTracking()
.Where(z => z.Id == contractId)
.FirstOrDefault();
if (c == null)
return defaultNoContractRatesCriteria;
@@ -117,13 +119,13 @@ namespace AyaNova.PickList
//contract allows any items plus contract items if exist
//If no service rate items in contract then short circuit to regular list
if (c.ServiceRateItems.Count == 0)
if (c.ServiceRateItems.Count == 0)
return defaultNoContractRatesCriteria;
//Ok, a bit more complex then, all non contract rates plus a select few contract rates
return $"(aservicerate.contractonly=false) or (aservicerate.id in ({string.Join(",", c.ServiceRateItems.Select(z => z.ServiceRateId).ToArray())}))";
return $"(aservicerate.contractonly=false) or (aservicerate.id in ({string.Join(",", c.ServiceRateItems.Select(z => z.ServiceRateId).ToArray())}))";
}
}
}
}
return defaultNoContractRatesCriteria;

View File

@@ -104,23 +104,24 @@ namespace AyaNova.PickList
using (AyContext ct = ServiceProviderProvider.DBContext)
{
var c = ct.Contract
.AsNoTracking()
.Where(z => z.Id == contractId)
.FirstOrDefault();
.Include(z => z.TravelRateItems)
.AsNoTracking()
.Where(z => z.Id == contractId)
.FirstOrDefault();
if (c == null)
return defaultNoContractRatesCriteria;
//only fetch items that are in the contract rates
if (c.ContractServiceRatesOnly)
return $"atravelrate.id in ({string.Join(",", c.ServiceRateItems.Select(z => z.ServiceRateId).ToArray())})";
return $"atravelrate.id in ({string.Join(",", c.TravelRateItems.Select(z => z.TravelRateId).ToArray())})";
//contract allows any items plus contract items if exist
//If no service rate items in contract then short circuit to regular list
if (c.ServiceRateItems.Count == 0)
//If no travel rate items in contract then short circuit to regular list
if (c.TravelRateItems.Count == 0)
return defaultNoContractRatesCriteria;
//Ok, a bit more complex then, all non contract rates plus a select few contract rates
return $"(atravelrate.contractonly=false) or (atravelrate.id in ({string.Join(",", c.ServiceRateItems.Select(z => z.ServiceRateId).ToArray())}))";
return $"(atravelrate.contractonly=false) or (atravelrate.id in ({string.Join(",", c.TravelRateItems.Select(z => z.TravelRateId).ToArray())}))";
}
}