From f09e8219b1a24a1b8ff1ead2be9bd863552cef7c Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sat, 25 Oct 2025 17:28:18 +0330 Subject: [PATCH] invoice detail --- src/pages/invoice/Detail.tsx | 199 +++++++++++++++++++++++++++++++++++ src/router/MainRouter.tsx | 2 + 2 files changed, 201 insertions(+) create mode 100644 src/pages/invoice/Detail.tsx diff --git a/src/pages/invoice/Detail.tsx b/src/pages/invoice/Detail.tsx new file mode 100644 index 0000000..0dc631e --- /dev/null +++ b/src/pages/invoice/Detail.tsx @@ -0,0 +1,199 @@ +import { type FC } from 'react' +import { Helmet } from 'react-helmet-async' +import { Printer, TickCircle } from 'iconsax-react' +import Button from '@/components/Button' +import Table from '@/components/Table' +import type { RowDataType } from '@/components/types/TableTypes' + +interface InvoiceItem extends RowDataType { + id: number + image: string | null + title: string + quantity: string + unitPrice: string + discount: string + totalPrice: string + confirmed: boolean +} + +const InvoiceDetail: FC = () => { + + const invoiceData = { + invoiceNumber: '#۱۲۳۴۵', + confirmDate: '۱۴۰۴/۰۵/۰۳', + customerName: 'آلومینیوم نوین', + orderDate: '۱۴۰۴/۰۵/۰۳', + phoneNumber: '۰۸۶۳۳۲۳۳۳۴۵', + orderNumber: '۰۹۱۲۳۴۵۶۷۸۹', + address: 'لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است.لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ، و با استفاده از طراحان گرافیک است.', + } + + const items: InvoiceItem[] = [ + { + id: 1, + image: null, + title: 'شاپینگ بک : پوشش UV برای و پوشش سلفون مات و UV برای و پرجسته', + quantity: '۲۰۰۰', + unitPrice: '۳,۲۰۵,۰۰۰ ریال', + discount: '۱۰٪', + totalPrice: '۸,۸۵۰,۰۰۰,۰۰۰ ریال', + confirmed: true + }, + { + id: 2, + image: null, + title: 'شاپینگ بک : پوشش UV برای و پوشش سلفون مات و UV برای و پرجسته', + quantity: '۱۰۰۰', + unitPrice: '۳,۲۰۵,۰۰۰ ریال', + discount: '۰', + totalPrice: '۳,۲۰۵,۰۰۰,۰۰۰ ریال', + confirmed: true + } + ] + + const handlePrint = () => { + window.print() + } + + const columns = [ + { + key: 'title', + title: 'عنوان', + render: (item: InvoiceItem) => ( +
+
{item.title}
+
+ ) + }, + { + key: 'quantity', + title: 'تعداد', + render: (item: InvoiceItem) => ( +
+
{item.quantity}
+
+ ) + }, + { + key: 'unitPrice', + title: 'مبلغ واحد', + render: (item: InvoiceItem) => ( +
+
{item.unitPrice}
+
+ ) + }, + { + key: 'discount', + title: 'تخفیف', + render: (item: InvoiceItem) => ( +
+
{item.discount}
+
+ ) + }, + { + key: 'totalPrice', + title: 'مبلغ کل', + render: (item: InvoiceItem) => ( +
+
{item.totalPrice}
+
+ ) + }, + { + key: 'image', + title: '', + render: () => ( + + + ) + } + ] + + return ( +
+ + داناک | صورت حساب {invoiceData.invoiceNumber} + + + {/* Header */} +
+
+ صورت حساب {invoiceData.invoiceNumber} +
+
+ + +
+
+ + {/* بخش اول: اطلاعات صورت حساب */} +
+
اطلاعات صورت حساب
+ +
+
+ تاریخ ایجاد سفارش : + {invoiceData.orderDate} +
+
+ شماره همراه: + {invoiceData.orderNumber} +
+
+ تاریخ تایید پیش فاکتور: + {invoiceData.confirmDate} +
+
+ مشتری: + {invoiceData.customerName} +
+
+ شماره ثابت: + {invoiceData.phoneNumber} +
+
+ +
+ آدرس: + {invoiceData.address} +
+
+ + {/* بخش دوم: اقلام درخواستی */} +
+
اقلام درخواستی
+ + + + {/* Notes Section */} +
+
+
۱- تمام تحویل‌ها، سفارشات با تاکیب مناسب و منعطف، ۱۵ می باشد و مبلغ نهایی براساس تراز نهایی محاسبه می‌گردد.
+
۲- سفارشات چاپی با اختلاف رنگ ۱۰ الی ۱۵ درصد یا قابل طراحی شده می‌باشد
+
+
+ + + ) +} + +export default InvoiceDetail diff --git a/src/router/MainRouter.tsx b/src/router/MainRouter.tsx index 6ec09cc..dd76ca9 100644 --- a/src/router/MainRouter.tsx +++ b/src/router/MainRouter.tsx @@ -16,6 +16,7 @@ import AnnouncementDetail from '@/pages/annoncement/Detail' import AddCriticisms from '@/pages/criticisms/Add' import LearningList from '@/pages/learning/List' import LearningDetail from '@/pages/learning/Detail' +import InvoiceDetail from '@/pages/invoice/Detail' const MainRouter: FC = () => { return ( @@ -41,6 +42,7 @@ const MainRouter: FC = () => { } /> } /> } /> + } />