From c8cb137354ec569b4a13e180bc9cac2cab90c470 Mon Sep 17 00:00:00 2001
From: "HATEC\\SPVDEV001" <tri.susilo@altama.co.id>
Date: Sat, 6 Apr 2024 12:31:45 +0700
Subject: add voucher minus

---
 src/lib/checkout/components/Checkout.jsx | 38 +++++++++++++++++++++-----------
 1 file changed, 25 insertions(+), 13 deletions(-)

(limited to 'src/lib/checkout/components/Checkout.jsx')

diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index 52edbd05..7a456d70 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -111,6 +111,7 @@ const Checkout = () => {
   const [checkoutValidation, setCheckoutValidation] = useState(false);
   const [loadingVoucher, setLoadingVoucher] = useState(true);
   const [loadingRajaOngkir, setLoadingRajaOngkir] = useState(false);
+  const [grandTotal, setGrandTotal] = useState(0);
 
   const expedisiValidation = useRef(null);
 
@@ -295,6 +296,14 @@ const Checkout = () => {
 
   const [isLoading, setIsLoading] = useState(false);
 
+  useEffect(() => {
+    const GT =
+      cartCheckout?.grandTotal +
+      Math.round(parseInt(biayaKirim * 1.1) / 1000) * 1000;
+    const finalGT = GT < 0 ? 0 : GT;
+    setGrandTotal(finalGT);
+  }, [biayaKirim, cartCheckout?.grandTotal, activeVoucher]);
+
   const checkout = async () => {
     const file = poFile.current.files[0];
     if (typeof file !== 'undefined' && file.size > 5000000) {
@@ -352,11 +361,20 @@ const Checkout = () => {
 
     const midtrans = async () => {
       for (const product of products) deleteItemCart({ productId: product.id });
-      const payment = await axios.post(
-        `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/midtrans-payment?transactionId=${isCheckouted.id}`
-      );
-      setIsLoading(false);
-      window.location.href = payment.data.redirectUrl;
+      if (grandTotal > 0) {
+        const payment = await axios.post(
+          `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/midtrans-payment?transactionId=${isCheckouted.id}`
+        );
+        setIsLoading(false);
+        window.location.href = payment.data.redirectUrl;
+      } else {
+        window.location.href = `${
+          process.env.NEXT_PUBLIC_SELF_HOST
+        }/shop/checkout/success?order_id=${isCheckouted.name.replace(
+          /\//g,
+          '-'
+        )}`;
+      }
     };
 
     gtag('event', 'conversion', {
@@ -913,10 +931,7 @@ const Checkout = () => {
             <div className='flex gap-x-2 justify-between mb-4'>
               <div>Grand Total</div>
               <div className='font-semibold text-gray_r-12'>
-                {currencyFormat(
-                  cartCheckout?.grandTotal +
-                    Math.round(parseInt(biayaKirim * 1.1) / 1000) * 1000
-                )}
+                {currencyFormat(grandTotal)}
               </div>
             </div>
           )}
@@ -1208,10 +1223,7 @@ const Checkout = () => {
                   <div className='flex gap-x-2 justify-between mb-4'>
                     <div>Grand Total</div>
                     <div className='font-semibold text-gray_r-12'>
-                      {currencyFormat(
-                        cartCheckout?.grandTotal +
-                          Math.round(parseInt(biayaKirim * 1.1) / 1000) * 1000
-                      )}
+                      {currencyFormat(grandTotal)}
                     </div>
                   </div>
                 )}
-- 
cgit v1.2.3

