summaryrefslogtreecommitdiff
path: root/src/lib/merchant/components/SyaratDagang.jsx
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-15 13:21:48 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-15 13:21:48 +0700
commitb9b4eb3ed751a69c023a45e7cdca8da01ae6b1cd (patch)
tree081e67309f0b0a7795c685cf933caed23e52e296 /src/lib/merchant/components/SyaratDagang.jsx
parent3692f937130e18cf396f5871d8a15bdd258bdd2b (diff)
<iman> update merchant
Diffstat (limited to 'src/lib/merchant/components/SyaratDagang.jsx')
-rw-r--r--src/lib/merchant/components/SyaratDagang.jsx128
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>