summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrisusilo48 <tri.susilo@altama.co.id>2024-08-06 15:12:56 +0700
committertrisusilo48 <tri.susilo@altama.co.id>2024-08-06 15:12:56 +0700
commitf3aa76b1810b3bc8b25bd02c76b50384893fc453 (patch)
tree17a600e51521fedc5e80fe6c3fdd82c069b9050c
parentfd9dcbedb3800c73bebd729211564f13cb08bfe7 (diff)
voucher
-rw-r--r--src/lib/checkout/api/getVoucher.js1
-rw-r--r--src/lib/checkout/components/Checkout.jsx118
2 files changed, 87 insertions, 32 deletions
diff --git a/src/lib/checkout/api/getVoucher.js b/src/lib/checkout/api/getVoucher.js
index 779cef43..ead4ffbe 100644
--- a/src/lib/checkout/api/getVoucher.js
+++ b/src/lib/checkout/api/getVoucher.js
@@ -3,6 +3,7 @@ import { getAuth } from '@/core/utils/auth'
export const getVoucher = async (id, query) => {
const queryParam = new URLSearchParams(query);
+ console.log('ini params string',queryParam.toString())
const url = `/api/v1/user/${id}/voucher?${queryParam.toString()}`;
const dataVoucher = await odooApi('GET', url);
return dataVoucher;
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index 09a791ee..84f68dab 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -131,6 +131,7 @@ const Checkout = () => {
setLoadingVoucher(true);
let dataVoucher = await getVoucher(auth?.id, {
source: query,
+ type: 'all,brand',
});
SetListVoucher(dataVoucher);
@@ -146,40 +147,71 @@ const Checkout = () => {
};
const VoucherCode = async (code) => {
- const source = 'code=' + code + '&source=' + query;
// let dataVoucher = await findVoucher(code, auth.id, query);
- let dataVoucher = await getVoucherNew(source);
+ let dataVoucher = await getVoucher(auth?.id, {
+ source: query,
+ code: code
+ });
if (dataVoucher.length <= 0) {
SetFindVoucher(1);
return;
}
let addNewLine = dataVoucher[0];
- let checkList = listVouchers?.findIndex(
- (voucher) => voucher.code == addNewLine.code
- );
- if (checkList >= 0) {
- if (listVouchers[checkList].canApply) {
- ToggleSwitch(code);
- SetCodeVoucher(null);
- } else {
- SetSelisihHargaCode(listVouchers[checkList].differenceToApply);
+ console.log('addNewLine', addNewLine);
+ if (addNewLine.applyType != 'shipping') {
+ let checkList = listVouchers?.findIndex(
+ (voucher) => voucher.code == addNewLine.code
+ );
+ if (checkList >= 0) {
+ if (listVouchers[checkList].canApply) {
+ ToggleSwitch(code);
+ SetCodeVoucher(null);
+ } else {
+ SetSelisihHargaCode(listVouchers[checkList].differenceToApply);
+ SetFindVoucher(2);
+ }
+ return;
+ }
+ if (cartCheckout?.subtotal < addNewLine.minPurchaseAmount) {
+ SetSelisihHargaCode(
+ currencyFormat(addNewLine.minPurchaseAmount - cartCheckout?.subtotal)
+ );
SetFindVoucher(2);
+ return;
+ } else {
+ SetFindVoucher(3);
+ SetButtonTerapkan(true);
}
- return;
- }
- if (cartCheckout?.subtotal < addNewLine.minPurchaseAmount) {
- SetSelisihHargaCode(
- currencyFormat(addNewLine.minPurchaseAmount - cartCheckout?.subtotal)
- );
- SetFindVoucher(2);
- return;
+ SetListVoucher((prevList) => [addNewLine, ...prevList]);
+ SetActiveVoucher(addNewLine.code);
} else {
- SetFindVoucher(3);
- SetButtonTerapkan(true);
+ let checkList = listVoucherShippings?.findIndex(
+ (voucher) => voucher.code == addNewLine.code
+ );
+ if (checkList >= 0) {
+ if (listVoucherShippings[checkList].canApply) {
+ ToggleSwitch(code);
+ SetCodeVoucher(null);
+ } else {
+ SetSelisihHargaCode(listVoucherShippings[checkList].differenceToApply);
+ SetFindVoucher(2);
+ }
+ return;
+ }
+ if (cartCheckout?.subtotal < addNewLine.minPurchaseAmount) {
+ SetSelisihHargaCode(
+ currencyFormat(addNewLine.minPurchaseAmount - cartCheckout?.subtotal)
+ );
+ SetFindVoucher(2);
+ return;
+ } else {
+ SetFindVoucher(3);
+ SetButtonTerapkan(true);
+ }
+ SetListVoucherShipping((prevList) => [addNewLine, ...prevList]);
+ setActiveVoucherShipping(addNewLine.code);
}
- SetListVoucher((prevList) => [addNewLine, ...prevList]);
- SetActiveVoucher(addNewLine.code);
};
useEffect(() => {
@@ -187,7 +219,7 @@ const Checkout = () => {
}, [bottomPopup]);
useEffect(() => {
- voucher();
+ // voucher();
const loadExpedisi = async () => {
let dataExpedisi = await ExpedisiList();
dataExpedisi = dataExpedisi.map((expedisi) => ({
@@ -210,13 +242,24 @@ const Checkout = () => {
};
}, []);
- const hitungDiscountVoucher = (code) => {
- let dataVoucherIndex = listVouchers.findIndex(
- (voucher) => voucher.code == code
- );
- let dataActiveVoucher = listVouchers[dataVoucherIndex];
-
- let countDiscount = dataActiveVoucher.discountVoucher;
+ const hitungDiscountVoucher = (code, source) => {
+ let countDiscount = 0;
+ if(source === 'voucher'){
+ let dataVoucherIndex = listVouchers.findIndex(
+ (voucher) => voucher.code == code
+ );
+ let dataActiveVoucher = listVouchers[dataVoucherIndex];
+
+ countDiscount = dataActiveVoucher.discountVoucher;
+ }else{
+ let dataVoucherIndex = listVoucherShippings.findIndex(
+ (voucher) => voucher.code == code
+ );
+ let dataActiveVoucher = listVoucherShippings[dataVoucherIndex];
+
+ countDiscount = dataActiveVoucher.discountVoucher;
+ }
+
/*if (dataActiveVoucher.discountType === 'percentage') {
countDiscount = cartCheckout?.subtotal * (dataActiveVoucher.discountAmount / 100)
@@ -237,12 +280,23 @@ const Checkout = () => {
if (!listVouchers) return;
if (!activeVoucher) return;
- const countDiscount = hitungDiscountVoucher(activeVoucher);
+ console.log('voucher')
+ const countDiscount = hitungDiscountVoucher(activeVoucher, 'voucher');
SetDiscountVoucher(countDiscount);
}, [activeVoucher, listVouchers]);
useEffect(() => {
+ if (!listVoucherShippings) return;
+ if (!activeVoucherShipping) return;
+
+ console.log('voucher shipping')
+ const countDiscount = hitungDiscountVoucher(activeVoucherShipping, 'voucher_shipping');
+
+ SetDiscountVoucher(countDiscount);
+ }, [activeVoucherShipping, listVoucherShippings]);
+
+ useEffect(() => {
if (qVoucher === 'PASTIHEMAT' && listVouchers) {
let code = qVoucher;
VoucherCode(code);