Ellenőrzések szétválasztása + sorrend

This commit is contained in:
2026-01-28 12:47:43 +01:00
parent 8c0796eb69
commit c11ff65a3e
8 changed files with 84 additions and 32 deletions
@@ -63,14 +63,14 @@ namespace WorkFlowCheck.API.Controllers
return retVal;
}
[HttpGet("GetAllCheckListHeaders")]
public async Task<ApiResponseDTO<List<CheckListHeaderDTO>>> GetAllCheckListHeadersAsync()
[HttpGet("GetAllCheckListHeaders/{mode}")]
public async Task<ApiResponseDTO<List<CheckListHeaderDTO>>> GetAllCheckListHeadersAsync(int mode = 0)
{
var retVal = new ApiResponseDTO<List<CheckListHeaderDTO>>()
{
IsSuccess = true,
};
var checkPointListDTO = await _checkListService.GetAllCheckListHeaderAsync();
var checkPointListDTO = await _checkListService.GetAllCheckListHeaderAsync(mode);
if (checkPointListDTO != null)
{
@@ -81,21 +81,40 @@ namespace WorkFlowCheck.BL.Services
return retVal;
}
public async Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync()
public async Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync(int mode = 0)
{
var retVal = new List<CheckListHeaderDTO>();
try
{
var checkListHeaders = await _dbContext.CheckListHeaders
.Include(i => i.CheckListRows)
.Include(i => i.User)
.Include(i => i.AcceptUser)
.AsNoTracking()
.ToListAsync();
if (checkListHeaders != null)
IQueryable<CheckListHeader> query = _dbContext.CheckListHeaders
.Include(i => i.CheckListRows)
.Include(i => i.User)
.Include(i => i.AcceptUser)
.AsNoTracking();
switch (mode)
{
retVal = _mapper.Map<List<CheckListHeaderDTO>>(checkListHeaders);
case 0:
query = query.Where(w => w.CheckStatus == CheckStatus.InProgress || w.CheckStatus == CheckStatus.Open).OrderByDescending(o => o.CreatedAt);
break;
case 1:
query = query.Where(w => w.CheckStatus == CheckStatus.Sent).OrderByDescending(o => o.CreatedAt);
break;
case 2:
query = query.Where(w => w.CheckStatus == CheckStatus.Closed).OrderByDescending(o => o.CreatedAt);
break;
case 3:
query = query.Where(w => w.CheckStatus == CheckStatus.Signed).OrderByDescending(o => o.CreatedAt);
break;
default:
query = query.OrderByDescending(o => o.CreatedAt);
break;
}
var list = await query.ToListAsync();
retVal = _mapper.Map<List<CheckListHeaderDTO>>(list);
}
catch (Exception ex)
{
@@ -320,7 +339,7 @@ namespace WorkFlowCheck.BL.Services
gen.SimpleReplace("#WorkUser#", $"{checkListHeader.UserDTO?.LastName} {checkListHeader.UserDTO?.FirstName}");
gen.SimpleReplace("#AcceptUser#", $"{checkListHeader.AcceptUserDTO?.LastName} {checkListHeader.AcceptUserDTO?.FirstName}");
gen.SimpleReplace("#Guid#", checkListHeader.GuidNumber.ToString());
if (checkListHeader.CheckListRowDTO != null && checkListHeader.CheckListRowDTO.Count > 0)
{
var elements = new List<List<string>>();
@@ -6,12 +6,12 @@ namespace WorkFlowCheck.BL.Services.Interfaces
public interface ICheckListService
{
Task<CheckListHeaderDTO> GetCheckListHeaderAsync(int Id);
Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync();
Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync(int mode = 0);
Task<CheckListHeaderDTO> UpdateCheckListHeaderAsync(CheckListHeaderDTO checkListHeaderDTO);
Task<bool> AcceptCheckListHeaderAsync(int id, int userid);
Task<bool> BlockCheckListHeaderAsync(int id, int userid);
Task<bool> UnBlockCheckListHeaderAsync(int id, int userid);
Task<bool> CloseCheckListHeader(CheckListHeaderCloseDTO closeCheckListHeaderCloseDTO);
Task<bool> CloseCheckListHeader(CheckListHeaderCloseDTO closeCheckListHeaderCloseDTO);
Task<byte[]> CreateCheckListHeaderPDFAsync(int checkListHeaderId);
Task<CheckListHeaderDTO> StartNewCheckListAsync(CheckListHeaderNewDTO checkListHeaderNewDTO);
@@ -22,13 +22,13 @@ namespace WorkFlowCheck.BL.Services.Interfaces
Task<bool> DeleteCheckListTemplateHeaderAsync(int id);
Task<bool> CloneCheckListTemplateHeaderAsync(int id);
Task<CheckListTemplateRowDTO> GetCheckListTemplateRowAsync(int id);
Task<bool> DeleteCheckListTemplateRowAsync(int id);
Task<bool> DeleteCheckListTemplateRowAsync(int id);
Task<CheckListTemplateRowDTO> UpdateCheckListTemplateRowAsync(CheckListTemplateRowDTO checkListTemplateRowDTO);
Task<CheckListRowDTO> GetCheckListRowAsync(int id);
Task<CheckListRowDTO> UpdateCheckListRowAsync(CheckListRowDTO checkListRowDTO);
}
@@ -5,7 +5,14 @@
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery Antiforgery
@{
ViewData["Title"] = "Ellenőrzések";
ViewData["Title"] = Model.Mode switch
{
0 => "Ellenőrzések (folyamatban)",
1 => "Ellenőrzések (beküldött)",
2 => "Ellenőrzések (lezárt)",
3 => "Ellenőrzések (jóváhagyott)",
_ => "Ellenőrzések (összes)"
};
}
<h1>@ViewData["Title"]</h1>
<meta name="csrf-token" content="@Antiforgery.GetAndStoreTokens(HttpContext).RequestToken" />
@@ -49,10 +56,16 @@
@section Scripts {
<script>
let currentMode = @Model.Mode;
const table = new DataTable('#tbCheckListHeadersPage', {
ordering: true,
order: [],
ajax: {
url: "@Url.Page("./CheckListHeaderPage", "LoadCheckListHeaders")",
type: "GET",
data: function (d) {
d.mode = currentMode;
},
dataSrc : "data"
},
columns: [
@@ -179,7 +192,7 @@
}
});
});
$('#tbCheckListHeadersPage').on('click', '.accept-btn', function ()
{
const row = table.row($(this).closest('tr')).data();
@@ -265,7 +278,7 @@
}
});
});
$('#tbCheckListHeadersPage').on('click', '.unblock-btn', function ()
{
const row = table.row($(this).closest('tr')).data();
@@ -309,6 +322,6 @@
});
});
</script>
}
@@ -13,7 +13,7 @@ namespace WorkFlowCheck.Web.Pages.CheckList.CheckListHeader
{
private readonly ILogger<IndexModel> _logger;
private readonly ICheckListService _checkListService;
public int Mode { get; private set; }
public List<SelectListItem> CheckStatus { get; set; }
public CheckListHeaderPageModel(ILogger<IndexModel> logger, ICheckListService checkListService)
@@ -21,15 +21,16 @@ namespace WorkFlowCheck.Web.Pages.CheckList.CheckListHeader
_logger = logger;
_checkListService = checkListService;
}
public async Task OnGet()
public async Task OnGet(int mode = 0)
{
Mode = mode;
CheckStatus = _checkListService.GetCheckStatus();
}
public async Task<JsonResult> OnGetLoadCheckListHeaders()
public async Task<JsonResult> OnGetLoadCheckListHeaders(int mode = 0)
{
var results = await _checkListService.GetAllCheckListHeaderAsync();
var results = await _checkListService.GetAllCheckListHeaderAsync(mode);
return new JsonResult(new { data = results });
}
@@ -100,8 +101,8 @@ namespace WorkFlowCheck.Web.Pages.CheckList.CheckListHeader
public async Task<IActionResult> OnPostClose([FromBody] CheckListHeaderCloseDTO checkListHeaderCloseDTO)
{
var userid = User.FindFirstValue(ClaimTypes.NameIdentifier);
checkListHeaderCloseDTO.UserId=int.Parse(userid); ;
checkListHeaderCloseDTO.UserId = int.Parse(userid); ;
var response = await _checkListService.CloseCheckListHeader(checkListHeaderCloseDTO);
if (response.IsSuccess)
@@ -49,7 +49,26 @@
Ellenőrzési adatok
</a>
<ul class="dropdown-menu" aria-labelledby="checkListDropdown">
<li><a class="dropdown-item" asp-area="" asp-page="/CheckList/CheckListHeader/CheckListHeaderPage">Ellenőrzések</a></li>
<li>
<a class="dropdown-item" asp-area="" asp-page="/CheckList/CheckListHeader/CheckListHeaderPage"
asp-route-mode="0">Ellenőrzések (folyamatban)</a>
</li>
<li>
<a class="dropdown-item" asp-area="" asp-page="/CheckList/CheckListHeader/CheckListHeaderPage"
asp-route-mode="1">Ellenőrzések (beküldött)</a>
</li>
<li>
<a class="dropdown-item" asp-area="" asp-page="/CheckList/CheckListHeader/CheckListHeaderPage"
asp-route-mode="3">Ellenőrzések (jóváhagyott)</a>
</li>
<li>
<a class="dropdown-item" asp-area="" asp-page="/CheckList/CheckListHeader/CheckListHeaderPage"
asp-route-mode="2">Ellenőrzések (lezárt)</a>
</li>
<li>
<a class="dropdown-item" asp-area="" asp-page="/CheckList/CheckListHeader/CheckListHeaderPage"
asp-route-mode="4">Ellenőrzések (összes)</a>
</li>
<li><hr class="dropdown-divider"></li> <!-- EZ AZ ELVÁLASZTÓ VONAL -->
<li><a class="dropdown-item" asp-area="" asp-page="/CheckListTemplate/CheckListTemplateHeader/CheckListTemplateHeaderPage">Ellenőrzési sablonok</a></li>
</ul>
@@ -67,7 +86,7 @@
<li><a class="dropdown-item" asp-area="" asp-page="/UserAndRole/RoleCheckPointsPage">Szabályok - Ellenőrzési pontok</a></li>
</ul>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item dropdown">
@@ -16,9 +16,9 @@ namespace WorkFlowCheck.Web.Services
{
}
public async Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync()
public async Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync(int mode = 0)
{
var endpoint = $"{_httpClient.BaseAddress}api/CheckList/GetAllCheckListHeaders";
var endpoint = $"{_httpClient.BaseAddress}api/CheckList/GetAllCheckListHeaders/{mode}";
var retVal = new List<CheckListHeaderDTO>();
try
{
@@ -6,7 +6,7 @@ namespace WorkFlowCheck.Web.Services.Interfaces
public interface ICheckListService
{
Task<CheckListHeaderDTO> GetCheckListHeader(int id);
Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync();
Task<List<CheckListHeaderDTO>> GetAllCheckListHeaderAsync(int mode = 0);
Task<ApiResponseDTO<CheckListHeaderDTO>> UpdateCheckListHeader(CheckListHeaderDTO checkListHeaderDTO);
Task<ApiResponseDTO<byte[]>> CreatePDF(int id);
Task<ApiResponseDTO<bool>> AcceptCheckListHeader(int id, int userid);