diff --git a/.vscode/launch.json b/.vscode/launch.json index 976f60e9..f92c39ec 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -52,7 +52,7 @@ "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", - "AYANOVA_SERVER_TEST_MODE": "true", + "AYANOVA_SERVER_TEST_MODE": "false", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" diff --git a/server/AyaNova/Controllers/ScheduleController.cs b/server/AyaNova/Controllers/ScheduleController.cs index 47006e28..7c7c6d1c 100644 --- a/server/AyaNova/Controllers/ScheduleController.cs +++ b/server/AyaNova/Controllers/ScheduleController.cs @@ -43,21 +43,6 @@ namespace AyaNova.Api.Controllers } - /// - /// Get active Scheduleable user list - /// - /// List of all scheduleable users - [HttpGet("scheduleable-user-list")] - public async Task GetScheduleableUserList() - { - if (!serverState.IsOpen) - return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.WorkOrder))//WorkOrder right applies to all svc-schedule ops - return StatusCode(403, new ApiNotAuthorizedResponse()); - var o = await ct.User.AsNoTracking().Where(x => x.Active == true && x.UserType == UserType.ServiceContractor || x.UserType == UserType.Service).OrderBy(x => x.Name).Select(x => new { x.Name, x.Id }).ToListAsync(); - - return Ok(ApiOkResponse.Response(o)); - } @@ -115,7 +100,8 @@ namespace AyaNova.Api.Controllers Users.Add(new NameIdItem { Name = u.Name, Id = u.Id }); } } - List userIdList = Users.Select(x => x.Id).ToList(); + List userIdList = Users.Select(x => x.Id as long?).ToList(); + userIdList.Add(null); //WORKORDERS { //Note: query for *overlapping* ranges, not *contained* entirely in view range @@ -123,7 +109,8 @@ namespace AyaNova.Api.Controllers .Select(x => MakeServiceWOSchedItem(x, p)) .ToListAsync()); } - return Ok(ApiOkResponse.Response(new { items = r, users = Users })); + var HasUnAssigned = r.Any(x => x.UserId == 0); + return Ok(ApiOkResponse.Response(new { items = r, users = Users, hasUnassigned = HasUnAssigned })); } public class ServiceScheduleParams @@ -286,7 +273,7 @@ namespace AyaNova.Api.Controllers 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.UserId = v.SchedUserId; + s.UserId = v.SchedUserId ?? 0;//0 signifies to client schedule that it's an unassigned woitem return s; } @@ -446,5 +433,22 @@ namespace AyaNova.Api.Controllers //------------ + // deprecated as not used but by tag instead + // /// + // /// Get active Scheduleable user list + // /// + // /// List of all scheduleable users + // [HttpGet("scheduleable-user-list")] + // public async Task GetScheduleableUserList() + // { + // if (!serverState.IsOpen) + // return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + // if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.WorkOrder))//WorkOrder right applies to all svc-schedule ops + // return StatusCode(403, new ApiNotAuthorizedResponse()); + // var o = await ct.User.AsNoTracking().Where(x => x.Active == true && x.UserType == UserType.ServiceContractor || x.UserType == UserType.Service).OrderBy(x => x.Name).Select(x => new { x.Name, x.Id }).ToListAsync(); + + // return Ok(ApiOkResponse.Response(o)); + // } + }//eoc }//eons \ No newline at end of file diff --git a/server/AyaNova/models/ViewScheduleWorkOrder.cs b/server/AyaNova/models/ViewScheduleWorkOrder.cs index 26dbadfc..fb76c0a3 100644 --- a/server/AyaNova/models/ViewScheduleWorkOrder.cs +++ b/server/AyaNova/models/ViewScheduleWorkOrder.cs @@ -8,7 +8,7 @@ namespace AyaNova.Models public class ViewScheduleWorkOrder { public long WoItemSchedUserId { get; set; } - public long SchedUserId { get; set; } + public long? SchedUserId { get; set; } public DateTime? StartDate { get; set; } public DateTime? StopDate { get; set; } public long Serial { get; set; }