This commit is contained in:
2021-04-01 16:58:00 +00:00
parent 23cc77d38c
commit 6e03ff7bf0
5 changed files with 55 additions and 3 deletions

View File

@@ -141,7 +141,7 @@ namespace AyaNova.Api.Controllers
case AyaType.WorkOrderItemTravel:
case AyaType.WorkOrderItemOutsideService:
case AyaType.WorkOrderItemUnit:
AyaTypeId TypeId = new AyaTypeId(AyaType.WorkOrder, await WorkOrderBiz.GetWorkOrderIdFromDescendant(ayaType, id, ct));
AyaTypeId TypeId = new AyaTypeId(AyaType.WorkOrder, await WorkOrderBiz.GetWorkOrderIdFromRelativeAsync(ayaType, id, ct));
return Ok(ApiOkResponse.Response(new { AyaType = TypeId.ATypeAsInt, Id = TypeId.ObjectId }));
default:
return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_INVALID_VALUE, null, "Only types with ancestors are valid"));

View File

@@ -253,11 +253,13 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
//GET WORKORDER ID FROM DESCENDANT TYPE AND ID
//
internal static async Task<long> GetWorkOrderIdFromDescendant(AyaType ayaType, long id, AyContext ct)
internal static async Task<long> GetWorkOrderIdFromRelativeAsync(AyaType ayaType, long id, AyContext ct)
{
long woitemid = 0;
switch (ayaType)
{
case AyaType.WorkOrder:
return id;
case AyaType.WorkOrderItem:
woitemid = id;
break;
@@ -346,6 +348,9 @@ namespace AyaNova.Biz
//run validation and biz rules
bool isNew = currentObj == null;
//Check state if updatable right now
/*
todo: workorder status list first, it's a table of created items, keep properties from v7 but add the following properties:
@@ -3597,6 +3602,25 @@ namespace AyaNova.Biz
throw new System.ArgumentOutOfRangeException($"WorkOrder::GetWorkOrderGraphItem -> Invalid ayaType{ayaType}");
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
//GET UPDATEABLE STATUS FOR WORKORDER FROM DESCENDANT
//
internal static async Task<WorkOrderStatus> GetCurrentWorkOrderStatusFromRelatedAsync(AyaType ayaType, long id, AyContext ct)
{
long WoId = await GetWorkOrderIdFromRelativeAsync(ayaType, id, ct);
return await ct.WorkOrderState.AsNoTracking()
.Include(z => z.WorkOrderStatus)
.Where(z => z.WorkOrderId == WoId)
.OrderBy(z => z.Created)
.Select(z => z.WorkOrderStatus)
.Take(1)
.FirstOrDefaultAsync();
}
#endregion utility

View File

@@ -64,6 +64,11 @@ namespace AyaNova.Models
public List<WorkOrderState> States { get; set; } = new List<WorkOrderState>();
//UTILITY FIELDS
[NotMapped, JsonIgnore]
public AyaType AyaType { get => AyaType.WorkOrder; }
}//eoc

View File

@@ -19,7 +19,10 @@ namespace AyaNova.Models
[Required]
public long UserId { get; set; }
[NotMapped, JsonIgnore]
//related
public WorkOrderStatus WorkOrderStatus { get; set; }
[NotMapped, JsonIgnore]
public AyaType AyaType { get => AyaType.WorkOrderStatus; }
}//eoc