NonInventPurchasingSystem/CPRNIMS.WebApps/Controllers/Inventory/InventoryMgmtController.cs
2026-06-15 16:41:50 +08:00

154 lines
5.6 KiB
C#

using Azure.Core;
using CPRNIMS.Domain.UIContracts.Account;
using CPRNIMS.Domain.UIContracts.Inventory;
using CPRNIMS.Infrastructure.Dto.Inventory.Request;
using CPRNIMS.Infrastructure.Helper;
using CPRNIMS.Infrastructure.ViewModel.Inventory;
using CPRNIMS.WebApps.Controllers.Base;
using Microsoft.AspNetCore.Mvc;
namespace CPRNIMS.WebApps.Controllers.Inventory
{
public class InventoryMgmtController : BaseMethod
{
List<InventoryVM>? response;
private readonly IInventory _inventory;
public InventoryMgmtController(ErrorLogHelper errorMessageService,
IWebHostEnvironment webHostEnvironment, TokenHelper tokenHelper
, IInventory inventory,IAccount account)
: base(errorMessageService, webHostEnvironment, tokenHelper, account)
{
_inventory = inventory;
}
#region Get
public async Task<IActionResult> GetTransactContext(int inventoryId)
{
var response = await _inventory.GetTransactContextAsync(inventoryId);
return GetResponse(response);
}
public async Task<IActionResult> GetLotQtyByItem(InventoryVM viewModels)
{
response = await _inventory.GetLotQtyByItem(GetUser(), viewModels);
return GetResponse(response);
}
public async Task<IActionResult> GetLotNo(InventoryVM viewModels)
{
response = await _inventory.GetLotNo(GetUser(), viewModels);
return GetResponse(response);
}
public async Task<IActionResult> GetLotNoById(InventoryVM viewModels)
{
response = await _inventory.GetLotNoById(GetUser(), viewModels);
return GetResponse(response);
}
public async Task<IActionResult> GetInventoryById(InventoryVM viewModels)
{
response = await _inventory.GetInventoryById(GetUser(), viewModels);
return GetResponse(response);
}
public async Task<IActionResult> GetInventoryByUserId(InventoryVM viewModels)
{
response = await _inventory.GetInventoryByUserId(GetUser(), viewModels);
return GetResponse(response);
}
public async Task<IActionResult> GetRequestedItemByUserId(InventoryVM viewModels)
{
response = await _inventory.GetRequestedItemByUserId(GetUser(), viewModels);
return GetResponse(response);
}
[HttpGet]
public async Task<IActionResult> GetInventory(string searchPRNo = "", string searchItemNo = "",string searchItemName = "",
string searchDept = "",string searchProjectCode="", int pageNumber = 1, int pageSize = 10)
{
var request = new InventoryRequest
{
SearchPRNo = searchPRNo,
SearchItemNo = searchItemNo,
SearchItemName = searchItemName,
SearchDept = searchDept,
SearchProjectCode = searchProjectCode,
PageNumber = pageNumber,
PageSize = pageSize
};
var result = await _inventory.GetInventory(GetUser(), request);
int draw = int.TryParse(Request.Query["draw"], out int d) ? d : 1;
return Json(new
{
draw = draw,
recordsTotal = result.TotalCount,
recordsFiltered = result.TotalCount,
data = result.Data,
departmentList=result.DepartmentList,
});
}
#endregion
#region POST PUT
public async Task<IActionResult> PostPutLotNo(InventoryVM viewModel)
{
var postPutItem = await _inventory.PostPutLotNo(GetUser(), viewModel);
if (postPutItem.StatusResponse != "Error")
{
return Json(new { success = true });
}
return Json(new { success = false, Response = postPutItem.Message });
}
public async Task<IActionResult> PostPutLotBin(InventoryVM viewModel)
{
var postPutItem = await _inventory.PostPutLotBin(GetUser(), viewModel);
if (postPutItem.StatusResponse != "Error")
{
return Json(new { success = true });
}
return Json(new { success = false, Response = postPutItem.Message });
}
public async Task<IActionResult> PostPutReqApproval(InventoryVM viewModel)
{
var postPutItem = await _inventory.PostPutReqApproval(GetUser(), viewModel);
if (postPutItem.StatusResponse != "Error")
{
return Json(new { success = true });
}
return Json(new { success = false, Response = postPutItem.Message });
}
public async Task<IActionResult> PostPutReqItems(InventoryVM viewModel)
{
var postPutItem = await _inventory.PostPutReqItems(GetUser(), viewModel);
if (postPutItem.StatusResponse != "Error")
{
return Json(new { success = true });
}
return Json(new { success = false, Response = postPutItem.Message });
}
#endregion
#region Views
public IActionResult GetInventoryTabPage(int id)
{
return ViewComponent("InventoryTabPage", new { inventoryTabPageId = id });
}
public async Task<IActionResult> Inventory()
{
return await IsAuthenTicated();
}
public async Task<IActionResult> Lot()
{
return await IsAuthenTicated();
}
public async Task<IActionResult> RequestItem()
{
return await IsAuthenTicated();
}
#endregion
}
}