diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-01-15 13:21:48 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-01-15 13:21:48 +0700 |
| commit | b9b4eb3ed751a69c023a45e7cdca8da01ae6b1cd (patch) | |
| tree | 081e67309f0b0a7795c685cf933caed23e52e296 /src/lib/merchant/components/SyaratDagang.jsx | |
| parent | 3692f937130e18cf396f5871d8a15bdd258bdd2b (diff) | |
<iman> update merchant
Diffstat (limited to 'src/lib/merchant/components/SyaratDagang.jsx')
| -rw-r--r-- | src/lib/merchant/components/SyaratDagang.jsx | 128 |
1 files changed, 99 insertions, 29 deletions
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(); @@ -85,6 +87,43 @@ const SyaratDagang = ({ handleIsError }) => { 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, behavior: 'smooth', @@ -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> |
