Update scheme management to include IsActive
This commit is contained in:
@@ -46,7 +46,8 @@ public record UpdateSchemeRequest(
|
||||
DateTime DateRangeFrom,
|
||||
DateTime DateRangeTo,
|
||||
bool AgentLimitExempt,
|
||||
decimal? BaselineExpectedSales);
|
||||
decimal? BaselineExpectedSales,
|
||||
bool IsActive);
|
||||
|
||||
public record ApplySchemeRequest(Guid SchemeId);
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ public class SchemeRepository(AppDBContext context) : ISchemeRepository
|
||||
.Include(s => s.TriggerItem)
|
||||
.Include(s => s.FreeItem)
|
||||
.Include(s => s.BundleComponents).ThenInclude(c => c.Item)
|
||||
.Where(s => s.IsActive);
|
||||
.AsQueryable();
|
||||
|
||||
if (regionId.HasValue) query = query.Where(s => s.FK_RegionId == regionId);
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ public class SchemeService(
|
||||
public async Task<SchemeResponse?> GetByIdAsync(Guid id)
|
||||
{
|
||||
var scheme = await repo.GetByIdAsync(id);
|
||||
return scheme is null || !scheme.IsActive ? null : ToResponse(scheme);
|
||||
return scheme is null ? null : ToResponse(scheme);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -114,7 +114,7 @@ public class SchemeService(
|
||||
public async Task<SchemeResponse?> UpdateAsync(Guid id, UpdateSchemeRequest request, CancellationToken ct = default)
|
||||
{
|
||||
var scheme = await repo.GetByIdAsync(id);
|
||||
if (scheme is null || !scheme.IsActive) return null;
|
||||
if (scheme is null) return null;
|
||||
|
||||
ValidatePercentRuleConfig(scheme.RuleType, request.RuleConfig);
|
||||
if (request.DateRangeFrom > request.DateRangeTo)
|
||||
@@ -128,6 +128,7 @@ public class SchemeService(
|
||||
scheme.DateRangeTo = request.DateRangeTo;
|
||||
scheme.AgentLimitExempt = request.AgentLimitExempt;
|
||||
scheme.BaselineExpectedSales = request.BaselineExpectedSales;
|
||||
scheme.IsActive = request.IsActive;
|
||||
|
||||
await uow.BeginAsync(ct);
|
||||
try { repo.Update(scheme); await uow.CommitAsync(ct); }
|
||||
@@ -255,7 +256,7 @@ public class SchemeService(
|
||||
var orderItems = await orderRepo.GetItemsByOrderIdAsync(orderId);
|
||||
var regionId = store.Route?.FK_RegionId;
|
||||
|
||||
var candidates = await repo.GetAllAsync();
|
||||
var candidates = (await repo.GetAllAsync()).Where(s => s.IsActive);
|
||||
var result = new List<SchemeEligibilityResponse>();
|
||||
|
||||
foreach (var scheme in candidates)
|
||||
|
||||
Reference in New Issue
Block a user