import { useEffect } from 'react'; import './Invoice.css'; import { useParams } from 'react-router-dom'; import { useGetInvoiceDetail } from '../pages/receipts/hooks/useReceiptData'; import { useGetProfile } from '../pages/profile/hooks/useProfileData'; import moment from 'moment-jalaali'; import { NumberFormat } from '../config/func'; import { ReceiptDetailItemType } from '../pages/receipts/types/ReceiptTypes'; import SignImage from '../assets/images/sign.png' import { useTranslation } from 'react-i18next'; import Button from './Button'; import { Printer } from 'iconsax-react'; const Invoice = () => { const { t } = useTranslation('global') const { id } = useParams(); const getInvoice = useGetInvoiceDetail(id ? id : ''); const getProfile = useGetProfile(); useEffect(() => { const handleResize = () => { try { const mvp = document.getElementById('vp'); if (!mvp) return; if (screen.width >= 300 && screen.width < 500) { mvp.setAttribute('content', 'initial-scale=0.35,width=device-width'); } else if (screen.width > 500 && screen.width < 600) { mvp.setAttribute('content', 'initial-scale=0.6,width=device-width'); } else if (screen.width > 600 && screen.width < 700) { mvp.setAttribute('content', 'initial-scale=0.7,width=device-width'); } } catch (e) { console.error('Error setting viewport:', e); } }; handleResize(); window.addEventListener('resize', handleResize); return () => { window.removeEventListener('resize', handleResize); }; }, []); const handlePrint = () => { // Add print-specific styles before printing const style = document.createElement('style'); style.innerHTML = ` @media print { @page { margin: 0; } body * { visibility: hidden; } .invoice-container, .invoice-container * { visibility: visible; } } `; document.head.appendChild(style); window.print(); document.head.removeChild(style); }; if (getInvoice.isPending || getProfile.isPending) { return
; } const invoice = getInvoice.data?.data?.invoice; const profile = getProfile.data?.data?.user; return (

{invoice?.status === 'PAID' ? 'فاکتور (پرداخت شده)' : 'پیش فاکتور (پرداخت نشده)'}

فروشندده
فروشنده: رسا نگاره داناک شناسه ملی: ۱۴۰۰۵۴۵۳۱۹۰ شماره ثبت: ۴۸۳۵۱۶ شماره اقتصادی: ۱۴۰۰۵۴۵۳۱۹۰
نشانی شرکت:تهران - یوسف آباد - خیابان فتحی شقاقی - پلاک ۵ - واحد ۱۳ کدپستی: ۱۴۳۳۶۳۴۴۴۶ تلفن و فکس: ۰۲۱۹۱۶۹۳۵۳۳
شماره فاکتور:
{moment(invoice?.createdAt).format('jYYYY') + invoice?.numericId}
تاریخ:
{moment(invoice?.createdAt).format('jYYYY/jMM/jDD')}
پیگیری:
{invoice?.numericId}
خریدار
خریدار: {profile?.financialType === 'LEGAL' ? profile?.legalUser?.registrationName : `${profile?.firstName} ${profile?.lastName}`} شناسه ملی: {profile?.nationalCode || '-'} شماره ثبت: {profile?.financialType === 'LEGAL' ? profile?.legalUser?.registrationCode : '-'} شماره اقتصادی: {profile?.financialType === 'LEGAL' ? profile?.legalUser?.economicCode : '-'}
نشانی: {profile?.financialType === 'LEGAL' ? profile?.legalUser?.address?.fullAddress : profile?.address?.fullAddress || '-'} کدپستی: {profile?.financialType === 'LEGAL' ? profile?.legalUser?.address?.postalCode : profile?.address?.postalCode || '-'} تلفن: {profile?.phone || '-'}
نوع شخص:
{profile?.financialType === 'LEGAL' ? 'حقوقی' : 'حقیقی'}
وضعیت:
{t(`receip.${invoice?.status}`)}
تاریخ پرداخت:
{invoice?.paidAt ? moment(invoice?.paidAt).format('jYYYY/jMM/jDD') : '-'}
{invoice?.items?.map((item: ReceiptDetailItemType, index: number) => ( ))}
ردیف شناسه کالا یا خدمت شرح کالا یا خدمت تعداد مبلغ واحد (ریال) مبلغ کل (ریال) تخفیف (درصد) جریمه دیرکرد مبلغ کل پس از تخفیف (ریال) جمع مالیات و عوارض ارزش افزوده (ریال) جمع کل پس از تخفیف و مالیات و عوارض (ریال)
{index + 1} 2720000114542 {item.name} {item.count} {NumberFormat(Number(item.unitPrice) * 10)} {NumberFormat(Number(item.unitPrice) * Number(item.count) * 10)} {NumberFormat(Number(item.discount))} {NumberFormat(Number(invoice?.lateFee) * 10)} {NumberFormat(Number(item.totalPrice) * 10)} {NumberFormat(Number(item.totalPrice) * 0.1 * 10)} {NumberFormat(Number(item.totalPrice) * 0.1 * 10 + Number(item.totalPrice) * 10)}
جمع کل پس از کسر تخفیف با احتساب مالیات و عوارض (ریال): {NumberFormat(Number(invoice?.totalPrice) * 10)}
اعتبار مالیاتی قابل استفاده توسط خریدار
مهر و امضای فروشنده:
تاریخ خرید:
{invoice?.paidAt ? moment(invoice?.paidAt).format('jYYYY/jMM/jDD') : '-'}
); }; export default Invoice;