This commit is contained in:
2021-10-06 22:58:29 +00:00
parent e12d506e90
commit 6b8157e1d9
3 changed files with 24 additions and 20 deletions

2
.vscode/launch.json vendored
View File

@@ -52,7 +52,7 @@
"AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles",
"AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles",
"AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", "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_SEEDLEVEL": "small",
"AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7",
"AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\"

View File

@@ -43,21 +43,6 @@ namespace AyaNova.Api.Controllers
} }
/// <summary>
/// Get active Scheduleable user list
/// </summary>
/// <returns>List of all scheduleable users</returns>
[HttpGet("scheduleable-user-list")]
public async Task<IActionResult> 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 }); Users.Add(new NameIdItem { Name = u.Name, Id = u.Id });
} }
} }
List<long> userIdList = Users.Select(x => x.Id).ToList(); List<long?> userIdList = Users.Select(x => x.Id as long?).ToList();
userIdList.Add(null);
//WORKORDERS //WORKORDERS
{ {
//Note: query for *overlapping* ranges, not *contained* entirely in view range //Note: query for *overlapping* ranges, not *contained* entirely in view range
@@ -123,7 +109,8 @@ namespace AyaNova.Api.Controllers
.Select(x => MakeServiceWOSchedItem(x, p)) .Select(x => MakeServiceWOSchedItem(x, p))
.ToListAsync()); .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 public class ServiceScheduleParams
@@ -286,7 +273,7 @@ namespace AyaNova.Api.Controllers
s.Type = AyaType.WorkOrderItemScheduledUser; s.Type = AyaType.WorkOrderItemScheduledUser;
s.Name = NameFromWOItem(v); 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 = 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; return s;
} }
@@ -446,5 +433,22 @@ namespace AyaNova.Api.Controllers
//------------ //------------
// deprecated as not used but by tag instead
// /// <summary>
// /// Get active Scheduleable user list
// /// </summary>
// /// <returns>List of all scheduleable users</returns>
// [HttpGet("scheduleable-user-list")]
// public async Task<IActionResult> 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 }//eoc
}//eons }//eons

View File

@@ -8,7 +8,7 @@ namespace AyaNova.Models
public class ViewScheduleWorkOrder public class ViewScheduleWorkOrder
{ {
public long WoItemSchedUserId { get; set; } public long WoItemSchedUserId { get; set; }
public long SchedUserId { get; set; } public long? SchedUserId { get; set; }
public DateTime? StartDate { get; set; } public DateTime? StartDate { get; set; }
public DateTime? StopDate { get; set; } public DateTime? StopDate { get; set; }
public long Serial { get; set; } public long Serial { get; set; }