From a3d4259a70ca24dadf1e86d392efc05818d9327e Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Wed, 26 Jul 2023 13:21:07 +0700 Subject: fixing jika beli langsung --- src/lib/checkout/api/checkoutApi.js | 8 +++- src/lib/checkout/components/Checkout.jsx | 6 ++- .../product/components/Product/ProductDesktop.jsx | 49 ++++++++++++---------- 3 files changed, 39 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/lib/checkout/api/checkoutApi.js b/src/lib/checkout/api/checkoutApi.js index 0d0cc918..24f1868a 100644 --- a/src/lib/checkout/api/checkoutApi.js +++ b/src/lib/checkout/api/checkoutApi.js @@ -11,11 +11,15 @@ export const checkoutApi = async ({ data }) => { return dataCheckout } -export const getProductsCheckout = async (voucher) => { +export const getProductsCheckout = async (voucher, query) => { const id = getAuth()?.id let products - if(voucher){ + if(voucher && query){ + products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout?voucher=${voucher}&source=buy`) + }else if (voucher){ products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout?voucher=${voucher}`) + }else if (query) { + products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout?source=buy`) }else{ products = await odooApi('GET',`/api/v1/user/${id}/sale_order/checkout`) } diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx index 11a14e31..17616938 100644 --- a/src/lib/checkout/components/Checkout.jsx +++ b/src/lib/checkout/components/Checkout.jsx @@ -34,12 +34,13 @@ const { getProductsCheckout } = require('../api/checkoutApi') const Checkout = () => { const router = useRouter() + const query = router.query.source ?? null const auth = useAuth() const [activeVoucher, SetActiveVoucher] = useState(null) const { data: cartCheckout } = useQuery('cartCheckout-' + activeVoucher, () => - getProductsCheckout(activeVoucher) + getProductsCheckout(activeVoucher, query) ) const [selectedAddress, setSelectedAddress] = useState({ @@ -298,6 +299,9 @@ const Checkout = () => { voucher: activeVoucher, type: 'sale_order' } + if(query){ + data.source = 'buy' + } if (poNumber.current.value) data.po_number = poNumber.current.value if (typeof file !== 'undefined') data.po_file = await getFileBase64(file) diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx index 2a523503..9be65bfb 100644 --- a/src/lib/product/components/Product/ProductDesktop.jsx +++ b/src/lib/product/components/Product/ProductDesktop.jsx @@ -63,7 +63,6 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { variantQuantityRefs.current[variantId] = element } - const validQuantity = (quantity) => { let isValid = true if (!quantity || quantity < 1 || isNaN(parseInt(quantity))) { @@ -73,38 +72,46 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { return isValid } - const handleAddToCart = (variantId) => { - if (!auth) { - router.push(`/login?next=/shop/product/${slug}`) - return - } - const quantity = variantQuantityRefs.current[variantId].value - - if (!validQuantity(quantity)) return - if(product.variants.length > 1){ + const updateCart = (variantId, quantity) => { + if (product.variants.length > 1) { let variantIndex = product.variants.findIndex((varian) => varian.id == variantId) updateItemCart({ productId: variantId, quantity, programLineId: product.variants[variantIndex].programActive, - selected: true + selected: true, + source: 'buy' }) - }else{ + } else { updateItemCart({ productId: variantId, quantity, programLineId: promotionActiveId, - selected: true + selected: true, + source: 'buy' }) } - + } + + const handleAddToCart = (variantId) => { + if (!auth) { + router.push(`/login?next=/shop/product/${slug}`) + return + } + const quantity = variantQuantityRefs.current[variantId].value + + if (!validQuantity(quantity)) return + + updateCart(variantId, quantity) setAddCartAlert(true) } const handleBuy = (variant) => { const quantity = variantQuantityRefs.current[variant].value if (!validQuantity(quantity)) return - router.push(`/shop/checkout?productId=${variant}&quantity=${quantity}`) + + updateCart(variant, quantity) + router.push(`/shop/checkout?source=buy`) } const variantSectionRef = useRef(null) @@ -351,11 +358,11 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { klik disini @@ -460,8 +467,8 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { url: createSlug('/shop/product/', product.name, product.id, true) })} className='text-danger-500 font-medium' - target="_blank" - rel="noreferrer noopener" + target='_blank' + rel='noreferrer noopener' > Tanya Admin @@ -526,11 +533,11 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => { Call for price -- cgit v1.2.3 From d6761519478ba351099b5d60083f318ad0812305 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Wed, 26 Jul 2023 13:24:09 +0700 Subject: ketinggalan cart --- src/core/utils/cart.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/core/utils/cart.js b/src/core/utils/cart.js index 16befdf7..dcb104f9 100644 --- a/src/core/utils/cart.js +++ b/src/core/utils/cart.js @@ -30,12 +30,13 @@ const setCart = (cart) => { return false } -const addCart = async (product_id, qty, selected, programLineId = null) => { +const addCart = async (product_id, qty, selected, programLineId = null, source) => { const data = { 'product_id' : product_id, 'qty' : qty, 'selected' : selected, - 'program_line_id' : programLineId + 'program_line_id' : programLineId, + 'source' : source } const id = getAuth()?.id @@ -94,12 +95,12 @@ const getItemCart = ({ productId }) => { * @param {boolean} [options.selected=false] - The new selected status of the product in the cart. Default is `false`. * @returns {boolean} - Returns `true`. */ -const updateItemCart = async ({ productId, quantity, selected = false , programLineId}) => { +const updateItemCart = async ({ productId, quantity, selected = false , programLineId, source}) => { let cart = getCart() quantity = parseInt(quantity) cart[productId] = { productId, quantity, selected } setCart(cart) - await addCart(productId, quantity, selected, programLineId) + await addCart(productId, quantity, selected, programLineId, source) return true } -- cgit v1.2.3