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_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

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

View File

@@ -383,32 +383,32 @@ namespace AyaNova.Biz
} }
} }
//////////////////////////////////////////////////////////////////////////////////////////////// // ////////////////////////////////////////////////////////////////////////////////////////////////
//CONTRACT UPDATE // //CONTRACT UPDATE
// // //
internal async Task<WorkOrder> ChangeContract(long workOrderId, long? newContractId) // 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 // //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); // var w = await ct.WorkOrder.FirstOrDefaultAsync(z => z.Id == workOrderId);
if (w == null) // if (w == null)
{ // {
AddError(ApiErrorCode.NOT_FOUND, "id"); // AddError(ApiErrorCode.NOT_FOUND, "id");
return null; // return null;
} // }
if (newContractId != null && !await ct.Contract.AnyAsync(z => z.Id == newContractId)) // if (newContractId != null && !await ct.Contract.AnyAsync(z => z.Id == newContractId))
{ // {
AddError(ApiErrorCode.NOT_FOUND, "generalerror", $"Contract with id {newContractId} not found"); // AddError(ApiErrorCode.NOT_FOUND, "generalerror", $"Contract with id {newContractId} not found");
return null; // return null;
} // }
w.ContractId = newContractId; // w.ContractId = newContractId;
await ct.SaveChangesAsync(); // await ct.SaveChangesAsync();
await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, workOrderId, BizType, AyaEvent.Modified), ct); // await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, workOrderId, BizType, AyaEvent.Modified), ct);
await GetCurrentContractFromContractIdAsync(newContractId); // await GetCurrentContractFromContractIdAsync(newContractId);
var updatedWorkOrder = await ProcessChangeOfContractAsync(workOrderId); // var updatedWorkOrder = await ProcessChangeOfContractAsync(workOrderId);
await WorkOrderPopulateVizFields(updatedWorkOrder, false); // await WorkOrderPopulateVizFields(updatedWorkOrder, false);
return updatedWorkOrder;//return entire workorder // return updatedWorkOrder;//return entire workorder
} // }
//////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////
@@ -739,10 +739,10 @@ namespace AyaNova.Biz
//popup Alert notes //popup Alert notes
//Customer notes first then others below //Customer notes first then others below
var customerAlert = await ct.Customer.AsNoTracking().Where(x => x.Id == o.CustomerId).Select(x => x.PopUpNotes).FirstOrDefaultAsync(); 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)) 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) if (o.ProjectId != null)
@@ -750,11 +750,11 @@ namespace AyaNova.Biz
if (o.ContractId != null) 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(); 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; o.ContractViz = contractVizFields.Name;
if (!string.IsNullOrWhiteSpace(contractVizFields.alert)) 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 else