diff --git a/src/components/Select.tsx b/src/components/Select.tsx index 7a03b4c..d42a569 100644 --- a/src/components/Select.tsx +++ b/src/components/Select.tsx @@ -42,7 +42,10 @@ const Select: FC = (props: Props) => { }) } - + { props.error_text && props.error_text !== '' ?
diff --git a/src/config/Pages.ts b/src/config/Pages.ts index de2c9be..debb072 100644 --- a/src/config/Pages.ts +++ b/src/config/Pages.ts @@ -12,8 +12,9 @@ export const Pages = { }, transactions: "/transactions", receipts: { - index: "/receipts", - detail: "/receipts/", + index: "/receipts/list", + detail: "/receipts/detail/", + create: "/receipts/create", }, ticket: { list: "/tickets", diff --git a/src/config/SideBarSubMenu.ts b/src/config/SideBarSubMenu.ts index 3084413..8f4557a 100644 --- a/src/config/SideBarSubMenu.ts +++ b/src/config/SideBarSubMenu.ts @@ -1,7 +1,7 @@ export const SideBarItemHasSubMenu = [ "services", "customers", - "receipt", + "receipts", "users", "transactions", ]; diff --git a/src/langs/fa.json b/src/langs/fa.json index dff8bfb..db70e0b 100644 --- a/src/langs/fa.json +++ b/src/langs/fa.json @@ -162,7 +162,9 @@ "update_sms": "به روزرسانی این تیکت از طریق پیامک اطلاع داده میشود" }, "receip": { + "receips": "صورتحساب ها", "receip_list": "لیست صورتحساب ها", + "add_receip": "افزودن صورتحساب", "dont_pay": "پرداخت نشده", "dont_confrim": "تایید نشده", "paid": "پرداخت شده", @@ -191,7 +193,19 @@ "date_factor": "تاریخ صدور فاکتور", "due_date": "تاریخ سررسید فاکتور", "factor_number": "شماره فاکتور", - "status_factor": "وضعیت فاکتور" + "status_factor": "وضعیت فاکتور", + "submit_receip": "ثبت صورتحساب", + "customer_information": "اطلاعات مشتری", + "customer": "مشتری", + "receipt_information": "اطلاعات صورتحساب", + "number": "شماره", + "product_name": "نام کالا", + "count": "تعداد", + "unit_amount": "مبلغ واحد", + "discount": "تخفیف(٪)", + "total_amount": "مبلغ کل(ریال)", + "tax": "مالیات بر ارزش افزوده (۰.۹ درصد)", + "total": "جمع" }, "edit": "ویرایش", "transaction": { diff --git a/src/pages/receipts/Create.tsx b/src/pages/receipts/Create.tsx new file mode 100644 index 0000000..d3cb775 --- /dev/null +++ b/src/pages/receipts/Create.tsx @@ -0,0 +1,224 @@ +import { FC } from 'react' +import { useTranslation } from 'react-i18next' +import Button from '../../components/Button' +import { Add, TickCircle, TickSquare } from 'iconsax-react' +import Select from '../../components/Select' +import Input from '../../components/Input' + +const CreateReceipt: FC = () => { + + const { t } = useTranslation('global') + + return ( +
+
+
+ {t('receip.add_receip')} +
+
+ +
+
+ +
+
+
+ {t('receip.customer_information')} +
+ +
+
+ +
+ +
+
+ {t('receip.count')} +
+ +
+ +
+
+ {t('receip.unit_amount')} +
+ +
+ +
+
+ {t('receip.discount')} +
+ +
+ +
+
+ {t('receip.total_amount')} +
+ +
+ +
+ +
+
+ +
+
+
+ {t('receip.tax')} +
+
+ 100,000 +
+
+
+
+ {t('receip.total')} +
+
+ 100,000 +
+
+
+ +
+ +
+
+ {t('ticket.title_hint')} +
+ +
+
+
+ +
+
+ سوالات - مشکلاتی که به یک موضوع مربوط میشوند را در یک درخواست پشتیبانی پیگیر باشید و چند درخواست برای یک موضوع باز نکنید. +
+
+
+
+ +
+
+ لطفاً برای بررسی و رفع مشکلات احتمالی صبور باشید بررسی و رفع مشکلات در برخی موارد زمان گیر است. +
+
+
+
+ +
+
+ پاسخگویی 24 ساعته تلفنی را تنها از میهن وب هاست می توانید انتظار داشته باشید .بخش پشتیبانی در هر ساعتی حتی در روز های تعطیل آماده پیگیری سریع مشکلات کاربران است. +
+
+
+
+
+
+ ) +} + +export default CreateReceipt \ No newline at end of file diff --git a/src/router/Main.tsx b/src/router/Main.tsx index e31375a..6a2c2dc 100644 --- a/src/router/Main.tsx +++ b/src/router/Main.tsx @@ -23,6 +23,7 @@ import AnnouncementDetail from '../pages/annoncement/Detail' import DetailService from '../pages/service/DetailService' import { clx } from '../helpers/utils' import { useSharedStore } from '../shared/store/sharedStore' +import CreateReceipt from '../pages/receipts/Create' const MainRouter: FC = () => { @@ -51,6 +52,7 @@ const MainRouter: FC = () => { } /> } /> } /> + } /> } /> } /> } /> diff --git a/src/shared/Header.tsx b/src/shared/Header.tsx index 78848b1..e1e404c 100644 --- a/src/shared/Header.tsx +++ b/src/shared/Header.tsx @@ -14,7 +14,7 @@ const Header: FC = () => { const { setOpenSidebar, openSidebar } = useSharedStore() return ( -
+
{ @@ -43,8 +44,6 @@ const SideBar: FC = () => { const iconSizeSideBar = 20 - console.log(openSidebar); - return ( <> @@ -252,7 +251,9 @@ const SideBar: FC = () => { : subMenuName === 'transactions' ? - : null + : subMenuName === 'receipts' ? + + : null }
} diff --git a/src/shared/components/ReceiptSubMenu.tsx b/src/shared/components/ReceiptSubMenu.tsx new file mode 100644 index 0000000..d86c205 --- /dev/null +++ b/src/shared/components/ReceiptSubMenu.tsx @@ -0,0 +1,46 @@ +import { Receipt21 } from 'iconsax-react' +import { FC } from 'react' +import { useTranslation } from 'react-i18next' +import SubMenuItem from './SubMenuItem' +import { useLocation } from 'react-router-dom' +import { Pages } from '../../config/Pages' + +const ReceiptSubMenu: FC = () => { + + const location = useLocation() + const { t } = useTranslation('global') + + const isActive = (name: string) => { + return location.pathname.includes(name) + } + + return ( +
+
+ +
+ {t('receip.receips')} +
+
+ +
+ + +
+
+ ) +} + +export default ReceiptSubMenu \ No newline at end of file diff --git a/src/shared/components/SubMenuItem.tsx b/src/shared/components/SubMenuItem.tsx index 3a81f45..59451f4 100644 --- a/src/shared/components/SubMenuItem.tsx +++ b/src/shared/components/SubMenuItem.tsx @@ -12,14 +12,14 @@ type Props = { const SubMenuItem: FC = (props: Props) => { return (
{props.title}