NonInventPurchasingSystem/CPRNIMS.WebApps/Controllers/Inventory/InventoryMgmtController.cs
2026-01-20 07:44:30 +08:00

223 lines
7.7 KiB
C#

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<InventoryVM>? response;
private readonly IInventory _inventory;
public InventoryMgmtController(TokenHelper tokenHelper, ErrorLogHelper errorMessageService,
IWebHostEnvironment webHostEnvironment
, IInventory inventory)
: base(tokenHelper, errorMessageService, webHostEnvironment)
{
_inventory = inventory;
}
#region Get
public async Task<IActionResult> GetLotQtyByItem(InventoryVM viewModels)
{
try
{
response = await _inventory.GetLotQtyByItem(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<IActionResult> GetLotNo(InventoryVM viewModels)
{
try
{
response = await _inventory.GetLotNo(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<IActionResult> GetLotNoById(InventoryVM viewModels)
{
try
{
response = await _inventory.GetLotNoById(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<IActionResult> GetInventoryById(InventoryVM viewModels)
{
try
{
response = await _inventory.GetInventoryById(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<IActionResult> GetInventoryByUserId(InventoryVM viewModels)
{
try
{
response = await _inventory.GetInventoryByUserId(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<IActionResult> GetRequestedItemByUserId(InventoryVM viewModels)
{
try
{
response = await _inventory.GetRequestedItemByUserId(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<IActionResult> PostPutLotNo(InventoryVM viewModel)
{
try
{
var postPutItem = await _inventory.PostPutLotNo(await 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();
await PostErrorMessage(message, "WebApps");
throw;
}
}
public async Task<IActionResult> PostPutLotBin(InventoryVM viewModel)
{
try
{
var postPutItem = await _inventory.PostPutLotBin(await 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();
await PostErrorMessage(message, "WebApps");
throw;
}
}
public async Task<IActionResult> PostPutReqApproval(InventoryVM viewModel)
{
try
{
var postPutItem = await _inventory.PostPutReqApproval(await 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();
await PostErrorMessage(message, "WebApps");
throw;
}
}
public async Task<IActionResult> PostPutReqItems(InventoryVM viewModel)
{
try
{
var postPutItem = await _inventory.PostPutReqItems(await 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();
await PostErrorMessage(message, "WebApps");
throw;
}
}
#endregion
#region Views
public async Task<IActionResult> Inventory()
{
if (GetUser() == null)
{
RedirectToAction("Logout", "Home");
}
await GetStoreCredAsync(await GetUser(), await _tokenHelper.GetJwtTokenAsync(await GetUser()));
return View();
}
public async Task<IActionResult> Lot()
{
if (GetUser() == null)
{
RedirectToAction("Logout", "Home");
}
await GetStoreCredAsync(await GetUser(), await _tokenHelper.GetJwtTokenAsync(await GetUser()));
return View();
}
public async Task<IActionResult> RequestItem()
{
if (GetUser() == null)
{
RedirectToAction("Logout", "Home");
}
await GetStoreCredAsync(await GetUser(), await _tokenHelper.GetJwtTokenAsync(await GetUser()));
return View();
}
#endregion
}
}