From f634cddbd65bb1b087775cd67db3512f40e1cd98 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 9 Aug 2021 17:34:12 +0000 Subject: [PATCH] --- server/AyaNova/DataList/LoanUnitDataList.cs | 2 +- server/AyaNova/PickList/LoanUnitPickList.cs | 13 +++++++++ server/AyaNova/biz/WorkOrderBiz.cs | 29 +++++++++++++++------ 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/server/AyaNova/DataList/LoanUnitDataList.cs b/server/AyaNova/DataList/LoanUnitDataList.cs index 5cab5d66..fe82f67a 100644 --- a/server/AyaNova/DataList/LoanUnitDataList.cs +++ b/server/AyaNova/DataList/LoanUnitDataList.cs @@ -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 var RoleSet = BizRoles.GetRoleSet(DefaultListAType); AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change; - DefaultColumns = new List() { "LoanUnitName", "LoanUnitSerial", "LoanUnitShadowUnit" }; + DefaultColumns = new List() { "LoanUnitName", "LoanUnitSerial", "LoanUnitCurrentWorkOrderItemLoan", "LoanUnitShadowUnit" }; DefaultSortBy = new Dictionary() { { "LoanUnitName", "+" } }; FieldDefinitions = new List(); diff --git a/server/AyaNova/PickList/LoanUnitPickList.cs b/server/AyaNova/PickList/LoanUnitPickList.cs index fb4f28c5..01297387 100644 --- a/server/AyaNova/PickList/LoanUnitPickList.cs +++ b/server/AyaNova/PickList/LoanUnitPickList.cs @@ -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 }//eons \ No newline at end of file diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 328ec0c5..b80885ba 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -2795,11 +2795,14 @@ namespace AyaNova.Biz 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) + if (newObject.ReturnDate == null) { - u.WorkOrderItemLoanId = newObject.Id; - await ct.SaveChangesAsync(); + var u = await ct.LoanUnit.FirstOrDefaultAsync(x => x.Id == newObject.LoanUnitId); + if (u != null) + { + u.WorkOrderItemLoanId = newObject.Id; + await ct.SaveChangesAsync(); + } } return newObject; } @@ -2838,6 +2841,7 @@ namespace AyaNova.Biz if (HasErrors) return null; await LoanBizActionsAsync(AyaEvent.Modified, putObject, dbObject); bool changeOfUnit = dbObject.LoanUnitId != putObject.LoanUnitId; + bool changeOfReturned = dbObject.ReturnDate != putObject.ReturnDate; ct.Replace(dbObject, putObject); try @@ -2857,13 +2861,22 @@ namespace AyaNova.Biz await LoanSearchIndexAsync(putObject, false); await LoanPopulateVizFields(putObject); await LoanHandlePotentialNotificationEvent(AyaEvent.Modified, putObject, dbObject); - //update loan unit - if (changeOfUnit) + //update loan unitif (newObject.ReturnDate == null) + + //Returned or unit changed + if (changeOfUnit || changeOfReturned) { 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(); } }