[CLAUDE] PE Inbox: nhận filter approvalWorkflowId + show dropdown cả 2 view
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 3m3s

User báo:
- Filter "Tất cả quy trình duyệt" hiện chỉ ở Danh sách → muốn ở cả 2
- Filter chọn quy trình → không thấy phiếu V2 trong Duyệt (Inbox)

BE — wire filter vào Inbox:
- GetMyPurchaseEvaluationInboxQuery +ApprovalWorkflowId? param
- Handler thêm filter `q.Where(x => x.e.ApprovalWorkflowId == awId)`
- PurchaseEvaluationsController.Inbox +approvalWorkflowId query param

FE (cả 2 app mirror):
- PurchaseEvaluationsListPage: bỏ điều kiện `!pendingMe` ở Select dropdown
  → hiển thị filter quy trình duyệt CẢ Duyệt + Danh sách
- Inbox API call: pass approvalWorkflowId từ URL param

Verify: BE 0 error · 2 FE builds OK.

Test luồng eoffice:
1. Vào "Duyệt NCC > Duyệt" → 2 dropdown filter hiện đầy đủ
2. Chọn 1 quy trình V2 từ dropdown → list filter chỉ phiếu pin quy trình đó
3. Vào "Duyệt NCC > Danh sách" → 2 dropdown vẫn show, filter cũng work
This commit is contained in:
pqhuy1987
2026-05-08 15:37:03 +07:00
parent ac41d5e0d8
commit d250ae4e71
4 changed files with 37 additions and 28 deletions

View File

@ -28,8 +28,10 @@ public class PurchaseEvaluationsController(IMediator mediator) : ControllerBase
[HttpGet("inbox")]
public async Task<ActionResult<List<PurchaseEvaluationListItemDto>>> Inbox(
[FromQuery] PurchaseEvaluationType? type = null, CancellationToken ct = default)
=> Ok(await mediator.Send(new GetMyPurchaseEvaluationInboxQuery(type), ct));
[FromQuery] PurchaseEvaluationType? type = null,
[FromQuery] Guid? approvalWorkflowId = null,
CancellationToken ct = default)
=> Ok(await mediator.Send(new GetMyPurchaseEvaluationInboxQuery(type, approvalWorkflowId), ct));
[HttpGet("{id:guid}")]
public async Task<ActionResult<PurchaseEvaluationDetailBundleDto>> Get(Guid id, CancellationToken ct)