using CPRNIMS.Domain.UIContracts.Inventory; using CPRNIMS.Infrastructure.Helper; using CPRNIMS.Infrastructure.ViewModel.Account; using CPRNIMS.Infrastructure.ViewModel.Finance; using CPRNIMS.Infrastructure.ViewModel.Inventory; using CPRNIMS.WebApps.Controllers.Base; using Microsoft.AspNetCore.Mvc; using Microsoft.IdentityModel.Tokens; using static System.Runtime.InteropServices.JavaScript.JSType; namespace CPRNIMS.WebApps.Controllers.Inventory { public class InventoryMgmtController : BaseMethod { List? response; private readonly IInventory _inventory; public InventoryMgmtController(ErrorLogHelper errorMessageService, IWebHostEnvironment webHostEnvironment, TokenHelper tokenHelper , IInventory inventory) : base(errorMessageService, webHostEnvironment, tokenHelper) { _inventory = inventory; } #region Get public async Task GetLotQtyByItem(InventoryVM viewModels) { try { response = await _inventory.GetLotQtyByItem(GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task GetLotNo(InventoryVM viewModels) { try { response = await _inventory.GetLotNo(GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task GetLotNoById(InventoryVM viewModels) { try { response = await _inventory.GetLotNoById(GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task GetInventoryById(InventoryVM viewModels) { try { response = await _inventory.GetInventoryById(GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task GetInventoryByUserId(InventoryVM viewModels) { try { response = await _inventory.GetInventoryByUserId(GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task GetRequestedItemByUserId(InventoryVM viewModels) { try { response = await _inventory.GetRequestedItemByUserId(GetUser(), viewModels); return GetResponse(response); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } #endregion #region POST PUT public async Task PostPutLotNo(InventoryVM viewModel) { try { var postPutItem = await _inventory.PostPutLotNo(GetUser(), viewModel); if (postPutItem.StatusResponse != "Error") { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.Message }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task PostPutLotBin(InventoryVM viewModel) { try { var postPutItem = await _inventory.PostPutLotBin(GetUser(), viewModel); if (postPutItem.StatusResponse != "Error") { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.Message }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task PostPutReqApproval(InventoryVM viewModel) { try { var postPutItem = await _inventory.PostPutReqApproval(GetUser(), viewModel); if (postPutItem.StatusResponse != "Error") { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.Message }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } public async Task PostPutReqItems(InventoryVM viewModel) { try { var postPutItem = await _inventory.PostPutReqItems(GetUser(), viewModel); if (postPutItem.StatusResponse != "Error") { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.Message }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); throw; } } #endregion #region Views public async Task Inventory() { await IsAuthenTicated(); return View(); } public async Task Lot() { await IsAuthenTicated(); return View(); } public async Task RequestItem() { await IsAuthenTicated(); return View(); } #endregion } }