From 96cdb9a7b7ac9751f85d7967a3cdd1c04da42fbd Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Mon, 17 Jul 2023 14:23:13 +0700 Subject: sla --- .../product/components/Product/ProductDesktop.jsx | 76 ++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'src') diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx index 6a87d022..21757f78 100644 --- a/src/lib/product/components/Product/ProductDesktop.jsx +++ b/src/lib/product/components/Product/ProductDesktop.jsx @@ -15,6 +15,10 @@ import ProductCard from '../ProductCard' import productSimilarApi from '../../api/productSimilarApi' import whatsappUrl from '@/core/utils/whatsappUrl' import { gtagAddToCart } from '@/core/utils/googleTag' +import odooApi from '@/core/api/odooApi' +import { last } from 'lodash-contrib' +import { m } from 'framer-motion' +import { Button, Spinner } from 'flowbite-react' const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { const router = useRouter() @@ -22,6 +26,7 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { const [lowestPrice, setLowestPrice] = useState(null) const [addCartAlert, setAddCartAlert] = useState(false) + const [isLoadingSLA, setIsLoadingSLA] = useState(true) const getLowestPrice = useCallback(() => { const prices = product.variants.map((variant) => variant.price) @@ -99,6 +104,23 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { if (!productSimilarInBrand) loadProductSimilarInBrand() }, [product, productSimilarInBrand]) + useEffect(() => { + const fetchData = async () => { + const promises = product.variants.map(async (variant) => { + const dataSLA = await odooApi('GET', `/api/v1/product_variant/${variant.id}/stock`) + return { + ...variant, + sla: dataSLA + } + }) + const variantData = await Promise.all(promises) + product.variants = variantData + + setIsLoadingSLA(false) + } + fetchData() + }, [product]) + return (
@@ -300,6 +322,8 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { Part Number Varian + Stock + Persiapan Barang Harga Jumlah Action @@ -310,6 +334,58 @@ const ProductDesktop = ({ product, wishlist, toggleWishlist }) => { {variant.code} {variant.attributes.join(', ') || '-'} + + {isLoadingSLA ? ( +
+ +
+ ) : ( + variant?.sla?.qty + )} + + + {isLoadingSLA ? ( + + ) : variant?.sla?.slaDate != '-' ? ( + + ) : ( + '-' + )} + {variant.price.discountPercentage > 0 && variant.price.priceDiscount > 0 && ( -- cgit v1.2.3