From 4c8469dd5088ab207b1addb12b02891f3b678462 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 14 Apr 2023 10:37:04 +0700 Subject: kunjungan sales & pembayaran tempo --- src/lib/form/components/CreatePembayaranTempo.jsx | 131 ----------- src/lib/form/components/KunjunganSales.jsx | 256 +++++++++++----------- src/lib/form/components/PembayaranTempo.jsx | 154 +++++++++++++ 3 files changed, 287 insertions(+), 254 deletions(-) delete mode 100644 src/lib/form/components/CreatePembayaranTempo.jsx create mode 100644 src/lib/form/components/PembayaranTempo.jsx (limited to 'src/lib/form/components') diff --git a/src/lib/form/components/CreatePembayaranTempo.jsx b/src/lib/form/components/CreatePembayaranTempo.jsx deleted file mode 100644 index 63a013aa..00000000 --- a/src/lib/form/components/CreatePembayaranTempo.jsx +++ /dev/null @@ -1,131 +0,0 @@ -import HookFormSelect from '@/core/components/elements/Select/HookFormSelect' -import getFileBase64 from '@/core/utils/getFileBase64' -import { yupResolver } from '@hookform/resolvers/yup' -import React, { useRef } 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' - -const CreatePembayaranTempo = () => { - const { - register, - handleSubmit, - formState: { errors } - } = useForm({ - resolver: yupResolver(validationSchema), - defaultValues - }) - - const recaptchaRef = useRef(null) - const npwp = useRef(null) - - const onSubmitHandler = async (values) => { - const recaptchaValue = recaptchaRef.current.getValue() - if (!recaptchaValue) { - toast.error('Catcha harus diisi') - return - } - const data = { - ...values, - name : 'Pengajuan Pembayaran Tempo - ' + values.name, - file_npwp : values.npwp.length > 0 ? await getFileBase64(values.npwp) : '' - } - - console.log('ini adalah data', data) - - // const address = await createLeadsApi({ data }) - // if (address?.id) { - // toast.success('Berhasil menambahkan alamat') - // router.back() - // } - } - return ( -
-

Pembayaran Tempo

-
-
-
-
- - -
{errors.email?.message}
-
-
-
-
- - -
{errors.name?.message}
-
-
-
-
- - -
{errors.npwp?.message}
-
-
-
-
- - -
-
-
-
- - - {/*
{errors.name?.message}
*/} -
-
-
-
- - - {/*
{errors.name?.message}
*/} -
-
- -
-
- -
-
-
-
- -
-
-
-
-
- ) -} -const validationSchema = Yup.object().shape({ - name: Yup.string().min(3, 'Minimal 3 karakter').required('Harus di-isi'), - email: Yup.string().email('Format harus seperti contoh@email.com').required('Harus di-isi'), - npwp: Yup.string().required('Harus di-isi') -}) -const defaultValues = { - name: '', - email: '', - npwp: '', - siup: '', - tdp: '', - nib: '' -} - -export default CreatePembayaranTempo diff --git a/src/lib/form/components/KunjunganSales.jsx b/src/lib/form/components/KunjunganSales.jsx index b96fddb5..14a14d7d 100644 --- a/src/lib/form/components/KunjunganSales.jsx +++ b/src/lib/form/components/KunjunganSales.jsx @@ -1,3 +1,4 @@ +import odooApi from '@/core/api/odooApi' import HookFormSelect from '@/core/components/elements/Select/HookFormSelect' import cityApi from '@/lib/address/api/cityApi' import { yupResolver } from '@hookform/resolvers/yup' @@ -6,183 +7,192 @@ 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 createLeadApi from '../api/createLeadApi' -const CreateKunjunganSales = () => { +const KunjunganSales = () => { const { register, handleSubmit, formState: { errors }, - control + control, + reset } = useForm({ resolver: yupResolver(validationSchema), defaultValues }) const [cities, setCities] = useState([]) - const [company_unit, setCompany_unit] = useState([]) + const [companyTypes, setCompanyTypes] = useState([]) const recaptchaRef = useRef(null) useEffect(() => { const loadCities = async () => { let dataCities = await cityApi() - dataCities = dataCities.map((city) => ({ value: city.id, label: city.name })) + dataCities = dataCities.map((obj) => ({ value: obj.name, label: obj.name })) setCities(dataCities) } + const loadCompanyTypes = async () => { + const dataCompanyTypes = await odooApi('GET', '/api/v1/partner/company_type') + setCompanyTypes(dataCompanyTypes?.map((obj) => ({ value: obj.name, label: obj.name }))) + } + + loadCompanyTypes() loadCities() }, []) const onSubmitHandler = async (values) => { const recaptchaValue = recaptchaRef.current.getValue() if (!recaptchaValue) { - toast.error('Catcha harus diisi') + toast.error('Recaptcha harus diisi') return } + + const descriptions = [ + `Nama Perusahaan: ${values.company}`, + `No. Telepon: ${values.phone}`, + `Alamat Lengkap: ${values.address}`, + `Kota: ${values.city}`, + `Unit Perusahaan: ${values.companyType}`, + `No. Handphone: ${values.mobile}`, + `Alamat Email: ${values.email}`, + `Keterangan: ${values.description}` + ] + const data = { - ...values + name: `Permintaan Kunjungan Sales - ${values.company}`, + email_from: values.email, + phone: values.phone, + description: descriptions.join('\n') } - const address = await createAddressApi({ data }) - if (address?.id) { - toast.success('Berhasil menambahkan alamat') - router.back() + const createLead = await createLeadApi({ data }) + if (createLead) { + toast.success('Berhasil mengirimkan formulir kunjungan sales') + reset() + recaptchaRef.current.reset() } } return (

Kunjungan Sales

-
-