import { FC, useEffect, useState } from 'react' import { useTranslation } from 'react-i18next' import { useParams } from 'react-router-dom' import { useApplyDiscount, useGetInvoiceDetail, useRemoveDiscount } from './hooks/useReceiptData' import { ApplyDiscountType, GatewayItemType, ReceiptDetailItemType } from './types/ReceiptTypes' import { NumberFormat } from '../../config/func' import moment from 'moment-jalaali' 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 { toast } from 'react-toastify' import { ErrorType } from '../../helpers/types' // import PDFGenerator from '../../components/PDFGenerator' import { useGetGetWays } from './hooks/useReceiptData' // import { GatewayItemType } from '../wallet/types/WalletTypes' const ReceiptsDetail: FC = () => { const { id } = useParams() const { t } = useTranslation('global') const [code, setCode] = useState('') const [gateWayId, setGateWayId] = useState('') const getInvoce = useGetInvoiceDetail(id ? id : '') const applyDiscount = useApplyDiscount() const removeDiscount = useRemoveDiscount() const getWays = useGetGetWays() 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]) } }) } useEffect(() => { if (getWays.data) { setGateWayId(getWays.data?.data?.paymentGateways?.[0]?.id) } }, [getWays.data]) 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 &&
}
{
{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)} تومان
{t('receip.receip_information')}
{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 === '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' &&
{/* */}
}
{ getWays.data?.data?.paymentGateways?.map((item: GatewayItemType) => { return (
{item.name}
) }) }
}
) } export default ReceiptsDetail