summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-02-19 15:28:16 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-02-19 15:28:16 +0700
commitbfa3cf8546e1a45941e8388b251b91975f95bfd3 (patch)
tree26041ed83b752d3ca9ee334191b360b92de20ee2
parent77184327fd3490dd822d60b97f37052f3feec186 (diff)
<iman> update code dari qty_available ke free_bandengan
-rw-r--r--src-migrate/modules/cart/components/Item.tsx20
-rw-r--r--src/lib/variant/components/VariantCard.jsx19
2 files changed, 31 insertions, 8 deletions
diff --git a/src-migrate/modules/cart/components/Item.tsx b/src-migrate/modules/cart/components/Item.tsx
index ab2e7ce1..86d1dc43 100644
--- a/src-migrate/modules/cart/components/Item.tsx
+++ b/src-migrate/modules/cart/components/Item.tsx
@@ -1,5 +1,6 @@
import style from '../styles/item.module.css'
-
+import odooApi from '~/libs/odooApi';
+import { useEffect, useState } from 'react';
import { Skeleton, SkeletonProps, Tooltip } from '@chakra-ui/react'
import { InfoIcon } from 'lucide-react'
import Image from 'next/image'
@@ -22,6 +23,17 @@ type Props = {
}
const CartItem = ({ item, editable = true, selfPicking}: Props) => {
+ const [qtyPickUp, setQtyPickUp] = useState(0);
+ useEffect(() => {
+ const fetchData = async () => {
+ const qty_available = await odooApi(
+ 'GET',
+ `/api/v1/product_variant/${item.id}/qty_available`
+ );
+ setQtyPickUp(qty_available?.qty);
+ };
+ fetchData();
+ }, [item]);
return (
<div className={style.wrapper}>
{item.cart_type === 'promotion' && (
@@ -54,11 +66,11 @@ const CartItem = ({ item, editable = true, selfPicking}: Props) => {
<CartItem.Image item={item} />
<div className={style.details}>
- {item?.available_quantity > 0 && (
+ {qtyPickUp > 0 && (
<div className='text-[10px] text-red-500 italic'>
- {item.quantity <= item?.available_quantity
+ {item.quantity <= qtyPickUp
? '*Barang ini bisa di pickup maksimal pukul 16.00'
- : `*${item?.available_quantity} Barang ini bisa di pickup maksimal pukul 16.00`}
+ : `*${qtyPickUp} Barang ini bisa di pickup maksimal pukul 16.00`}
</div>
)}
<CartItem.Name item={item} />
diff --git a/src/lib/variant/components/VariantCard.jsx b/src/lib/variant/components/VariantCard.jsx
index 08b7a97e..d8cd5c93 100644
--- a/src/lib/variant/components/VariantCard.jsx
+++ b/src/lib/variant/components/VariantCard.jsx
@@ -7,12 +7,12 @@ import { createSlug } from '@/core/utils/slug'
import currencyFormat from '@/core/utils/currencyFormat'
import { updateItemCart } from '@/core/utils/cart'
import whatsappUrl from '@/core/utils/whatsappUrl'
-import {useState } from 'react';
+import { useEffect, useState } from 'react';
import rejectProductApi from '../../../lib/transaction/api/rejectProductApi'
// import {useTransaction} from 'C:\Users\Indoteknik\next-indoteknik\src\lib\transaction\hooks\useTransaction.js'
import useTransaction from '../../../lib/transaction/hooks/useTransaction';
import ImageNext from 'next/image';
-
+import odooApi from '~/libs/odooApi';
const VariantCard = ({ product, openOnClick = true, buyMore = false }) => {
const router = useRouter()
const id = router.query.id
@@ -21,7 +21,7 @@ const VariantCard = ({ product, openOnClick = true, buyMore = false }) => {
const [isModalOpen, setIsModalOpen] = useState(false);
const [selectedProduct, setSelectedProduct] = useState(null);
const [reason, setReason] = useState('');
-
+ const [qtyPickUp, setQtyPickUp] = useState(0);
const addItemToCart = () => {
@@ -67,6 +67,17 @@ const VariantCard = ({ product, openOnClick = true, buyMore = false }) => {
toast.error('Gagal reject produk. Silakan coba lagi.');
}
};
+
+ useEffect(() => {
+ const fetchData = async () => {
+ const qty_available = await odooApi(
+ 'GET',
+ `/api/v1/product_variant/${product.id}/qty_available`
+ );
+ setQtyPickUp(qty_available?.qty);
+ };
+ fetchData();
+ }, [product]);
const Card = () => (
<div className='flex gap-x-3'>
@@ -118,7 +129,7 @@ const VariantCard = ({ product, openOnClick = true, buyMore = false }) => {
Berat Item : {product?.weight} Kg x {product?.quantity} Barang
</p>
<p className='text-[10px] text-red-500 italic mt-2'>
- {product.availableQuantity} barang ini bisa di pickup maksimal pukul
+ {qtyPickUp} barang ini bisa di pickup maksimal pukul
16.00
</p>
<div className='flex flex-wrap gap-x-1 items-center mt-auto'>