This commit is contained in:
2021-06-30 22:30:46 +00:00
parent 779a695ff7
commit 32f1b8dc15
6 changed files with 37 additions and 42 deletions

2
.vscode/launch.json vendored
View File

@@ -53,7 +53,7 @@
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", "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_SEEDLEVEL": "small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"

View File

@@ -2184,7 +2184,7 @@ namespace AyaNova.Biz
var wid = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderId, ct); var wid = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderId, ct);
var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid.WorkOrderId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync(); var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid.WorkOrderId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync();
//for notification purposes because has no name field itself //for notification purposes because has no name field itself
oProposed.Name = WorkorderInfo.Serial.ToString(); oProposed.Name = WorkorderInfo.Serial.ToString();
//STANDARD EVENTS FOR ALL OBJECTS //STANDARD EVENTS FOR ALL OBJECTS
@@ -3049,7 +3049,7 @@ namespace AyaNova.Biz
WorkOrderItemLabor oProposed = (WorkOrderItemLabor)proposedObj; WorkOrderItemLabor oProposed = (WorkOrderItemLabor)proposedObj;
var wid = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderItemId, ct); var wid = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderItemId, ct);
var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid.WorkOrderId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync(); var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid.WorkOrderId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync();
//for notification purposes because has no name or tags field itself //for notification purposes because has no name or tags field itself
oProposed.Name = WorkorderInfo.Serial.ToString(); oProposed.Name = WorkorderInfo.Serial.ToString();
oProposed.Tags = WorkorderInfo.Tags; oProposed.Tags = WorkorderInfo.Tags;
@@ -3429,7 +3429,7 @@ namespace AyaNova.Biz
WorkOrderItemLoan oProposed = (WorkOrderItemLoan)proposedObj; WorkOrderItemLoan oProposed = (WorkOrderItemLoan)proposedObj;
var wid = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderItemId, ct); var wid = await GetWorkOrderIdFromRelativeAsync(AyaType.WorkOrderItem, oProposed.WorkOrderItemId, ct);
var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid.WorkOrderId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync(); var WorkorderInfo = await ct.WorkOrder.AsNoTracking().Where(x => x.Id == wid.WorkOrderId).Select(x => new { Serial = x.Serial, Tags = x.Tags }).FirstOrDefaultAsync();
//for notification purposes because has no name / tags field itself //for notification purposes because has no name / tags field itself
oProposed.Name = WorkorderInfo.Serial.ToString(); oProposed.Name = WorkorderInfo.Serial.ToString();
oProposed.Tags = WorkorderInfo.Tags; oProposed.Tags = WorkorderInfo.Tags;
@@ -4027,38 +4027,36 @@ namespace AyaNova.Biz
// //
internal async Task<bool> PartDeleteAsync(long id, IDbContextTransaction parentTransaction = null) internal async Task<bool> PartDeleteAsync(long id, IDbContextTransaction parentTransaction = null)
{ {
// var transaction = parentTransaction ?? await ct.Database.BeginTransactionAsync(); var transaction = parentTransaction ?? await ct.Database.BeginTransactionAsync();
using (var transaction = parentTransaction ?? await ct.Database.BeginTransactionAsync())
try
{ {
try var dbObject = await PartGetAsync(id, false);
PartValidateCanDelete(dbObject);
if (HasErrors)
return false;
await PartBizActionsAsync(AyaEvent.Deleted, null, dbObject, transaction);
ct.WorkOrderItemPart.Remove(dbObject);
await ct.SaveChangesAsync();
await PartInventoryAdjustmentAsync(AyaEvent.Deleted, null, dbObject, transaction);
if (HasErrors)
{ {
var dbObject = await PartGetAsync(id, false); await transaction.RollbackAsync();
PartValidateCanDelete(dbObject); return false;
if (HasErrors)
return false;
await PartBizActionsAsync(AyaEvent.Deleted, null, dbObject, transaction);
ct.WorkOrderItemPart.Remove(dbObject);
await ct.SaveChangesAsync();
await PartInventoryAdjustmentAsync(AyaEvent.Deleted, null, dbObject, transaction);
if (HasErrors)
{
await transaction.RollbackAsync();
return false;
}
//Log event
await EventLogProcessor.DeleteObjectLogAsync(UserId, dbObject.AyaType, dbObject.Id, "woitem:" + dbObject.WorkOrderItemId.ToString(), ct);//Fix??
await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, dbObject.AyaType, ct);
//await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags);
//await FileUtil.DeleteAttachmentsForObjectAsync(dbObject.AyaType, dbObject.Id, ct);
if (parentTransaction == null)
await transaction.CommitAsync();
await PartHandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject);
}
catch
{
//Just re-throw for now, let exception handler deal, but in future may want to deal with this more here
throw;
} }
//Log event
await EventLogProcessor.DeleteObjectLogAsync(UserId, dbObject.AyaType, dbObject.Id, "woitem:" + dbObject.WorkOrderItemId.ToString(), ct);//Fix??
await Search.ProcessDeletedObjectKeywordsAsync(dbObject.Id, dbObject.AyaType, ct);
//await TagBiz.ProcessDeleteTagsInRepositoryAsync(ct, dbObject.Tags);
//await FileUtil.DeleteAttachmentsForObjectAsync(dbObject.AyaType, dbObject.Id, ct);
if (parentTransaction == null)
await transaction.CommitAsync();
await PartHandlePotentialNotificationEvent(AyaEvent.Deleted, dbObject);
}
catch
{
//Just re-throw for now, let exception handler deal, but in future may want to deal with this more here
throw;
} }
return true; return true;
} }
@@ -4385,15 +4383,8 @@ namespace AyaNova.Biz
if (newObj.Quantity != 0 && !string.IsNullOrWhiteSpace(newObj.Serials)) if (newObj.Quantity != 0 && !string.IsNullOrWhiteSpace(newObj.Serials))
await PartBiz.RemoveSerialsAsync(newObj.PartId, newObj.Serials, ct, UserId); await PartBiz.RemoveSerialsAsync(newObj.PartId, newObj.Serials, ct, UserId);
} }
} }
} }
} }

