From 0433d92034937c76135ceb83ef88402464006866 Mon Sep 17 00:00:00 2001
From: trisusilo48
Date: Mon, 22 Jul 2024 15:08:07 +0700
Subject: get new voucher
---
src/lib/checkout/api/getVoucher.js | 10 ++++++++++
src/lib/checkout/components/Checkout.jsx | 24 +++++++++++++++++-------
2 files changed, 27 insertions(+), 7 deletions(-)
(limited to 'src/lib')
diff --git a/src/lib/checkout/api/getVoucher.js b/src/lib/checkout/api/getVoucher.js
index 07cf376e..15c6abbb 100644
--- a/src/lib/checkout/api/getVoucher.js
+++ b/src/lib/checkout/api/getVoucher.js
@@ -1,4 +1,5 @@
import odooApi from '@/core/api/odooApi'
+import { getAuth } from '@/core/utils/auth'
export const getVoucher = async (id, source) => {
let dataVoucher = null
@@ -19,3 +20,12 @@ export const findVoucher = async (code, id, source) => {
}
return dataVoucher
}
+
+
+export const getVoucherNew = async (source) => {
+ const id = getAuth()?.id;
+ const dataVoucher = await odooApi('GET', `/api/v1/user/${id}/voucher?${source}`)
+
+ return dataVoucher
+
+}
\ No newline at end of file
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index 92e14db6..61410bdf 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -30,7 +30,7 @@ import whatsappUrl from '@/core/utils/whatsappUrl';
import addressesApi from '@/lib/address/api/addressesApi';
import CartItem from '~/modules/cart/components/Item.tsx';
import ExpedisiList from '../api/ExpedisiList';
-import { findVoucher, getVoucher } from '../api/getVoucher';
+import { findVoucher, getVoucher, getVoucherNew } from '../api/getVoucher';
const SELF_PICKUP_ID = 32;
@@ -40,6 +40,7 @@ const { getProductsCheckout } = require('../api/checkoutApi');
const Checkout = () => {
const router = useRouter();
const query = router.query.source ?? null;
+ const qVoucher = router.query.voucher ?? null;
const auth = useAuth();
const [activeVoucher, SetActiveVoucher] = useState(null);
@@ -119,7 +120,8 @@ const Checkout = () => {
const voucher = async () => {
if (!listVouchers) {
try {
- let dataVoucher = await getVoucher(auth?.id, query);
+ let source = 'source=' + query;
+ let dataVoucher = await getVoucherNew(source);
SetListVoucher(dataVoucher);
} finally {
setLoadingVoucher(false);
@@ -127,14 +129,16 @@ const Checkout = () => {
}
};
const VoucherCode = async (code) => {
- let dataVoucher = await findVoucher(code, auth.id, query);
+ const source = 'code=' + code+'&source='+query;
+ // let dataVoucher = await findVoucher(code, auth.id, query);
+ let dataVoucher = await getVoucherNew(source);
if (dataVoucher.length <= 0) {
SetFindVoucher(1);
return;
}
let addNewLine = dataVoucher[0];
- let checkList = listVouchers.findIndex(
+ let checkList = listVouchers?.findIndex(
(voucher) => voucher.code == addNewLine.code
);
if (checkList >= 0) {
@@ -166,6 +170,8 @@ const Checkout = () => {
}, [bottomPopup]);
useEffect(() => {
+
+ // voucher()
const loadExpedisi = async () => {
let dataExpedisi = await ExpedisiList();
dataExpedisi = dataExpedisi.map((expedisi) => ({
@@ -176,6 +182,10 @@ const Checkout = () => {
setExpedisi(dataExpedisi);
};
loadExpedisi();
+ if(qVoucher === 'PASTIHEMAT'){
+ let code = qVoucher;
+ handleUseVoucher(code, !isChecked);
+ }
const handlePopState = () => {
router.push('/shop/cart');
@@ -186,7 +196,7 @@ const Checkout = () => {
return () => {
window.onpopstate = null;
};
- // voucher()
+
}, []);
const hitungDiscountVoucher = (code) => {
@@ -407,13 +417,13 @@ const Checkout = () => {
} else {
SetActiveVoucher(code);
SetFindVoucher(null);
- document.getElementById('uniqCode').value = '';
+ document.getElementById('uniqCode') ? document.getElementById('uniqCode').value = '' : '';
SetButtonTerapkan(false);
}
} else {
SetActiveVoucher(code);
SetFindVoucher(null);
- document.getElementById('uniqCode').value = '';
+ document.getElementById('uniqCode') ? document.getElementById('uniqCode').value = '' : '';
SetButtonTerapkan(false);
}
};
--
cgit v1.2.3
From 95081416190d09bbbe4f3d745e69ff81258bde7a Mon Sep 17 00:00:00 2001
From: trisusilo48
Date: Mon, 22 Jul 2024 15:38:48 +0700
Subject: add params voucher
---
src/lib/checkout/components/Checkout.jsx | 40 +++++++++++++++++++-------------
1 file changed, 24 insertions(+), 16 deletions(-)
(limited to 'src/lib')
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index 61410bdf..9bc0257e 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -129,7 +129,7 @@ const Checkout = () => {
}
};
const VoucherCode = async (code) => {
- const source = 'code=' + code+'&source='+query;
+ const source = 'code=' + code + '&source=' + query;
// let dataVoucher = await findVoucher(code, auth.id, query);
let dataVoucher = await getVoucherNew(source);
if (dataVoucher.length <= 0) {
@@ -170,8 +170,7 @@ const Checkout = () => {
}, [bottomPopup]);
useEffect(() => {
-
- // voucher()
+ voucher();
const loadExpedisi = async () => {
let dataExpedisi = await ExpedisiList();
dataExpedisi = dataExpedisi.map((expedisi) => ({
@@ -182,10 +181,6 @@ const Checkout = () => {
setExpedisi(dataExpedisi);
};
loadExpedisi();
- if(qVoucher === 'PASTIHEMAT'){
- let code = qVoucher;
- handleUseVoucher(code, !isChecked);
- }
const handlePopState = () => {
router.push('/shop/cart');
@@ -196,7 +191,6 @@ const Checkout = () => {
return () => {
window.onpopstate = null;
};
-
}, []);
const hitungDiscountVoucher = (code) => {
@@ -231,14 +225,22 @@ const Checkout = () => {
SetDiscountVoucher(countDiscount);
}, [activeVoucher, listVouchers]);
+ useEffect(() => {
+ if (qVoucher === 'PASTIHEMAT' && listVouchers) {
+ let code = qVoucher;
+ VoucherCode(code);
+ }
+ }, [listVouchers]);
+
useEffect(() => {
setProducts(cartCheckout?.products);
setCheckWeight(cartCheckout?.hasProductWithoutWeight);
setTotalWeight(cartCheckout?.totalWeight.g);
- const hasFlashSale = cartCheckout?.products.some(product => product.hasFlashsale);
+ const hasFlashSale = cartCheckout?.products.some(
+ (product) => product.hasFlashsale
+ );
setHasFlashSale(hasFlashSale);
}, [cartCheckout]);
-
useEffect(() => {
setCheckoutValidation(false);
@@ -357,7 +359,7 @@ const Checkout = () => {
carrier_id: selectedCarrierId,
estimated_arrival_days: splitDuration(etd),
delivery_service_type: selectedExpedisiService,
- flash_sale : hasFlashSale, // dibuat negasi untuk ngetest kebalikan nilai false
+ flash_sale: hasFlashSale, // dibuat negasi untuk ngetest kebalikan nilai false
voucher: activeVoucher,
type: 'sale_order',
};
@@ -373,7 +375,7 @@ const Checkout = () => {
toast.error('Gagal melakukan transaksi, terjadi kesalahan internal');
return;
}
-
+
gtagPurchase(products, biayaKirim, isCheckouted.name);
const midtrans = async () => {
@@ -417,13 +419,17 @@ const Checkout = () => {
} else {
SetActiveVoucher(code);
SetFindVoucher(null);
- document.getElementById('uniqCode') ? document.getElementById('uniqCode').value = '' : '';
+ document.getElementById('uniqCode')
+ ? (document.getElementById('uniqCode').value = '')
+ : '';
SetButtonTerapkan(false);
}
} else {
SetActiveVoucher(code);
SetFindVoucher(null);
- document.getElementById('uniqCode') ? document.getElementById('uniqCode').value = '' : '';
+ document.getElementById('uniqCode')
+ ? (document.getElementById('uniqCode').value = '')
+ : '';
SetButtonTerapkan(false);
}
};
@@ -1599,9 +1605,11 @@ const PickupAddress = ({ label }) => (
Kodepos : 14440
Telp : 021-2933 8828/29
-
+
+
Mobile : 0817-1718-1922
-
+
+
);
--
cgit v1.2.3
From 2b2600ca31fb5aaacf7a70e0ea90b26c553af061 Mon Sep 17 00:00:00 2001
From: trisusilo48
Date: Thu, 1 Aug 2024 15:34:59 +0700
Subject: fixing height card
---
src/lib/product/components/ProductCard.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/lib')
diff --git a/src/lib/product/components/ProductCard.jsx b/src/lib/product/components/ProductCard.jsx
index 283a10c6..e10241a7 100644
--- a/src/lib/product/components/ProductCard.jsx
+++ b/src/lib/product/components/ProductCard.jsx
@@ -71,7 +71,7 @@ const ProductCard = ({ product, simpleTitle, variant = 'vertical' }) => {
if (variant == 'vertical') {
return (
-
+
Date: Fri, 2 Aug 2024 14:55:16 +0700
Subject: update cart pop up
---
src/lib/cart/components/Cartheader.jsx | 259 ++++++++++++++++++++++++++++++++-
1 file changed, 257 insertions(+), 2 deletions(-)
(limited to 'src/lib')
diff --git a/src/lib/cart/components/Cartheader.jsx b/src/lib/cart/components/Cartheader.jsx
index 19f79bc9..e3a5cc1f 100644
--- a/src/lib/cart/components/Cartheader.jsx
+++ b/src/lib/cart/components/Cartheader.jsx
@@ -4,7 +4,12 @@ import useAuth from '@/core/hooks/useAuth'
import { useRouter } from 'next/router'
import odooApi from '@/core/api/odooApi'
import { useProductCartContext } from '@/contexts/ProductCartContext'
-
+import currencyFormat from '@/core/utils/currencyFormat'
+import Image from '@/core/components/elements/Image/Image'
+import { createSlug } from '@/core/utils/slug'
+import whatsappUrl from '@/core/utils/whatsappUrl'
+import { AnimatePresence, motion } from 'framer-motion'
+import style from '../../../../src-migrate/modules/cart/styles/item-promo.module.css'
const { ShoppingCartIcon, PhotoIcon } = require('@heroicons/react/24/outline')
const { default: Link } = require('next/link')
@@ -19,7 +24,7 @@ const Cardheader = (cartCount) => {
useProductCartContext()
const [isHovered, setIsHovered] = useState(false)
-
+ const [isTop, setIsTop] = useState(true)
const products = useMemo(() => {
return productCart?.products || []
}, [productCart])
@@ -77,6 +82,16 @@ const Cardheader = (cartCount) => {
setCountCart(cartCount.cartCount)
}, [cartCount])
+ useEffect(() => {
+ const handleScroll = () => {
+ setIsTop(window.scrollY === 0)
+ }
+ window.addEventListener('scroll', handleScroll)
+ return () => {
+ window.removeEventListener('scroll', handleScroll)
+ }
+ }, [])
+
const handleCheckout = async () => {
SetButtonTerapkan(true)
let checkoutAll = await odooApi('POST', `/api/v1/user/${auth.id}/cart/select-all`)
@@ -109,6 +124,246 @@ const Cardheader = (cartCount) => {
+
+ {isHovered && (
+ <>
+
+
+
+
+
Keranjang Belanja
+
+ Lihat Semua
+
+
+
+
+ {!auth && (
+
+
+ Silahkan{' '}
+
+ Login
+ {' '}
+ Untuk Melihat Daftar Keranjang Belanja Anda
+
+
+ )}
+ {isLoading &&
+ itemLoading.map((item) => (
+
+ ))}
+ {auth && products.length === 0 && !isLoading && (
+
+
+ Tidak Ada Produk di Keranjang Belanja Anda
+
+
+ )}
+ {auth && products.length > 0 && !isLoading && (
+ <>
+
+ {products &&
+ products?.map((product, index) => (
+ <>
+ -
+
+
+ {product.cartType === 'promotion' && (
+
+ )}
+ {product.cartType === 'product' && (
+
+
+
+ )}
+
+
+ {product.cartType === 'promotion' && (
+
+ {product.name}
+
+ )}
+ {product.cartType === 'product' && (
+
+ {' '}
+
+ {product.parent.name}
+
+
+ )}
+ {product?.hasFlashsale && (
+
+
+ {product?.price?.discountPercentage}%
+
+
+ {currencyFormat(product?.price?.price)}
+
+
+ )}
+
+
+
+ {product?.price?.priceDiscount > 0 ? (
+ currencyFormat(product?.price?.priceDiscount)
+ ) : (
+
+
+ Call For Price
+
+
+ )}
+
+
+
+
+
+ {product.products?.map((product) =>
+
+
+ {product?.image &&
}
+
+
+
+
+ {product.displayName}
+
+
+
+
+ {/*
{product.code}
*/}
+
+ Berat Barang:
+ {product.packageWeight} Kg
+
+
+
+
+
+
+ )}
+ {product.freeProducts?.map((product) =>
+
+
+ {product?.image &&
}
+
+
+
+
+ {product.displayName}
+
+
+
+
+ {/*
{product.code}
*/}
+
+ Berat Barang:
+ {product.packageWeight} Kg
+
+
+
+
+
+
+ )}
+
+
+ >
+ ))}
+
+
+ >
+ )}
+
+ {auth && products.length > 0 && !isLoading && (
+ <>
+
+ Subtotal Sebelum PPN :
+ {currencyFormat(subTotal)}
+
+
+
+
+ >
+ )}
+
+
+ >
+ )}
+
)
}
--
cgit v1.2.3