This commit is contained in:
2021-05-17 23:28:03 +00:00
parent 72a6ab0c17
commit 699f4b9afe
3 changed files with 58 additions and 58 deletions

2
.vscode/launch.json vendored
View File

@@ -53,7 +53,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\\"

View File

@@ -172,32 +172,32 @@ namespace AyaNova.Api.Controllers
/// <summary>
/// Change existing work order's Contract
/// applies new Contract and returns complete updated work order
/// </summary>
/// <param name="workOrderId">Work order id</param>
/// <param name="newContractChangeRecord">new contract id</param>
/// <param name="apiVersion">From route path</param>
/// <returns>WorkOrder</returns>
[HttpPost("set-contract/{workOrderId}")]
public async Task<IActionResult> ChangeContract([FromRoute] long workOrderId, [FromBody] ContractChangeRecord newContractChangeRecord, ApiVersion apiVersion)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasCreateRole(HttpContext.Items, biz.BizType))
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
WorkOrder o = await biz.ChangeContract(workOrderId, newContractChangeRecord.NewContractId);
if (o == null)
return BadRequest(new ApiErrorResponse(biz.Errors));
else
return Ok(ApiOkResponse.Response(o));
}
// /// <summary>
// /// Change existing work order's Contract
// /// applies new Contract and returns complete updated work order
// /// </summary>
// /// <param name="workOrderId">Work order id</param>
// /// <param name="newContractChangeRecord">new contract id</param>
// /// <param name="apiVersion">From route path</param>
// /// <returns>WorkOrder</returns>
// [HttpPost("set-contract/{workOrderId}")]
// public async Task<IActionResult> ChangeContract([FromRoute] long workOrderId, [FromBody] ContractChangeRecord newContractChangeRecord, ApiVersion apiVersion)
// {
// if (!serverState.IsOpen)
// return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
// WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
// if (!Authorized.HasCreateRole(HttpContext.Items, biz.BizType))
// return StatusCode(403, new ApiNotAuthorizedResponse());
// if (!ModelState.IsValid)
// return BadRequest(new ApiErrorResponse(ModelState));
// WorkOrder o = await biz.ChangeContract(workOrderId, newContractChangeRecord.NewContractId);
// if (o == null)
// return BadRequest(new ApiErrorResponse(biz.Errors));
// else
// return Ok(ApiOkResponse.Response(o));
// }
public record ContractChangeRecord(long? NewContractId);
// public record ContractChangeRecord(long? NewContractId);
#endregion WorkOrderTopLevel routes

View File

@@ -383,32 +383,32 @@ namespace AyaNova.Biz
}
}
////////////////////////////////////////////////////////////////////////////////////////////////
//CONTRACT UPDATE
//
internal async Task<WorkOrder> ChangeContract(long workOrderId, long? newContractId)
{
//this is called by UI via contract change route for contract change only and expects wo back to update client ui
var w = await ct.WorkOrder.FirstOrDefaultAsync(z => z.Id == workOrderId);
// ////////////////////////////////////////////////////////////////////////////////////////////////
// //CONTRACT UPDATE
// //
// internal async Task<WorkOrder> ChangeContract(long workOrderId, long? newContractId)
// {
// //this is called by UI via contract change route for contract change only and expects wo back to update client ui
// var w = await ct.WorkOrder.FirstOrDefaultAsync(z => z.Id == workOrderId);
if (w == null)
{
AddError(ApiErrorCode.NOT_FOUND, "id");
return null;
}
if (newContractId != null && !await ct.Contract.AnyAsync(z => z.Id == newContractId))
{
AddError(ApiErrorCode.NOT_FOUND, "generalerror", $"Contract with id {newContractId} not found");
return null;
}
w.ContractId = newContractId;
await ct.SaveChangesAsync();
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, workOrderId, BizType, AyaEvent.Modified), ct);
await GetCurrentContractFromContractIdAsync(newContractId);
var updatedWorkOrder = await ProcessChangeOfContractAsync(workOrderId);
await WorkOrderPopulateVizFields(updatedWorkOrder, false);
return updatedWorkOrder;//return entire workorder
}
// if (w == null)
// {
// AddError(ApiErrorCode.NOT_FOUND, "id");
// return null;
// }
// if (newContractId != null && !await ct.Contract.AnyAsync(z => z.Id == newContractId))
// {
// AddError(ApiErrorCode.NOT_FOUND, "generalerror", $"Contract with id {newContractId} not found");
// return null;
// }
// w.ContractId = newContractId;
// await ct.SaveChangesAsync();
// await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, workOrderId, BizType, AyaEvent.Modified), ct);
// await GetCurrentContractFromContractIdAsync(newContractId);
// var updatedWorkOrder = await ProcessChangeOfContractAsync(workOrderId);
// await WorkOrderPopulateVizFields(updatedWorkOrder, false);
// return updatedWorkOrder;//return entire workorder
// }
////////////////////////////////////////////////////////////////////////////////////////////////
@@ -739,10 +739,10 @@ namespace AyaNova.Biz
//popup Alert notes
//Customer notes first then others below
var customerAlert = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.PopUpNotes).FirstOrDefaultAsync();
if (!string.IsNullOrWhiteSpace(customerAlert))
var customerAlert = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => new{ PopUpNotes=x.PopUpNotes,Name= x.Name}).FirstOrDefaultAsync();
if (!string.IsNullOrWhiteSpace(customerAlert.PopUpNotes))
{
o.AlertViz = $"{await Translate("Customer")}:\n{customerAlert}\n\n";
o.AlertViz = $"{await Translate("Customer")} {customerAlert.Name}:\n{customerAlert.PopUpNotes}\n\n";
}
if (o.ProjectId != null)
@@ -750,11 +750,11 @@ namespace AyaNova.Biz
if (o.ContractId != null)
{
var contractVizFields = await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => new { name = x.Name, alert = x.AlertNotes }).FirstOrDefaultAsync();
o.ContractViz = contractVizFields.name;
if (!string.IsNullOrWhiteSpace(contractVizFields.alert))
var contractVizFields = await ct.Contract.AsNoTracking().Where(x => x.Id == o.ContractId).Select(x => new { Name = x.Name, AlertNotes = x.AlertNotes }).FirstOrDefaultAsync();
o.ContractViz = contractVizFields.Name;
if (!string.IsNullOrWhiteSpace(contractVizFields.AlertNotes))
{
o.AlertViz += $"{await Translate("Contract")}:\n{contractVizFields.alert}\n\n";
o.AlertViz += $"{await Translate("Contract")} {contractVizFields.Name}:\n{contractVizFields.AlertNotes}\n\n";
}
}
else