// import HookFormSelect from '@/core/components/elements/Select/HookFormSelect'; // import cityApi from '@/lib/address/api/cityApi'; // import stateApi from '@/lib/address/api/stateApi.js'; // import districtApi from '@/lib/address/api/districtApi'; // import subDistrictApi from '@/lib/address/api/subDistrictApi'; // import { yupResolver } from '@hookform/resolvers/yup'; // import React, { // useEffect, // useRef, // useState, // forwardRef, // useImperativeHandle, // } from 'react'; // 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 '../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'; // import useAuth from '@/core/hooks/useAuth'; // import { Radio, RadioGroup, Stack, Divider, Button } from '@chakra-ui/react'; // import { EyeIcon } from '@heroicons/react/24/outline'; // import BottomPopup from '@/core/components/elements/Popup/BottomPopup'; // import Image from 'next/image'; // import ImageBanner from '~/components/ui/image'; // import { ChevronRightIcon, ChevronLeftIcon } from '@heroicons/react/24/outline'; // import MobileView from '@/core/components/views/MobileView'; // import DesktopView from '@/core/components/views/DesktopView'; // import getFileBase64 from '@/core/utils/getFileBase64'; // import odooApi from '~/libs/odooApi'; // const CreateMerchant = forwardRef( // ({ handleIsError, isKonfirmasi, buttonSubmitClick }, ref) => { // const isError = (value) => { // // Logika menentukan error // const result = value ? true : false; // handleIsError(result); // Panggil handleIsError dari Merchant // return result; // }; // // React.useEffect(() => { // // handleIsError(isError()); // // }, [handleIsError]); // const { // register, // handleSubmit, // formState: { errors }, // control, // reset, // watch, // setValue, // getValues, // } = useForm({ // resolver: yupResolver(validationSchema), // defaultValues, // }); // const [state, setState] = useState([]); // const [cities, setCities] = useState([]); // const [districts, setDistricts] = useState([]); // const [subDistricts, setSubDistricts] = useState([]); // const [zips, setZips] = useState([]); // const [isExample, setIsExample] = useState(false); // const [isPkp, setIsPkp] = useState(false); // useEffect(() => { // window.scrollTo({ // top: 0, // behavior: 'smooth', // }); // }, []); // useImperativeHandle(ref, () => () => { // handleSubmit(onSubmitHandler)(); // }); // const recaptchaRef = useRef(null); // const router = useRouter(); // const auth = useAuth(); // if (auth == false) { // router.push(`/login?next=${encodeURIComponent('/daftar-merchant')}`); // } // const dataBisnisType = [ // { value: 1, label: 'PT' }, // { value: 2, label: 'CV' }, // { value: 3, label: 'Perorangan' }, // ]; // const dataCategoryPerusahaan = [ // { value: 1, label: 'Principal (Pemegang merk/Produsen)' }, // { value: 2, label: 'Sole Distributor (Distributor Tunggal)' }, // { value: 3, label: 'Authorized Distributor (Distributor Resmi)' }, // { value: 4, label: 'Importer (Pengimpor Barang)' }, // { value: 5, label: 'Wholesaler (Pedagang Besar)' }, // ]; // useEffect(() => { // const loadData = async () => { // try { // const data = await getMerchantApi(); // if (data) { // reset({ // pejabatName: data.pejabatName ? data.pejabatName : '', // PICName: data.picMerchant || '', // PICPosition: data.picPosition || '', // address: data.address ? data.address : '', // state: data.state ? data.state : '', // city: data.city || '', // district: data.district || '', // subDistrict: data.subDistrict || '', // zip: parseInt(data.zip) || '', // email: data.emailCompany || '', // emailSales: data.emailSales || '', // emailFinance: data.emailFinance || '', // bank: data.bankName || '', // rekening: data.rekeningName || '', // accountNumber: data.accountNumber || '', // phone: data.phone || '', // mobile: data.mobile || '', // bisnisType: data.bisnisType ? parseInt(data.bisnisType) : null, // categoryPerusahaan: data.categoryPerusahaan // ? parseInt(data.categoryPerusahaan) // : null, // website: data.website || '', // }); // } // } catch (error) { // console.error('Error loading profile:', error); // handleIsError(true); // Jika ada error, panggil fungsi error handler // } // }; // loadData(); // }, [reset, handleIsError]); // useEffect(() => { // const loadProfile = async () => { // try { // const dataProfile = await addressApi({ // id: auth.parentId ? auth.parentId : auth.partnerId, // }); // if (dataProfile.companyType == 'pkp') { // setIsPkp(true); // } // setValue('company', dataProfile?.name); // setValue('address', dataProfile?.alamatBisnis); // setValue('state', parseInt(dataProfile.stateId.id)); // setValue('city', parseInt(dataProfile.city.id)); // setValue('district', parseInt(dataProfile.district.id)); // setValue('subDistrict', parseInt(dataProfile.subDistrict.id)); // setValue('zip', parseInt(dataProfile.zip)); // } catch (error) { // console.error('Error loading profile:', error); // } // }; // loadProfile(); // }, [auth?.parentId]); // useEffect(() => { // const loadState = async () => { // let dataState = await stateApi({ tempo: false }); // dataState = dataState.map((state) => ({ // value: state.id, // label: state.name, // })); // setState(dataState); // }; // loadState(); // }, []); // const watchState = watch('state'); // useEffect(() => { // if (auth == false) { // return; // } // if (watchState) { // // setValue('city', ''); // const loadCities = async () => { // let dataCities = await cityApi({ stateId: watchState }); // dataCities = dataCities?.map((city) => ({ // value: city.id, // label: city.name, // })); // setCities(dataCities); // }; // loadCities(); // } // }, [auth, watchState]); // const watchCity = watch('city'); // useEffect(() => { // if (watchCity) { // // setValue('district', ''); // const loadDistricts = async () => { // let dataDistricts = await districtApi({ cityId: watchCity }); // dataDistricts = dataDistricts.map((district) => ({ // value: district.id, // label: district.name, // })); // setDistricts(dataDistricts); // }; // loadDistricts(); // } // }, [watchCity]); // const watchDistrict = watch('district'); // useEffect(() => { // if (watchDistrict) { // // setValue('subDistrict', ''); // const loadSubDistricts = async () => { // let dataSubDistricts = await subDistrictApi({ // districtId: watchDistrict, // }); // dataSubDistricts = dataSubDistricts.map((district) => ({ // value: district.id, // label: district.name, // })); // setSubDistricts(dataSubDistricts); // }; // loadSubDistricts(); // } // }, [watchDistrict]); // const watchsubDistrict = watch('subDistrict'); // useEffect(() => { // let kelurahan = ''; // let kecamatan = ''; // if (watchDistrict) { // // setValue('zip', ''); // for (const data in districts) { // if (districts[data].value == watchDistrict) { // kecamatan = districts[data].label.toLowerCase(); // } // } // } // if (watchsubDistrict) { // for (const data in subDistricts) { // if (subDistricts[data].value == watchsubDistrict) { // kelurahan = subDistricts[data].label.toLowerCase(); // } // } // const loadZip = async () => { // const response = await fetch( // `https://alamat.thecloudalert.com/api/cari/index/?keyword=${kelurahan}` // ); // let dataMasuk = []; // Array untuk menyimpan kode pos yang sudah diproses // const result = await response.json(); // // Filter dan map data // const dataZips = result.result // .filter((zip) => zip.kecamatan.toLowerCase() === kecamatan) // Filter berdasarkan kecamatan // .filter((zip) => { // // Pastikan zip.kodepos belum ada di dataMasuk // if (dataMasuk.includes(zip.kodepos)) { // return false; // Jika sudah ada, maka skip (tidak akan ditambahkan) // } else { // dataMasuk.push(zip.kodepos); // Tambahkan ke dataMasuk // return true; // Tambahkan zip ke hasil // } // }) // .map((zip) => ({ // value: parseInt(zip.kodepos), // label: zip.kodepos, // })); // setZips(dataZips); // Set hasil ke state // }; // loadZip(); // } // }, [watchsubDistrict, subDistricts]); // const onSubmitHandler = async (values) => { // const toastId = toast.loading('Mengirimkan formulir merchant...'); // const data = { // name_merchant: 'Form Merchant - ' + values.company, // pejabat_name: values.pejabatName, // pic_merchant: values.PICName, // pic_position: values.PICPosition, // address: values.address, // state: parseInt(values.state), // city: parseInt(values.city), // district: parseInt(values.district), // subDistrict: parseInt(values.subDistrict), // zip: values.zip, // bank_name: values.bank, // rekening_name: values.rekening, // account_number: values.accountNumber, // email_company: values.email, // email_sales: values.emailSales, // email_finance: values.emailFinance, // phone: values.phone, // mobile: values.mobile, // bisnis_type: values.bisnisType, // category_perusahaan: values.categoryPerusahaan, // website: values.website, // description: // 'Nama Perusahaan : ' + // values.company + // ' \r\n Alamat : ' + // values.address + // ' \r\n Kota : ' + // values.city + // ' \r\n Telepon: ' + // values.phone + // ' \r\n Email : ' + // values.email + // ' \r\n No Hp : ' + // values.mobile, // }; // 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 = () => { // // download surat dari /public/file/Surat Pernyataan Nomor Rekening.docx // // }; // if (!auth) { // return; // } // // Tetap di bagian atas, tidak boleh ada kondisi sebelum hook // return ( // <> // setIsExample(false)} // > //
// Contoh SPPKP //
//
// //
//