View File

@@ -2209,6 +2209,7 @@
"WorkOrderSerialNumber": "Nummer", "WorkOrderSerialNumber": "Nummer",
"Sequence": "Reihenfolge", "Sequence": "Reihenfolge",
"SoftDelete": "Zum Löschen markieren", "SoftDelete": "Zum Löschen markieren",
"SoftDeleteAll": "*alle* zum Löschen markieren",
"Undelete": "Wiederherstellen", "Undelete": "Wiederherstellen",
"NewStatus": "Neuer Status", "NewStatus": "Neuer Status",
"WorkOrderCustom1": "Angepasstes Feld 1", "WorkOrderCustom1": "Angepasstes Feld 1",

View File

@@ -2209,6 +2209,7 @@
"WorkOrderSerialNumber": "Number", "WorkOrderSerialNumber": "Number",
"Sequence": "Sequence", "Sequence": "Sequence",
"SoftDelete": "Mark for deletion", "SoftDelete": "Mark for deletion",
"SoftDeleteAll": "Mark *all* for deletion",
"Undelete": "Undelete", "Undelete": "Undelete",
"NewStatus": "New status", "NewStatus": "New status",
"WorkOrderCustom1": "Custom1", "WorkOrderCustom1": "Custom1",

View File

@@ -2209,6 +2209,7 @@
"WorkOrderSerialNumber": "Número", "WorkOrderSerialNumber": "Número",
"Sequence": "Secuencia", "Sequence": "Secuencia",
"SoftDelete": "Marcar para borrar", "SoftDelete": "Marcar para borrar",
"SoftDeleteAll": "Marcar *todo* para borrar",
"Undelete": "Recuperar", "Undelete": "Recuperar",
"NewStatus": "Nuevo estado", "NewStatus": "Nuevo estado",
"WorkOrderCustom1": "Campo personalizado 1", "WorkOrderCustom1": "Campo personalizado 1",

View File

@@ -2209,6 +2209,7 @@
"WorkOrderSerialNumber": "Numéro", "WorkOrderSerialNumber": "Numéro",
"Sequence": "Séquence", "Sequence": "Séquence",
"SoftDelete": "Marquer pour suppression", "SoftDelete": "Marquer pour suppression",
"SoftDeleteAll": "Marquer *tout* pour suppression",
"Undelete": "Annuler la suppression", "Undelete": "Annuler la suppression",
"NewStatus": "Nouveau statut", "NewStatus": "Nouveau statut",
"WorkOrderCustom1": "Champ personnalisé 1", "WorkOrderCustom1": "Champ personnalisé 1",