using CPRNIMS.Domain.UIContracts.Account; using CPRNIMS.Domain.UIContracts.Canvass; using CPRNIMS.Infrastructure.Helper; using CPRNIMS.Infrastructure.ViewModel.Canvass; using CPRNIMS.WebApps.Controllers.Base; using Microsoft.AspNetCore.Mvc; using CPRNIMS.Infrastructure.Dto.Common; namespace CPRNIMS.WebApps.Controllers.Canvass { public class CanvassMgmtController : BaseMethod { List? response; private readonly ICanvass _canvass; public CanvassMgmtController(TokenHelper tokenHelper, ErrorLogHelper errorMessageService, IWebHostEnvironment webHostEnvironment , ICanvass canvass,IAccount account ) : base(errorMessageService, webHostEnvironment, tokenHelper, account) { _canvass = canvass; } #region POST PUT public async Task PostCanvass(CanvassVM viewModel, List CanvassList) { if (CanvassList.Count > 0) { viewModel.CanvassList = new CanvassList { PRDetailsId = CanvassList.SelectMany(ic => ic.PRDetailsId).ToList(), ItemNo = CanvassList.SelectMany(ic => ic.ItemNo).ToList(), PRNo = CanvassList.SelectMany(ic => ic.PRNo).ToList(), }; var postPutItem = await _canvass.PostCanvass(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } } else { return Json(new { success = false, response = "Array Empty" }); } return Json(new { success = false }); } public async Task PostPutSupplier(CanvassVM viewModel) { var postPutItem = await _canvass.PostPutSupplier(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, response = postPutItem.errMessage }); } public async Task PostTaggingSupplier(CanvassVM viewModel, List SupplierList) { var postPutItem = new CanvassVM(); try { if (SupplierList.Count > 0) { viewModel.SupplierList = new SupplierList { SupplierId = SupplierList.SelectMany(ic => ic.SupplierId).ToList(), }; postPutItem = await _canvass.PostTaggingSupplier(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } } else { return Json(new { success = false, response = "Array Empty" }); } return Json(new { success = false }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); return Json(new { success = false, response = postPutItem.errMessage }); } } public async Task PostPutItemTagging(CanvassVM viewModel, List ItemList) { var postPutItem = new CanvassVM(); try { if (ItemList.Count > 0) { viewModel.ItemList = new ItemList { ItemNo = ItemList.SelectMany(ic => ic.ItemNo).ToList(), }; postPutItem = await _canvass.PostPutItemTagging(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } } else { return Json(new { success = false, response = "Array Empty" }); } return Json(new { success = false }); } catch (Exception ex) { var message = ex.InnerException?.ToString() ?? ex.Message.ToString(); return Json(new { success = false, response = postPutItem.errMessage }); } } public async Task PostApprovedSupp(CanvassVM viewModel) { var postPutItem = await _canvass.PostApprovedSupp(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.errMessage }); } public async Task PostSuggestedSupp(CanvassVM viewModel) { var postPutItem = await _canvass.PostSuggestedSupp(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.errMessage }); } public async Task PutSuppUnitPrice(CanvassVM viewModel) { var postPutItem = await _canvass.PutSuppUnitPrice(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.errMessage }); } public async Task PutSuppBidDetails(CanvassVM viewModel) { var postPutItem = await _canvass.PutSuppBidDetails(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.errMessage }); } public async Task PostPutMySupplier(CanvassVM viewModel) { var postPutItem = await _canvass.PostPutMySupplier(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.errMessage }); } public async Task UnlockFormLink(CanvassVM viewModel) { var postPutItem = await _canvass.UnlockFormLink(GetUser(), viewModel); if (postPutItem.messCode != 0) { return Json(new { success = true }); } return Json(new { success = false, Response = postPutItem.errMessage }); } #endregion #region Get public async Task GetItemSupplierWOEmail(long PRNo) { var viewModels = new CanvassVM(); viewModels.PRNo = PRNo; response = await _canvass.GetItemSupplierWOEmail(GetUser(), viewModels); return GetResponse(response); } public async Task GetSupplierById(CanvassVM viewModel) { response = await _canvass.GetSupplierById(GetUser(), viewModel); return GetResponse(response); } public async Task GetSupplierItemWOEmail(long ItemNo) { var viewModels = new CanvassVM(); viewModels.ItemNo = ItemNo; response = await _canvass.GetSupplierItemWOEmail(GetUser(), viewModels); return GetResponse(response); } public async Task GetCanvassPerSupplier(string searchPRNo = "", string searchItemNo = "", string searchSupplier = "", string searchItemName = "", int pageNumber = 1, int pageSize = 10) { var dto = new CanvassVM { SearchPRNo = searchPRNo, SearchItemName = searchItemName, SearchItemNo = searchItemNo, SearchSupplier = searchSupplier, PageNumber = pageNumber, PageSize = pageSize }; var result = await _canvass.GetCanvassPerSupplier(GetUser(), dto); 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, supplierList = result.SupplierList }); } public async Task GetItemsForTagging(string searchPRNo = "", string searchItemNo = "", string searchItemName = "",string searchDepartment="", int pageNumber = 1, int pageSize = 10) { var dto = new CanvassVM { SearchPRNo = searchPRNo, SearchItemName = searchItemName, SearchItemNo = searchItemNo, SearchDepartment = searchDepartment, PageNumber = pageNumber, PageSize = pageSize }; var result = await _canvass.GetItemsForTagging(GetUser(), dto); 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 }); } public async Task GetCanvassPerSupplierEmail(CanvassVM viewModel) { response = await _canvass.GetCanvassPerSupplierEmail(GetUser(), viewModel); return GetResponse(response); } public async Task GetCanvassPerSupplierId(CanvassVM viewModel) { response = await _canvass.GetCanvassPerSupplierId(GetUser(), viewModel); return GetResponse(response); } public async Task GetSupplierBid(CanvassVM viewModels) { response = await _canvass.GetSupplierBid(GetUser(), viewModels); return GetResponse(response); } public async Task GetAlternativeOfferByPRDetailId(CanvassVM viewModels) { response = await _canvass.GetAlternativeOfferByPRDetailId(GetUser(), viewModels); return GetResponse(response); } public async Task GetSupplierBidByItem(CanvassVM viewModel) { response = await _canvass.GetSupplierBidByItem(GetUser(), viewModel); return GetResponse(response); } public async Task GetSupplierBidById(CanvassVM viewModel) { response = await _canvass.GetSupplierBidById(GetUser(), viewModel); return GetResponse(response); } public async Task GetCanvassByPRNo(long PRNo) { var viewModels = new CanvassVM(); viewModels.PRNo = PRNo; response = await _canvass.GetCanvassByPRNo(GetUser(), viewModels); return GetResponse(response); } public async Task GetCanvassById() { var viewModels = new CanvassVM(); response = await _canvass.GetCanvassById(GetUser(), viewModels); return GetResponse(response); } public async Task GetPRItemList() { var viewModels = new CanvassVM(); response = await _canvass.GetPRItemList(GetUser(), viewModels); return GetResponse(response); } public async Task GetPRItem(long ItemNo) { var viewModels = new CanvassVM(); viewModels.ItemNo = ItemNo; response = await _canvass.GetPRItem(GetUser(), viewModels); return GetResponse(response); } public async Task GetCanvassWOResponse() { var viewModels = new CanvassVM(); response = await _canvass.GetCanvassWOResponse(GetUser(), viewModels); return GetResponse(response); } public async Task GetWOResponseBySuppId(CanvassVM viewModels) { response = await _canvass.GetWOResponseBySuppId(GetUser(), viewModels); return GetResponse(response); } public async Task GetForCanvassPerItem() { var viewModels = new CanvassVM(); response = await _canvass.GetForCanvassPerItem(GetUser(), viewModels); return GetResponse(response); } public async Task GetPRListByPRNo(CanvassVM viewModel) { response = await _canvass. GetPRListByPRNo(GetUser(), viewModel); return GetResponse(response); } public async Task GetMySuppliers(CanvassVM viewModel) { response = await _canvass. GetMySuppliers(GetUser(), viewModel); return GetResponse(response); } public async Task GetMyPRWOCanvass(CanvassVM viewModel) { response = await _canvass. GetMyPRWOCanvass(GetUser(), viewModel); return GetResponse(response); } public async Task GetCanvassGroupByPRNo(CanvassVM viewModel) { response = await _canvass. GetCanvassGroupByPRNo(GetUser(), viewModel); return GetResponse(response); } #endregion #region Views public IActionResult GetCanvassingTabPage(int id) { return ViewComponent("CanvassingTabPage", new { canvassingTabPageId = id }); } public async Task Suppliers() { return await IsAuthenTicated(); } public async Task WOResponse() { return await IsAuthenTicated(); } public async Task Canvass() { return await IsAuthenTicated(); } public async Task SupplierBid() { return await IsAuthenTicated(); } public async Task CanvassReport() { return await IsAuthenTicated(); } #endregion } }