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());
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
}
/// <summary>

View File

@@ -41,7 +41,7 @@ namespace AyaNova.Biz
////////////////////////////////////////////////////////////////////////////////////////////////
//CREATE
//
internal async Task<PurchaseOrder> CreateAsync(PurchaseOrder newObject)
internal async Task<PurchaseOrder> 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<PurchaseOrder> 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)

View File

@@ -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<long> partsAdded = new List<long>();
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)
{