|
|
|
|
@@ -2184,7 +2184,7 @@ namespace AyaNova.Biz
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
//for notification purposes because has no name field itself
|
|
|
|
|
//for notification purposes because has no name field itself
|
|
|
|
|
oProposed.Name = WorkorderInfo.Serial.ToString();
|
|
|
|
|
|
|
|
|
|
//STANDARD EVENTS FOR ALL OBJECTS
|
|
|
|
|
@@ -2559,7 +2559,7 @@ namespace AyaNova.Biz
|
|
|
|
|
bool isNew = currentObj == null;
|
|
|
|
|
WorkOrderItemExpense oProposed = (WorkOrderItemExpense)proposedObj;
|
|
|
|
|
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();
|
|
|
|
|
oProposed.Tags = WorkorderInfo.Tags;
|
|
|
|
|
|
|
|
|
|
//STANDARD EVENTS FOR ALL OBJECTS
|
|
|
|
|
@@ -3049,7 +3049,7 @@ namespace AyaNova.Biz
|
|
|
|
|
WorkOrderItemLabor oProposed = (WorkOrderItemLabor)proposedObj;
|
|
|
|
|
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();
|
|
|
|
|
//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.Tags = WorkorderInfo.Tags;
|
|
|
|
|
|
|
|
|
|
@@ -3429,7 +3429,7 @@ namespace AyaNova.Biz
|
|
|
|
|
WorkOrderItemLoan oProposed = (WorkOrderItemLoan)proposedObj;
|
|
|
|
|
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();
|
|
|
|
|
//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.Tags = WorkorderInfo.Tags;
|
|
|
|
|
|
|
|
|
|
@@ -3746,7 +3746,7 @@ namespace AyaNova.Biz
|
|
|
|
|
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();
|
|
|
|
|
//for notification purposes because has no name / tags field itself
|
|
|
|
|
oProposed.Name = WorkorderInfo.Serial.ToString();
|
|
|
|
|
oProposed.Name = WorkorderInfo.Serial.ToString();
|
|
|
|
|
oProposed.Tags = WorkorderInfo.Tags;
|
|
|
|
|
|
|
|
|
|
//STANDARD EVENTS FOR ALL OBJECTS
|
|
|
|
|
@@ -4027,38 +4027,36 @@ namespace AyaNova.Biz
|
|
|
|
|
//
|
|
|
|
|
internal async Task<bool> PartDeleteAsync(long id, IDbContextTransaction parentTransaction = null)
|
|
|
|
|
{
|
|
|
|
|
// var transaction = parentTransaction ?? await ct.Database.BeginTransactionAsync();
|
|
|
|
|
using (var transaction = parentTransaction ?? await ct.Database.BeginTransactionAsync())
|
|
|
|
|
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);
|
|
|
|
|
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)
|
|
|
|
|
{
|
|
|
|
|
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;
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
@@ -4385,15 +4383,8 @@ namespace AyaNova.Biz
|
|
|
|
|
if (newObj.Quantity != 0 && !string.IsNullOrWhiteSpace(newObj.Serials))
|
|
|
|
|
await PartBiz.RemoveSerialsAsync(newObj.PartId, newObj.Serials, ct, UserId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|