mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-10-04 18:22:08 +00:00
fix(work-orders): map Overdue to PM catalog in service and template lists
This commit is contained in:
parent
b545d4a4fe
commit
d82fb18a3d
3 changed files with 55 additions and 3 deletions
|
|
@ -5,6 +5,7 @@ using SeaHaven.DataServices.Interfaces;
|
||||||
using SeaHaven.DataServices.Models;
|
using SeaHaven.DataServices.Models;
|
||||||
using SeaHaven.Services.DTOs;
|
using SeaHaven.Services.DTOs;
|
||||||
using SeaHaven.Services.Exceptions;
|
using SeaHaven.Services.Exceptions;
|
||||||
|
using SeaHaven.Services.Helpers;
|
||||||
using SeaHaven.Services.Interfaces;
|
using SeaHaven.Services.Interfaces;
|
||||||
|
|
||||||
namespace SeaHaven.Services.Implementation
|
namespace SeaHaven.Services.Implementation
|
||||||
|
|
@ -34,8 +35,9 @@ namespace SeaHaven.Services.Implementation
|
||||||
|
|
||||||
public async Task<IReadOnlyList<ServiceDto>> GetAllAsync(bool? isActive, WorkOrderType? workOrderType, CancellationToken cancellationToken)
|
public async Task<IReadOnlyList<ServiceDto>> GetAllAsync(bool? isActive, WorkOrderType? workOrderType, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
ValidateWorkOrderTypeFilter(workOrderType);
|
var catalogType = WorkOrderCatalogType.For(workOrderType);
|
||||||
var rows = await _dataService.GetServiceRowsAsync(isActive, workOrderType, cancellationToken);
|
ValidateWorkOrderTypeFilter(catalogType);
|
||||||
|
var rows = await _dataService.GetServiceRowsAsync(isActive, catalogType, cancellationToken);
|
||||||
return rows.Select(MapToDto).ToList();
|
return rows.Select(MapToDto).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ namespace SeaHaven.Services.Implementation
|
||||||
|
|
||||||
public async Task<IReadOnlyList<CompletionDocTemplateDto>> GetTemplatesAsync(string? serviceKey, WorkOrderType? workOrderType)
|
public async Task<IReadOnlyList<CompletionDocTemplateDto>> GetTemplatesAsync(string? serviceKey, WorkOrderType? workOrderType)
|
||||||
{
|
{
|
||||||
var rows = await _templateData.GetActiveAsync(serviceKey, workOrderType);
|
var rows = await _templateData.GetActiveAsync(serviceKey, WorkOrderCatalogType.For(workOrderType));
|
||||||
return rows.Select(WorkOrderDetailService.MapTemplate).ToList();
|
return rows.Select(WorkOrderDetailService.MapTemplate).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -278,6 +278,56 @@ public class WorkOrderOverdueTypeTests
|
||||||
Assert.Equal("PM Completion", detail.Completion.Template!.Name);
|
Assert.Equal("PM Completion", detail.Completion.Template!.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ListServices_Overdue_ReturnsPmCatalog()
|
||||||
|
{
|
||||||
|
await using var context = NewContext();
|
||||||
|
SeedServices(context);
|
||||||
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
|
var services = await new ServicesRegistryService(new ServicesRegistryDataService(context))
|
||||||
|
.GetAllAsync(true, WorkOrderType.Overdue, CancellationToken.None);
|
||||||
|
|
||||||
|
Assert.Equal(new[] { PmServiceId }, services.Select(s => s.Id).ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public async Task ListTemplates_Overdue_ReturnsPmTemplates()
|
||||||
|
{
|
||||||
|
await using var context = NewContext();
|
||||||
|
context.CompletionDocTemplates.AddRange(
|
||||||
|
new CompletionDocTemplate
|
||||||
|
{
|
||||||
|
Name = "PM Completion",
|
||||||
|
ServiceKey = "pm-generic",
|
||||||
|
WorkOrderType = WorkOrderType.PM,
|
||||||
|
TemplateUrl = "https://example.com/pm.pdf",
|
||||||
|
IsActive = true
|
||||||
|
},
|
||||||
|
new CompletionDocTemplate
|
||||||
|
{
|
||||||
|
Name = "Reactive Completion",
|
||||||
|
ServiceKey = "reactive-generic",
|
||||||
|
WorkOrderType = WorkOrderType.Reactive,
|
||||||
|
TemplateUrl = "https://example.com/reactive.pdf",
|
||||||
|
IsActive = true
|
||||||
|
});
|
||||||
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
|
var service = new WorkOrderCompletionService(
|
||||||
|
new WorkOrderCompletionDataService(context),
|
||||||
|
new CompletionDocTemplateDataService(context),
|
||||||
|
new WorkOrderDetailDataService(context),
|
||||||
|
new WorkOrderAuditService(
|
||||||
|
new WorkOrderAuditDataService(context),
|
||||||
|
new WorkOrderFieldLockService(new WorkOrderFieldLockDataService(context))),
|
||||||
|
WorkOrderAccountTestHelpers.Resolver(context));
|
||||||
|
|
||||||
|
var templates = await service.GetTemplatesAsync(null, WorkOrderType.Overdue);
|
||||||
|
|
||||||
|
Assert.Equal(new[] { "PM Completion" }, templates.Select(t => t.Name).ToArray());
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task Search_TypeOverdue_ReturnsOverdueTypeOnly_NotPastDueRows()
|
public async Task Search_TypeOverdue_ReturnsOverdueTypeOnly_NotPastDueRows()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue