From b9b4eb3ed751a69c023a45e7cdca8da01ae6b1cd Mon Sep 17 00:00:00 2001
From: it-fixcomart <it@fixcomart.co.id>
Date: Wed, 15 Jan 2025 13:21:48 +0700
Subject: <iman> update merchant

---
 src/lib/merchant/components/SyaratDagang.jsx | 128 +++++++++++++++++++++------
 1 file changed, 99 insertions(+), 29 deletions(-)

(limited to 'src/lib/merchant/components/SyaratDagang.jsx')

diff --git a/src/lib/merchant/components/SyaratDagang.jsx b/src/lib/merchant/components/SyaratDagang.jsx
index 36c6e0a9..83faf520 100644
--- a/src/lib/merchant/components/SyaratDagang.jsx
+++ b/src/lib/merchant/components/SyaratDagang.jsx
@@ -9,7 +9,8 @@ import ReCAPTCHA from 'react-google-recaptcha';
 import { Controller, useForm } from 'react-hook-form';
 import { toast } from 'react-hot-toast';
 import * as Yup from 'yup';
-import createMerchantApi from '../../form/api/createMerchantApi';
+import createMerchantApi from '../api/createMerchantApi';
+import getMerchantApi from '../api/getMerchantApi';
 import addressApi from '@/lib/address/api/addressApi';
 import PageContent from '@/lib/content/components/PageContent';
 import { useRouter } from 'next/router';
