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