From 917446dbebca2707c71466923530d8482ef3d8d8 Mon Sep 17 00:00:00 2001 From: pqhuy1987 Date: Fri, 8 May 2026 17:22:13 +0700 Subject: [PATCH] =?UTF-8?q?[CLAUDE]=20PE-L=E1=BB=8Bch=20s=E1=BB=AD:=20ch?= =?UTF-8?q?=E1=BB=89=20hi=E1=BB=87n=20events=20Tr=E1=BA=A3=20l=E1=BA=A1i?= =?UTF-8?q?=20+=20G=E1=BB=ADi=20duy=E1=BB=87t=20l=E1=BA=A1i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User UAT 2026-05-08: bỏ "trạng thái duyệt" (Cấp 1 → 2 → DaDuyet) + bỏ thay đổi trước Trả lại lần đầu. Chỉ giữ: - Workflow transition về TraLai (Reject) - Workflow transition từ TraLai → ChoDuyet (Drafter gửi lại) - Mọi sửa nội dung khi phaseAtChange = TraLai (giai đoạn chờ gửi lại) Filter ở FE (PeDetailTabs HistoryTab). BE giữ audit data đầy đủ — chỉ thay logic display, reversible. Mirror fe-admin + fe-user. Co-Authored-By: Claude Opus 4.7 (1M context) --- fe-admin/src/components/pe/PeDetailTabs.tsx | 21 +++++++++++++++++++-- fe-user/src/components/pe/PeDetailTabs.tsx | 21 +++++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/fe-admin/src/components/pe/PeDetailTabs.tsx b/fe-admin/src/components/pe/PeDetailTabs.tsx index 568eb51..84a11f4 100644 --- a/fe-admin/src/components/pe/PeDetailTabs.tsx +++ b/fe-admin/src/components/pe/PeDetailTabs.tsx @@ -1520,10 +1520,27 @@ function HistoryTab({ ev }: { ev: PeDetailBundle }) { queryFn: async () => (await api.get(`/purchase-evaluations/${ev.id}/changelogs`)).data, }) if (logs.isLoading) return

Đang tải…

- if (!logs.data || logs.data.length === 0) return

Chưa có lịch sử.

+ // User UAT 2026-05-08: chỉ track events liên quan Trả lại + Gửi duyệt lại. + // Bỏ trạng thái duyệt (Cấp 1 → Cấp 2 → DaDuyet) + bỏ thay đổi trước Trả lại. + // Filter giữ: + // - Workflow transition về TraLai (phaseAtChange = TraLai = 98) + // - Workflow transition từ TraLai → khác (Drafter gửi lại — summary chứa "TraLai →") + // - Mọi thay đổi nội dung khi phaseAtChange = TraLai (sửa trong giai đoạn chờ gửi lại) + // BE giữ data đầy đủ (audit trail) — chỉ filter ở UI, reversible. + const PE_PHASE_TRALAI = 98 + const PE_ENTITY_WORKFLOW = 5 + const filtered = (logs.data ?? []).filter(l => { + if (l.entityType === PE_ENTITY_WORKFLOW) { + if (l.phaseAtChange === PE_PHASE_TRALAI) return true + if (l.summary?.includes('TraLai →')) return true + return false + } + return l.phaseAtChange === PE_PHASE_TRALAI + }) + if (filtered.length === 0) return

Chưa có lịch sử trả lại / gửi duyệt lại.

return (
    - {logs.data.map(l => ( + {filtered.map(l => (
  1. {l.userName ?? 'Hệ thống'} diff --git a/fe-user/src/components/pe/PeDetailTabs.tsx b/fe-user/src/components/pe/PeDetailTabs.tsx index 568eb51..84a11f4 100644 --- a/fe-user/src/components/pe/PeDetailTabs.tsx +++ b/fe-user/src/components/pe/PeDetailTabs.tsx @@ -1520,10 +1520,27 @@ function HistoryTab({ ev }: { ev: PeDetailBundle }) { queryFn: async () => (await api.get(`/purchase-evaluations/${ev.id}/changelogs`)).data, }) if (logs.isLoading) return

    Đang tải…

    - if (!logs.data || logs.data.length === 0) return

    Chưa có lịch sử.

    + // User UAT 2026-05-08: chỉ track events liên quan Trả lại + Gửi duyệt lại. + // Bỏ trạng thái duyệt (Cấp 1 → Cấp 2 → DaDuyet) + bỏ thay đổi trước Trả lại. + // Filter giữ: + // - Workflow transition về TraLai (phaseAtChange = TraLai = 98) + // - Workflow transition từ TraLai → khác (Drafter gửi lại — summary chứa "TraLai →") + // - Mọi thay đổi nội dung khi phaseAtChange = TraLai (sửa trong giai đoạn chờ gửi lại) + // BE giữ data đầy đủ (audit trail) — chỉ filter ở UI, reversible. + const PE_PHASE_TRALAI = 98 + const PE_ENTITY_WORKFLOW = 5 + const filtered = (logs.data ?? []).filter(l => { + if (l.entityType === PE_ENTITY_WORKFLOW) { + if (l.phaseAtChange === PE_PHASE_TRALAI) return true + if (l.summary?.includes('TraLai →')) return true + return false + } + return l.phaseAtChange === PE_PHASE_TRALAI + }) + if (filtered.length === 0) return

    Chưa có lịch sử trả lại / gửi duyệt lại.

    return (
      - {logs.data.map(l => ( + {filtered.map(l => (
    1. {l.userName ?? 'Hệ thống'}