// Informasi Perusahaan //

//
//
//
//
// // {!isKonfirmasi && ( // // Isi detail perusahaan sesuai dengan nama yang terdaftar{' '} // // )} //
//
// // // Format: PT. INDOTEKNIK DOTCOM GEMILANG // //
// {errors.company?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // isi dengan nama pejabat yang berwewenang di perusahaan // anda // // )} //
//
// //
// {errors.pejabatName?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // isi dengan nama sales / penanggung jawab // // )} //
//
// //
// {errors.PICName?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // isi dengan jabatan sales / penanggung jawab // // )} //
//
// //
// {errors.PICPosition?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // Alamat sesuai dengan alamat perusahaan // // )} //
//
//
// //
// {errors.address?.message} //
//
//
//
//
// ( // // )} // /> //
// {errors.state?.message} //
//
//
// ( // // )} // /> //
// {errors.city?.message} //
//
//
//
//
// ( // // )} // /> //
// {errors.district?.message} //
//
//
// ( // // )} // /> //
// {errors.subDistrict?.message} //
//
//
// ( // <> // {/* Jika zips tidak kosong, tampilkan dropdown */} // {zips.length < 0 ? ( // // Jika zips kosong, tampilkan input manual // // ) : ( // // )} // // )} // /> //
// {errors.zip?.message} //
//
//
//
//
//
//
//
// // {!isKonfirmasi && ( // // Isi detail data bank perusahaan anda // // )} //
//
//
// // {!isKonfirmasi && ( // // Format: BCA, Mandiri, CIMB, BNI dll // // )} //
// {errors.bank?.message} //
//
//
// // {!isKonfirmasi && ( // // Format: John Doe // // )} //
// {errors.rekening?.message} //
//
//
// // {!isKonfirmasi && ( // // Format: 01234567896 // // )} //
// {errors.accountNumber?.message} //
//
//
//
//
//
// //
//
// //
// {errors.email?.message} //
//
//
//
//
// //
//
// //
// {errors.emailSales?.message} //
//
//
//
//
// //
//
// //
// {errors.emailFinance?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // Isi no telepon perusahaan yang sesuai // // )} //
//
// //
// {errors.phone?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // Isi no handphone perusahaan yang sesuai // // )} //
//
// //
// {errors.mobile?.message} //
//
//
//
//
// // {!isKonfirmasi && ( // // Pilih tipe bisnis yang sesuai // // )} //
//
//
//
// ( // // )} // /> //
// {errors.bisnisType?.message} //
//
//
//
//
//
//
// // {!isKonfirmasi && ( // // Pilih kategori perusahaan yang sesuai // // )} //
//
//
//
// ( // // )} // /> //
// {errors.categoryPerusahaan?.message} //
//
//
//
//
//
//
// // {!isKonfirmasi && ( // // isi dengan website perusahaan anda // // )} //
//
// //
// {errors.website?.message} //
//
//
//
// {/*
// //
*/} //
//
// {/* */} // {!isKonfirmasi && ( //
// // *Pastikan data yang anda masukan sudah benar dan sesuai // // //
// )} //
//
// //
//
//
// //
// {!isKonfirmasi && ( //

