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 { yupResolver } from '@hookform/resolvers/yup';
import * as Yup from 'yup';
import SwitchAccount from '@/lib/auth/components/SwitchAccount';
import { Checkbox } from '@chakra-ui/react';
const CompanyProfile = () => {
const [changeConfirmation, setChangeConfirmation] = useState(false);
const [changeType, setChangeType] = useState(false);
const [isChecked, setIsChecked] = useState(false);
const [company_type, setCompany_type] = useState('nonpkp');
const auth = useAuth();
const [isOpen, setIsOpen] = useState(false);
const toggle = () => setIsOpen(!isOpen);
const {
register,
formState: { errors },
setValue,
control,
handleSubmit,
} = useForm({
resolver: yupResolver(validationSchema),
defaultValues,
});
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 [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();
}, []);
useEffect(() => {
const loadProfile = async () => {
const dataProfile = await addressApi({
id: auth?.company
? auth.parentId
? auth.parentId
: auth.partnerId
: auth.partnerId,
});
setCompany_type(dataProfile?.companyType);
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);
setValue('company_type', dataProfile?.companyType);
setValue('email_bisnis', dataProfile.email);
setValue('mobile_bisnis', dataProfile.mobile);
};
if (auth) loadProfile();
}, [auth, setValue]);
const onSubmitHandler = async (values) => {
if (changeConfirmation) {
const data = {
...values,
id_user: auth.partnerId,
company_type_id: values.companyType,
industry_id: values.industry,
tax_name: values.taxName,
alamat_lengkap_text: values.alamat_wajib_pajak,
street: values.alamat_bisnis,
email: values.email_bisnis,
mobile: values.mobile_bisnis,
};
const isUpdated = await odooApi(
'PUT',
`/api/v1/partner/${auth.parentId}`,
data
);
if (isUpdated?.id) {
toast.success('Berhasil mengubah profil', { duration: 1500 });
return;
}
toast.error('Terjadi kesalahan internal');
}
};
const handleConfirmSubmit = () => {
setChangeConfirmation(false);
handleSubmit(onSubmitHandler)();
};
const handleConfirmSubmitType = () => {
setChangeType(false);
setIsChecked(true);
setIsOpen(!isOpen);
};
const handleChange = async () => {
if (isChecked) {
setIsChecked(!isChecked);
setIsOpen(!isOpen);
} else {
setIsChecked(!isChecked);
setChangeType(true);
}
};
return (
<>
Ubah ke akun PKP