diff --git a/fe-admin/src/components/pe/PeWorkflowPanel.tsx b/fe-admin/src/components/pe/PeWorkflowPanel.tsx index a92c9db..c07859b 100644 --- a/fe-admin/src/components/pe/PeWorkflowPanel.tsx +++ b/fe-admin/src/components/pe/PeWorkflowPanel.tsx @@ -52,9 +52,9 @@ export function PeWorkflowPanel({ // [Mig 54 2026-06-18 — anh Kiệt FDC] ③ CCM tích "Duyệt done miễn CEO" + ① người duyệt // cuối chọn 1 giá chốt (Ncc / ProMin / ProMax / Ccm). const [finalizeByCcm, setFinalizeByCcm] = useState(false) - // [S96 2026-07-01 — anh Kiệt FDC] Cấp cấu hình KẾT THÚC (AllowApproverFinalize) NAY là ô-tick - // BỎ được: default checked (giữ hành vi finalize), bỏ tick → trình tiếp CEO thay vì kết thúc. - const [applyLevelFinalize, setApplyLevelFinalize] = useState(true) + // [S97 2026-07-01 — anh Kiệt FDC] Cấp cấu hình KẾT THÚC (AllowApproverFinalize) = ô-tick OPT-IN: + // default UNCHECKED → trình tiếp CEO/cấp sau; TÍCH mới KẾT THÚC tại cấp này. Đảo opt-out S96. + const [applyLevelFinalize, setApplyLevelFinalize] = useState(false) const [approvedPriceSource, setApprovedPriceSource] = useState(null) const qc = useQueryClient() const { user: currentUser } = useAuth() @@ -218,7 +218,7 @@ export function PeWorkflowPanel({ setReturnTargetUserId(null) setSkipToFinalApprover(false) setFinalizeByCcm(false) - setApplyLevelFinalize(true) + setApplyLevelFinalize(false) setApprovedPriceSource(null) setApproveFiles([]) if (!wasReject) onApproved?.() @@ -326,9 +326,9 @@ export function PeWorkflowPanel({ {isStepAfterFinalize(step.order) && ( - không trình tới + Kết thúc tại {evaluation.finalizeLevelName ?? evaluation.finalizeStepName ?? 'cấp trên'} )} @@ -667,8 +667,8 @@ export function PeWorkflowPanel({ Cấp này KẾT THÚC quy trình {applyLevelFinalize - ? 'Được cấu hình sẵn trong Quy trình duyệt — duyệt xong là phiếu "Đã duyệt", KHÔNG trình tiếp CEO. Nhớ chọn 1 giá chốt bên dưới. BỎ tick nếu muốn vẫn trình CEO.' - : 'Đã BỎ tick — phiếu sẽ TRÌNH TIẾP lên CEO/cấp sau thay vì kết thúc tại đây (không cần chọn giá chốt).'} + ? 'Đã tích — duyệt xong là phiếu "Đã duyệt", KẾT THÚC tại cấp này, KHÔNG trình tiếp CEO. Nhớ chọn 1 giá chốt bên dưới.' + : 'Mặc định: duyệt xong phiếu TRÌNH TIẾP lên CEO/cấp sau. TÍCH vào nếu muốn KẾT THÚC ngay tại cấp này (không lên CEO — không cần chọn giá chốt).'} diff --git a/fe-user/src/components/pe/PeWorkflowPanel.tsx b/fe-user/src/components/pe/PeWorkflowPanel.tsx index a92c9db..c07859b 100644 --- a/fe-user/src/components/pe/PeWorkflowPanel.tsx +++ b/fe-user/src/components/pe/PeWorkflowPanel.tsx @@ -52,9 +52,9 @@ export function PeWorkflowPanel({ // [Mig 54 2026-06-18 — anh Kiệt FDC] ③ CCM tích "Duyệt done miễn CEO" + ① người duyệt // cuối chọn 1 giá chốt (Ncc / ProMin / ProMax / Ccm). const [finalizeByCcm, setFinalizeByCcm] = useState(false) - // [S96 2026-07-01 — anh Kiệt FDC] Cấp cấu hình KẾT THÚC (AllowApproverFinalize) NAY là ô-tick - // BỎ được: default checked (giữ hành vi finalize), bỏ tick → trình tiếp CEO thay vì kết thúc. - const [applyLevelFinalize, setApplyLevelFinalize] = useState(true) + // [S97 2026-07-01 — anh Kiệt FDC] Cấp cấu hình KẾT THÚC (AllowApproverFinalize) = ô-tick OPT-IN: + // default UNCHECKED → trình tiếp CEO/cấp sau; TÍCH mới KẾT THÚC tại cấp này. Đảo opt-out S96. + const [applyLevelFinalize, setApplyLevelFinalize] = useState(false) const [approvedPriceSource, setApprovedPriceSource] = useState(null) const qc = useQueryClient() const { user: currentUser } = useAuth() @@ -218,7 +218,7 @@ export function PeWorkflowPanel({ setReturnTargetUserId(null) setSkipToFinalApprover(false) setFinalizeByCcm(false) - setApplyLevelFinalize(true) + setApplyLevelFinalize(false) setApprovedPriceSource(null) setApproveFiles([]) if (!wasReject) onApproved?.() @@ -326,9 +326,9 @@ export function PeWorkflowPanel({ {isStepAfterFinalize(step.order) && ( - không trình tới + Kết thúc tại {evaluation.finalizeLevelName ?? evaluation.finalizeStepName ?? 'cấp trên'} )} @@ -667,8 +667,8 @@ export function PeWorkflowPanel({ Cấp này KẾT THÚC quy trình {applyLevelFinalize - ? 'Được cấu hình sẵn trong Quy trình duyệt — duyệt xong là phiếu "Đã duyệt", KHÔNG trình tiếp CEO. Nhớ chọn 1 giá chốt bên dưới. BỎ tick nếu muốn vẫn trình CEO.' - : 'Đã BỎ tick — phiếu sẽ TRÌNH TIẾP lên CEO/cấp sau thay vì kết thúc tại đây (không cần chọn giá chốt).'} + ? 'Đã tích — duyệt xong là phiếu "Đã duyệt", KẾT THÚC tại cấp này, KHÔNG trình tiếp CEO. Nhớ chọn 1 giá chốt bên dưới.' + : 'Mặc định: duyệt xong phiếu TRÌNH TIẾP lên CEO/cấp sau. TÍCH vào nếu muốn KẾT THÚC ngay tại cấp này (không lên CEO — không cần chọn giá chốt).'}