This commit is contained in:
2021-02-19 19:18:33 +00:00
parent f7dbea1bad
commit b34b2d10b5
3 changed files with 14 additions and 16 deletions

View File

@@ -51,7 +51,7 @@ namespace AyaNova.Api.Controllers
return StatusCode(403, new ApiNotAuthorizedResponse()); return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid) if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState)); return BadRequest(new ApiErrorResponse(ModelState));
PurchaseOrder o = await biz.CreateAsync(newObject); PurchaseOrder o = await biz.CreateAsync(newObject, true);
if (o == null) if (o == null)
return BadRequest(new ApiErrorResponse(biz.Errors)); return BadRequest(new ApiErrorResponse(biz.Errors));
else else
@@ -125,7 +125,7 @@ namespace AyaNova.Api.Controllers
else else
return BadRequest(new ApiErrorResponse(biz.Errors)); return BadRequest(new ApiErrorResponse(biz.Errors));
} }
return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); ; return Ok(ApiOkResponse.Response(o));//Here return entire object since it's updated by the server in ways the client needs to see
} }
/// <summary> /// <summary>

View File

@@ -41,7 +41,7 @@ namespace AyaNova.Biz
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
//CREATE //CREATE
// //
internal async Task<PurchaseOrder> CreateAsync(PurchaseOrder newObject) internal async Task<PurchaseOrder> CreateAsync(PurchaseOrder newObject, bool populateDisplayFields)
{ {
await ValidateAsync(newObject, null); await ValidateAsync(newObject, null);
if (HasErrors) if (HasErrors)
@@ -61,6 +61,8 @@ namespace AyaNova.Biz
await SearchIndexAsync(newObject, true); await SearchIndexAsync(newObject, true);
await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null);
await HandlePotentialNotificationEvent(AyaEvent.Created, newObject); await HandlePotentialNotificationEvent(AyaEvent.Created, newObject);
if (populateDisplayFields)
await SetDisplayFields(newObject);
return newObject; return newObject;
} }
} }
@@ -87,8 +89,8 @@ namespace AyaNova.Biz
item.ReceivedCost = 0; item.ReceivedCost = 0;
item.ReceivedDate = null; item.ReceivedDate = null;
item.PurchaseOrderId = 0; item.PurchaseOrderId = 0;
item.WorkorderItemPartRequestId=null; item.WorkorderItemPartRequestId = null;
item.PartRequestedById=null; item.PartRequestedById = null;
} }
newObject.Id = 0; newObject.Id = 0;
newObject.Concurrency = 0; newObject.Concurrency = 0;
@@ -108,8 +110,8 @@ namespace AyaNova.Biz
internal async Task<PurchaseOrder> GetAsync(long id, bool populateDisplayFields, bool logTheGetEvent) internal async Task<PurchaseOrder> GetAsync(long id, bool populateDisplayFields, bool logTheGetEvent)
{ {
var ret = await ct.PurchaseOrder.Include(z => z.Items).AsNoTracking().SingleOrDefaultAsync(z => z.Id == id); var ret = await ct.PurchaseOrder.Include(z => z.Items).AsNoTracking().SingleOrDefaultAsync(z => z.Id == id);
if (populateDisplayFields)
await SetDisplayFields(ret); await SetDisplayFields(ret);
if (logTheGetEvent && ret != null) if (logTheGetEvent && ret != null)
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct); await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct);
@@ -132,6 +134,7 @@ namespace AyaNova.Biz
foreach (PurchaseOrderItem item in po.Items) foreach (PurchaseOrderItem item in po.Items)
{ {
item.DisplayPartNumber = await ct.Part.AsNoTracking().Where(x => x.Id == item.PartId).Select(x => x.PartNumber).SingleAsync(); item.DisplayPartNumber = await ct.Part.AsNoTracking().Where(x => x.Id == item.PartId).Select(x => x.PartNumber).SingleAsync();
item.DisplayWarehouse = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).SingleAsync(); item.DisplayWarehouse = await ct.PartWarehouse.AsNoTracking().Where(x => x.Id == item.PartWarehouseId).Select(x => x.Name).SingleAsync();
if (item.WorkorderItemPartRequestId != null) if (item.WorkorderItemPartRequestId != null)

View File

@@ -1706,24 +1706,19 @@ namespace AyaNova.Util
PurchaseOrder o = new PurchaseOrder(); PurchaseOrder o = new PurchaseOrder();
o.Notes = Fake.Lorem.Sentence(); o.Notes = Fake.Lorem.Sentence();
o.Tags = RandomTags(); o.Tags = RandomTags();
o.VendorId = Fake.Random.Long(1, 9);//this matches the range set in parts so that we get some vendor numbers being set o.VendorId = Fake.Random.Long(1, 9);//this matches the range set in parts so that we get ALL vendor numbers being set
var poDate = Fake.Date.Between(seedStartWindow, seedEndWindow); var poDate = Fake.Date.Between(seedStartWindow, seedEndWindow);
o.OrderedDate = poDate.ToUniversalTime(); o.OrderedDate = poDate.ToUniversalTime();
o.ExpectedReceiveDate = poDate.AddDays(5).ToUniversalTime(); o.ExpectedReceiveDate = poDate.AddDays(5).ToUniversalTime();
o.Status = PurchaseOrderStatus.ClosedFullReceived; o.Status = PurchaseOrderStatus.ClosedFullReceived;
o.ReferenceNumber = Fake.Finance.Account(6); o.ReferenceNumber = Fake.Finance.Account(6);
o.VendorMemo = Fake.Lorem.Sentence(); o.VendorMemo = Fake.Lorem.Sentence();
if (Fake.Random.Number(1, 10) == 5) if (Fake.Random.Number(1, 10) == 5)
{ o.ProjectId = Fake.Random.Long(1, TotalSeededProjects);
o.ProjectId = Fake.Random.Long(1, TotalSeededProjects);
}
o.Text1 = Fake.Lorem.Sentence(1, 3); o.Text1 = Fake.Lorem.Sentence(1, 3);
o.Text2 = Fake.Lorem.Sentence(1, 3); o.Text2 = Fake.Lorem.Sentence(1, 3);
List<long> partsAdded = new List<long>(); List<long> partsAdded = new List<long>();
int partCount = Fake.Random.Int(1, 5); int partCount = Fake.Random.Int(1, 5);
for (int y = 0; y < partCount; y++) for (int y = 0; y < partCount; y++)
@@ -1753,7 +1748,7 @@ namespace AyaNova.Util
using (AyContext ct = ServiceProviderProvider.DBContext) using (AyContext ct = ServiceProviderProvider.DBContext)
{ {
PurchaseOrderBiz biz = PurchaseOrderBiz.GetBiz(ct); PurchaseOrderBiz biz = PurchaseOrderBiz.GetBiz(ct);
var NewObject = await biz.CreateAsync(o); var NewObject = await biz.CreateAsync(o, false);
TotalSeededPurchaseOrders++; TotalSeededPurchaseOrders++;
if (NewObject == null) if (NewObject == null)
{ {