From 1dc0409ba89ba1f632739138ae44665baf3763ca Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Mon, 14 Feb 2022 15:12:38 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/ScheduleController.cs | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/server/AyaNova/Controllers/ScheduleController.cs b/server/AyaNova/Controllers/ScheduleController.cs index 1944d545..037a1e3c 100644 --- a/server/AyaNova/Controllers/ScheduleController.cs +++ b/server/AyaNova/Controllers/ScheduleController.cs @@ -170,11 +170,13 @@ namespace AyaNova.Api.Controllers long? actualUserId = p.UserId == 0 ? null : p.UserId; + + //WORKORDERS { //Note: query for *overlapping* ranges, not *contained* entirely in view range r.AddRange(await ct.ViewScheduleWorkOrder.Where(x => x.SchedUserId == actualUserId && ViewStart <= x.StopDate && x.StartDate <= ViewEnd) - .Select(x => MakePersonalWOSchedItem(x, p)) + .Select(x => MakePersonalWOSchedItem(x, p, false))//this is the drill down by service manager route so assume they can edit here .ToListAsync()); } @@ -208,6 +210,9 @@ namespace AyaNova.Api.Controllers var UserId = UserIdFromContext.Id(HttpContext.Items); var UType = UserTypeFromContext.Type(HttpContext.Items); + //Need to make sure send not editable for wisu events if restricted user + WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext); + bool UserIsRestrictedType = biz.UserIsRestrictedType; //Note: query will return records that fall within viewed range even if they start or end outside of it //However in month view (only, rest are as is) we can see up to 6 days before or after the month so in the interest of filling those voids: @@ -226,7 +231,7 @@ namespace AyaNova.Api.Controllers { //Note: query for *overlapping* ranges, not *contained* entirely in view range r.AddRange(await ct.ViewScheduleWorkOrder.Where(x => x.SchedUserId == UserId && ViewStart <= x.StopDate && x.StartDate <= ViewEnd) - .Select(x => MakePersonalWOSchedItem(x, p)) + .Select(x => MakePersonalWOSchedItem(x, p, UserIsRestrictedType)) .ToListAsync()); } @@ -332,8 +337,20 @@ namespace AyaNova.Api.Controllers return s; } - private static PersonalScheduleListItem MakePersonalWOSchedItem(ViewScheduleWorkOrder v, PersonalScheduleParams p) + private static PersonalScheduleListItem MakePersonalWOSchedItem(ViewScheduleWorkOrder v, PersonalScheduleParams p, bool userIsRestrictedType) { + bool canEdit = true; + if (userIsRestrictedType) + canEdit = false; + if (v.WorkOrderStatusCompleted == true) + { + canEdit = false; + } + if (v.WorkOrderStatusLocked == true) + { + canEdit = false; + } + var s = new PersonalScheduleListItem(); s.Id = v.WoItemSchedUserId; s.Color = ColorFromWOItem(v, p.WisuColorSource); @@ -342,7 +359,7 @@ namespace AyaNova.Api.Controllers s.End = (DateTime)v.StopDate; s.Type = AyaType.WorkOrderItemScheduledUser; s.Name = NameFromWOItem(v); - s.Editable = v.WorkOrderStatusCompleted != true && v.WorkOrderStatusLocked != true;//could be null as well which we'll consider open as it's no status set + s.Editable = canEdit; return s; }