From f5477dc98ce5da703ff27b4a05d5ba59e4c5298e Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Mon, 26 Aug 2024 13:19:23 +0700 Subject: change v1 to v2 API --- src/lib/auth/api/registerApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lib/auth') diff --git a/src/lib/auth/api/registerApi.js b/src/lib/auth/api/registerApi.js index f9413f8c..580960d4 100644 --- a/src/lib/auth/api/registerApi.js +++ b/src/lib/auth/api/registerApi.js @@ -1,7 +1,7 @@ import odooApi from '@/core/api/odooApi' const registerApi = async ({ ...data }) => { - const dataRegister = await odooApi('POST', '/api/v1/user/register', data) + const dataRegister = await odooApi('POST', '/api/v2/user/register', data) return dataRegister } -- cgit v1.2.3 From 6e02e43d6df8b73a61ab59502abe941aeb83f799 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Mon, 26 Aug 2024 14:32:45 +0700 Subject: change v2 to v1 api --- src/lib/auth/api/registerApi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/lib/auth') diff --git a/src/lib/auth/api/registerApi.js b/src/lib/auth/api/registerApi.js index 580960d4..f9413f8c 100644 --- a/src/lib/auth/api/registerApi.js +++ b/src/lib/auth/api/registerApi.js @@ -1,7 +1,7 @@ import odooApi from '@/core/api/odooApi' const registerApi = async ({ ...data }) => { - const dataRegister = await odooApi('POST', '/api/v2/user/register', data) + const dataRegister = await odooApi('POST', '/api/v1/user/register', data) return dataRegister } -- cgit v1.2.3 From 555de668c83b44679af9ef34f3624a55b372cfce Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 4 Sep 2024 16:07:38 +0700 Subject: update new register edit data --- src/lib/auth/components/CompanyProfile.jsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index 2faede9b..a4c25e40 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -20,6 +20,7 @@ const CompanyProfile = () => { npwp: '' } }) + console.log("auth",auth) const [industries, setIndustries] = useState([]) useEffect(() => { @@ -42,11 +43,13 @@ const CompanyProfile = () => { useEffect(() => { const loadProfile = async () => { const dataProfile = await addressApi({ id: auth.parentId }) + console.log("dataProfile",dataProfile) setValue('name', dataProfile.name) setValue('industry', dataProfile.industryId) setValue('companyType', dataProfile.companyTypeId) setValue('taxName', dataProfile.taxName) setValue('npwp', dataProfile.npwp) + setValue('alamat_wajib_pajak', dataProfile.alamatWajibPajak) } if (auth) loadProfile() }, [auth, setValue]) @@ -54,9 +57,11 @@ const CompanyProfile = () => { const onSubmitHandler = async (values) => { const data = { ...values, + id_user:auth.partnerId, company_type_id: values.companyType, industry_id: values.industry, - tax_name: values.taxName + tax_name: values.taxName, + alamat_lengkap_text:values.alamat_wajib_pajak } const isUpdated = await odooApi('PUT', `/api/v1/partner/${auth.parentId}`, data) if (isUpdated?.id) { @@ -117,6 +122,9 @@ const CompanyProfile = () => {
+
+ +
+ + + {isOpen && ( -
+ { + e.preventDefault() + setChangeConfirmation(true) + }}>
-- cgit v1.2.3 From 4d9200650d232e4302f7e01df96751c3f9412693 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 6 Sep 2024 16:20:51 +0700 Subject: update data api --- src/lib/auth/components/CompanyProfile.jsx | 1 + 1 file changed, 1 insertion(+) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index 581c32b0..e37decc9 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -59,6 +59,7 @@ const CompanyProfile = () => { if(changeConfirmation){ const data = { ...values, + id_user:auth.partnerId, company_type_id: values.companyType, industry_id: values.industry, tax_name: values.taxName, -- cgit v1.2.3 From 499954a8be814850103eece2dbd0306d6246989d Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Thu, 12 Sep 2024 15:12:42 +0700 Subject: update new register --- src/lib/auth/components/CompanyProfile.jsx | 179 ++++++++++++++++++----------- 1 file changed, 113 insertions(+), 66 deletions(-) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index e37decc9..fc3d149b 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -1,18 +1,18 @@ -import odooApi from '@/core/api/odooApi' -import HookFormSelect from '@/core/components/elements/Select/HookFormSelect' -import useAuth from '@/core/hooks/useAuth' -import addressApi from '@/lib/address/api/addressApi' -import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline' -import { useEffect, useState } from 'react' -import { Controller, useForm } from 'react-hook-form' -import { toast } from 'react-hot-toast' -import BottomPopup from '@/core/components/elements/Popup/BottomPopup' +import odooApi from '@/core/api/odooApi'; +import HookFormSelect from '@/core/components/elements/Select/HookFormSelect'; +import useAuth from '@/core/hooks/useAuth'; +import addressApi from '@/lib/address/api/addressApi'; +import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline'; +import { useEffect, useState } from 'react'; +import { Controller, useForm } from 'react-hook-form'; +import { toast } from 'react-hot-toast'; +import BottomPopup from '@/core/components/elements/Popup/BottomPopup'; const CompanyProfile = () => { - const [changeConfirmation, setChangeConfirmation] = useState(false) - const auth = useAuth() - const [isOpen, setIsOpen] = useState(false) - const toggle = () => setIsOpen(!isOpen) + const [changeConfirmation, setChangeConfirmation] = useState(false); + const auth = useAuth(); + const [isOpen, setIsOpen] = useState(false); + const toggle = () => setIsOpen(!isOpen); const { register, setValue, control, handleSubmit } = useForm({ defaultValues: { industry: '', @@ -20,64 +20,78 @@ const CompanyProfile = () => { name: '', taxName: '', npwp: '', - alamat_wajib_pajak:'', - } - }) + alamat_wajib_pajak: '', + }, + }); - const [industries, setIndustries] = useState([]) + const [industries, setIndustries] = useState([]); useEffect(() => { const loadIndustries = async () => { - const dataIndustries = await odooApi('GET', '/api/v1/partner/industry') - setIndustries(dataIndustries?.map((o) => ({ value: o.id, label: o.name }))) - } - loadIndustries() - }, []) + const dataIndustries = await odooApi('GET', '/api/v1/partner/industry'); + setIndustries( + dataIndustries?.map((o) => ({ value: o.id, label: o.name })) + ); + }; + loadIndustries(); + }, []); - const [companyTypes, setCompanyTypes] = useState([]) + const [companyTypes, setCompanyTypes] = useState([]); useEffect(() => { const loadCompanyTypes = async () => { - const dataCompanyTypes = await odooApi('GET', '/api/v1/partner/company_type') - setCompanyTypes(dataCompanyTypes?.map((o) => ({ value: o.id, label: o.name }))) - } - loadCompanyTypes() - }, []) + const dataCompanyTypes = await odooApi( + 'GET', + '/api/v1/partner/company_type' + ); + setCompanyTypes( + dataCompanyTypes?.map((o) => ({ value: o.id, label: o.name })) + ); + }; + loadCompanyTypes(); + }, []); useEffect(() => { const loadProfile = async () => { - const dataProfile = await addressApi({ id: auth.parentId }) - setValue('name', dataProfile.name) - setValue('industry', dataProfile.industryId) - setValue('companyType', dataProfile.companyTypeId) - setValue('taxName', dataProfile.taxName) - setValue('npwp', dataProfile.npwp) - setValue('alamat_wajib_pajak', dataProfile.alamatWajibPajak) - } - if (auth) loadProfile() - }, [auth, setValue]) + const dataProfile = await addressApi({ id: auth.parentId }); + console.log('dataProfile', dataProfile); + setValue('name', dataProfile.name); + setValue('industry', dataProfile.industryId); + setValue('companyType', dataProfile.companyTypeId); + setValue('taxName', dataProfile.taxName); + setValue('npwp', dataProfile.npwp); + setValue('alamat_wajib_pajak', dataProfile.alamatWajibPajak); + setValue('alamat_bisnis', dataProfile.alamatBisnis); + }; + if (auth) loadProfile(); + }, [auth, setValue]); const onSubmitHandler = async (values) => { - if(changeConfirmation){ + if (changeConfirmation) { const data = { ...values, - id_user:auth.partnerId, + id_user: auth.partnerId, company_type_id: values.companyType, industry_id: values.industry, tax_name: values.taxName, - alamat_lengkap_text:values.alamat_wajib_pajak - } - const isUpdated = await odooApi('PUT', `/api/v1/partner/${auth.parentId}`, data) + alamat_lengkap_text: values.alamat_wajib_pajak, + street: values.alamat_bisnis, + }; + const isUpdated = await odooApi( + 'PUT', + `/api/v1/partner/${auth.parentId}`, + data + ); if (isUpdated?.id) { - toast.success('Berhasil mengubah profil', { duration: 1500 }) - return + toast.success('Berhasil mengubah profil', { duration: 1500 }); + return; } - toast.error('Terjadi kesalahan internal') + toast.error('Terjadi kesalahan internal'); } - } + }; const handleConfirmSubmit = () => { - setChangeConfirmation(false) - handleSubmit(onSubmitHandler)() - } + setChangeConfirmation(false); + handleSubmit(onSubmitHandler)(); + }; return ( <> @@ -106,11 +120,16 @@ const CompanyProfile = () => {
- {isOpen && ( - { - e.preventDefault() - setChangeConfirmation(true) - }}> + { + e.preventDefault(); + setChangeConfirmation(true); + }} + >
} + render={(props) => ( + + )} />
@@ -139,7 +163,9 @@ const CompanyProfile = () => { } + render={(props) => ( + + )} />
@@ -153,14 +179,35 @@ const CompanyProfile = () => {
- +
- - -
- + +
+
+ + +
+
+ +
-- cgit v1.2.3 From ee88c2f776f5dbacfacb78d3a2f04155e0d93a15 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 20 Sep 2024 14:37:00 +0700 Subject: add error handling --- src/lib/auth/components/CompanyProfile.jsx | 86 +++++++++++++----------------- 1 file changed, 38 insertions(+), 48 deletions(-) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index ee9c1f58..6d5790b4 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -7,62 +7,25 @@ import { useEffect, useState } from 'react'; import { Controller, useForm } from 'react-hook-form'; import { toast } from 'react-hot-toast'; import BottomPopup from '@/core/components/elements/Popup/BottomPopup'; +import { yupResolver } from '@hookform/resolvers/yup'; +import * as Yup from 'yup'; const CompanyProfile = () => { const [changeConfirmation, setChangeConfirmation] = useState(false); const auth = useAuth(); const [isOpen, setIsOpen] = useState(false); const toggle = () => setIsOpen(!isOpen); - const { register, setValue, control, handleSubmit } = useForm({ - defaultValues: { - industry: '', - companyType: '', - name: '', - taxName: '', - npwp: '', - alamat_wajib_pajak: '', - alamat_bisnis: '', - }, + const { + register, + formState: { errors }, + setValue, + control, + handleSubmit, + } = useForm({ + resolver: yupResolver(validationSchema), + defaultValues, }); - const formatNpwp = (value) => { - try { - const cleaned = ('' + value).replace(/\D/g, ''); - let match; - if (cleaned.length <= 15) { - match = cleaned.match( - /(\d{0,2})?(\d{0,3})?(\d{0,3})?(\d{0,1})?(\d{0,3})?(\d{0,3})$/ - ); - } else { - match = cleaned.match( - /(\d{0,3})?(\d{0,3})?(\d{0,3})?(\d{0,1})?(\d{0,3})?(\d{0,3})$/ - ); - } - - if (match) { - return [ - match[1], - match[2] ? '.' : '', - match[2], - match[3] ? '.' : '', - match[3], - match[4] ? '.' : '', - match[4], - match[5] ? '-' : '', - match[5], - match[6] ? '.' : '', - match[6], - ].join(''); - } - - // If match is null, return the original cleaned string or handle as needed - return cleaned; - } catch (error) { - // Handle error or return a default value - console.error('Error formatting NPWP:', error); - return value; - } - }; const [industries, setIndustries] = useState([]); useEffect(() => { const loadIndustries = async () => { @@ -91,6 +54,7 @@ const CompanyProfile = () => { useEffect(() => { const loadProfile = async () => { const dataProfile = await addressApi({ id: auth.parentId }); + console.log('dataProfile', dataProfile); setValue('name', dataProfile.name); setValue('industry', dataProfile.industryId); setValue('companyType', dataProfile.companyTypeId); @@ -103,6 +67,7 @@ const CompanyProfile = () => { }, [auth, setValue]); const onSubmitHandler = async (values) => { + console.log('values', values); if (changeConfirmation) { const data = { ...values, @@ -222,6 +187,9 @@ const CompanyProfile = () => { type='text' className='form-input mt-3' /> +
+ {errors.taxName?.message} +
@@ -230,6 +198,9 @@ const CompanyProfile = () => { type='text' className='form-input mt-3' /> +
+ {errors.alamat_wajib_pajak?.message} +
@@ -238,6 +209,9 @@ const CompanyProfile = () => { type='text' className='form-input mt-3' /> +
+ {errors.alamat_bisnis?.message} +
@@ -259,3 +233,19 @@ const CompanyProfile = () => { }; export default CompanyProfile; + +const validationSchema = Yup.object().shape({ + alamat_bisnis: Yup.string().required('Harus di-isi'), + alamat_wajib_pajak: Yup.string().required('Harus di-isi'), + taxName: Yup.string().required('Harus di-isi'), +}); + +const defaultValues = { + industry: '', + companyType: '', + name: '', + taxName: '', + npwp: '', + alamat_wajib_pajak: '', + alamat_bisnis: '', +}; -- cgit v1.2.3 From 5b0a6e9c8660c5cc427a66bd2540206513225075 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 20 Sep 2024 14:41:18 +0700 Subject: delete console log --- src/lib/auth/components/CompanyProfile.jsx | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index 6d5790b4..80b424dc 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -54,7 +54,6 @@ const CompanyProfile = () => { useEffect(() => { const loadProfile = async () => { const dataProfile = await addressApi({ id: auth.parentId }); - console.log('dataProfile', dataProfile); setValue('name', dataProfile.name); setValue('industry', dataProfile.industryId); setValue('companyType', dataProfile.companyTypeId); @@ -67,7 +66,6 @@ const CompanyProfile = () => { }, [auth, setValue]); const onSubmitHandler = async (values) => { - console.log('values', values); if (changeConfirmation) { const data = { ...values, -- cgit v1.2.3 From 09378e8389ad7dcca805e9dde10e26cf097ad97c Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 20 Sep 2024 14:50:01 +0700 Subject: update new register --- src/lib/auth/components/CompanyProfile.jsx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index 80b424dc..9e1dd1f9 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -236,6 +236,9 @@ const validationSchema = Yup.object().shape({ alamat_bisnis: Yup.string().required('Harus di-isi'), alamat_wajib_pajak: Yup.string().required('Harus di-isi'), taxName: Yup.string().required('Harus di-isi'), + npwp: Yup.string().required('Harus di-isi'), + industry: Yup.string().required('Harus di-pilih'), + companyType: Yup.string().required('Harus di-pilih'), }); const defaultValues = { -- cgit v1.2.3 From e7082aec2592932c8f27e4d191476b69aac7475b Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Fri, 20 Sep 2024 14:53:52 +0700 Subject: update --- src/lib/auth/components/CompanyProfile.jsx | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/lib/auth') diff --git a/src/lib/auth/components/CompanyProfile.jsx b/src/lib/auth/components/CompanyProfile.jsx index 9e1dd1f9..606f56ea 100644 --- a/src/lib/auth/components/CompanyProfile.jsx +++ b/src/lib/auth/components/CompanyProfile.jsx @@ -176,6 +176,9 @@ const CompanyProfile = () => { className='form-input' placeholder='Cth: Indoteknik Dotcom Gemilang' /> +
+ {errors.name?.message} +
@@ -219,6 +222,9 @@ const CompanyProfile = () => { className='form-input mt-3' maxLength={16} /> +
+ {errors.npwp?.message} +