From bc52209be9a344b7d315efd67203702c5d7d8c85 Mon Sep 17 00:00:00 2001 From: AminGhasempoor Date: Sat, 11 May 2024 14:46:09 +0330 Subject: [PATCH] delete machinary and passenger office cartable --- public/locales/fa/app.json | 58 --- .../machinary-office/Buttons/printExcel.jsx | 67 ---- .../machinary-office/Buttons/printReport.jsx | 48 --- .../Form/ConfirmForm/ConfirmContent.jsx | 378 ------------------ .../Form/ConfirmForm/index.jsx | 51 --- .../Form/RejectForm/RejectContent.jsx | 147 ------- .../Form/RejectForm/index.jsx | 25 -- .../Form/ReserveForm/index.jsx | 75 ---- .../Prints/report/Content.jsx | 96 ----- .../machinary-office/Prints/report/index.jsx | 60 --- .../machinary-office/TableRowActions.jsx | 26 -- .../machinary-office/TableToolbar.jsx | 13 - .../dashboard/machinary-office/index.jsx | 331 --------------- .../passenger-office/Buttons/printExcel.jsx | 68 ---- .../Form/ConfirmForm/ConfirmContent.jsx | 135 ------- .../Form/ConfirmForm/index.jsx | 30 -- .../Form/RejectForm/RejectContent.jsx | 123 ------ .../Form/RejectForm/index.jsx | 25 -- .../passenger-office/TableRowActions.jsx | 21 - .../passenger-office/TableToolbar.jsx | 13 - .../dashboard/passenger-office/index.jsx | 186 --------- src/core/data/sidebarMenu.jsx | 22 - .../dashboard/machinery-expert/index.jsx | 21 - .../machinery-expert/prints/report.jsx | 21 - .../passenger-office-chief/index.jsx | 21 - 25 files changed, 2061 deletions(-) delete mode 100644 src/components/dashboard/machinary-office/Buttons/printExcel.jsx delete mode 100644 src/components/dashboard/machinary-office/Buttons/printReport.jsx delete mode 100644 src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx delete mode 100644 src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx delete mode 100644 src/components/dashboard/machinary-office/Form/RejectForm/RejectContent.jsx delete mode 100644 src/components/dashboard/machinary-office/Form/RejectForm/index.jsx delete mode 100644 src/components/dashboard/machinary-office/Form/ReserveForm/index.jsx delete mode 100644 src/components/dashboard/machinary-office/Prints/report/Content.jsx delete mode 100644 src/components/dashboard/machinary-office/Prints/report/index.jsx delete mode 100644 src/components/dashboard/machinary-office/TableRowActions.jsx delete mode 100644 src/components/dashboard/machinary-office/TableToolbar.jsx delete mode 100644 src/components/dashboard/machinary-office/index.jsx delete mode 100644 src/components/dashboard/passenger-office/Buttons/printExcel.jsx delete mode 100644 src/components/dashboard/passenger-office/Form/ConfirmForm/ConfirmContent.jsx delete mode 100644 src/components/dashboard/passenger-office/Form/ConfirmForm/index.jsx delete mode 100644 src/components/dashboard/passenger-office/Form/RejectForm/RejectContent.jsx delete mode 100644 src/components/dashboard/passenger-office/Form/RejectForm/index.jsx delete mode 100644 src/components/dashboard/passenger-office/TableRowActions.jsx delete mode 100644 src/components/dashboard/passenger-office/TableToolbar.jsx delete mode 100644 src/components/dashboard/passenger-office/index.jsx delete mode 100644 src/pages/dashboard/machinery-expert/index.jsx delete mode 100644 src/pages/dashboard/machinery-expert/prints/report.jsx delete mode 100644 src/pages/dashboard/passenger-office-chief/index.jsx diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 8b46a4d..338349a 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -43,7 +43,6 @@ "sidebar": { "dashboard": "داشبورد", "reports": "گزارشات", - "passenger-office-chief": "اداره مسافر", "admin-setting": "تنظیمات ", "machinery-expert": "کارتابل کارشناسی", "passenger-boss": "کارتابل کارگروه", @@ -67,7 +66,6 @@ "reserve-loan": "وام های رزرو" }, "secondary": { - "passenger-office": "توزیع درخواست", "passenger-boss": "کارگروه", "refahi-province-manager": "رفاهی", "refahi-loan-management": "رفاهی", @@ -115,9 +113,7 @@ "change_password": "تغییر رمز عبور", "province_manager_page": "بررسی وام های تبصره 18", "province_head_expert": "کارشناس ستادی", - "passenger_office_page": "اداره مسافر", "loan_management_page": "مدیریت وام", - "machinary_office_page": "کارتابل کارشناسی", "reserve_loans": "وام های رزرو", "development_assistant_page": "معاون توسعه", "inspector_expert_page": "بازدید کارشناس", @@ -182,25 +178,6 @@ "success_static_text": "عملیات شما با موفقیت انجام شد", "pending": "در حال انجام..." }, - "PassengerOffice": { - "name": "نام", - "shenase_meli": "شناسه ملی", - "is_legal_person": "نوع شخص", - "haghighi": "حقیقی", - "hoghoghi": "حقوقی", - "id": "کد یکتا", - "national_id": "کد ملی", - "phone_number": "موبایل", - "created_at": "تاریخ درخواست", - "updated_at": "تاریخ بروزرسانی", - "navgan_id": "کد ناوگان", - "vehicle_type": "نوع ماشین", - "state_name": "وضعیت درخواست", - "confirm": "ارجاع به کارشناس ماشین آلات", - "upload_file_unit": "فایل بارگذاری شده باید حداکثر 5Mb باشد", - "upload_file_format": "فرمت قابل قبول : png,jpg,pdf", - "excel_report": "گزارش اکسل" - }, "CommercialChief": { "name": "نام", "id": "کد یکتا", @@ -408,41 +385,6 @@ "vehicle_type": "نوع ماشین", "state_name": "وضعیت درخواست" }, - "MachinaryOffice": { - "name": "نام", - "city_name": "شهرستان", - "plate_number": "پلاک", - "statement_count": "تعداد صورت وضعیت", - "id": "کد یکتا", - "score": "اولویت", - "navgan_capacity": "ظرفیت", - "manufacture_date": "سال ساخت", - "shenase_meli": "شناسه ملی", - "is_legal_person": "نوع شخص", - "haghighi": "حقیقی", - "hoghoghi": "حقوقی", - "national_id": "کد ملی", - "phone_number": "موبایل", - "created_at": "تاریخ درخواست", - "updated_at": "تاریخ بروزرسانی", - "province_name": "استان", - "navgan_id": "کد ناوگان", - "vehicle_type": "نوع ماشین", - "state_name": "وضعیت درخواست", - "confirm": "ارجاع به کارگروه", - "upload_file": "گزارش کارشناسی را بارگذاری کنید", - "upload_file_required": "وارد کردن گزارش کارشناسی الزامیست", - "upload_file_unit": "فایل بارگذاری شده باید حداکثر 5Mb باشد", - "upload_file_format": "فرمت قابل قبول : png,jpg,pdf", - "print_report": "چاپ گزارش کارشناسی", - "max_amount": "حداکثر مبلغ پیشنهادی {value} میلیون ریال می باشد", - "excel_report": "گزارش اکسل", - "reserve-loan-title": "رزرو وام", - "description-reserve-loan-first": "آیا از رزرو وام به کد یکتا", - "description-reserve-loan-second": "اطمینان دارید؟", - "button-reserve-cancel": "بستن", - "button-reserve-confirm": "رزرو" - }, "ReserveLoan": { "title": "بازگردانی", "description-loan-first": "آیا از بازگردانی وام به کد یکتا", diff --git a/src/components/dashboard/machinary-office/Buttons/printExcel.jsx b/src/components/dashboard/machinary-office/Buttons/printExcel.jsx deleted file mode 100644 index f1333e0..0000000 --- a/src/components/dashboard/machinary-office/Buttons/printExcel.jsx +++ /dev/null @@ -1,67 +0,0 @@ -import {Button, CircularProgress} from "@mui/material"; -import {useTranslations} from "next-intl"; -import {useMemo, useState} from "react"; -import useRequest from "@/lib/app/hooks/useRequest"; -import {EXPORT_MACHINARY_OFFICE} from "@/core/data/apiRoutes"; -import moment from "jalali-moment"; -import FileSaver from 'file-saver'; -import DescriptionIcon from '@mui/icons-material/Description'; - -const PrintExcel = ({table}) => { - const t = useTranslations(); - const [loading, setLoading] = useState(false) - const requestServer = useRequest({auth: true, pending: false, success: {notification: {show: false}}}) - const {columnFilters, columnFilterFns, sorting} = table.getState() - const columns = table.getAllColumns() - - const filterParams = useMemo(() => { - const params = new URLSearchParams(); - const filters = columnFilters.map((filter) => { - let datatype; - for (const i in columns) { - if (columns[i].id == filter.id) { - datatype = columns[i].columnDef.datatype; - } - } - return { - ...filter, fn: columnFilterFns[filter.id], datatype: datatype, - }; - }); - params.set("start", '0'); - params.set("filters", JSON.stringify(filters ?? [])); - params.set("sorting", JSON.stringify(sorting ?? [])); - return params; - }, [columnFilters, columnFilterFns, sorting, columns,]); - - - const clickHandler = () => { - setLoading(true) - requestServer(`${EXPORT_MACHINARY_OFFICE}?${filterParams}`, 'get', { - auth: true, - requestOptions: {responseType: 'blob'} - }).then((response) => { - const filename = `خروجی کارتابل کارشناسی تاریخ_${moment().format('jYYYY_jMM_jDD')}.xlsx`; - FileSaver.saveAs(response.data, filename); - }).catch(() => { - }).finally(() => { - setLoading(false) - }) - } - - - return ( - - ) -} - -export default PrintExcel \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Buttons/printReport.jsx b/src/components/dashboard/machinary-office/Buttons/printReport.jsx deleted file mode 100644 index 47aab16..0000000 --- a/src/components/dashboard/machinary-office/Buttons/printReport.jsx +++ /dev/null @@ -1,48 +0,0 @@ -import PrintIcon from "@mui/icons-material/Print"; -import {Button, CircularProgress} from "@mui/material"; -import {useTranslations} from "next-intl"; -import {useRouter} from "next/router"; -import {useState} from "react"; -import useRequest from "@/lib/app/hooks/useRequest"; -import {GET_MACHINARY_OFFICE} from "@/core/data/apiRoutes"; -import usePrint from "@/lib/app/hooks/usePrint"; - -const PrintReport = () => { - const t = useTranslations(); - const router = useRouter() - const [loading, setLoading] = useState(false) - const requestServer = useRequest({auth: true, pending: false, success: {notification: {show: false}}}) - const {setPrintPage, setPrintTitle} = usePrint() - const clickHandler = () => { - setLoading(true) - const params = new URLSearchParams(); - params.set("start", '0'); - params.set("filters", '[]'); - params.set("sorting", '[]'); - requestServer(`${GET_MACHINARY_OFFICE}?${params}`, 'get').then((response) => { - const _data = response.data.data - setPrintPage(_data.length) - setPrintTitle(t('MachinaryOffice.print_report')) - sessionStorage.setItem('report-print', JSON.stringify(_data)) - router.push('/dashboard/machinery-expert/prints/report') - }).catch(() => { - setLoading(false) - }) - } - - return ( - - ) -} - -export default PrintReport \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx b/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx deleted file mode 100644 index a1a6b1f..0000000 --- a/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx +++ /dev/null @@ -1,378 +0,0 @@ -import UploadSystem from "@/core/components/UploadSystem"; -import useNotification from "@/lib/app/hooks/useNotification"; -import useRequest from "@/lib/app/hooks/useRequest"; -import { - Button, - DialogActions, - DialogContent, - FormHelperText, - Grid, - LinearProgress, - Stack, - TextField, - Typography -} from "@mui/material" -import {useFormik} from "formik"; -import {useTranslations} from "next-intl"; -import {CONFIRM_MACHINARY_OFFICE, CONFIRM_MACHINARY_OFFICE_DETAILS} from "@/core/data/apiRoutes"; -import {useEffect, useState} from "react"; -import PriceField from "@/core/components/PriceField"; -import * as Yup from "yup"; -import CustomAccordion from "@/core/components/CustomAccordion"; -import ImageContent from "@/core/components/ImageContent"; -import SelectBox from "@/core/components/SelectBox"; - -const vehicle_amount = { - "اتوبوس": 7000, - "مینی بوس": 2000, -} -const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type, handleSizeChangeClick}) => { - const t = useTranslations(); - const [selectedImage, setSelectedImage] = useState(""); - const [fileType, setfileType] = useState(null); - const [fileName, setfileName] = useState(null); - const [showAddIcon, setShowAddIcon] = useState(true); - const requestServer = useRequest({auth: true, notification: false}) - const {update_notification} = useNotification() - const [accordionStates, setAccordionStates] = useState([]); - const [hasImageShown, setHasImageShown] = useState(false); - const [imageLink, setImageLink] = useState(null); - const [detailsList, setDetailsData] = useState(null); - const [loading, setLoading] = useState(true); - const [isSkeleton, setIsSkeleton] = useState(false); - - useEffect(() => { - requestServer(`${CONFIRM_MACHINARY_OFFICE_DETAILS}/${rowId}`, 'get') - .then((response) => { - const booleanData = Array.from({length: response.data.data.attachment_files.length}, () => false); - setAccordionStates(booleanData); - setDetailsData(response.data) - }) - .catch(() => { - }).finally(() => { - setLoading(false); - }); - }, []); - - const handleAccordionChange = (index) => { - const newAccordionStates = accordionStates.map((state, i) => i === index ? !state : false); - setAccordionStates(newAccordionStates); - - if (!newAccordionStates[index]) { - handleSizeChangeClick('sm'); - setHasImageShown(false); - setIsSkeleton(false) - } else { - handleSizeChangeClick('xl'); - setHasImageShown(true); - setImageLink(detailsList.data.attachment_files[index]) - setIsSkeleton(true) - } - }; - - const validationSchema = Yup.object().shape({ - proposed_amount: Yup.mixed() - .test( - "is-number", - `${t("ConfirmDialog.proposed_amount_number")}`, - (value) => !isNaN(value) - ) - .test("max-amount", `${t("MachinaryOffice.max_amount", {value: parseInt(vehicle_amount[vehicle_type]).toLocaleString('en')})}`, - (value) => value <= vehicle_amount[vehicle_type]) - .test("positive", `${t("ConfirmDialog.proposed_amount_positive")}`, (value) => value >= 0) - .required(t("ConfirmDialog.proposed_amount_error")), - sakht_period: Yup.mixed() - .test("is-number", `${t("ConfirmDialog.sakht_period_number")}`, - (value) => !isNaN(value)) - .test("positive", `${t("ConfirmDialog.sakht_period_positive")}`, (value) => value > 0) - .required(t("ConfirmDialog.sakht_period_error")), - tanafos_period: Yup.mixed() - .test("is-number", `${t("ConfirmDialog.tanafos_period_number")}`, - (value) => !isNaN(value)) - .test("positive", `${t("ConfirmDialog.tanafos_period_positive")}`, (value) => value > 0) - .required(t("ConfirmDialog.tanafos_period_error")), - confirm_img: Yup.mixed() - .required(t("MachinaryOffice.upload_file_required")) - .test('fileSize', `${t("MachinaryOffice.upload_file_unit")}`, (value) => { - return value.size <= 5 * 1024 * 1024; - }) - .test('fileType', `${t("MachinaryOffice.upload_file_format")}`, (value) => { - const allowedTypes = ['image/jpg', 'image/jpeg', 'image/png', 'application/pdf']; - return allowedTypes.includes(value.type); - }) - }); - const formik = useFormik({ - initialValues: { - description: "", - proposed_amount: "", - sakht_period: "", - tanafos_period: "", - confirm_img: null - }, validationSchema, - onSubmit: (values, {setSubmitting}) => { - const formData = new FormData(); - formData.append("proposed_amount", values.proposed_amount); - formData.append("sakht_period", values.sakht_period); - formData.append("tanafos_period", values.tanafos_period); - if (values.description != "") formData.append("expert_description", values.description); - if (values.confirm_img != null) { - const attachments = [ - { - title: "فایل ضمیمه کارتابل قیمت گذاری", - file: values.confirm_img - } - ]; - attachments.forEach((attachment, index) => { - formData.append(`attachment[${index}][title]`, attachment.title); - formData.append(`attachment[${index}][file]`, attachment.file); - }); - } - requestServer(`${CONFIRM_MACHINARY_OFFICE}/${rowId}`, 'post', { - data: formData, - notification: true - }).then((response) => { - setOpenConfirmDialog(false) - mutate() - update_notification() - }).catch(() => { - }).finally(() => { - setSubmitting(false); - }); - }, - }); - - const handleDescriptionChange = (event) => { - formik.setFieldValue("description", event.target.value) - }; - - const handleUploadChange = (event) => { - const uploadedFile = event.target?.files?.[0]; - if (uploadedFile) { - const fileType = event.target?.files?.[0].type; - const fileName = event.target?.files?.[0].name; - setSelectedImage(URL.createObjectURL(uploadedFile)); - setfileType(fileType); - setfileName(fileName); - formik.setFieldValue("confirm_img", uploadedFile).then(() => { - formik.setFieldTouched("confirm_img", true); - }) - setShowAddIcon(false); - } - }; - const handleAmountChange = (event) => { - if (!isNaN(event.target.value)) { - formik.setFieldValue("proposed_amount", event.target.value) - } else { - formik.setFieldValue("proposed_amount", formik.values.proposed_amount) - } - }; - - const renderCustomAccordions = () => { - if (detailsList && detailsList.data && detailsList.data.attachment_files) { - return detailsList.data.attachment_files.map((file, index) => ( - handleAccordionChange(index)} - accordionIndex={index} - downloadFile={file.attachment} - /> - )); - } - return null; - }; - - return ( - <> - - - - {loading ? : renderCustomAccordions()} - - - - {t("ConfirmDialog.description")}{t("ConfirmDialog.optional")}} - value={formik.values.description} - onChange={handleDescriptionChange} - fullWidth - variant="outlined" - sx={{mt: 1}} - /> - - - - {t("ConfirmDialog.proposed_amount")}{t("ConfirmDialog.unit")}} - type="text" - inputProps={{ - inputMode: "number", - min: 0, - pattern: "[0-9]*", - }} - variant="outlined" - value={formik.values.proposed_amount} - onChange={handleAmountChange} - onBlur={formik.handleBlur("proposed_amount")} - error={ - formik.touched.proposed_amount && - Boolean(formik.errors.proposed_amount) - } - helperText={ - formik.touched.proposed_amount && formik.errors.proposed_amount - } - sx={{mt: 1}} - fullWidth - /> - - - { - formik.setFieldValue('sakht_period', event.target.value) - }} - setFieldTouched={formik.setFieldTouched} - error={formik.touched.sakht_period && Boolean(formik.errors.sakht_period)} - helperText={formik.touched.sakht_period && formik.errors.sakht_period} - onBlur={formik.handleBlur("sakht_period")} - /> - - - { - formik.setFieldValue('tanafos_period', event.target.value) - }} - setFieldTouched={formik.setFieldTouched} - error={formik.touched.tanafos_period && Boolean(formik.errors.tanafos_period)} - helperText={formik.touched.tanafos_period && formik.errors.tanafos_period} - onBlur={formik.handleBlur("tanafos_period")} - /> - - - {t("MachinaryOffice.upload_file")} - - - {formik.touched.confirm_img && formik.errors.confirm_img} - - - - - - - - - - - - - - - - - ) - -} -export default ConfirmContent \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx b/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx deleted file mode 100644 index febb675..0000000 --- a/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx +++ /dev/null @@ -1,51 +0,0 @@ -import {Dialog, DialogTitle, IconButton, Tooltip} from "@mui/material"; -import {useTranslations} from "next-intl"; -import {useEffect, useState} from "react"; -import ConfirmContent from "./ConfirmContent"; -import CallMadeIcon from '@mui/icons-material/CallMade'; - -const Confirm = ({rowId, mutate, vehicle_type}) => { - const t = useTranslations(); - const [openConfirmDialog, setOpenConfirmDialog] = useState(false); - const [dialogSize, setDialogSize] = useState('sm'); - - useEffect(() => { - if (!openConfirmDialog) { - setDialogSize('sm'); - } - }, [openConfirmDialog]); - - const handleSizeChangeClick = (size) => { - setDialogSize(size); - }; - - - return ( - <> - - { - setOpenConfirmDialog(true) - }} - > - - - - - {t("MachinaryOffice.confirm")} - - - - ) - -} -export default Confirm; \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Form/RejectForm/RejectContent.jsx b/src/components/dashboard/machinary-office/Form/RejectForm/RejectContent.jsx deleted file mode 100644 index afec59e..0000000 --- a/src/components/dashboard/machinary-office/Form/RejectForm/RejectContent.jsx +++ /dev/null @@ -1,147 +0,0 @@ -import UploadSystem from "@/core/components/UploadSystem" -import useNotification from "@/lib/app/hooks/useNotification"; -import useRequest from "@/lib/app/hooks/useRequest"; -import {Button, DialogActions, DialogContent, FormHelperText, Stack, TextField, Typography} from "@mui/material" -import {useFormik} from "formik"; -import {useTranslations} from "next-intl"; -import {useState} from "react"; -import * as Yup from "yup"; -import {REJECT_MACHINARY_OFFICE} from "@/core/data/apiRoutes"; - -const RejectContent = ({rowId, mutate, setOpenRejectDialog}) => { - const [selectedImage, setSelectedImage] = useState(""); - const [fileType, setfileType] = useState(null); - const [fileName, setfileName] = useState(null); - const [showAddIcon, setShowAddIcon] = useState(true); - const t = useTranslations(); - const requestServer = useRequest({auth: true}) - const {update_notification} = useNotification() - - const validationSchema = Yup.object().shape({ - description: Yup.string().required(t("RejectDialog.description_error")), - reject_img: Yup.mixed().notRequired(t("RejectDialog.choose_file")) - .test('fileSize', `${t("MachinaryOffice.upload_file_unit")}`, (value) => { - return !value || (value.size && value.size <= 5 * 1024 * 1024); - }) - .test('fileType', `${t("MachinaryOffice.upload_file_format")}`, (value) => { - const allowedTypes = ['image/jpg', 'image/jpeg', 'image/png', 'application/pdf']; // Define your allowed file types - return !value || (value.type && allowedTypes.includes(value.type)); - }), - }); - - const formik = useFormik({ - initialValues: { - description: "", - reject_img: null - }, - validationSchema, - onSubmit: (values, {setSubmitting}) => { - const formData = new FormData(); - formData.append("expert_description", values.description); - if (values.reject_img != null) { - const attachments = [ - { - title: "فایل ضمیمه کارتابل قیمت گذاری", - file: values.reject_img - } - ]; - attachments.forEach((attachment, index) => { - formData.append(`attachment[${index}][title]`, attachment.title); - formData.append(`attachment[${index}][file]`, attachment.file); - }); - } - requestServer(`${REJECT_MACHINARY_OFFICE}/${rowId}`, 'post', { - data: formData, - }).then((response) => { - setOpenRejectDialog(false) - mutate() - update_notification() - }).catch(() => { - }).finally(() => { - setSubmitting(false); - }); - }, - }); - - const handleDescriptionChange = (event) => { - formik.setFieldValue("description", event.target.value); - formik.handleChange(event); - }; - const handleUploadChange = (event) => { - const uploadedFile = event.target?.files?.[0]; - if (uploadedFile) { - const fileType = event.target?.files?.[0].type; - const fileName = event.target?.files?.[0].name; - setSelectedImage(URL.createObjectURL(uploadedFile)); - setfileType(fileType); - setfileName(fileName); - formik.setFieldValue("reject_img", uploadedFile).then(() => { - formik.setFieldTouched("reject_img", true); - }) - setShowAddIcon(false); - } - }; - return ( - <> - - - - - - - {t("UploadSystem.upload_file")}{t("UploadSystem.optional")} - formik.handleBlur("reject_img")} - error={ - formik.touched.reject_img && - Boolean(formik.errors.reject_img) - } - /> - - {formik.touched.reject_img && formik.errors.reject_img} - - - - - - - - - - ) -} -export default RejectContent \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Form/RejectForm/index.jsx b/src/components/dashboard/machinary-office/Form/RejectForm/index.jsx deleted file mode 100644 index 06608f5..0000000 --- a/src/components/dashboard/machinary-office/Form/RejectForm/index.jsx +++ /dev/null @@ -1,25 +0,0 @@ -import {Dialog, DialogTitle, IconButton, Tooltip} from "@mui/material" -import {useTranslations} from "next-intl"; -import {useState} from "react"; -import RejectContent from "./RejectContent"; -import ThumbDownIcon from "@mui/icons-material/ThumbDown"; - -const Reject = ({rowId, mutate}) => { - const t = useTranslations(); - const [openRejectDialog, setOpenRejectDialog] = useState(false); - return ( - <> - - setOpenRejectDialog(true)}> - - - - - {t("RejectDialog.reject")} - - - - ) -} -export default Reject \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Form/ReserveForm/index.jsx b/src/components/dashboard/machinary-office/Form/ReserveForm/index.jsx deleted file mode 100644 index e7b08fb..0000000 --- a/src/components/dashboard/machinary-office/Form/ReserveForm/index.jsx +++ /dev/null @@ -1,75 +0,0 @@ -import { - Button, - Dialog, - DialogActions, - DialogContent, - DialogTitle, - IconButton, - Tooltip, Typography -} from "@mui/material"; -import {useTranslations} from "next-intl"; -import {useState} from "react"; -import RepartitionIcon from '@mui/icons-material/Repartition'; -import useRequest from "@/lib/app/hooks/useRequest"; -import useNotification from "@/lib/app/hooks/useNotification"; -import {RESERVE_MACHINARY_LOAN} from "@/core/data/apiRoutes"; - -const ReserveForm = ({rowId, mutate}) => { - const t = useTranslations(); - const [openConfirmDialog, setOpenConfirmDialog] = useState(false); - const requestServer = useRequest({auth: true, notification: true}); - const [isSubmitting, setIsSubmitting] = useState(false); - const {update_notification} = useNotification() - - const handleSubmit = () => { - setIsSubmitting(true) - requestServer(`${RESERVE_MACHINARY_LOAN}/${rowId}`, 'post').then((response) => { - setOpenConfirmDialog(false) - mutate() - update_notification() - }).catch(() => { - }).finally(() => { - setIsSubmitting(false) - }); - } - - return ( - <> - - { - setOpenConfirmDialog(true) - }} - > - - - - - - {t("MachinaryOffice.reserve-loan-title")} - - - {t("MachinaryOffice.description-reserve-loan-first")} {rowId} {t("MachinaryOffice.description-reserve-loan-second")} - - - - - - - - ) - -} -export default ReserveForm; \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Prints/report/Content.jsx b/src/components/dashboard/machinary-office/Prints/report/Content.jsx deleted file mode 100644 index 8098ecb..0000000 --- a/src/components/dashboard/machinary-office/Prints/report/Content.jsx +++ /dev/null @@ -1,96 +0,0 @@ -import PrintablePage from "@/core/components/PrintablePage"; -import {Box, Stack, Typography} from "@mui/material"; - -const Content = ({data}) => { - return ( - <> - - - {'گزارش کارشناسی ماشین آلات'} - - - {'با توجه به نامه شماره'} - 35482 - {'مورخ'} - 1402/08/20 - {'معاون محترم برنامه ریزی سازمان راهداری و حمل و نقل جاده ای در خصوص تسهیلات بند (الف) تبصره (18) قانون بودجه سال'} - 1402 - {'موضوع بازسازی ناوگان اتوبوس و مینی بوس و نیز تصویب آن درشورای برنامه ریزی و توسعه استان'} - تهران - {'و نامه شماره'} - 35482 - {'مورخ'} - 1402/08/20 - {'اداره کل راهداری و حمل و نقل جاده ای'} - تهران - {'در خصوص استفاده از ظرفیت انجمن های صنفی رانندگان در تاریخ'} - 1402/08/20 - {'از ناوگان اتوبوس/مینی بوس به شماره پلاک انتظامی'} - 25پ4582 - {'و شماره هوشمند ناوگان'} - 5875698725 - {'به مالکیت آقای'} - امیرحسین محمودی - {'با کد ملی'} - 0311318897 - {'و شماره تماس'} - 09120630655 - {'ساکن شهرستان'} - تهران - {'در جلسه مطرح شد که نتیجه آن به شرح ذیل مورد تایید می باشد.'} - - - {'مبلغ پیشنهادی به عدد .............................................. ریال و به حروف ...................................................................... ریال می باشد.'} - {'توضیحات : ................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................'} - - {'نام و نام خانوادگی کارشناس:'} - {'تاریخ و امضاء'} - - - - - ) -} - -export default Content \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/Prints/report/index.jsx b/src/components/dashboard/machinary-office/Prints/report/index.jsx deleted file mode 100644 index 54dca24..0000000 --- a/src/components/dashboard/machinary-office/Prints/report/index.jsx +++ /dev/null @@ -1,60 +0,0 @@ -import {useEffect, useState} from "react"; -import CenterLayout from "@/layouts/CenterLayout"; -import {useTranslations} from "next-intl"; -import {Stack, Typography} from "@mui/material"; -import Content from "@/components/dashboard/machinary-office/Prints/report/Content"; - -const ReportComponent = () => { - const t = useTranslations() - const [data, setData] = useState(null) - const [loading, setLoading] = useState(true) - const [isNotData, setIsNotData] = useState(true) - - useEffect(() => { - if (sessionStorage.getItem('report-print') === null) { - setLoading(false) - setIsNotData(true) - sessionStorage.setItem('report-print', 'seen') - } else if (sessionStorage.getItem('report-print') === 'seen') { - setLoading(false) - setData(null) - setIsNotData(true) - } else if (data) { - setLoading(false) - sessionStorage.setItem('report-print', 'seen') - setIsNotData(false) - } else { - setLoading(true) - setData(JSON.parse(sessionStorage.getItem('report-print'))) - setIsNotData(true) - } - }, [data]); - - return ( - - {loading ? ( - - - - {t('print_loading')} - - - - ) : !data ? ( - - - {t('data_not_found')} - - - ) : !data.length ? ( - - - {t('data_not_found')} - - - ) : data.map(item => )} - - ) -} - -export default ReportComponent \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/TableRowActions.jsx b/src/components/dashboard/machinary-office/TableRowActions.jsx deleted file mode 100644 index 0e111cb..0000000 --- a/src/components/dashboard/machinary-office/TableRowActions.jsx +++ /dev/null @@ -1,26 +0,0 @@ -import {Box} from "@mui/material"; -import Confirm from "./Form/ConfirmForm"; -import Reject from "./Form/RejectForm"; -import ReserveForm from "@/components/dashboard/machinary-office/Form/ReserveForm"; - -const TableRow = ({row, mutate}) => { - return ( - - - - - - ); -}; - -export default TableRow; diff --git a/src/components/dashboard/machinary-office/TableToolbar.jsx b/src/components/dashboard/machinary-office/TableToolbar.jsx deleted file mode 100644 index c1e6672..0000000 --- a/src/components/dashboard/machinary-office/TableToolbar.jsx +++ /dev/null @@ -1,13 +0,0 @@ -import {Stack} from "@mui/material"; -import PrintExcel from "@/components/dashboard/machinary-office/Buttons/printExcel"; - -const TableToolbar = ({table}) => { - return ( - - {/**/} - - - ) -} - -export default TableToolbar \ No newline at end of file diff --git a/src/components/dashboard/machinary-office/index.jsx b/src/components/dashboard/machinary-office/index.jsx deleted file mode 100644 index dbf72f0..0000000 --- a/src/components/dashboard/machinary-office/index.jsx +++ /dev/null @@ -1,331 +0,0 @@ -import {Box, Stack, Typography} from "@mui/material"; -import {useMemo} from "react"; -import {GET_MACHINARY_OFFICE} from "@/core/data/apiRoutes"; -import {useTranslations} from "next-intl"; -import TableRowActions from "./TableRowActions"; -import moment from "jalali-moment"; -import DataTable from "@/core/components/DataTable"; -import MuiDatePicker from "@/core/components/MuiDatePicker"; -import TableToolbar from "@/components/dashboard/machinary-office/TableToolbar"; - -function DashboardMachinaryOfficeComponent() { - const t = useTranslations(); - const columns = useMemo( - () => [ - { - accessorFn: (row) => row.id, - id: "id", - header: t("MachinaryOffice.id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.score, - id: "score", - header: t("MachinaryOffice.score"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.is_legal_person, - id: "is_legal_person", - header: t("MachinaryOffice.is_legal_person"), - enableColumnFilter: false, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: ["equals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue === 1 ? `${t("MachinaryOffice.hoghoghi")}` : `${t("MachinaryOffice.haghighi")}`} - ), - }, - { - accessorFn: (row) => row.navgan_id, - id: "navgan_id", - header: t("MachinaryOffice.navgan_id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.name, - id: "name", - header: t("MachinaryOffice.name"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.national_id, - id: "national_id", - header: t("MachinaryOffice.national_id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.shenase_meli, - id: "shenase_meli", - header: t("MachinaryOffice.shenase_meli"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.province_name, - id: "province_name", - header: t("MachinaryOffice.province_name"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.city_name, - id: "city_name", - header: t("MachinaryOffice.city_name"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => - moment(row.created_at).locale("fa").format("HH:mm | yyyy/MM/DD"), - id: "created_at", - header: t("MachinaryOffice.created_at"), - enableColumnFilter: true, - datatype: "date", - filterFn: "lessThan", - columnFilterModeOptions: ["lessThan", "greaterThan"], - Cell: ({renderedCellValue}) => { - return {renderedCellValue}; - }, - Header: ({column}) => <>{column.columnDef.header}, - Filter: ({column}) => { - return ( - - ); - }, - }, - { - accessorFn: (row) => row.phone_number, - id: "phone_number", - header: t("MachinaryOffice.phone_number"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.statement_count, - id: "statement_count", - header: t("MachinaryOffice.statement_count"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.navgan_capacity, - id: "navgan_capacity", - header: t("MachinaryOffice.navgan_capacity"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.manufacture_date, - id: "manufacture_date", - header: t("MachinaryOffice.manufacture_date"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.vehicle_type, - id: "vehicle_type", - header: t("MachinaryOffice.vehicle_type"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.plate_number, - id: "plate_number", - header: t("MachinaryOffice.plate_number"), - enableColumnFilter: false, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - - - {renderedCellValue.split('-')[3]} - - - {renderedCellValue.split('-')[2]} - {renderedCellValue.split('-')[1]} - {renderedCellValue.split('-')[0]} - - - ), - }, - { - accessorFn: (row) => row.state_name, - id: "state_id", - header: t("MachinaryOffice.state_name"), - enableColumnFilter: false, - datatype: "numeric", - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - ], - [] - ); - return ( - - - - ); -} - -export default DashboardMachinaryOfficeComponent; diff --git a/src/components/dashboard/passenger-office/Buttons/printExcel.jsx b/src/components/dashboard/passenger-office/Buttons/printExcel.jsx deleted file mode 100644 index c78075a..0000000 --- a/src/components/dashboard/passenger-office/Buttons/printExcel.jsx +++ /dev/null @@ -1,68 +0,0 @@ -import {Button, CircularProgress} from "@mui/material"; -import {useTranslations} from "next-intl"; -import {useMemo, useState} from "react"; -import useRequest from "@/lib/app/hooks/useRequest"; -import {EXPORT_PASSENGER_OFFICE} from "@/core/data/apiRoutes"; -import moment from "jalali-moment"; -import FileSaver from 'file-saver'; -import DescriptionIcon from '@mui/icons-material/Description'; - -const PrintExcel = ({table}) => { - const t = useTranslations(); - const [loading, setLoading] = useState(false) - const requestServer = useRequest({auth: true, pending: false, success: {notification: {show: false}}}) - const {columnFilters, columnFilterFns, sorting} = table.getState() - const columns = table.getAllColumns() - - const filterParams = useMemo(() => { - const params = new URLSearchParams(); - const filters = columnFilters.map((filter) => { - let datatype; - for (const i in columns) { - if (columns[i].id == filter.id) { - datatype = columns[i].columnDef.datatype; - } - } - return { - ...filter, fn: columnFilterFns[filter.id], datatype: datatype, - }; - }); - params.set("start", '0'); - params.set("filters", JSON.stringify(filters ?? [])); - params.set("sorting", JSON.stringify(sorting ?? [])); - return params; - }, [columnFilters, columnFilterFns, sorting, columns,]); - - - const clickHandler = () => { - setLoading(true) - requestServer(`${EXPORT_PASSENGER_OFFICE}?${filterParams}`, 'get', { - auth: true, - notification: false, - requestOptions: {responseType: 'blob'} - }).then((response) => { - const filename = `گزارش اداره مسافر تاریخ_${moment().format('jYYYY_jMM_jDD')}.xlsx`; - FileSaver.saveAs(response.data, filename); - }).catch(() => { - }).finally(() => { - setLoading(false) - }) - } - - - return ( - - ) -} - -export default PrintExcel \ No newline at end of file diff --git a/src/components/dashboard/passenger-office/Form/ConfirmForm/ConfirmContent.jsx b/src/components/dashboard/passenger-office/Form/ConfirmForm/ConfirmContent.jsx deleted file mode 100644 index 846291b..0000000 --- a/src/components/dashboard/passenger-office/Form/ConfirmForm/ConfirmContent.jsx +++ /dev/null @@ -1,135 +0,0 @@ -import UploadSystem from "@/core/components/UploadSystem"; -import useNotification from "@/lib/app/hooks/useNotification"; -import useRequest from "@/lib/app/hooks/useRequest"; -import {Button, DialogActions, DialogContent, FormHelperText, Stack, TextField, Typography} from "@mui/material" -import {useFormik} from "formik"; -import {useTranslations} from "next-intl"; -import {CONFIRM_PASSENGER_OFFICE} from "@/core/data/apiRoutes"; -import {useState} from "react"; -import * as Yup from "yup"; - -const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog}) => { - const t = useTranslations(); - const [selectedImage, setSelectedImage] = useState(""); - const [fileType, setfileType] = useState(null); - const [fileName, setfileName] = useState(null); - const [showAddIcon, setShowAddIcon] = useState(true); - const requestServer = useRequest({auth: true}) - const {update_notification} = useNotification() - - const validationSchema = Yup.object().shape({ - confirm_img: Yup.mixed().notRequired(t("ConfirmDialog.approved_amount_error")) - .test('fileSize', `${t("PassengerOffice.upload_file_unit")}`, (value) => { - if (!value) return true - return value.size <= 5 * 1024 * 1024; - }) - .test('fileType', `${t("PassengerOffice.upload_file_format")}`, (value) => { - if (!value) return true - const allowedTypes = ['image/jpg', 'image/jpeg', 'image/png', 'application/pdf']; // Define your allowed file types - return allowedTypes.includes(value.type); - }) - }) - - const formik = useFormik({ - initialValues: { - description: "", - confirm_img: null - }, validationSchema, - onSubmit: (values, {setSubmitting}) => { - const formData = new FormData(); - if (values.description != "") formData.append("description", values.description); - if (values.confirm_img != null) formData.append("attachment", values.confirm_img); - - requestServer(`${CONFIRM_PASSENGER_OFFICE}/${rowId}`, 'post', { - data: formData, - }).then((response) => { - setOpenConfirmDialog(false) - mutate() - update_notification() - }).catch(() => { - }).finally(() => { - setSubmitting(false); - }); - }, - }); - - const handleDescriptionChange = (event) => { - formik.setFieldValue("description", event.target.value) - }; - - const handleUploadChange = (event) => { - const uploadedFile = event.target?.files?.[0]; - if (uploadedFile) { - const fileType = event.target?.files?.[0].type; - const fileName = event.target?.files?.[0].name; - setSelectedImage(URL.createObjectURL(uploadedFile)); - setfileType(fileType); - setfileName(fileName); - formik.setFieldValue("confirm_img", uploadedFile).then(() => { - formik.setFieldTouched("confirm_img", true); - }) - setShowAddIcon(false); - } - }; - - return ( - <> - - - - - {t("ConfirmDialog.description")}{t("ConfirmDialog.optional")}} - value={formik.values.description} - onChange={handleDescriptionChange} - fullWidth - variant="outlined" - sx={{mt: 1}} - /> - - - {t("UploadSystem.upload_file")}{t("UploadSystem.optional")} - formik.handleBlur("confirm_img")} - error={ - formik.touched.confirm_img && - Boolean(formik.errors.confirm_img) - } - /> - - {formik.touched.confirm_img && formik.errors.confirm_img} - - - - - - - - - - ) - -} -export default ConfirmContent \ No newline at end of file diff --git a/src/components/dashboard/passenger-office/Form/ConfirmForm/index.jsx b/src/components/dashboard/passenger-office/Form/ConfirmForm/index.jsx deleted file mode 100644 index fa47fcf..0000000 --- a/src/components/dashboard/passenger-office/Form/ConfirmForm/index.jsx +++ /dev/null @@ -1,30 +0,0 @@ -import {Dialog, DialogTitle, IconButton, Tooltip} from "@mui/material"; -import {useTranslations} from "next-intl"; -import {useState} from "react"; -import ConfirmContent from "./ConfirmContent"; -import CallMadeIcon from '@mui/icons-material/CallMade'; -const Confirm = ({rowId, mutate}) => { - const t = useTranslations(); - const [openConfirmDialog, setOpenConfirmDialog] = useState(false); - return ( - <> - - { - setOpenConfirmDialog(true) - }} - > - - - - - {t("PassengerOffice.confirm")} - - - - ) - -} -export default Confirm; \ No newline at end of file diff --git a/src/components/dashboard/passenger-office/Form/RejectForm/RejectContent.jsx b/src/components/dashboard/passenger-office/Form/RejectForm/RejectContent.jsx deleted file mode 100644 index 2a8a82d..0000000 --- a/src/components/dashboard/passenger-office/Form/RejectForm/RejectContent.jsx +++ /dev/null @@ -1,123 +0,0 @@ -import UploadSystem from "@/core/components/UploadSystem" -import useNotification from "@/lib/app/hooks/useNotification"; -import useRequest from "@/lib/app/hooks/useRequest"; -import {Button, DialogActions, DialogContent, Stack, TextField, Typography} from "@mui/material" -import {useFormik} from "formik"; -import {useTranslations} from "next-intl"; -import {useState} from "react"; -import * as Yup from "yup"; -import {REJECT_PASSENGER_OFFICE} from "@/core/data/apiRoutes"; - -const RejectContent = ({rowId, mutate, setOpenRejectDialog}) => { - const [selectedImage, setSelectedImage] = useState(""); - const [fileType, setfileType] = useState(null); - const [fileName, setfileName] = useState(null); - const [showAddIcon, setShowAddIcon] = useState(true); - const t = useTranslations(); - const requestServer = useRequest({auth: true}) - const {update_notification} = useNotification() - - const validationSchema = Yup.object().shape({ - description: Yup.string().required(t("RejectDialog.description_error")), - }); - - const formik = useFormik({ - initialValues: { - description: "", - reject_img: null - }, - validationSchema, - onSubmit: (values, {setSubmitting}) => { - const formData = new FormData(); - formData.append("expert_description", values.description); - if (values.reject_img != null) formData.append("attachment", values.reject_img); - - requestServer(`${REJECT_PASSENGER_OFFICE}/${rowId}`, 'post', { - data: formData, - }).then((response) => { - setOpenRejectDialog(false) - mutate() - update_notification() - }).catch(() => { - }).finally(() => { - setSubmitting(false); - }); - }, - }); - - const handleDescriptionChange = (event) => { - formik.setFieldValue("description", event.target.value); - formik.handleChange(event); - }; - const handleUploadChange = (event) => { - const uploadedFile = event.target?.files?.[0]; - if (uploadedFile) { - const maxFileSize = 2 * 1024 * 1024; - if (uploadedFile.size > maxFileSize) { - UploadFileNotification(t); - event.target.value = ""; - return; - } - const fileType = event.target?.files?.[0].type; - const fileName = event.target?.files?.[0].name; - setSelectedImage(URL.createObjectURL(uploadedFile)); - setfileType(fileType); - setfileName(fileName); - formik.setFieldValue("reject_img", uploadedFile); - setShowAddIcon(false); - } - }; - return ( - <> - - - - - - - {t("UploadSystem.upload_file")}{t("UploadSystem.optional")} - - - - - - - - - - ) -} -export default RejectContent \ No newline at end of file diff --git a/src/components/dashboard/passenger-office/Form/RejectForm/index.jsx b/src/components/dashboard/passenger-office/Form/RejectForm/index.jsx deleted file mode 100644 index 06608f5..0000000 --- a/src/components/dashboard/passenger-office/Form/RejectForm/index.jsx +++ /dev/null @@ -1,25 +0,0 @@ -import {Dialog, DialogTitle, IconButton, Tooltip} from "@mui/material" -import {useTranslations} from "next-intl"; -import {useState} from "react"; -import RejectContent from "./RejectContent"; -import ThumbDownIcon from "@mui/icons-material/ThumbDown"; - -const Reject = ({rowId, mutate}) => { - const t = useTranslations(); - const [openRejectDialog, setOpenRejectDialog] = useState(false); - return ( - <> - - setOpenRejectDialog(true)}> - - - - - {t("RejectDialog.reject")} - - - - ) -} -export default Reject \ No newline at end of file diff --git a/src/components/dashboard/passenger-office/TableRowActions.jsx b/src/components/dashboard/passenger-office/TableRowActions.jsx deleted file mode 100644 index 985dd67..0000000 --- a/src/components/dashboard/passenger-office/TableRowActions.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import {Box} from "@mui/material"; -import Confirm from "./Form/ConfirmForm"; -import Reject from "./Form/RejectForm"; - -const TableRow = ({row, mutate, fetchUrl}) => { - - return ( - - - - - ); -}; - -export default TableRow; diff --git a/src/components/dashboard/passenger-office/TableToolbar.jsx b/src/components/dashboard/passenger-office/TableToolbar.jsx deleted file mode 100644 index 23f3c20..0000000 --- a/src/components/dashboard/passenger-office/TableToolbar.jsx +++ /dev/null @@ -1,13 +0,0 @@ -import {Stack} from "@mui/material"; -import PrintExcel from "@/components/dashboard/passenger-office/Buttons/printExcel"; - -const TableToolbar = ({table}) => { - - return ( - - - - ) -} - -export default TableToolbar \ No newline at end of file diff --git a/src/components/dashboard/passenger-office/index.jsx b/src/components/dashboard/passenger-office/index.jsx deleted file mode 100644 index 1e4f705..0000000 --- a/src/components/dashboard/passenger-office/index.jsx +++ /dev/null @@ -1,186 +0,0 @@ -import {Box, Typography} from "@mui/material"; -import {useMemo} from "react"; -import {GET_PASSENGER_OFFICE} from "@/core/data/apiRoutes"; -import {useTranslations} from "next-intl"; -import TableRowActions from "./TableRowActions"; -import moment from "jalali-moment"; -import DataTable from "@/core/components/DataTable"; -import MuiDatePicker from "@/core/components/MuiDatePicker"; -import TableToolbar from "@/components/dashboard/passenger-office/TableToolbar"; - -function DashboardPassengerOfficeComponent() { - const t = useTranslations(); - - const columns = useMemo( - () => [ - { - accessorFn: (row) => row.id, - id: "id", - header: t("PassengerOffice.id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.name, - id: "name", - header: t("PassengerOffice.name"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.national_id, - id: "national_id", - header: t("PassengerOffice.national_id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.phone_number, - id: "phone_number", - header: t("PassengerOffice.phone_number"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => - moment(row.created_at).locale("fa").format("HH:mm | yyyy/MM/DD"), - id: "created_at", - header: t("PassengerOffice.created_at"), - enableColumnFilter: true, - datatype: "date", - filterFn: "lessThan", - columnFilterModeOptions: ["lessThan", "greaterThan"], - Cell: ({renderedCellValue}) => { - return {renderedCellValue}; - }, - Header: ({column}) => <>{column.columnDef.header}, - Filter: ({column}) => { - return ( - - ); - }, - }, - { - accessorFn: (row) => - moment(row.updated_at).locale("fa").format("HH:mm | YYYY/MM/DD"), - id: "updated_at", - header: t("PassengerOffice.updated_at"), - enableColumnFilter: false, - datatype: "numeric", - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.navgan_id, - id: "navgan_id", - header: t("PassengerOffice.navgan_id"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.vehicle_type, - id: "vehicle_type", - header: t("PassengerOffice.vehicle_type"), - enableColumnFilter: true, - datatype: "text", - filterFn: "contains", - columnFilterModeOptions: ["contains", "equals", "notEquals"], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.state_name, - id: "state_id", - header: t("PassengerOffice.state_name"), - enableColumnFilter: false, - datatype: "numeric", - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - ], - [] - ); - return ( - - - - ); -} - -export default DashboardPassengerOfficeComponent; diff --git a/src/core/data/sidebarMenu.jsx b/src/core/data/sidebarMenu.jsx index c9b10f1..646a82e 100644 --- a/src/core/data/sidebarMenu.jsx +++ b/src/core/data/sidebarMenu.jsx @@ -1,6 +1,4 @@ import SpaceDashboardIcon from "@mui/icons-material/SpaceDashboard"; -import DirectionsCarFilledIcon from "@mui/icons-material/DirectionsCarFilled"; -import AirlineSeatReclineNormalIcon from "@mui/icons-material/AirlineSeatReclineNormal"; import DirectionsRailwayIcon from "@mui/icons-material/DirectionsRailway"; import AssignmentIndIcon from "@mui/icons-material/AssignmentInd"; import DesktopWindowsIcon from "@mui/icons-material/DesktopWindows"; @@ -48,26 +46,6 @@ const sidebarMenu = [ permissions: ["view_navgan_loans", "view_navgan_loans_province"], }, ], [ - { - key: "sidebar.passenger-office-chief", - secondary: "secondary.navgan-province-manager", - name: "passenger_office_chief", - type: "page", - route: "/dashboard/passenger-office-chief", - icon: , - selected: false, - permissions: ["manage_passenger_office_navgan"], - }, - { - key: "sidebar.machinery-expert", - secondary: "secondary.navgan-province-manager", - name: "machinery_expert", - type: "page", - route: "/dashboard/machinery-expert", - icon: , - selected: false, - permissions: ["manage_machinery_navgan"], - }, { key: "sidebar.reserve-loan", secondary: "secondary.navgan-province-manager", diff --git a/src/pages/dashboard/machinery-expert/index.jsx b/src/pages/dashboard/machinery-expert/index.jsx deleted file mode 100644 index df23f2e..0000000 --- a/src/pages/dashboard/machinery-expert/index.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import DashboardMachineryOfficeComponent from "@/components/dashboard/machinary-office"; -import {parse} from "next-useragent"; - -export default function PassengerOffice() { - return ( - - ); -} - -export async function getServerSideProps({req, locale}) { - const {isBot} = parse(req.headers["user-agent"]); - return { - props: { - messages: (await import(`&/locales/${locale}/app.json`)).default, - title: "Dashboard.machinary_office_page", - isBot, - locale, - layout: {name: 'DashboardLayout', props: {permissions: ["manage_machinery_navgan"]}} - }, - }; -} diff --git a/src/pages/dashboard/machinery-expert/prints/report.jsx b/src/pages/dashboard/machinery-expert/prints/report.jsx deleted file mode 100644 index 526851b..0000000 --- a/src/pages/dashboard/machinery-expert/prints/report.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import {parse} from "next-useragent"; -import ReportComponent from "@/components/dashboard/machinary-office/Prints/report"; - -export default function Report() { - return ( - - ) -} - -export async function getServerSideProps({req, locale}) { - const {isBot} = parse(req.headers["user-agent"]); - return { - props: { - messages: (await import(`&/locales/${locale}/app.json`)).default, - title: "Dashboard.machinary_office_page", - isBot, - locale, - layout: {name: 'PrintLayout'} - }, - }; -} \ No newline at end of file diff --git a/src/pages/dashboard/passenger-office-chief/index.jsx b/src/pages/dashboard/passenger-office-chief/index.jsx deleted file mode 100644 index 5ca084e..0000000 --- a/src/pages/dashboard/passenger-office-chief/index.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import DashboardPassengerOfficeComponent from "@/components/dashboard/passenger-office"; -import {parse} from "next-useragent"; - -export default function PassengerOffice() { - return ( - - ); -} - -export async function getServerSideProps({req, locale}) { - const {isBot} = parse(req.headers["user-agent"]); - return { - props: { - messages: (await import(`&/locales/${locale}/app.json`)).default, - title: "Dashboard.passenger_office_page", - isBot, - locale, - layout: {name: 'DashboardLayout', props: {permissions: ["manage_passenger_office_navgan"]}} - }, - }; -}