using CPRNIMS.Domain.UIContracts.PR; using CPRNIMS.Infrastructure.Helper; using CPRNIMS.Infrastructure.ViewModel.PR; using CPRNIMS.WebApps.Controllers.Base; using Microsoft.AspNetCore.Mvc; namespace CPRNIMS.WebApps.Controllers.PR { public class PRMgmtController : BaseMethod { List? response; private readonly IPRequest _pRequest; public PRMgmtController(TokenHelper tokenHelper, ErrorLogHelper errorMessageService, IWebHostEnvironment webHostEnvironment , IPRequest pRequest, IConfiguration configuration) : base(tokenHelper, errorMessageService, webHostEnvironment) { _pRequest = pRequest; } #region Get public async Task GetApproverName(PRVM viewModels) { response = await _pRequest.GetApproverName(await GetUser(), viewModels); return GetResponse(response); } public async Task GetAllPR(PRVM viewModels) { response = await _pRequest.GetAllPR(await GetUser(), viewModels); return GetResponse(response); } public async Task GetPRDetailByPRNo(PRVM viewModels) { response = await _pRequest.GetPRDetailByPRNo(await GetUser(), viewModels); return GetResponse(response); } public async Task GetPRListByPRNo(PRVM viewModels) { response = await _pRequest.GetPRListByPRNo(await GetUser(), viewModels); return GetResponse(response); } public async Task GetMyPR(PRVM viewModels) { response = await _pRequest.GetMyPR(await GetUser(), viewModels); return GetResponse(response); } public async Task GetForReceiving() { var viewModels = new PRVM(); response = await _pRequest.GetForReceiving(await GetUser(), viewModels); return GetResponse(response); } public async Task GetDeniedItem(PRVM viewModels) { response = await _pRequest.GetForReceiving(await GetUser(), viewModels); return GetResponse(response); } public async Task GetPRByRRId(PRVM viewModel) { response = await _pRequest.GetPRByRRId(await GetUser(), viewModel); return GetResponse(response); } public async Task GetRRDetailByPO(PRVM viewModel) { response = await _pRequest.GetRRDetailByPO(await GetUser(), viewModel); return GetResponse(response); } public async Task GetPRStatusById(PRVM viewModel) { response = await _pRequest.GetPRStatusById(await GetUser(), viewModel); return GetResponse(response); } public async Task GetItemDetailForReceiving(PRVM viewModel) { response = await _pRequest.GetItemDetailForReceiving(await GetUser(), viewModel); return GetResponse(response); } public async Task GetDetailedPRTracking(PRVM viewModel) { response = await _pRequest.GetDetailedPRTracking(await GetUser(), viewModel); return GetResponse(response); } public async Task GetSupplierAlternativeOffer(PRVM viewModel) { response = await _pRequest.GetSupplierAlternativeOffer(await GetUser(), viewModel); return GetResponse(response); } public async Task GetSupplierAlterOfferDetails(PRVM viewModel) { response = await _pRequest.GetSupplierAlterOfferDetails(await GetUser(), viewModel); return GetResponse(response); } public async Task GetDashBoard() { var viewModel = new PRVM(); response = await _pRequest.GetDashBoard(await GetUser(), viewModel); return GetResponse(response); } #endregion #region POST PUT public async Task PostPutDeniedItem(PRVM viewModel, List ItemList) { if (ItemList.Count > 0) { viewModel.ItemList = new ItemReceivingList { PRDetailsId = ItemList.SelectMany(ic => ic.PRDetailsId).ToList(), PRNo = ItemList.SelectMany(ic => ic.PRNo).ToList(), ItemNo = ItemList.SelectMany(ic => ic.ItemNo).ToList(), }; var postPutItem = await _pRequest.PostPutDeniedItem(await GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true, Response = postPutItem.Message }); } return Json(new { success = false, Response = postPutItem.Message }); } return Json(new { success = false, Response = "EmptyArray" }); } public async Task PutItemDetail(PRVM viewModel) { var postPutItem = await _pRequest.PutItemDetail(await GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true, Response = postPutItem.Message }); } return Json(new { success = false, Response = postPutItem.Message }); } public async Task PostPRApproveReject(PRVM viewModel) { var postPutItem = await _pRequest.PostPRApproveReject(await GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true, Response = postPutItem.Message }); } return Json(new { success = false, Response = postPutItem.Message }); } public async Task PutSupplierAlterOffer(PRVM viewModel) { var postPutItem = await _pRequest.PutSupplierAlterOffer(await GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true, Response = postPutItem.Message }); } return Json(new { success = false, Response = postPutItem.Message }); } public async Task PRItemRemoval(PRVM viewModel) { var postPutItem = await _pRequest.PRItemRemoval(await GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true , Response = postPutItem.Message }); } return Json(new { success = false, Response = postPutItem.Message }); } #endregion #region Views public IActionResult GetDashBoardById(int DashboardId) { return ViewComponent("Dashboard", new { dashboardId = DashboardId }); } public async Task DashBoard() { return await IsAuthenTicated(); } public async Task Index() { return await IsAuthenTicated(); } public async Task PRArchived() { return await IsAuthenTicated(); } public async Task DeniedItem() { return await IsAuthenTicated(); } public async Task PRTracking() { return await IsAuthenTicated(); } public async Task AlterOffer() { return await IsAuthenTicated(); } #endregion } }