This commit is contained in:
2021-08-07 00:31:29 +00:00
parent a7cc4ba888
commit 4d2b81d5d2
2 changed files with 42 additions and 10 deletions

2
.vscode/launch.json vendored
View File

@@ -53,7 +53,7 @@
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles",
"AYANOVA_SERVER_TEST_MODE": "true",
"AYANOVA_SERVER_TEST_MODE": "false",
"AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"

View File

@@ -136,9 +136,9 @@ namespace AyaNova.Biz
foreach (WorkOrderItem wi in newObject.Items)
{
foreach (WorkOrderItemPart wip in wi.Parts)
await PartBizActionsAsync(AyaEvent.Created, wip, null, null);
await PartBizActionsAsync(AyaEvent.Created, wip, null);
foreach (WorkOrderItemLoan wil in wi.Loans)
await LoanBizActionsAsync(AyaEvent.Created, wil, null, null);
await LoanBizActionsAsync(AyaEvent.Created, wil, null);
}
await ct.SaveChangesAsync();
@@ -2788,13 +2788,19 @@ namespace AyaNova.Biz
return null;
else
{
await LoanBizActionsAsync(AyaEvent.Created, newObject, null, null);
await LoanBizActionsAsync(AyaEvent.Created, newObject, null);
await ct.WorkOrderItemLoan.AddAsync(newObject);
await ct.SaveChangesAsync();
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, newObject.Id, newObject.AyaType, AyaEvent.Created), ct);
await LoanSearchIndexAsync(newObject, true);
await LoanPopulateVizFields(newObject);
await LoanHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == newObject.LoanUnitId);
if (u != null)
{
u.WorkOrderItemLoanId = newObject.Id;
await ct.SaveChangesAsync();
}
return newObject;
}
}
@@ -2830,8 +2836,10 @@ namespace AyaNova.Biz
}
await LoanValidateAsync(putObject, dbObject);
if (HasErrors) return null;
await LoanBizActionsAsync(AyaEvent.Modified, putObject, dbObject, null);
await LoanBizActionsAsync(AyaEvent.Modified, putObject, dbObject);
bool changeOfUnit = dbObject.LoanUnitId != putObject.LoanUnitId;
ct.Replace(dbObject, putObject);
try
{
await ct.SaveChangesAsync();
@@ -2844,10 +2852,21 @@ namespace AyaNova.Biz
AddError(ApiErrorCode.CONCURRENCY_CONFLICT);
return null;
}
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, dbObject.Id, putObject.AyaType, AyaEvent.Modified), ct);
await LoanSearchIndexAsync(putObject, false);
await LoanPopulateVizFields(putObject);
await LoanHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
//update loan unit
if (changeOfUnit)
{
var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == dbObject.LoanUnitId);
if (u != null)
{
u.WorkOrderItemLoanId = putObject.Id;
await ct.SaveChangesAsync();
}
}
return putObject;
}
@@ -2861,6 +2880,15 @@ namespace AyaNova.Biz
LoanValidateCanDelete(dbObject);
if (HasErrors)
return false;
//note:deliberately doing collection here in case of weird issues
var ul = await ct.LoanUnit.Where(x => x.WorkOrderItemLoanId == dbObject.Id).ToListAsync();
foreach (var u in ul)
{
if (u.WorkOrderItemLoanId == dbObject.Id)//only do this if it's flagged on *this* workorderitemloan
u.WorkOrderItemLoanId = null;
}
await ct.SaveChangesAsync();
ct.WorkOrderItemLoan.Remove(dbObject);
await ct.SaveChangesAsync();
@@ -2965,7 +2993,7 @@ namespace AyaNova.Biz
//BIZ ACTIONS
//
//
private async Task LoanBizActionsAsync(AyaEvent ayaEvent, WorkOrderItemLoan newObj, WorkOrderItemLoan oldObj, IDbContextTransaction transaction)
private async Task LoanBizActionsAsync(AyaEvent ayaEvent, WorkOrderItemLoan newObj, WorkOrderItemLoan oldObj)
{
//automatic actions on record change, called AFTER validation
@@ -2976,6 +3004,8 @@ namespace AyaNova.Biz
//SNAPSHOT PRICING
bool SnapshotPricing = true;
//if modifed, see what has changed and should be re-applied
if (ayaEvent == AyaEvent.Modified)
{
@@ -3034,6 +3064,8 @@ namespace AyaNova.Biz
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
//VALIDATION
//
@@ -3634,7 +3666,7 @@ namespace AyaNova.Biz
return null;
else
{
await PartBizActionsAsync(AyaEvent.Created, newObject, null, null);
await PartBizActionsAsync(AyaEvent.Created, newObject, null);
await ct.WorkOrderItemPart.AddAsync(newObject);
@@ -3690,7 +3722,7 @@ namespace AyaNova.Biz
await PartValidateAsync(putObject, dbObject);
if (HasErrors) return null;
await PartBizActionsAsync(AyaEvent.Modified, putObject, dbObject, null);
await PartBizActionsAsync(AyaEvent.Modified, putObject, dbObject);
ct.Replace(dbObject, putObject);
try
{
@@ -3729,7 +3761,7 @@ namespace AyaNova.Biz
PartValidateCanDelete(dbObject);
if (HasErrors)
return false;
await PartBizActionsAsync(AyaEvent.Deleted, null, dbObject, transaction);
await PartBizActionsAsync(AyaEvent.Deleted, null, dbObject);
ct.WorkOrderItemPart.Remove(dbObject);
await ct.SaveChangesAsync();
await PartInventoryAdjustmentAsync(AyaEvent.Deleted, null, dbObject, transaction);
@@ -3895,7 +3927,7 @@ namespace AyaNova.Biz
//BIZ ACTIONS
//
//
private async Task PartBizActionsAsync(AyaEvent ayaEvent, WorkOrderItemPart newObj, WorkOrderItemPart oldObj, IDbContextTransaction transaction)
private async Task PartBizActionsAsync(AyaEvent ayaEvent, WorkOrderItemPart newObj, WorkOrderItemPart oldObj)
{