import { FC, useState } from 'react' import { useTranslation } from 'react-i18next' import { useParams } from 'react-router-dom' import { useApplyDiscount, useGetInvoiceDetail, useRemoveDiscount } from './hooks/useReceiptData' import { ApplyDiscountType, ReceiptDetailItemType } from './types/ReceiptTypes' import { NumberFormat } from '../../config/func' import moment from 'moment-jalaali' import PageLoading from '../../components/PageLoading' import LegalInfo from './components/LegalInfo' import RealInfo from './components/RealInfo' import RegisterInfo from './components/RegisterInfo' import { clx } from '../../helpers/utils' import Button from '../../components/Button' import ApproveInvoice from './components/ApproveInvoice' import PayInvoice from './components/PayInvoice' import Input from '../../components/Input' import { Helmet } from 'react-helmet-async' import { useGetProfile } from '../profile/hooks/useProfileData' import { toast } from 'react-toastify' import { ErrorType } from '../../helpers/types' const ReceiptsDetail: FC = () => { const { id } = useParams() const { t } = useTranslation('global') const [code, setCode] = useState('') const getProfile = useGetProfile() const getInvoce = useGetInvoiceDetail(id ? id : '') const applyDiscount = useApplyDiscount() const removeDiscount = useRemoveDiscount() const handleApplyDiscount = () => { const params: ApplyDiscountType = { id: id ? id : '', code: code } applyDiscount.mutate(params, { onSuccess: () => { toast.success(t('receip.discount_applied')) getInvoce.refetch() }, onError: (error: ErrorType) => { toast.error(error?.response?.data?.error?.message[0]) } }) } const handleRemoveDiscount = () => { removeDiscount.mutate({ id: id ? id : '' }, { onSuccess: () => { toast.success(t('receip.discount_removed')) getInvoce.refetch() }, onError: (error: ErrorType) => { toast.error(error?.response?.data?.error?.message[0]) } }) } return (
داناک | صورتحساب
{t('receip.detail_account')}
{ !getInvoce.data?.data?.invoice?.discount && ['PENDING', 'APPROVED', 'WAIT_PAYMENT'].includes(getInvoce.data?.data?.invoice?.status) ?
setCode(e.target.value)} />
: getInvoce.data?.data?.invoice?.discount &&
}
{ getInvoce.isPending || getProfile.isPending ? :
{t('receip.personal_information')}
{ getProfile.data?.data?.user?.financialType === 'LEGAL' ? : getProfile.data?.data?.user?.financialType === 'REAL' ? : }
{t('receip.detail_receip')}
{t('receip.description')}
{t('receip.price')}
{ getInvoce.data?.data?.invoice?.items?.map((item: ReceiptDetailItemType) => { return (
{item.name} {item.count} عدد
{NumberFormat(item.totalPrice)} تومان
) }) }
۱۰٪ ارزش افزوده
{NumberFormat(getInvoce.data?.data?.invoice?.tax)} تومان
جمع کل
{ getInvoce.data?.data?.invoice?.originalPrice !== getInvoce.data?.data?.invoice?.totalPrice && ( <>{NumberFormat(getInvoce.data?.data?.invoice?.originalPrice)} ) } {NumberFormat(getInvoce.data?.data?.invoice?.totalPrice)} تومان
{ getInvoce.data?.data?.invoice?.status === 'PAID' &&

{t('receip.thank_pay_1')}

{t('receip.thank_pay_2')}

}
{t('receip.receip_information')}
{t(`receip.${getInvoce.data?.data?.invoice?.status}`)}
{t('receip.date_factor')}
{moment(getInvoce.data?.data?.invoice?.createdAt).format('jYYYY-jMM-jDD')}
{t('receip.due_date')}
{moment(getInvoce.data?.data?.invoice?.dueDate).format('jYYYY-jMM-jDD')}
{t('receip.factor_number')}
{moment(getInvoce.data?.data?.invoice.createdAt).format('jYYYY') + getInvoce.data?.data?.invoice.numericId}
{t('receip.status_factor')}
{t(`receip.${getInvoce.data?.data?.invoice?.status}`)}
{ getInvoce.data?.data?.invoice?.status === 'WAIT_PAYMENT' &&
}
}
) } export default ReceiptsDetail