// Informasi Perusahaan //

// )} //
//
//
//
// // //
// {errors.company?.message} //
// // Isi detail perusahaan sesuai dengan nama yang terdaftar{' '} // //
//
//
//
// // //
// {errors.pejabatName?.message} //
// // isi dengan nama pejabat yang berwewenang di perusahaan // anda{' '} // //
//
//
//
// // //
// {errors.PICName?.message} //
// // Isi dengan nama sales / penanggung jawab // //
//
//
//
// // //
// {errors.PICPosition?.message} //
// // isi dengan jabatan sales / penanggung jawab // //
//
//
//
// // //
// {errors.address?.message} //
//
//
// ( // // )} // /> //
// {errors.state?.message} //
//
//
// ( // // )} // /> //
// {errors.city?.message} //
//
//
//
//
// ( // // )} // /> //
// {errors.district?.message} //
//
//
// ( // // )} // /> //
// {errors.subDistrict?.message} //
//
//
// ( // <> // {zips.length > 0 ? ( // // ) : ( // // )} // // )} // /> //
// {errors.zip?.message} //
//
//
//
// // Alamat sesuai dengan alamat perusahaan // //
//
// //
//
// //
// {errors.bank?.message} //
//
//
// //
// {errors.rekening?.message} //
//
//
// //
// {errors.accountNumber?.message} //
//
//
// // Isi detail data bank perusahaan anda // //
//
// // //
// {errors.email?.message} //
// // Isi detail perusahaan sesuai dengan data yang terdaftar // //
//
// // //
// {errors.emailSales?.message} //
// // Isi detail perusahaan sesuai dengan data yang terdaftar // //
//
// // //
// {errors.emailFinance?.message} //
// // Isi detail perusahaan sesuai dengan data yang terdaftar // //
//
// // //
// {errors.phone?.message} //
// // Isi detail perusahaan sesuai dengan data yang terdaftar // //
//
// // //
// {errors.mobile?.message} //
// // Isi detail perusahaan sesuai dengan data yang terdaftar // //
//
// //
// ( // // )} // /> // {!isKonfirmasi && ( // // Pilih tipe bisnis yang sesuai // // )} //
// {errors.bisnisType?.message} //
//
//
//
// //
// ( // // )} // /> // {!isKonfirmasi && ( // // Pilih kategori perusahaan yang sesuai // // )} //
// {errors.categoryPerusahaan?.message} //
//
//
//
// // // {!isKonfirmasi && ( // // isi dengan website perusahaan anda // // )} //
// {errors.website?.message} //
//
//
// {/*
// //
*/} //
//
// {/* */} // {!isKonfirmasi && ( //
// // *Pastikan data yang anda masukan sudah benar dan sesuai // // //
// )} //
//
// //
//
//
// // ); // } // ); // const validationSchema = Yup.object().shape({ // company: Yup.string().required('Harus di-isi'), // pejabatName: Yup.string().required('Harus di-isi'), // PICName: Yup.string().required('Harus di-isi'), // PICPosition: Yup.string().required('Harus di-isi'), // address: Yup.string().required('Harus di-isi'), // state: Yup.string().required('Harus dipilih'), // city: Yup.string().required('Harus dipilih'), // district: Yup.string().required('Harus dipilih'), // subDistrict: Yup.string().required('Harus dipilih'), // zip: Yup.string().required('Harus di-isi'), // bank: Yup.string().required('Harus di-isi'), // rekening: Yup.string().required('Harus di-isi'), // accountNumber: Yup.string().required('Harus di-isi'), // email: Yup.string() // .email('Format harus seperti contoh@email.com') // .required('Harus di-isi'), // emailSales: Yup.string() // .email('Format harus seperti contoh@email.com') // .required('Harus di-isi'), // emailFinance: Yup.string() // .email('Format harus seperti contoh@email.com') // .required('Harus di-isi'), // phone: Yup.string().required('Harus di-isi'), // mobile: Yup.string().required('Harus di-isi'), // bisnisType: Yup.string().required('Harus dipilih'), // categoryPerusahaan: Yup.string().required('Harus dipilih'), // }); // const defaultValues = { // company: '', // pejabatName: '', // PICName: '', // PICPosition: '', // address: '', // state: '', // city: '', // district: '', // subDistrict: '', // zip: '', // email: '', // emailSales: '', // emailFinance: '', // bank: '', // rekening: '', // accountNumber: '', // phone: '', // mobile: '', // }; // export default CreateMerchant;