This commit is contained in:
2021-06-03 16:44:19 +00:00
parent e2af6c9a1d
commit 1f3064b674
2 changed files with 25 additions and 22 deletions

View File

@@ -136,6 +136,11 @@ namespace AyaNova.Api.Controllers
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
if (updatedObject.Items.Count > 0)
{
return BadRequest(new ApiErrorResponse(ApiErrorCode.INVALID_OPERATION, "generalerror", "Work order PUT route accepts header only; PUT Work order descendants separately"));
}
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasModifyRole(HttpContext.Items, biz.BizType))
return StatusCode(403, new ApiNotAuthorizedResponse());
@@ -503,7 +508,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
@@ -719,7 +724,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
@@ -828,7 +833,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
@@ -935,7 +940,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
@@ -1041,7 +1046,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
@@ -1359,7 +1364,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
@@ -1465,7 +1470,7 @@ namespace AyaNova.Api.Controllers
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(o));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>

View File

@@ -212,10 +212,7 @@ namespace AyaNova.Biz
//
internal async Task<WorkOrder> WorkOrderPutAsync(WorkOrder putObject)
{
//todo: bizactions, contract change update pricing entire workorder and return it entirely?
//no client must fetch it, just return concurrency as per normal here
//## PUT HEADER ONLY, NO ALLOWANCE FOR PUT OF ENTIRE WORKORDER
//Note: this is intentionally not using the getasync because
//doing so would invoke the children which would then get deleted on save since putobject has no children
@@ -3331,14 +3328,7 @@ namespace AyaNova.Biz
//
//
private async Task PartBizActionsAsync(AyaEvent ayaEvent, WorkOrderItemPart newObj, WorkOrderItemPart oldObj, IDbContextTransaction transaction)
{
//automatic actions on record change, called AFTER validation
//### TODO: make this work with inventory, also check if delete entire workorder will still call this (or delete woitem)
// if delete wo doesn't call this, it will need to
//#### Make sure serials are handled
{
if (AyaNova.Util.ServerGlobalBizSettings.UseInventory)
{
@@ -3396,7 +3386,7 @@ namespace AyaNova.Biz
}
//UPDATED HANDLE INVENTORY / UPDATE SERIALS AS REQUIRED
//UPDATED, HANDLE INVENTORY / UPDATE SERIALS AS REQUIRED
if (ayaEvent == AyaEvent.Modified)
{
//determine if any changes affecting inventory
@@ -3445,8 +3435,16 @@ namespace AyaNova.Biz
await PartBiz.RemoveSerialsAsync(newObj.PartId, newObj.Serials, ct, UserId);
}
}
else if (newObj.Serials != oldObj.Serials)
{
//Only a serial number adjustment so in and out all serials to be safe and not try to parse too closely
//return serial numbers to part
if (!string.IsNullOrWhiteSpace(oldObj.Serials))
await PartBiz.AppendSerialsAsync(oldObj.PartId, oldObj.Serials, ct, UserId);
//Consume serial numbers from part
if (!string.IsNullOrWhiteSpace(newObj.Serials))
await PartBiz.RemoveSerialsAsync(newObj.PartId, newObj.Serials, ct, UserId);
}
}