diff --git a/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx b/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx index 26072927..8caaf216 100644 --- a/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx +++ b/src/components/pages/production/project-flock/closing/ProjectFlockClosingForm.tsx @@ -21,6 +21,7 @@ import { useMemo, useState } from 'react'; import toast from 'react-hot-toast'; import { useRouter } from 'next/navigation'; import { ProductWarehouse } from '@/types/api/inventory/product-warehouse'; +import { ApprovalApi } from '@/services/api/approval'; const ProjectFlockClosingForm = ({ projectFlock, @@ -31,7 +32,7 @@ const ProjectFlockClosingForm = ({ }) => { const router = useRouter(); const closeModal = useModal(); - const isCanClose = projectFlock.approval?.step_number <= 2; + const [isClosingLoading, setIsClosingLoading] = useState(false); const { data: closingData, isLoading } = useSWR( @@ -39,19 +40,35 @@ const ProjectFlockClosingForm = ({ () => ProjectFlockKandangApi.checkClosing(projectFlockKandang.id) ); + const { data: projectFlockKandangApprovals } = useSWR( + `${ApprovalApi.basePath}?module_name=PROJECT_FLOCK_KANDANGS&module_id=${projectFlockKandang.id}`, + () => + ApprovalApi.getAllFetcher( + `${ApprovalApi.basePath}?module_name=PROJECT_FLOCK_KANDANGS&module_id=${projectFlockKandang.id}` + ) + ); + + const isCanClose = useMemo(() => { + return isResponseSuccess(projectFlockKandangApprovals) + ? projectFlockKandangApprovals?.data?.[0]?.step_number <= 2 + : true; + }, [projectFlockKandangApprovals]); + const confirmationModalCloseClickHandler = async () => { setIsClosingLoading(true); const deleteProjectFlockRes = await ProjectFlockKandangApi.closing( projectFlockKandang?.id as number, { - closed_date: formatDate(new Date(), 'YYYY-MM-DD'), + closed_date: isCanClose ? formatDate(new Date(), 'YYYY-MM-DD') : '', action: isCanClose ? 'close' : 'unclose', } ); if (isResponseSuccess(deleteProjectFlockRes)) { toast.success(deleteProjectFlockRes?.message as string); - router.push(`/production/project-flock`); + router.push( + `/production/project-flock/detail?projectFlockId=${projectFlock.id}` + ); } if (isResponseError(deleteProjectFlockRes)) { toast.error(deleteProjectFlockRes?.message as string);