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 { register, setValue, control, handleSubmit } = useForm({
defaultValues: {
industry: '',
companyType: '',
name: '',
taxName: '',
npwp: '',
alamat_wajib_pajak:'',
}
})
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.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 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
}
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)()
}
return (
<>