@@ -76,6 +77,7 @@ const SyaratDagang = ({ handleIsError }) => {
   const [fileNames, setFileNames] = useState({});
   const [DeatailFile, setDetailFile] = useState({});
   const [subDistricts, setSubDistricts] = useState([]);
+  const [bigData, setbigData] = useState([]);
   const [zips, setZips] = useState([]);
   const [isExample, setIsExample] = useState(false);
   const [BannerMerchant, setBannerMerchant] = useState();
@@ -84,6 +86,43 @@ const SyaratDagang = ({ handleIsError }) => {
   const recaptchaRef = useRef(null);
   const router = useRouter();
 
+  useEffect(() => {
+    const loadData = async () => {
+      const data = await getMerchantApi();
+      setbigData(data);
+      console.log('data vendor', data);
+      reset({
+        isKembaliBarang: data.isKembaliBarang || '',
+        textReturn: data.textReturn || '',
+        tenggatWaktu: (() => {
+          const waktu = data.tenggatWaktu
+            ? data.tenggatWaktu.split(' ')[0]
+            : '';
+          if (waktu === '14') return '14';
+          if (waktu === '30') return '30';
+          return 'custom';
+        })(),
+        customTenggatWaktu: (() => {
+          if (watch('tenggatWaktu') === 'custom') return data.tenggatWaktu;
+          return '';
+        })(),
+        sertifikatProduk: data.sertifikatProduk || '',
+        customSertifikatProduk: data.customSertifikatProduk || '',
+        tempoGaransi: parseInt(data.tempoGaransi) || '',
+        explainGaransi: data.explainGaransi || '',
+        minimumPembelian: data.minimumPembelian || '',
+        isOrderQuantity: data.isOrderQuantity || '',
+      });
+      // handleKreditLimitChange(data.kreditLimit);
+      setSelectedIds(watch('sertifikatProduk').split(',').map(Number));
+      if (watch('customSertifikatProduk')) {
+        // setSelectedIds([...selectedIds, 4]);
+      }
+    };
+
+    loadData();
+  }, []);
+  console.log('sertifikatProduk', watch('sertifikatProduk'));
   useEffect(() => {
     window.scrollTo({
       top: 0,
@@ -111,9 +150,9 @@ const SyaratDagang = ({ handleIsError }) => {
     { value: 3, label: '2 Tahun Garansi' },
   ];
   const dataMinimumOrderQuantity = [
-    { value: 1, label: 'Dus' },
-    { value: 2, label: 'Lusin' },
-    { value: 3, label: 'Minimum pembelian' },
+    { value: 'dus', label: 'Dus' },
+    { value: 'lusin', label: 'Lusin' },
+    { value: 'minimum pembelian', label: 'Minimum pembelian' },
   ];
 
   const dataCategoryPerusahaan = [
@@ -140,7 +179,7 @@ const SyaratDagang = ({ handleIsError }) => {
     // form.sertifikatProduk ? form.sertifikatProduk.split(',').map(Number) : [] // Parse string menjadi array angka
     // [] // Parse string menjadi array angka
   );
-
+  console.log('selectedIds', selectedIds);
   const handleCheckboxChange = (id) => {
     const updatedSelected = selectedIds.includes(id)
       ? selectedIds.filter((selectedId) => selectedId !== id)
@@ -151,6 +190,14 @@ const SyaratDagang = ({ handleIsError }) => {
     // Mengubah array kembali menjadi string yang dipisahkan oleh koma
     setValue('sertifikatProduk', updatedSelected.join(','));
   };
+  const custom_sertifikat_produk_handle = () => {
+    const updatedSelected = [...selectedIds, 4];
+
+    setSelectedIds(updatedSelected);
+
+    // Mengubah array kembali menjadi string yang dipisahkan oleh koma
+    setValue('sertifikatProduk', updatedSelected.join(','));
+  };
 
   const isChecked = (id) => selectedIds.includes(id);
 
@@ -316,27 +363,26 @@ const SyaratDagang = ({ handleIsError }) => {
       tenggat_waktu: values.tenggatWaktu,
       custom_tenggat_waktu: values.customTenggatWaktu,
       sertifikat_produk: values.sertifikatProduk,
-      custom_sertifikat_produk: values.customSertifikatProduk,
+      custom_sertifikat_produk:
+        values.customSertifikatProduk == ''
+          ? false
+          : values.customSertifikatProduk,
       tempo_garansi: values.tempoGaransi,
       explain_garansi: values.explainGaransi,
       is_order_quantity: values.isOrderQuantity,
       minimum_pembelian: values.minimumPembelian,
     };
-    isError(true);
-    toast.dismiss(toastId);
-    toast.success('Berhasil menambahkan data');
-    // const formData = new FormData();
-    // formData.append('npwp', values.npwp[0]);
-    // const create_leads = await createMerchantApi({ data });
-    // if (create_leads) {
-    //   toast.dismiss(toastId);
-    //   toast.success('Berhasil menambahkan data');
-    //   reset();
-    //   router.push('/');
-    // } else {
-    //   toast.dismiss(toastId);
-    //   toast.error('Gagal menambahkan data');
-    // }
+    const create_leads = await createMerchantApi({ data });
+    if (create_leads) {
+      toast.dismiss(toastId);
+      toast.success('Berhasil menambahkan data');
+      isError(false);
+      reset();
+      // router.push('/');
+    } else {
+      toast.dismiss(toastId);
+      toast.error('Gagal menambahkan data');
+    }
   };
 
   // const DownLoadSurat = () => {
@@ -463,10 +509,18 @@ const SyaratDagang = ({ handleIsError }) => {
                       value={watch('tenggatWaktu')}
                     >
                       <Stack direction='column'>
-                        <Radio colorScheme='red' value='14'>
+                        <Radio
+                          colorScheme='red'
+                          value='14'
+                          onChange={() => setValue('customTenggatWaktu', ' ')}
+                        >
                           14 hari sejak data dikirimkan
                         </Radio>
-                        <Radio colorScheme='red' value='30'>
+                        <Radio
+                          colorScheme='red'
+                          value='30'
+                          onChange={() => setValue('customTenggatWaktu', ' ')}
+                        >
                           30 hari sejak data dikirimkan
                         </Radio>
                         <div className='flex flex-row gap-2'>
@@ -476,7 +530,6 @@ const SyaratDagang = ({ handleIsError }) => {
                             placeholder='Masukkan jumlah hari untuk tenggat waktu'
                             type='text'
                             onFocus={() => setValue('tenggatWaktu', 'custom')}
-                            onChange={() => setValue('tenggatWaktu', 'custom')}
                             className='form-input mt-2'
                           />
                         </div>
@@ -539,8 +592,10 @@ const SyaratDagang = ({ handleIsError }) => {
                           {...register('customSertifikatProduk')}
                           placeholder='Masukkan Dokumen/Sertifikat yang dimiliki oleh brand'
                           type='text'
-                          onFocus={() => setSelectedIds([...selectedIds, 4])}
-                          onChange={() => setSelectedIds([...selectedIds, 4])}
+                          onFocus={() => {
+                            custom_sertifikat_produk_handle();
+                          }}
+                          // onFocus={() => handleCheckboxChange(4)}
                           className='form-input mt-2'
                         />
                       </div>
@@ -613,11 +668,19 @@ const SyaratDagang = ({ handleIsError }) => {
                   <div className='flex gap-x-4 flex-col w-full'>
                     <RadioGroup
                       onChange={handleCheckboxOrderQuantityChange}
-                      value={watch('isOrderQuantity')}
+                      value={
+                        watch('minimumPembelian')
+                          ? 'ya'
+                          : watch('isOrderQuantity')
+                      }
                     >
                       <Stack direction='column'>
                         <div className='flex flex-row text-nowrap gap-2'>
-                          <Radio colorScheme='red' value='ya'>
+                          <Radio
+                            colorScheme='red'
+                            value='ya'
+                            onChange={() => setValue('isOrderQuantity', 'ya')}
+                          >
                             Ya
                           </Radio>
 
@@ -631,11 +694,18 @@ const SyaratDagang = ({ handleIsError }) => {
                                 placeholder={
                                   'Pilih jenis minimum order quantity'
                                 }
+                                onFocus={() =>
+                                  setValue('isOrderQuantity', 'ya')
+                                }
                               />
                             )}
                           />
                         </div>
-                        <Radio colorScheme='red' value='tidak'>
+                        <Radio
+                          colorScheme='red'
+                          value='tidak'
+                          onChange={() => setValue('minimumPembelian', '')}
+                        >
                           Tidak Ada
                         </Radio>
                       </Stack>
-- 
cgit v1.2.3

