This commit is contained in:
2
.vscode/launch.json
vendored
2
.vscode/launch.json
vendored
@@ -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\\"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user