merge: carry uplift queue corrections into decisions

# Conflicts:
#	Api.SeaHavenIndustries.Tests/UpliftQueueReadTests.cs
#	SeaHaven.DataServices/Implementation/UpliftDataService.cs
This commit is contained in:
Alexandre Brandizzi 2026-09-16 22:21:21 -03:00
commit e5e4cd0b58

View file

@ -87,7 +87,7 @@ public sealed class UpliftQueueReadTests
var workOrder = new WorkOrder
{
InternalWONumber = number,
WorkerOrderNumber = number,
WorkerOrderNumber = $"legacy-{number}",
SiteCode = site,
Service = service,
WorkerOrderTitle = "Repair"
@ -439,6 +439,36 @@ public sealed class UpliftQueueReadTests
itemB.WorkOrderApprovedExposureTotal.Should().Be(75m);
}
[Fact]
public async Task Exposure_UsesGrantedAmountForVendorPortalAndRequestedAmountForWorkOrderRequests()
{
using var context = NewContext();
var (vendor, workOrder) = await SeedWorkOrderAsync(context, "WO-ORIGIN", "SITE-A", "HVAC");
var dispatch = await SeedDispatchAsync(context, vendor, workOrder, "DIS-ORIGIN");
context.DispatchUpliftRequests.AddRange(
Request(
dispatch,
"Approved",
new DateTime(2026, 3, 1),
decided: new DateTime(2026, 3, 2),
requested: 400m,
currentNte: 100m),
Request(
dispatch,
"Approved",
new DateTime(2026, 3, 3),
decided: new DateTime(2026, 3, 4),
requested: 250m,
createdBy: "internal-user",
currentNte: 100m));
await context.SaveChangesAsync();
var exposure = await new UpliftDataService(context)
.GetApprovedExposureForWorkOrdersAsync(new[] { workOrder.Id }, CancellationToken.None);
exposure.Should().ContainSingle().Which.AdminApprovedTotal.Should().Be(550m);
}
[Fact]
public async Task Exposure_IncludesLinkedDispatchesViaServerDerivedWorkOrderLinks()
{