From 08f3372b467cbd58ce5ddf05d679a103d9f55e1a Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Sat, 24 Jan 2026 13:10:51 +0700 Subject: [PATCH 1/3] chore: access available_qty optionally --- .../transfer-to-laying/TransferToLayingFormModal.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx b/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx index 902ef33c..b2718db4 100644 --- a/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx +++ b/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx @@ -240,7 +240,15 @@ const TransferToLayingFormModal = () => { ? selectedFlockSourceRawData.kandangs.map((kandang) => { const availability = flockSourceKandangsAvailability[kandang.project_flock_kandang_id] - .available_qty; + ?.available_qty ?? 0; + + console.log({ + availability, + flockSourceKandangsAvailability, + kandang, + 'kandang.project_flock_kandang_id': + kandang.project_flock_kandang_id, + }); return { kandang_name: kandang.name, @@ -385,8 +393,8 @@ const TransferToLayingFormModal = () => { } }; - getFilledInitialValues(); getFlockSourceData(); + getFilledInitialValues(); }, [transferToLayingId, transferToLaying]); useEffect(() => { From 2507f733fbd083223dcd4f96cbe8c715cd08065d Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Sat, 24 Jan 2026 13:35:09 +0700 Subject: [PATCH 2/3] chore: fetch flock source kandang available qty in TransferToLayingFormModal --- .../TransferToLayingFormModal.tsx | 30 ++++++++++++++++--- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx b/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx index b2718db4..2aa6ed47 100644 --- a/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx +++ b/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx @@ -224,8 +224,7 @@ const TransferToLayingFormModal = () => { formik.values.flockSource ? String(formik.values.flockSource.value) : undefined, - (id: string) => - TransferToLayingApi.getMappedFlockKandangsAvailability(Number(id)) + (id: string) => TransferToLayingApi.getAvailabelQty(Number(id)) ); const mappedFlockSourceKandangsAvailability: { @@ -236,11 +235,32 @@ const TransferToLayingFormModal = () => { if (!flockSourceKandangsAvailability || !selectedFlockSourceRawData) return []; + const flockSourceKandangsAvailableQty = isResponseSuccess( + flockSourceKandangsAvailability + ) + ? flockSourceKandangsAvailability.data.kandangs + : []; + + const mappedFlockSourceKandangsAvailableQty: Record< + number, + (typeof flockSourceKandangsAvailableQty)[0] + > = {}; + + flockSourceKandangsAvailableQty.forEach((item) => { + if ( + !mappedFlockSourceKandangsAvailableQty[item.project_flock_kandang_id] + ) { + mappedFlockSourceKandangsAvailableQty[item.project_flock_kandang_id] = + item; + } + }); + return selectedFlockSourceRawData ? selectedFlockSourceRawData.kandangs.map((kandang) => { const availability = - flockSourceKandangsAvailability[kandang.project_flock_kandang_id] - ?.available_qty ?? 0; + mappedFlockSourceKandangsAvailableQty[ + kandang.project_flock_kandang_id + ]?.available_qty ?? 0; console.log({ availability, @@ -248,6 +268,8 @@ const TransferToLayingFormModal = () => { kandang, 'kandang.project_flock_kandang_id': kandang.project_flock_kandang_id, + mappedFlockSourceKandangsAvailableQty, + flockSourceKandangsAvailableQty, }); return { From d3d3859021294ab1c10c4a4bb7bf9fbe9c0c4f99 Mon Sep 17 00:00:00 2001 From: ValdiANS Date: Sat, 24 Jan 2026 14:01:39 +0700 Subject: [PATCH 3/3] fix: set different key in useSWR for getting flockSourceKandangsAvailability --- .../TransferToLayingFormModal.tsx | 44 ++++--------------- 1 file changed, 9 insertions(+), 35 deletions(-) diff --git a/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx b/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx index 2aa6ed47..fa159732 100644 --- a/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx +++ b/src/components/pages/production/transfer-to-laying/TransferToLayingFormModal.tsx @@ -222,9 +222,14 @@ const TransferToLayingFormModal = () => { isLoading: isLoadingFlockSourceKandangsAvailability, } = useSWR( formik.values.flockSource - ? String(formik.values.flockSource.value) + ? [ + 'transfer-to-laying', + 'available-qty', + String(formik.values.flockSource.value), + ] : undefined, - (id: string) => TransferToLayingApi.getAvailabelQty(Number(id)) + ([, , id]: string[]) => + TransferToLayingApi.getMappedFlockKandangsAvailability(Number(id)) ); const mappedFlockSourceKandangsAvailability: { @@ -235,42 +240,11 @@ const TransferToLayingFormModal = () => { if (!flockSourceKandangsAvailability || !selectedFlockSourceRawData) return []; - const flockSourceKandangsAvailableQty = isResponseSuccess( - flockSourceKandangsAvailability - ) - ? flockSourceKandangsAvailability.data.kandangs - : []; - - const mappedFlockSourceKandangsAvailableQty: Record< - number, - (typeof flockSourceKandangsAvailableQty)[0] - > = {}; - - flockSourceKandangsAvailableQty.forEach((item) => { - if ( - !mappedFlockSourceKandangsAvailableQty[item.project_flock_kandang_id] - ) { - mappedFlockSourceKandangsAvailableQty[item.project_flock_kandang_id] = - item; - } - }); - return selectedFlockSourceRawData ? selectedFlockSourceRawData.kandangs.map((kandang) => { const availability = - mappedFlockSourceKandangsAvailableQty[ - kandang.project_flock_kandang_id - ]?.available_qty ?? 0; - - console.log({ - availability, - flockSourceKandangsAvailability, - kandang, - 'kandang.project_flock_kandang_id': - kandang.project_flock_kandang_id, - mappedFlockSourceKandangsAvailableQty, - flockSourceKandangsAvailableQty, - }); + flockSourceKandangsAvailability[kandang.project_flock_kandang_id] + .available_qty; return { kandang_name: kandang.name,