This commit is contained in:
2021-08-09 17:34:12 +00:00
parent cdba13d338
commit f634cddbd6
3 changed files with 35 additions and 9 deletions

View File

@@ -16,7 +16,7 @@ namespace AyaNova.DataList
//todo: look at loanitemlist in v7 it surfaces due date, out date etc in the list and should here too once those fields are coded for //todo: look at loanitemlist in v7 it surfaces due date, out date etc in the list and should here too once those fields are coded for
var RoleSet = BizRoles.GetRoleSet(DefaultListAType); var RoleSet = BizRoles.GetRoleSet(DefaultListAType);
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
DefaultColumns = new List<string>() { "LoanUnitName", "LoanUnitSerial", "LoanUnitShadowUnit" }; DefaultColumns = new List<string>() { "LoanUnitName", "LoanUnitSerial", "LoanUnitCurrentWorkOrderItemLoan", "LoanUnitShadowUnit" };
DefaultSortBy = new Dictionary<string, string>() { { "LoanUnitName", "+" } }; DefaultSortBy = new Dictionary<string, string>() { { "LoanUnitName", "+" } };
FieldDefinitions = new List<DataListFieldDefinition>(); FieldDefinitions = new List<DataListFieldDefinition>();

View File

@@ -65,5 +65,18 @@ namespace AyaNova.PickList
}); });
} }
public string GetVariantCriteria(string variant)
{
// :variant="availableonly" Only items that are not on a workorderitemloan
if (string.IsNullOrWhiteSpace(variant) || variant != "availableonly") return string.Empty;
return "aloanunit.workorderitemloanid is null";
}
}//eoc }//eoc
}//eons }//eons

View File

@@ -2795,11 +2795,14 @@ namespace AyaNova.Biz
await LoanSearchIndexAsync(newObject, true); await LoanSearchIndexAsync(newObject, true);
await LoanPopulateVizFields(newObject); await LoanPopulateVizFields(newObject);
await LoanHandlePotentialNotificationEvent(AyaEvent.Created, newObject); await LoanHandlePotentialNotificationEvent(AyaEvent.Created, newObject);
var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == newObject.LoanUnitId); if (newObject.ReturnDate == null)
if (u != null)
{ {
u.WorkOrderItemLoanId = newObject.Id; var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == newObject.LoanUnitId);
await ct.SaveChangesAsync(); if (u != null)
{
u.WorkOrderItemLoanId = newObject.Id;
await ct.SaveChangesAsync();
}
} }
return newObject; return newObject;
} }
@@ -2838,6 +2841,7 @@ namespace AyaNova.Biz
if (HasErrors) return null; if (HasErrors) return null;
await LoanBizActionsAsync(AyaEvent.Modified, putObject, dbObject); await LoanBizActionsAsync(AyaEvent.Modified, putObject, dbObject);
bool changeOfUnit = dbObject.LoanUnitId != putObject.LoanUnitId; bool changeOfUnit = dbObject.LoanUnitId != putObject.LoanUnitId;
bool changeOfReturned = dbObject.ReturnDate != putObject.ReturnDate;
ct.Replace(dbObject, putObject); ct.Replace(dbObject, putObject);
try try
@@ -2857,13 +2861,22 @@ namespace AyaNova.Biz
await LoanSearchIndexAsync(putObject, false); await LoanSearchIndexAsync(putObject, false);
await LoanPopulateVizFields(putObject); await LoanPopulateVizFields(putObject);
await LoanHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject); await LoanHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject);
//update loan unit //update loan unitif (newObject.ReturnDate == null)
if (changeOfUnit)
//Returned or unit changed
if (changeOfUnit || changeOfReturned)
{ {
var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == dbObject.LoanUnitId); var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == dbObject.LoanUnitId);
if (u != null) if (u != null && (u.WorkOrderItemLoanId==null || u.WorkOrderItemLoanId==putObject.Id))
{ {
u.WorkOrderItemLoanId = putObject.Id; if (putObject.ReturnDate != null)
{
u.WorkOrderItemLoanId = null;
}
else
{
u.WorkOrderItemLoanId = putObject.Id;
}
await ct.SaveChangesAsync(); await ct.SaveChangesAsync();
} }
} }