diff --git a/apps/as/src/entities/elapr/ui/elapr-approval-dialog.tsx b/apps/as/src/entities/elapr/ui/elapr-approval-dialog.tsx index 9be7da1bd..42d8aa2c1 100644 --- a/apps/as/src/entities/elapr/ui/elapr-approval-dialog.tsx +++ b/apps/as/src/entities/elapr/ui/elapr-approval-dialog.tsx @@ -75,10 +75,22 @@ function ElaprApprovalDialog({ elaprCycl, structuralSharing: false, }); + const effectiveCycl = useMemo(() => { + if (elaprCycl != null) return elaprCycl; + if (!elaprDocPrgrsList?.length) return undefined; + const myPending = elaprDocPrgrsList.find( + (row) => + row.aprvrUuid?.toLowerCase() === currentUserUuid?.toLowerCase() && + row.atrzPrgrsSttsComCd === "ATRZ_PRGRS_002", + ); + if (myPending?.elaprCycl != null) return Number(myPending.elaprCycl); + return Math.max(...elaprDocPrgrsList.map((r) => Number(r.elaprCycl || 1))); + }, [elaprCycl, elaprDocPrgrsList, currentUserUuid]); + const cyclDocPrgrsList = useMemo(() => { - if (elaprCycl == null) return elaprDocPrgrsList; - return elaprDocPrgrsList?.filter((row) => Number(row.elaprCycl) === elaprCycl); - }, [elaprCycl, elaprDocPrgrsList]); + if (effectiveCycl == null) return elaprDocPrgrsList; + return elaprDocPrgrsList?.filter((row) => Number(row.elaprCycl) === effectiveCycl); + }, [effectiveCycl, elaprDocPrgrsList]); const elaprDmndId = cyclDocPrgrsList?.[0]?.elaprDmndId; diff --git a/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx b/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx index 2cf9267a4..383f6caca 100644 --- a/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx +++ b/apps/as/src/pages/fnrs-cnsltn/ui/components/floating-action-buttons.tsx @@ -633,11 +633,13 @@ function FloatingActionButtons({ } async function handleRvwStrgClick() { + const targetPrgrsStts = + isSecondApproval || prgrsSttsComCd === "RK" ? "RK" : prgrsSttsComCd === "SL" ? "SL" : "TE"; const payload = buildTechReviewReplyPayload( data, checklistFormState, "KECO", - prgrsSttsComCd === "SL" ? "SL" : prgrsSttsComCd === "RK" ? "RK" : "TE", + targetPrgrsStts, "SV", getReviewOpinionFormData(), opnrNm, @@ -689,12 +691,15 @@ function FloatingActionButtons({ } } + const targetPrgrsStts = + isSecondApproval || prgrsSttsComCd === "RK" ? "RK" : prgrsSttsComCd === "SL" ? "SL" : "TE"; + const payload = { ...buildTechReviewReplyPayload( data, checklistFormState, "KECO", - prgrsSttsComCd, + targetPrgrsStts, "SV", getReviewOpinionFormData(), opnrNm, @@ -1041,7 +1046,13 @@ function FloatingActionButtons({ onOpenChange={(open) => setActiveDialog(open ? "elaprApproval" : null)} elaprDocNo={data.detDto?.fnrsCnsltnDocNo ?? fnrsCnsltnDocNo} currentUserUuid={userInfo?.userUnqId ?? ""} - elaprCycl={prgrsSttsComCd === "RK" ? 2 : undefined} + elaprCycl={ + userPendingPrgrs?.elaprCycl != null + ? Number(userPendingPrgrs.elaprCycl) + : isSecondApproval || prgrsSttsComCd === "RK" + ? 2 + : 1 + } taskSeComCd={normalizedTaskSeComCd || undefined} onSuccess={() => { queryClient.invalidateQueries({