From 36f2368e95c1894c93aba11fe0205a7d06132899 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Thu, 26 Feb 2026 15:31:43 +0700 Subject: [PATCH] refactor(FE): Refactor product selection to use ProductWarehouse API --- .../form/InventoryAdjustmentForm.tsx | 44 +++++++++++++------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx index b94461c7..6beeb793 100644 --- a/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx +++ b/src/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.tsx @@ -1,7 +1,10 @@ 'use client'; import { isResponseError } from '@/lib/api-helper'; -import { InventoryAdjustmentApi } from '@/services/api/inventory'; +import { + InventoryAdjustmentApi, + ProductWarehouseApi, +} from '@/services/api/inventory'; import { CreateInventoryAdjustmentPayload, InventoryAdjustment, @@ -14,11 +17,7 @@ import { InventoryAdjustmentFormSchema, InventoryAdjustmentFormValues, } from '@/components/pages/inventory/adjustment/form/InventoryAdjustmentForm.schema'; -import { - KandangApi, - LocationApi, - ProductApi, -} from '@/services/api/master-data'; +import { KandangApi, LocationApi } from '@/services/api/master-data'; import { ProjectFlockApi, ProjectFlockKandangApi, @@ -36,7 +35,7 @@ import { Location } from '@/types/api/master-data/location'; import { ProjectFlock } from '@/types/api/production/project-flock'; import { ProjectFlockKandang } from '@/types/api/production/project-flock-kandang'; import { Kandang } from '@/types/api/master-data/kandang'; -import { Product } from '@/types/api/master-data/product'; +import { ProductWarehouse } from '@/types/api/inventory/product-warehouse'; import { ProjectFlockKandangLookup } from '@/types/api/production/project-flock'; import { BaseApiResponse } from '@/types/api/api-general'; import useSWR from 'swr'; @@ -184,18 +183,19 @@ const InventoryAdjustmentForm = ({ const { setInputValue: setProductInputValue, options: productOptions, + rawData: productWarehouseRawData, isLoadingOptions: isLoadingProductOptions, loadMore: loadMoreProducts, - } = useSelect( - projectFlockKandangLookup?.project_flock_kandang_id - ? ProductApi.basePath + } = useSelect( + selectedKandang && selectedProjectFlockLocationId + ? ProductWarehouseApi.basePath : '', 'id', - 'name', + 'product.name', 'search', { - project_flock_kandang_id: - projectFlockKandangLookup?.project_flock_kandang_id?.toString() || '', + kandang_id: selectedKandang?.value?.toString() || '', + location_id: selectedProjectFlockLocationId, } ); @@ -345,7 +345,23 @@ const InventoryAdjustmentForm = ({ const productChangeHandler = (val: OptionType | OptionType[] | null) => { const product = val as OptionType | null; - const productId = product?.value ?? 0; + const productWarehouseId = product?.value ?? 0; + + let productId = 0; + if ( + productWarehouseId && + productWarehouseRawData && + 'data' in productWarehouseRawData + ) { + const productWarehouses = + productWarehouseRawData.data as ProductWarehouse[]; + const selectedProductWarehouse = productWarehouses.find( + (pw) => pw.id === productWarehouseId + ); + if (selectedProductWarehouse) { + productId = selectedProductWarehouse.product_id; + } + } formik.setFieldTouched('product', true); formik.setFieldValue('product', product);