using CPRNIMS.Domain.UIContracts.Finance; using CPRNIMS.Infrastructure.Helper; using CPRNIMS.Infrastructure.ViewModel.Finance; using CPRNIMS.Infrastructure.ViewModel.PR; using CPRNIMS.WebApps.Controllers.Base; using Microsoft.AspNetCore.Mvc; namespace CPRNIMS.WebApps.Controllers.Finance { public class RRMgmtController : BaseMethod { List? response; private readonly IRR _rr; public RRMgmtController(TokenHelper tokenHelper, ErrorLogHelper errorMessageService, IWebHostEnvironment webHostEnvironment , IRR pRequest) : base(tokenHelper, errorMessageService, webHostEnvironment) { _rr = pRequest; } #region Get public async Task GetAllClosedPO() { try { var viewModels = new RRVM(); response = await _rr.GetAllClosedPO(await GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); await PostErrorMessage(message, "WebApps"); throw; } } public async Task GetRRDetailByPO(RRVM viewModels) { try { response = await _rr.GetRRDetailByPO(await GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); await PostErrorMessage(message, "WebApps"); throw; } } #endregion #region POST PUT public async Task PostPutPayment(RRVM viewModel, List ItemList) { try { if (ItemList.Count > 0) { viewModel.ItemList = new ItemReceivingList { PRDetailsId = ItemList.SelectMany(ic => ic.PRDetailsId).ToList() }; var postPutItem = await _rr.PostPutPayment(await GetUser(), viewModel); if (postPutItem.StatusResponse != "Error") { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.Message }); } return Json(new { success = false, Response = "EmptyArray" }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); await PostErrorMessage(message, "WebApps"); throw; } } #endregion #region Views public async Task Index() { if (GetUser() == null) { RedirectToAction("Logout", "Home"); } await GetStoreCredAsync(await GetUser(), await _tokenHelper.GetJwtTokenAsync(await GetUser())); return View(); } #endregion } }