From b34b2d10b5d6ce5babf72523eead8a5d4dd4ed41 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 19 Feb 2021 19:18:33 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/PurchaseOrderController.cs | 4 ++-- server/AyaNova/biz/PurchaseOrderBiz.cs | 13 ++++++++----- server/AyaNova/util/Seeder.cs | 13 ++++--------- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/server/AyaNova/Controllers/PurchaseOrderController.cs b/server/AyaNova/Controllers/PurchaseOrderController.cs index fae55f72..61175c4d 100644 --- a/server/AyaNova/Controllers/PurchaseOrderController.cs +++ b/server/AyaNova/Controllers/PurchaseOrderController.cs @@ -51,7 +51,7 @@ namespace AyaNova.Api.Controllers return StatusCode(403, new ApiNotAuthorizedResponse()); if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); - PurchaseOrder o = await biz.CreateAsync(newObject); + PurchaseOrder o = await biz.CreateAsync(newObject, true); if (o == null) return BadRequest(new ApiErrorResponse(biz.Errors)); else @@ -125,7 +125,7 @@ namespace AyaNova.Api.Controllers else 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 } /// diff --git a/server/AyaNova/biz/PurchaseOrderBiz.cs b/server/AyaNova/biz/PurchaseOrderBiz.cs index ebc6c484..c971325a 100644 --- a/server/AyaNova/biz/PurchaseOrderBiz.cs +++ b/server/AyaNova/biz/PurchaseOrderBiz.cs @@ -41,7 +41,7 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// //CREATE // - internal async Task CreateAsync(PurchaseOrder newObject) + internal async Task CreateAsync(PurchaseOrder newObject, bool populateDisplayFields) { await ValidateAsync(newObject, null); if (HasErrors) @@ -61,6 +61,8 @@ namespace AyaNova.Biz await SearchIndexAsync(newObject, true); await TagBiz.ProcessUpdateTagsInRepositoryAsync(ct, newObject.Tags, null); await HandlePotentialNotificationEvent(AyaEvent.Created, newObject); + if (populateDisplayFields) + await SetDisplayFields(newObject); return newObject; } } @@ -87,8 +89,8 @@ namespace AyaNova.Biz item.ReceivedCost = 0; item.ReceivedDate = null; item.PurchaseOrderId = 0; - item.WorkorderItemPartRequestId=null; - item.PartRequestedById=null; + item.WorkorderItemPartRequestId = null; + item.PartRequestedById = null; } newObject.Id = 0; newObject.Concurrency = 0; @@ -108,8 +110,8 @@ namespace AyaNova.Biz internal async Task GetAsync(long id, bool populateDisplayFields, bool logTheGetEvent) { var ret = await ct.PurchaseOrder.Include(z => z.Items).AsNoTracking().SingleOrDefaultAsync(z => z.Id == id); - - await SetDisplayFields(ret); + if (populateDisplayFields) + await SetDisplayFields(ret); if (logTheGetEvent && ret != null) await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, id, BizType, AyaEvent.Retrieved), ct); @@ -132,6 +134,7 @@ namespace AyaNova.Biz foreach (PurchaseOrderItem item in po.Items) { + 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(); if (item.WorkorderItemPartRequestId != null) diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index a001c388..03274cbb 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -1706,24 +1706,19 @@ namespace AyaNova.Util PurchaseOrder o = new PurchaseOrder(); o.Notes = Fake.Lorem.Sentence(); 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); o.OrderedDate = poDate.ToUniversalTime(); o.ExpectedReceiveDate = poDate.AddDays(5).ToUniversalTime(); o.Status = PurchaseOrderStatus.ClosedFullReceived; o.ReferenceNumber = Fake.Finance.Account(6); o.VendorMemo = Fake.Lorem.Sentence(); - if (Fake.Random.Number(1, 10) == 5) - { - o.ProjectId = Fake.Random.Long(1, TotalSeededProjects); - } + if (Fake.Random.Number(1, 10) == 5) + o.ProjectId = Fake.Random.Long(1, TotalSeededProjects); o.Text1 = Fake.Lorem.Sentence(1, 3); o.Text2 = Fake.Lorem.Sentence(1, 3); - - - List partsAdded = new List(); int partCount = Fake.Random.Int(1, 5); for (int y = 0; y < partCount; y++) @@ -1753,7 +1748,7 @@ namespace AyaNova.Util using (AyContext ct = ServiceProviderProvider.DBContext) { PurchaseOrderBiz biz = PurchaseOrderBiz.GetBiz(ct); - var NewObject = await biz.CreateAsync(o); + var NewObject = await biz.CreateAsync(o, false); TotalSeededPurchaseOrders++; if (NewObject == null) {