This commit is contained in:
2022-02-14 15:12:38 +00:00
parent cb349eeb35
commit 1dc0409ba8

View File

@@ -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;
}