This commit is contained in:
2021-08-26 17:05:20 +00:00
parent 84b1037698
commit a624d8e248

View File

@@ -403,11 +403,6 @@ namespace AyaNova.Biz
//
private async Task BizActionsAsync(AyaEvent ayaEvent, PurchaseOrder newObj, PurchaseOrder oldObj, IDbContextTransaction transaction)
{
//MIGRATE_OUTSTANDING - woitempart request update
//if received on woitempartrequest then need to update woitempartrequest (notification separate not a concern here)
//if workorderitempartrequest item removed, need to fixup woitempartrequest
//BUT *only* if the woitempartrequest still exists and isn't completed already
//Get inventory object for updating
PartInventoryBiz pib = new PartInventoryBiz(ct, UserId, UserTranslationId, CurrentUserRoles);
@@ -433,6 +428,9 @@ namespace AyaNova.Biz
AddError(ApiErrorCode.API_SERVER_ERROR, "generalerror", $"Error updating inventory ({i.Description}):{pib.GetErrorsAsString()}");
return;
}
//might have contributed serials so remove them here, handles empty serials so no issue calling this
await PartBiz.RemoveSerialsAsync(poItem.PartId, poItem.Serials, ct, UserId);
}
foreach (var poItem in oldObj.Items)
@@ -444,6 +442,7 @@ namespace AyaNova.Biz
if (w != null)
{
w.PurchaseOrderItemId = null;
w.Received = 0;
}
}
}
@@ -493,6 +492,7 @@ namespace AyaNova.Biz
if (w != null)
{
w.PurchaseOrderItemId = poItem.Id;
w.Received = poItem.QuantityReceived;
}
}
}
@@ -532,6 +532,18 @@ namespace AyaNova.Biz
//might have serials so remove those as well
await PartBiz.RemoveSerialsAsync(oldItem.PartId, oldItem.Serials, ct, UserId);
}
//fixup woitempartrequest if any
if (oldItem.WorkOrderItemPartRequestId != null)
{
//De-request it
var w = await ct.WorkOrderItemPartRequest.FirstOrDefaultAsync(x => x.Id == oldItem.WorkOrderItemPartRequestId);
if (w != null)
{
w.PurchaseOrderItemId = null;
w.Received = 0;
}
}
}
}
@@ -571,7 +583,16 @@ namespace AyaNova.Biz
SetPoItemDefaultPartValues(newItem, PoParts, newObj.VendorId);
//MIGRATE_OUTSTANDING - update workorderitempart here if applicable
if (newItem.WorkOrderItemPartRequestId != null)
{
//set it on request
var w = await ct.WorkOrderItemPartRequest.FirstOrDefaultAsync(x => x.Id == newItem.WorkOrderItemPartRequestId);
if (w != null)
{
w.PurchaseOrderItemId = newItem.Id;
w.Received = newItem.QuantityReceived;
}
}
continue;//on to next item no possible other changes here
}
@@ -596,6 +617,18 @@ namespace AyaNova.Biz
}
await PartBiz.RemoveSerialsAsync(oldItem.PartId, oldItem.Serials, ct, UserId);
//change of serial or part invalidates the workorderitempartrequest as it has specific part and warehouse so remove it here
if (oldItem.WorkOrderItemPartRequestId != null)
{
//De-request it
var w = await ct.WorkOrderItemPartRequest.FirstOrDefaultAsync(x => x.Id == oldItem.WorkOrderItemPartRequestId);
if (w != null)
{
w.PurchaseOrderItemId = null;
w.Received = 0;
}
}
}
if (newItem.QuantityReceived > 0)
@@ -615,6 +648,16 @@ namespace AyaNova.Biz
}
await PartBiz.AppendSerialsAsync(newItem.PartId, newItem.Serials, ct, UserId);
if (newItem.WorkOrderItemPartRequestId != null)
{
//set it on request
var w = await ct.WorkOrderItemPartRequest.FirstOrDefaultAsync(x => x.Id == newItem.WorkOrderItemPartRequestId);
if (w != null)
{
w.PurchaseOrderItemId = newItem.Id;
w.Received = newItem.QuantityReceived;
}
}
}
//Update part values into poitem if the part or vendor has changed
@@ -663,6 +706,17 @@ namespace AyaNova.Biz
await PartBiz.RemoveSerialsAsync(oldItem.PartId, oldItem.Serials, ct, UserId);
await PartBiz.AppendSerialsAsync(newItem.PartId, newItem.Serials, ct, UserId);
}
//update workorderitempartrequest if applicable
if (oldItem.WorkOrderItemPartRequestId != null)
{
//set it on request
var w = await ct.WorkOrderItemPartRequest.FirstOrDefaultAsync(x => x.Id == oldItem.WorkOrderItemPartRequestId);
if (w != null)
{
w.Received = newItem.QuantityReceived;
}
}
continue;//on to next
}