From 99be1e9c8bbe6e8246d914b6b375cda97c52169c Mon Sep 17 00:00:00 2001 From: rowell_m_soriano Date: Mon, 16 Feb 2026 16:37:20 +0800 Subject: [PATCH] fixing approval and returning approval name --- CPRNIMS.Domain/Contracts/PR/IPRequest.cs | 1 + CPRNIMS.Domain/Services/PR/PRequest.cs | 25 +++++++++++++++++++ CPRNIMS.Domain/UIContracts/PR/IPRequest.cs | 1 + CPRNIMS.Domain/UIServices/PR/PRequest.cs | 5 ++++ .../Entities/Purchasing/Approved.cs | 1 + .../Inventory/InventoryMgmtController.cs | 5 ---- .../Controllers/Items/ItemMgmtController.cs | 3 +-- .../Controllers/PR/PRMgmtController.cs | 8 ++++++ .../Controllers/PR/PRMgmtController.cs | 9 +++++-- CPRNIMS.WebApps/Views/PRMgmt/Index.cshtml | 2 +- .../Shared/PagesView/PR/_PRScripts.cshtml | 2 +- 11 files changed, 51 insertions(+), 11 deletions(-) diff --git a/CPRNIMS.Domain/Contracts/PR/IPRequest.cs b/CPRNIMS.Domain/Contracts/PR/IPRequest.cs index 78d4538..0692f27 100644 --- a/CPRNIMS.Domain/Contracts/PR/IPRequest.cs +++ b/CPRNIMS.Domain/Contracts/PR/IPRequest.cs @@ -29,6 +29,7 @@ namespace CPRNIMS.Domain.Contracts.PR Task> GetSupplierAlterOfferDetails(PRDto PRDto); Task> GetNotificationById(PRDto PRDto); Task> GetApproverName(PRDto PRDto); + Task> GetApproverNameByPRNo(PRDto PRDto); Task> GetProjectCodes(PRDto pRDto); Task PRItemRemoval(PRDto pRDto); Task PostPRApproveReject(PRDto PRDto); diff --git a/CPRNIMS.Domain/Services/PR/PRequest.cs b/CPRNIMS.Domain/Services/PR/PRequest.cs index aa0aee2..5306705 100644 --- a/CPRNIMS.Domain/Services/PR/PRequest.cs +++ b/CPRNIMS.Domain/Services/PR/PRequest.cs @@ -35,6 +35,31 @@ namespace CPRNIMS.Domain.Services.PR return allItems ?? new List(); } + public async Task> GetApproverNameByPRNo(PRDto PRDto) + { + var result = await _dbContext.Approved + .Where(a => a.PRNo == PRDto.PRNo && (a.ApproverId == 1 || a.ApproverId == 2)) + .GroupBy(a => a.PRNo) + .Select(g => new PRDto + { + AttestedBy = g.Where(x => x.ApproverId == 1 && x.ApprovedBy != null) + .Select(x => x.ApprovedBy) + .FirstOrDefault(), + + ApprovedBy = g.Where(x => x.ApproverId == 2 && x.ApprovedBy != null) + .Select(x => x.ApprovedBy) + .FirstOrDefault() + }) + .ToListAsync(); + + if (result.Any() && (result[0].AttestedBy != null || result[0].ApprovedBy != null)) + { + return result; + } + + return new List(); + } + public async Task> GetApproverName(PRDto PRDto) { var result = await _dbContext.Approved diff --git a/CPRNIMS.Domain/UIContracts/PR/IPRequest.cs b/CPRNIMS.Domain/UIContracts/PR/IPRequest.cs index bf62a31..605a0ac 100644 --- a/CPRNIMS.Domain/UIContracts/PR/IPRequest.cs +++ b/CPRNIMS.Domain/UIContracts/PR/IPRequest.cs @@ -12,6 +12,7 @@ namespace CPRNIMS.Domain.UIContracts.PR { #region Get Task?> GetApproverName(User user, PRVM viewModels); + Task?> GetApproverNameByPRNo(User user, PRVM viewModels); Task> GetForReceiving(User user, PRVM viewModel); Task> GetItemDetailForReceiving(User user, PRVM viewModel); Task> GetDashBoard(User user, PRVM viewModel); diff --git a/CPRNIMS.Domain/UIServices/PR/PRequest.cs b/CPRNIMS.Domain/UIServices/PR/PRequest.cs index 72426ee..28e048f 100644 --- a/CPRNIMS.Domain/UIServices/PR/PRequest.cs +++ b/CPRNIMS.Domain/UIServices/PR/PRequest.cs @@ -126,6 +126,11 @@ namespace CPRNIMS.Domain.UIServices.PR return await SendGetApiRequest(user, viewModel, _configuration["LLI:NonInvent:PRMgmt:GetApproverName"]); } + public async Task?> GetApproverNameByPRNo(User user, PRVM viewModel) + { + return await SendGetApiRequest(user, viewModel, + _configuration["LLI:NonInvent:PRMgmt:GetApproverNameByPRNo"]); + } public async Task> GetAllPR(User user, PRVM viewModel) { return await SendGetApiRequest(user, viewModel, diff --git a/CPRNIMS.Infrastructure/Entities/Purchasing/Approved.cs b/CPRNIMS.Infrastructure/Entities/Purchasing/Approved.cs index 739e996..43f9fe8 100644 --- a/CPRNIMS.Infrastructure/Entities/Purchasing/Approved.cs +++ b/CPRNIMS.Infrastructure/Entities/Purchasing/Approved.cs @@ -16,5 +16,6 @@ namespace CPRNIMS.Infrastructure.Entities.Purchasing public long PRDetailsId { get; set; } public string? ApprovedBy { get; set; } public byte ApproverId { get; set; } + public long PRNo { get; set; } } } diff --git a/CPRNIMS.WebApi/Controllers/Inventory/InventoryMgmtController.cs b/CPRNIMS.WebApi/Controllers/Inventory/InventoryMgmtController.cs index 5da8267..3e56055 100644 --- a/CPRNIMS.WebApi/Controllers/Inventory/InventoryMgmtController.cs +++ b/CPRNIMS.WebApi/Controllers/Inventory/InventoryMgmtController.cs @@ -1,13 +1,8 @@ using CPRNIMS.Domain.Contracts.Inventory; using CPRNIMS.Domain.Services; using CPRNIMS.Infrastructure.Dto.Inventory; -using CPRNIMS.Infrastructure.Dto.Items; -using CPRNIMS.Infrastructure.Dto.SMTP; -using CPRNIMS.Infrastructure.Helper; -using CPRNIMS.Infrastructure.ViewModel.Common; using CPRNIMS.WebApi.Controllers.Base; using Microsoft.AspNetCore.Mvc; -using System.Text; namespace CPRNIMS.WebApi.Controllers.Inventory { diff --git a/CPRNIMS.WebApi/Controllers/Items/ItemMgmtController.cs b/CPRNIMS.WebApi/Controllers/Items/ItemMgmtController.cs index f138e84..e41d50f 100644 --- a/CPRNIMS.WebApi/Controllers/Items/ItemMgmtController.cs +++ b/CPRNIMS.WebApi/Controllers/Items/ItemMgmtController.cs @@ -6,7 +6,6 @@ using CPRNIMS.Infrastructure.Models.Common; using CPRNIMS.Infrastructure.ViewModel.Common; using CPRNIMS.Infrastructure.ViewModel.Items; using CPRNIMS.WebApi.Controllers.Base; -using Google.Apis.Http; using Microsoft.AspNetCore.Mvc; using System.Text; @@ -109,7 +108,7 @@ namespace CPRNIMS.WebApi.Controllers.Items PRId = dto.PRId }; await _item.PostPutAttachment(attachment); - await SendNotificationEmail(dto); + // await SendNotificationEmail(dto); } return dto; diff --git a/CPRNIMS.WebApi/Controllers/PR/PRMgmtController.cs b/CPRNIMS.WebApi/Controllers/PR/PRMgmtController.cs index 9442111..be3045b 100644 --- a/CPRNIMS.WebApi/Controllers/PR/PRMgmtController.cs +++ b/CPRNIMS.WebApi/Controllers/PR/PRMgmtController.cs @@ -308,6 +308,14 @@ namespace CPRNIMS.WebApi.Controllers.PR nameof(GetApproverName), false ); } + [HttpPost("GetApproverNameByPRNo")] + public async Task GetApproverNameByPRNo(PRDto PRDto) + { + return await ExecuteWithErrorHandling( + () => _pRequest.GetApproverNameByPRNo(PRDto), + nameof(GetApproverNameByPRNo), false + ); + } [HttpPost("GetPRStatusById")] public async Task GetPRStatusById(PRDto PRDto) { diff --git a/CPRNIMS.WebApps/Controllers/PR/PRMgmtController.cs b/CPRNIMS.WebApps/Controllers/PR/PRMgmtController.cs index b3de8b6..a64bd97 100644 --- a/CPRNIMS.WebApps/Controllers/PR/PRMgmtController.cs +++ b/CPRNIMS.WebApps/Controllers/PR/PRMgmtController.cs @@ -20,7 +20,7 @@ namespace CPRNIMS.WebApps.Controllers.PR { _pRequest = pRequest; } - #region Get + #region Get [HttpGet] public async Task GetPRAttachment(string fileName) { @@ -57,11 +57,16 @@ namespace CPRNIMS.WebApps.Controllers.PR response = await _pRequest.GetProjectCodes(GetUser(), viewModels); return GetResponse(response); } + public async Task GetApproverNameByPRNo(PRVM viewModels) + { + response = await _pRequest.GetApproverNameByPRNo(GetUser(), viewModels); + return GetResponse(response); + } public async Task GetApproverName(PRVM viewModels) { response = await _pRequest.GetApproverName(GetUser(), viewModels); return GetResponse(response); - } + } public async Task GetAllPR(PRVM viewModels) { response = await _pRequest.GetAllPR(GetUser(), viewModels); diff --git a/CPRNIMS.WebApps/Views/PRMgmt/Index.cshtml b/CPRNIMS.WebApps/Views/PRMgmt/Index.cshtml index 72fd6b2..a285c21 100644 --- a/CPRNIMS.WebApps/Views/PRMgmt/Index.cshtml +++ b/CPRNIMS.WebApps/Views/PRMgmt/Index.cshtml @@ -77,6 +77,6 @@ @await Html.PartialAsync("PagesView/PR/_PRTracking") - + @await Html.PartialAsync("PagesView/PR/_PRScripts") \ No newline at end of file diff --git a/CPRNIMS.WebApps/Views/Shared/PagesView/PR/_PRScripts.cshtml b/CPRNIMS.WebApps/Views/Shared/PagesView/PR/_PRScripts.cshtml index 04e2a2b..6c419a6 100644 --- a/CPRNIMS.WebApps/Views/Shared/PagesView/PR/_PRScripts.cshtml +++ b/CPRNIMS.WebApps/Views/Shared/PagesView/PR/_PRScripts.cshtml @@ -4,7 +4,7 @@ - +