refactor(FE): Refactor product selection to use ProductWarehouse API

This commit is contained in:
rstubryan
2026-02-26 15:31:43 +07:00
parent a4d5cbb117
commit 36f2368e95
@@ -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<Product>(
projectFlockKandangLookup?.project_flock_kandang_id
? ProductApi.basePath
} = useSelect<ProductWarehouse>(
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);