diff --git a/package.json b/package.json
index 8a2e759..6074c06 100644
--- a/package.json
+++ b/package.json
@@ -1,55 +1,55 @@
-{
- "name": "rms",
- "version": "0.1.0",
- "private": true,
- "scripts": {
- "dev": "next dev",
- "build": "next build",
- "start": "next start",
- "lint": "next lint",
- "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,html,css,scss}\"",
- "build:publish": "npm i && npm run build && pm2 restart ecosystem.config.js"
- },
- "dependencies": {
- "@emotion/cache": "^11.11.0",
- "@emotion/react": "^11.11.3",
- "@emotion/styled": "^11.11.0",
- "@hookform/resolvers": "^3.9.0",
- "@mui/icons-material": "^5.16.7",
- "@mui/lab": "^5.0.0-alpha.173",
- "@mui/material": "^5.16.7",
- "@mui/material-nextjs": "^5.16.6",
- "@mui/x-date-pickers": "^6.19.5",
- "@mui/x-tree-view": "^7.11.0",
- "@turf/turf": "^7.2.0",
- "axios": "^1.7.2",
- "date-fns": "^3.3.1",
- "date-fns-jalali": "^2.13.0-0",
- "dayjs": "^1.11.10",
- "file-saver": "^2.0.5",
- "jalali-moment": "^3.3.11",
- "lz-string": "^1.5.0",
- "material-react-table": "^2.11.2",
- "next": "^14.2.3",
- "react": "^18",
- "react-dom": "^18",
- "react-hook-form": "^7.52.1",
- "react-leaflet": "^4.2.1",
- "react-leaflet-draw": "^0.20.4",
- "react-leaflet-markercluster": "^4.2.1",
- "react-qr-code": "^2.0.18",
- "react-toastify": "^10.0.5",
- "sass": "^1.75.0",
- "sharp": "^0.33.4",
- "stylis": "^4.3.1",
- "stylis-plugin-rtl": "^2.1.1",
- "swr": "^2.2.5",
- "yup": "^1.4.0"
- },
- "devDependencies": {
- "eslint": "^8",
- "eslint-config-next": "14.1.0",
- "eslint-config-prettier": "^9.1.0",
- "prettier": "^3.3.2"
- }
-}
+{
+ "name": "rms",
+ "version": "0.1.0",
+ "private": true,
+ "scripts": {
+ "dev": "next dev",
+ "build": "next build",
+ "start": "next start",
+ "lint": "next lint",
+ "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,html,css,scss}\"",
+ "build:publish": "npm i && npm run build && pm2 restart ecosystem.config.js"
+ },
+ "dependencies": {
+ "@emotion/cache": "^11.11.0",
+ "@emotion/react": "^11.11.3",
+ "@emotion/styled": "^11.11.0",
+ "@hookform/resolvers": "^3.9.0",
+ "@mui/icons-material": "^5.16.7",
+ "@mui/lab": "^5.0.0-alpha.173",
+ "@mui/material": "^5.16.7",
+ "@mui/material-nextjs": "^5.16.6",
+ "@mui/x-date-pickers": "^6.19.5",
+ "@mui/x-tree-view": "^7.11.0",
+ "@turf/turf": "^7.2.0",
+ "axios": "^1.7.2",
+ "date-fns": "^3.3.1",
+ "date-fns-jalali": "^2.13.0-0",
+ "dayjs": "^1.11.10",
+ "file-saver": "^2.0.5",
+ "jalali-moment": "^3.3.11",
+ "lz-string": "^1.5.0",
+ "material-react-table": "^2.11.2",
+ "next": "^14.2.3",
+ "react": "^18",
+ "react-dom": "^18",
+ "react-hook-form": "^7.52.1",
+ "react-leaflet": "^4.2.1",
+ "react-leaflet-draw": "^0.20.4",
+ "react-leaflet-markercluster": "^4.2.1",
+ "react-qr-code": "^2.0.18",
+ "react-toastify": "^10.0.5",
+ "sass": "^1.75.0",
+ "sharp": "^0.33.4",
+ "stylis": "^4.3.1",
+ "stylis-plugin-rtl": "^2.1.1",
+ "swr": "^2.2.5",
+ "yup": "^1.4.0"
+ },
+ "devDependencies": {
+ "eslint": "^8",
+ "eslint-config-next": "14.1.0",
+ "eslint-config-prettier": "^9.1.0",
+ "prettier": "^3.3.2"
+ }
+}
diff --git a/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/missionsReports/page.js b/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/missionsReports/page.js
index 0fae9c1..f60b32b 100644
--- a/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/missionsReports/page.js
+++ b/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/missionsReports/page.js
@@ -1,18 +1,18 @@
-import WithPermission from "@/core/middlewares/withPermission";
-import MissionsReportPage from "@/components/dashboard/roadMissions/reports/taradodReports";
-export const metadata = {
- title: "کارتابل گزارش ترددها",
-};
-const Page = () => {
- return (
-
-
-
- );
-};
-
-export default Page;
+import WithPermission from "@/core/middlewares/withPermission";
+import MissionsReportPage from "@/components/dashboard/roadMissions/reports/taradodReports";
+export const metadata = {
+ title: "کارتابل گزارش ترددها",
+};
+const Page = () => {
+ return (
+
+
+
+ );
+};
+
+export default Page;
diff --git a/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/violationsReports/page.js b/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/violationsReports/page.js
index 6aa2483..66bc585 100644
--- a/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/violationsReports/page.js
+++ b/src/app/(withAuth)/(dashboardLayout)/dashboard/road-missions/reports/violationsReports/page.js
@@ -1,18 +1,18 @@
-import ViolationsReportsPage from "@/components/dashboard/roadMissions/reports/violationsReports";
-import WithPermission from "@/core/middlewares/withPermission";
-
-export const metadata = {
- title: "کارتابل گزارش تخلفات",
-};
-
-export default function Page() {
- return (
-
-
-
- );
-}
+import ViolationsReportsPage from "@/components/dashboard/roadMissions/reports/violationsReports";
+import WithPermission from "@/core/middlewares/withPermission";
+
+export const metadata = {
+ title: "کارتابل گزارش تخلفات",
+};
+
+export default function Page() {
+ return (
+
+
+
+ );
+}
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/ExcelPrint/index.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/ExcelPrint/index.jsx
index b398579..938d1e7 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/ExcelPrint/index.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/ExcelPrint/index.jsx
@@ -1,77 +1,77 @@
-"use client";
-import {
- EXPORT_MISSIONS_REPORT_TARADOD_COUNTRY_EXCEL_ACTIVITY,
- EXPORT_MISSIONS_REPORT_TARADOD_PROVINCE_EXCEL_ACTIVITY,
-} from "@/core/utils/routes";
-import useRequest from "@/lib/hooks/useRequest";
-import { useTheme } from "@emotion/react";
-import DescriptionIcon from "@mui/icons-material/Description";
-import { Button, CircularProgress, IconButton, useMediaQuery } from "@mui/material";
-import FileSaver from "file-saver";
-import moment from "jalali-moment";
-import { useMemo, useState } from "react";
-
-const PrintExcel = ({ table, filterData }) => {
- const theme = useTheme();
- const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
- const [loading, setLoading] = useState(false);
- const requestServer = useRequest({ notificationSuccess: true });
- const activeFilters = Object.entries(filterData).reduce((acc, [key, filter]) => {
- if (filter.value) {
- acc.push({ id: filter.id, value: filter.value });
- }
- return acc;
- }, []);
-
- const filterParams = useMemo(() => {
- const params = new URLSearchParams();
- activeFilters.length > 0 &&
- activeFilters.map((filter, index) => {
- params.set(`${filter.id}`, filter.value);
- });
- return params;
- }, [activeFilters]);
-
- const clickHandler = () => {
- setLoading(true);
- const CountryOrProvince = activeFilters.find((item) => item.id === "province_id");
- const requestUrl =
- CountryOrProvince.value === "-1"
- ? EXPORT_MISSIONS_REPORT_TARADOD_COUNTRY_EXCEL_ACTIVITY
- : EXPORT_MISSIONS_REPORT_TARADOD_PROVINCE_EXCEL_ACTIVITY;
- requestServer(`${requestUrl}?${filterParams}`, "get", {
- requestOptions: { responseType: "blob" },
- })
- .then((response) => {
- const filename = `خروجی کارتابل گزارشات گشت راهداری تاریخ_${moment().format("jYYYY_jMM_jDD")}.xlsx`;
- FileSaver.saveAs(response.data, filename);
- })
- .catch(() => {})
- .finally(() => {
- setLoading(false);
- });
- };
-
- return (
- <>
- {isMobile ? (
-
-
-
- ) : (
- : }
- onClick={clickHandler}
- >
- خروجی اکسل
-
- )}
- >
- );
-};
-export default PrintExcel;
+"use client";
+import {
+ EXPORT_MISSIONS_REPORT_TARADOD_COUNTRY_EXCEL_ACTIVITY,
+ EXPORT_MISSIONS_REPORT_TARADOD_PROVINCE_EXCEL_ACTIVITY,
+} from "@/core/utils/routes";
+import useRequest from "@/lib/hooks/useRequest";
+import { useTheme } from "@emotion/react";
+import DescriptionIcon from "@mui/icons-material/Description";
+import { Button, CircularProgress, IconButton, useMediaQuery } from "@mui/material";
+import FileSaver from "file-saver";
+import moment from "jalali-moment";
+import { useMemo, useState } from "react";
+
+const PrintExcel = ({ table, filterData }) => {
+ const theme = useTheme();
+ const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const [loading, setLoading] = useState(false);
+ const requestServer = useRequest({ notificationSuccess: true });
+ const activeFilters = Object.entries(filterData).reduce((acc, [key, filter]) => {
+ if (filter.value) {
+ acc.push({ id: filter.id, value: filter.value });
+ }
+ return acc;
+ }, []);
+
+ const filterParams = useMemo(() => {
+ const params = new URLSearchParams();
+ activeFilters.length > 0 &&
+ activeFilters.map((filter, index) => {
+ params.set(`${filter.id}`, filter.value);
+ });
+ return params;
+ }, [activeFilters]);
+
+ const clickHandler = () => {
+ setLoading(true);
+ const CountryOrProvince = activeFilters.find((item) => item.id === "province_id");
+ const requestUrl =
+ CountryOrProvince.value === "-1"
+ ? EXPORT_MISSIONS_REPORT_TARADOD_COUNTRY_EXCEL_ACTIVITY
+ : EXPORT_MISSIONS_REPORT_TARADOD_PROVINCE_EXCEL_ACTIVITY;
+ requestServer(`${requestUrl}?${filterParams}`, "get", {
+ requestOptions: { responseType: "blob" },
+ })
+ .then((response) => {
+ const filename = `خروجی کارتابل گزارشات گشت راهداری تاریخ_${moment().format("jYYYY_jMM_jDD")}.xlsx`;
+ FileSaver.saveAs(response.data, filename);
+ })
+ .catch(() => {})
+ .finally(() => {
+ setLoading(false);
+ });
+ };
+
+ return (
+ <>
+ {isMobile ? (
+
+
+
+ ) : (
+ : }
+ onClick={clickHandler}
+ >
+ خروجی اکسل
+
+ )}
+ >
+ );
+};
+export default PrintExcel;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/MissionsReportLists.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/MissionsReportLists.jsx
index 12de496..a80cabb 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/MissionsReportLists.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/MissionsReportLists.jsx
@@ -1,138 +1,138 @@
-"use client";
-import DataTableWithAuth from "@/core/components/DataTableWithAuth";
-import { Box } from "@mui/material";
-import { useEffect, useMemo } from "react";
-import Toolbar from "./Toolbar";
-
-const TaradodReportLists = ({ data, specialFilter }) => {
- const columns = useMemo(() => {
- return [
- {
- accessorKey: "edare_name",
- header: "اداره کل",
- id: "edare_name",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "text",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "total",
- header: "کل ماموریت ها",
- id: "total",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "khareg_mahdode",
- header: "تردد خارج از محدوده",
- id: "khareg_mahdode",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "durations",
- header: "جمع ساعات ماموریت",
- id: "duration",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "gps",
- header: "جمع ساعات gps",
- id: "gps",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "far_h",
- header: "با فرایند ساعتی",
- id: "far_h",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "far_d",
- header: "با فرایند روزانه",
- id: "far_d",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "un_far_h",
- header: "بدون فرایند ساعتی",
- id: "un_far_h",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "un_far_d",
- header: "بدون فرایند روزانه",
- id: "un_far_d",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "item",
- header: "فعالیت روزانه",
- id: "item",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "text",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "patrol",
- header: "گشت راهداری",
- id: "patrol",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "text",
- grow: false,
- size: 50,
- },
- ];
- }, []);
-
- return (
-
-
-
- );
-};
-
-export default TaradodReportLists;
+"use client";
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { Box } from "@mui/material";
+import { useEffect, useMemo } from "react";
+import Toolbar from "./Toolbar";
+
+const TaradodReportLists = ({ data, specialFilter }) => {
+ const columns = useMemo(() => {
+ return [
+ {
+ accessorKey: "edare_name",
+ header: "اداره کل",
+ id: "edare_name",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "text",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "total",
+ header: "کل ماموریت ها",
+ id: "total",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "khareg_mahdode",
+ header: "تردد خارج از محدوده",
+ id: "khareg_mahdode",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "durations",
+ header: "جمع ساعات ماموریت",
+ id: "duration",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "gps",
+ header: "جمع ساعات gps",
+ id: "gps",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "far_h",
+ header: "با فرایند ساعتی",
+ id: "far_h",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "far_d",
+ header: "با فرایند روزانه",
+ id: "far_d",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "un_far_h",
+ header: "بدون فرایند ساعتی",
+ id: "un_far_h",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "un_far_d",
+ header: "بدون فرایند روزانه",
+ id: "un_far_d",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "item",
+ header: "فعالیت روزانه",
+ id: "item",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "text",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "patrol",
+ header: "گشت راهداری",
+ id: "patrol",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "text",
+ grow: false,
+ size: 50,
+ },
+ ];
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default TaradodReportLists;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/Search/FromDateController.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/Search/FromDateController.jsx
index 490ee7b..0a81488 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/Search/FromDateController.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/Search/FromDateController.jsx
@@ -1,27 +1,27 @@
-import MuiDatePicker from "@/core/components/MuiDatePicker";
-import moment from "jalali-moment";
-import { Controller } from "react-hook-form";
-
-const FromDateController = ({ control }) => {
- return (
- (
- {
- const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
- onChange(formattedDate); // Update the field value in react-hook-form
- }}
- helperText={error ? error.message : null}
- />
- )}
- />
- );
-};
-export default FromDateController;
+import MuiDatePicker from "@/core/components/MuiDatePicker";
+import moment from "jalali-moment";
+import { Controller } from "react-hook-form";
+
+const FromDateController = ({ control }) => {
+ return (
+ (
+ {
+ const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
+ onChange(formattedDate); // Update the field value in react-hook-form
+ }}
+ helperText={error ? error.message : null}
+ />
+ )}
+ />
+ );
+};
+export default FromDateController;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/Search/SearchReportField.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/Search/SearchReportField.jsx
index bde2a4c..e1b71cd 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/Search/SearchReportField.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/Search/SearchReportField.jsx
@@ -1,44 +1,44 @@
-import SearchIcon from "@mui/icons-material/Search";
-import { Button, Grid } from "@mui/material";
-import { Controller } from "react-hook-form";
-import FromDateController from "./FromDateController";
-import SelectProvince from "./SelectProvince";
-import ToDateController from "./ToDateController";
-
-const SearchReportField = ({ control, hasProvincesPermission }) => {
- return (
-
-
-
-
-
-
-
- {hasProvincesPermission && (
-
-
-
- )}
-
- (
- }
- fullWidth
- >
- {isSubmitting ? "درحال دریافت اطلاعات" : "جستجو"}
-
- )}
- />
-
-
- );
-};
-
-export default SearchReportField;
+import SearchIcon from "@mui/icons-material/Search";
+import { Button, Grid } from "@mui/material";
+import { Controller } from "react-hook-form";
+import FromDateController from "./FromDateController";
+import SelectProvince from "./SelectProvince";
+import ToDateController from "./ToDateController";
+
+const SearchReportField = ({ control, hasProvincesPermission }) => {
+ return (
+
+
+
+
+
+
+
+ {hasProvincesPermission && (
+
+
+
+ )}
+
+ (
+ }
+ fullWidth
+ >
+ {isSubmitting ? "درحال دریافت اطلاعات" : "جستجو"}
+
+ )}
+ />
+
+
+ );
+};
+
+export default SearchReportField;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/Search/SelectProvince.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/Search/SelectProvince.jsx
index 2b24d67..89395f0 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/Search/SelectProvince.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/Search/SelectProvince.jsx
@@ -1,45 +1,45 @@
-import useProvinces from "@/lib/hooks/useProvince";
-import { FormControl, FormHelperText, InputLabel, MenuItem, Select } from "@mui/material";
-import { Controller } from "react-hook-form";
-
-const SelectProvince = ({ control }) => {
- const { provinces, loadingProvinces, errorProvinces } = useProvinces();
- return (
- (
-
- استان
-
- {error && {error.message}}
-
- )}
- />
- );
-};
-export default SelectProvince;
+import useProvinces from "@/lib/hooks/useProvince";
+import { FormControl, FormHelperText, InputLabel, MenuItem, Select } from "@mui/material";
+import { Controller } from "react-hook-form";
+
+const SelectProvince = ({ control }) => {
+ const { provinces, loadingProvinces, errorProvinces } = useProvinces();
+ return (
+ (
+
+ استان
+
+ {error && {error.message}}
+
+ )}
+ />
+ );
+};
+export default SelectProvince;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/Search/ToDateController.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/Search/ToDateController.jsx
index fc4a776..ef3ff49 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/Search/ToDateController.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/Search/ToDateController.jsx
@@ -1,30 +1,30 @@
-import MuiDatePicker from "@/core/components/MuiDatePicker";
-import moment from "jalali-moment";
-import { Controller, useWatch } from "react-hook-form";
-
-const ToDateController = ({ control }) => {
- const minDate = useWatch({ control, name: "from_date" });
- return (
- (
- {
- const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
- onChange(formattedDate); // Update the field value in react-hook-form
- }}
- helperText={error ? error.message : null}
- />
- )}
- />
- );
-};
-export default ToDateController;
+import MuiDatePicker from "@/core/components/MuiDatePicker";
+import moment from "jalali-moment";
+import { Controller, useWatch } from "react-hook-form";
+
+const ToDateController = ({ control }) => {
+ const minDate = useWatch({ control, name: "from_date" });
+ return (
+ (
+ {
+ const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
+ onChange(formattedDate); // Update the field value in react-hook-form
+ }}
+ helperText={error ? error.message : null}
+ />
+ )}
+ />
+ );
+};
+export default ToDateController;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/Search/index.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/Search/index.jsx
index f29d302..9d504f2 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/Search/index.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/Search/index.jsx
@@ -1,13 +1,13 @@
-import StyledForm from "@/core/components/StyledForm";
-import SearchReportField from "./SearchReportField";
-
-const SearchReportList = ({ handleSubmit, onSearchSubmit, control, hasProvincesPermission }) => {
- return (
- <>
-
-
-
- >
- );
-};
-export default SearchReportList;
+import StyledForm from "@/core/components/StyledForm";
+import SearchReportField from "./SearchReportField";
+
+const SearchReportList = ({ handleSubmit, onSearchSubmit, control, hasProvincesPermission }) => {
+ return (
+ <>
+
+
+
+ >
+ );
+};
+export default SearchReportList;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/Toolbar.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/Toolbar.jsx
index 0f726c7..afc132c 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/Toolbar.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/Toolbar.jsx
@@ -1,11 +1,11 @@
-import { Box } from "@mui/material";
-import PrintExcel from "./ExcelPrint";
-
-const Toolbar = ({ table, filterData, mutate }) => {
- return (
-
-
-
- );
-};
-export default Toolbar;
+import { Box } from "@mui/material";
+import PrintExcel from "./ExcelPrint";
+
+const Toolbar = ({ table, filterData, mutate }) => {
+ return (
+
+
+
+ );
+};
+export default Toolbar;
diff --git a/src/components/dashboard/roadMissions/reports/taradodReports/index.jsx b/src/components/dashboard/roadMissions/reports/taradodReports/index.jsx
index ce41101..1af4608 100644
--- a/src/components/dashboard/roadMissions/reports/taradodReports/index.jsx
+++ b/src/components/dashboard/roadMissions/reports/taradodReports/index.jsx
@@ -1,142 +1,142 @@
-"use client";
-import PageTitle from "@/core/components/PageTitle";
-import {
- GET_MISSIONS_REPORT_TARADOD_COUNTRY_ACTIVITY,
- GET_MISSIONS_REPORT_TARADOD_PROVINCE_ACTIVITY,
-} from "@/core/utils/routes";
-import { useAuth } from "@/lib/contexts/auth";
-import { usePermissions } from "@/lib/hooks/usePermissions";
-import useRequest from "@/lib/hooks/useRequest";
-import { yupResolver } from "@hookform/resolvers/yup";
-import { LinearProgress, Stack } from "@mui/material";
-import moment from "jalali-moment";
-import { useEffect, useState } from "react";
-import { useForm } from "react-hook-form";
-import * as yup from "yup";
-import TaradodReportLists from "./MissionsReportLists";
-import SearchReportList from "./Search";
-
-const TaradodReportPage = () => {
- const [data, setData] = useState(null);
- const { data: userPermissions } = usePermissions();
- const { user } = useAuth();
- const requestServer = useRequest();
- const [provinceId, setProvinceId] = useState(user.province_id || "-1");
- const hasProvincesPermission = userPermissions?.includes("mission-report-country");
-
- const defaultValues = {
- from_date: moment(new Date()).format("YYYY-MM-DD"),
- date_to: moment(new Date()).format("YYYY-MM-DD"),
- province_id: provinceId,
- };
- const defaultFilter = [
- { value: `${defaultValues.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
- { value: `${defaultValues.from_date}`, datatype: "date", id: "from_date", fn: "between" },
- { value: `${defaultValues.date_to}`, datatype: "date", id: "date_to", fn: "between" },
- ];
- const [specialFilter, setSpecialFilter] = useState(defaultFilter);
-
- const onSearchSubmit = async (data) => {
- const params = new URLSearchParams();
- params.set("from_date", `${data.from_date}`);
- params.set("date_to", `${data.date_to}`);
- setSpecialFilter([
- { value: `${data.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
- { value: `${data.from_date}`, datatype: "date", id: "from_date", fn: "between" },
- { value: `${data.date_to}`, datatype: "date", id: "date_to", fn: "between" },
- ]);
- if (data.province_id === "-1") {
- try {
- // params.set("province_id", `${data.province_id}`);
- const response = await requestServer(`${GET_MISSIONS_REPORT_TARADOD_COUNTRY_ACTIVITY}?${params}`);
- const result = response.data.data;
- const nationalReportForItem = result.activities.find((report) => report.province_id === "-1");
- const nationalReport = {
- edare_name: "کل کشور",
- ...nationalReportForItem,
- };
-
- setData({
- data: [
- nationalReport,
- ...result.provinces.map((province) => {
- const filteredReports = result.activities.find(
- (report) => report.province_id == province.id
- );
- return {
- ...filteredReports,
- edare_name: province.name_fa,
- };
- }),
- ],
- filters: data,
- });
- } catch (e) {}
- } else {
- try {
- params.set("province_id", `${data.province_id}`);
- const response = await requestServer(`${GET_MISSIONS_REPORT_TARADOD_PROVINCE_ACTIVITY}?${params}`);
- const result = response.data.data;
-
- const nationalReportForItem = result.activities.find((report) => report.city_id === "-1");
-
- const nationalReport = {
- ...nationalReportForItem,
- edare_name: "کل استان",
- };
- setData({
- data: [
- nationalReport,
- ...result.city.map((city) => {
- const filteredReports = result.activities.find((report) => report.city_id == city.id);
- return {
- edare_name: city.name_fa,
- ...filteredReports,
- };
- }),
- ],
- filters: data,
- });
- } catch (e) {}
- }
- };
-
- useEffect(() => {
- if (!userPermissions) return;
- onSearchSubmit(defaultValues);
- }, [userPermissions]);
-
- const validationSchema = yup.object().shape({
- from_date: yup
- .string()
- .required("تاریخ شروع الزامی است!")
- .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ شروع الزامی است!")
- .test("is-valid-date", "تاریخ شروع معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
- date_to: yup
- .string()
- .required("تاریخ پایان الزامی است!")
- .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ پایان الزامی است!")
- .test("is-valid-date", "تاریخ پایان معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
- province_id: yup.string().nullable(),
- });
-
- const { control, handleSubmit } = useForm({
- defaultValues,
- resolver: yupResolver(validationSchema),
- mode: "all",
- });
-
- return (
-
-
-
- {!data ? : }
-
- );
-};
-export default TaradodReportPage;
+"use client";
+import PageTitle from "@/core/components/PageTitle";
+import {
+ GET_MISSIONS_REPORT_TARADOD_COUNTRY_ACTIVITY,
+ GET_MISSIONS_REPORT_TARADOD_PROVINCE_ACTIVITY,
+} from "@/core/utils/routes";
+import { useAuth } from "@/lib/contexts/auth";
+import { usePermissions } from "@/lib/hooks/usePermissions";
+import useRequest from "@/lib/hooks/useRequest";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { LinearProgress, Stack } from "@mui/material";
+import moment from "jalali-moment";
+import { useEffect, useState } from "react";
+import { useForm } from "react-hook-form";
+import * as yup from "yup";
+import TaradodReportLists from "./MissionsReportLists";
+import SearchReportList from "./Search";
+
+const TaradodReportPage = () => {
+ const [data, setData] = useState(null);
+ const { data: userPermissions } = usePermissions();
+ const { user } = useAuth();
+ const requestServer = useRequest();
+ const [provinceId, setProvinceId] = useState(user.province_id || "-1");
+ const hasProvincesPermission = userPermissions?.includes("mission-report-country");
+
+ const defaultValues = {
+ from_date: moment(new Date()).format("YYYY-MM-DD"),
+ date_to: moment(new Date()).format("YYYY-MM-DD"),
+ province_id: provinceId,
+ };
+ const defaultFilter = [
+ { value: `${defaultValues.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
+ { value: `${defaultValues.from_date}`, datatype: "date", id: "from_date", fn: "between" },
+ { value: `${defaultValues.date_to}`, datatype: "date", id: "date_to", fn: "between" },
+ ];
+ const [specialFilter, setSpecialFilter] = useState(defaultFilter);
+
+ const onSearchSubmit = async (data) => {
+ const params = new URLSearchParams();
+ params.set("from_date", `${data.from_date}`);
+ params.set("date_to", `${data.date_to}`);
+ setSpecialFilter([
+ { value: `${data.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
+ { value: `${data.from_date}`, datatype: "date", id: "from_date", fn: "between" },
+ { value: `${data.date_to}`, datatype: "date", id: "date_to", fn: "between" },
+ ]);
+ if (data.province_id === "-1") {
+ try {
+ // params.set("province_id", `${data.province_id}`);
+ const response = await requestServer(`${GET_MISSIONS_REPORT_TARADOD_COUNTRY_ACTIVITY}?${params}`);
+ const result = response.data.data;
+ const nationalReportForItem = result.activities.find((report) => report.province_id === "-1");
+ const nationalReport = {
+ edare_name: "کل کشور",
+ ...nationalReportForItem,
+ };
+
+ setData({
+ data: [
+ nationalReport,
+ ...result.provinces.map((province) => {
+ const filteredReports = result.activities.find(
+ (report) => report.province_id == province.id
+ );
+ return {
+ ...filteredReports,
+ edare_name: province.name_fa,
+ };
+ }),
+ ],
+ filters: data,
+ });
+ } catch (e) {}
+ } else {
+ try {
+ params.set("province_id", `${data.province_id}`);
+ const response = await requestServer(`${GET_MISSIONS_REPORT_TARADOD_PROVINCE_ACTIVITY}?${params}`);
+ const result = response.data.data;
+
+ const nationalReportForItem = result.activities.find((report) => report.city_id === "-1");
+
+ const nationalReport = {
+ ...nationalReportForItem,
+ edare_name: "کل استان",
+ };
+ setData({
+ data: [
+ nationalReport,
+ ...result.city.map((city) => {
+ const filteredReports = result.activities.find((report) => report.city_id == city.id);
+ return {
+ edare_name: city.name_fa,
+ ...filteredReports,
+ };
+ }),
+ ],
+ filters: data,
+ });
+ } catch (e) {}
+ }
+ };
+
+ useEffect(() => {
+ if (!userPermissions) return;
+ onSearchSubmit(defaultValues);
+ }, [userPermissions]);
+
+ const validationSchema = yup.object().shape({
+ from_date: yup
+ .string()
+ .required("تاریخ شروع الزامی است!")
+ .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ شروع الزامی است!")
+ .test("is-valid-date", "تاریخ شروع معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
+ date_to: yup
+ .string()
+ .required("تاریخ پایان الزامی است!")
+ .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ پایان الزامی است!")
+ .test("is-valid-date", "تاریخ پایان معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
+ province_id: yup.string().nullable(),
+ });
+
+ const { control, handleSubmit } = useForm({
+ defaultValues,
+ resolver: yupResolver(validationSchema),
+ mode: "all",
+ });
+
+ return (
+
+
+
+ {!data ? : }
+
+ );
+};
+export default TaradodReportPage;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/ExcelPrint/index.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/ExcelPrint/index.jsx
index b7487f6..3968fff 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/ExcelPrint/index.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/ExcelPrint/index.jsx
@@ -1,77 +1,77 @@
-"use client";
-import {
- EXPORT_MISSIONS_REPORT_VIOLATION_COUNTRY_EXCEL_ACTIVITY,
- EXPORT_MISSIONS_REPORT_VIOLATION_PROVINCE_EXCEL_ACTIVITY,
-} from "@/core/utils/routes";
-import useRequest from "@/lib/hooks/useRequest";
-import { useTheme } from "@emotion/react";
-import DescriptionIcon from "@mui/icons-material/Description";
-import { Button, CircularProgress, IconButton, useMediaQuery } from "@mui/material";
-import FileSaver from "file-saver";
-import moment from "jalali-moment";
-import { useMemo, useState } from "react";
-
-const PrintExcel = ({ table, filterData }) => {
- const theme = useTheme();
- const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
- const [loading, setLoading] = useState(false);
- const requestServer = useRequest({ notificationSuccess: true });
- const activeFilters = Object.entries(filterData).reduce((acc, [key, filter]) => {
- if (filter.value) {
- acc.push({ id: filter.id, value: filter.value });
- }
- return acc;
- }, []);
-
- const filterParams = useMemo(() => {
- const params = new URLSearchParams();
- activeFilters.length > 0 &&
- activeFilters.map((filter, index) => {
- params.set(`${filter.id}`, filter.value);
- });
- return params;
- }, [activeFilters]);
-
- const clickHandler = () => {
- setLoading(true);
- const CountryOrProvince = activeFilters.find((item) => item.id === "province_id");
- const requestUrl =
- CountryOrProvince.value === "-1"
- ? EXPORT_MISSIONS_REPORT_VIOLATION_COUNTRY_EXCEL_ACTIVITY
- : EXPORT_MISSIONS_REPORT_VIOLATION_PROVINCE_EXCEL_ACTIVITY;
- requestServer(`${requestUrl}?${filterParams}`, "get", {
- requestOptions: { responseType: "blob" },
- })
- .then((response) => {
- const filename = `خروجی کارتابل گزارشات گشت راهداری تاریخ_${moment().format("jYYYY_jMM_jDD")}.xlsx`;
- FileSaver.saveAs(response.data, filename);
- })
- .catch(() => {})
- .finally(() => {
- setLoading(false);
- });
- };
-
- return (
- <>
- {isMobile ? (
-
-
-
- ) : (
- : }
- onClick={clickHandler}
- >
- خروجی اکسل
-
- )}
- >
- );
-};
-export default PrintExcel;
+"use client";
+import {
+ EXPORT_MISSIONS_REPORT_VIOLATION_COUNTRY_EXCEL_ACTIVITY,
+ EXPORT_MISSIONS_REPORT_VIOLATION_PROVINCE_EXCEL_ACTIVITY,
+} from "@/core/utils/routes";
+import useRequest from "@/lib/hooks/useRequest";
+import { useTheme } from "@emotion/react";
+import DescriptionIcon from "@mui/icons-material/Description";
+import { Button, CircularProgress, IconButton, useMediaQuery } from "@mui/material";
+import FileSaver from "file-saver";
+import moment from "jalali-moment";
+import { useMemo, useState } from "react";
+
+const PrintExcel = ({ table, filterData }) => {
+ const theme = useTheme();
+ const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
+ const [loading, setLoading] = useState(false);
+ const requestServer = useRequest({ notificationSuccess: true });
+ const activeFilters = Object.entries(filterData).reduce((acc, [key, filter]) => {
+ if (filter.value) {
+ acc.push({ id: filter.id, value: filter.value });
+ }
+ return acc;
+ }, []);
+
+ const filterParams = useMemo(() => {
+ const params = new URLSearchParams();
+ activeFilters.length > 0 &&
+ activeFilters.map((filter, index) => {
+ params.set(`${filter.id}`, filter.value);
+ });
+ return params;
+ }, [activeFilters]);
+
+ const clickHandler = () => {
+ setLoading(true);
+ const CountryOrProvince = activeFilters.find((item) => item.id === "province_id");
+ const requestUrl =
+ CountryOrProvince.value === "-1"
+ ? EXPORT_MISSIONS_REPORT_VIOLATION_COUNTRY_EXCEL_ACTIVITY
+ : EXPORT_MISSIONS_REPORT_VIOLATION_PROVINCE_EXCEL_ACTIVITY;
+ requestServer(`${requestUrl}?${filterParams}`, "get", {
+ requestOptions: { responseType: "blob" },
+ })
+ .then((response) => {
+ const filename = `خروجی کارتابل گزارشات گشت راهداری تاریخ_${moment().format("jYYYY_jMM_jDD")}.xlsx`;
+ FileSaver.saveAs(response.data, filename);
+ })
+ .catch(() => {})
+ .finally(() => {
+ setLoading(false);
+ });
+ };
+
+ return (
+ <>
+ {isMobile ? (
+
+
+
+ ) : (
+ : }
+ onClick={clickHandler}
+ >
+ خروجی اکسل
+
+ )}
+ >
+ );
+};
+export default PrintExcel;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/Search/FromDateController.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/Search/FromDateController.jsx
index 490ee7b..0a81488 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/Search/FromDateController.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/Search/FromDateController.jsx
@@ -1,27 +1,27 @@
-import MuiDatePicker from "@/core/components/MuiDatePicker";
-import moment from "jalali-moment";
-import { Controller } from "react-hook-form";
-
-const FromDateController = ({ control }) => {
- return (
- (
- {
- const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
- onChange(formattedDate); // Update the field value in react-hook-form
- }}
- helperText={error ? error.message : null}
- />
- )}
- />
- );
-};
-export default FromDateController;
+import MuiDatePicker from "@/core/components/MuiDatePicker";
+import moment from "jalali-moment";
+import { Controller } from "react-hook-form";
+
+const FromDateController = ({ control }) => {
+ return (
+ (
+ {
+ const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
+ onChange(formattedDate); // Update the field value in react-hook-form
+ }}
+ helperText={error ? error.message : null}
+ />
+ )}
+ />
+ );
+};
+export default FromDateController;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/Search/SearchReportField.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/Search/SearchReportField.jsx
index bde2a4c..e1b71cd 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/Search/SearchReportField.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/Search/SearchReportField.jsx
@@ -1,44 +1,44 @@
-import SearchIcon from "@mui/icons-material/Search";
-import { Button, Grid } from "@mui/material";
-import { Controller } from "react-hook-form";
-import FromDateController from "./FromDateController";
-import SelectProvince from "./SelectProvince";
-import ToDateController from "./ToDateController";
-
-const SearchReportField = ({ control, hasProvincesPermission }) => {
- return (
-
-
-
-
-
-
-
- {hasProvincesPermission && (
-
-
-
- )}
-
- (
- }
- fullWidth
- >
- {isSubmitting ? "درحال دریافت اطلاعات" : "جستجو"}
-
- )}
- />
-
-
- );
-};
-
-export default SearchReportField;
+import SearchIcon from "@mui/icons-material/Search";
+import { Button, Grid } from "@mui/material";
+import { Controller } from "react-hook-form";
+import FromDateController from "./FromDateController";
+import SelectProvince from "./SelectProvince";
+import ToDateController from "./ToDateController";
+
+const SearchReportField = ({ control, hasProvincesPermission }) => {
+ return (
+
+
+
+
+
+
+
+ {hasProvincesPermission && (
+
+
+
+ )}
+
+ (
+ }
+ fullWidth
+ >
+ {isSubmitting ? "درحال دریافت اطلاعات" : "جستجو"}
+
+ )}
+ />
+
+
+ );
+};
+
+export default SearchReportField;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/Search/SelectProvince.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/Search/SelectProvince.jsx
index 2b24d67..89395f0 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/Search/SelectProvince.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/Search/SelectProvince.jsx
@@ -1,45 +1,45 @@
-import useProvinces from "@/lib/hooks/useProvince";
-import { FormControl, FormHelperText, InputLabel, MenuItem, Select } from "@mui/material";
-import { Controller } from "react-hook-form";
-
-const SelectProvince = ({ control }) => {
- const { provinces, loadingProvinces, errorProvinces } = useProvinces();
- return (
- (
-
- استان
-
- {error && {error.message}}
-
- )}
- />
- );
-};
-export default SelectProvince;
+import useProvinces from "@/lib/hooks/useProvince";
+import { FormControl, FormHelperText, InputLabel, MenuItem, Select } from "@mui/material";
+import { Controller } from "react-hook-form";
+
+const SelectProvince = ({ control }) => {
+ const { provinces, loadingProvinces, errorProvinces } = useProvinces();
+ return (
+ (
+
+ استان
+
+ {error && {error.message}}
+
+ )}
+ />
+ );
+};
+export default SelectProvince;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/Search/ToDateController.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/Search/ToDateController.jsx
index 2dd7263..9b9ac81 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/Search/ToDateController.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/Search/ToDateController.jsx
@@ -1,30 +1,30 @@
-import MuiDatePicker from "@/core/components/MuiDatePicker";
-import moment from "jalali-moment";
-import { Controller, useWatch } from "react-hook-form";
-
-const ToDateController = ({ control }) => {
- const minDate = useWatch({ control, name: "from_date" });
- return (
- (
- {
- const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
- onChange(formattedDate); // Update the field value in react-hook-form
- }}
- helperText={error ? error.message : null}
- />
- )}
- />
- );
-};
-export default ToDateController;
+import MuiDatePicker from "@/core/components/MuiDatePicker";
+import moment from "jalali-moment";
+import { Controller, useWatch } from "react-hook-form";
+
+const ToDateController = ({ control }) => {
+ const minDate = useWatch({ control, name: "from_date" });
+ return (
+ (
+ {
+ const formattedDate = moment(new Date(newValue)).locale("en").format("YYYY-MM-DD");
+ onChange(formattedDate); // Update the field value in react-hook-form
+ }}
+ helperText={error ? error.message : null}
+ />
+ )}
+ />
+ );
+};
+export default ToDateController;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/Search/index.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/Search/index.jsx
index f29d302..9d504f2 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/Search/index.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/Search/index.jsx
@@ -1,13 +1,13 @@
-import StyledForm from "@/core/components/StyledForm";
-import SearchReportField from "./SearchReportField";
-
-const SearchReportList = ({ handleSubmit, onSearchSubmit, control, hasProvincesPermission }) => {
- return (
- <>
-
-
-
- >
- );
-};
-export default SearchReportList;
+import StyledForm from "@/core/components/StyledForm";
+import SearchReportField from "./SearchReportField";
+
+const SearchReportList = ({ handleSubmit, onSearchSubmit, control, hasProvincesPermission }) => {
+ return (
+ <>
+
+
+
+ >
+ );
+};
+export default SearchReportList;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/Toolbar.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/Toolbar.jsx
index 0f726c7..afc132c 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/Toolbar.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/Toolbar.jsx
@@ -1,11 +1,11 @@
-import { Box } from "@mui/material";
-import PrintExcel from "./ExcelPrint";
-
-const Toolbar = ({ table, filterData, mutate }) => {
- return (
-
-
-
- );
-};
-export default Toolbar;
+import { Box } from "@mui/material";
+import PrintExcel from "./ExcelPrint";
+
+const Toolbar = ({ table, filterData, mutate }) => {
+ return (
+
+
+
+ );
+};
+export default Toolbar;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/ViolationsReportsList.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/ViolationsReportsList.jsx
index 60966f8..61f7282 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/ViolationsReportsList.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/ViolationsReportsList.jsx
@@ -1,98 +1,98 @@
-"use client";
-import DataTableWithAuth from "@/core/components/DataTableWithAuth";
-import { Box } from "@mui/material";
-import { useEffect, useMemo } from "react";
-import Toolbar from "./Toolbar";
-
-const ViolationsReportsList = ({ data, specialFilter }) => {
- const columns = useMemo(() => {
- return [
- {
- accessorKey: "edare_name",
- header: "اداره کل",
- id: "edare_name",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "text",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "total",
- header: "کل تخلفات",
- id: "total",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "done",
- header: "اقدام شده",
- id: "done",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "undone",
- header: "اقدام نشده",
- id: "un_done",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "gps",
- header: "GPS",
- id: "gps",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "herasat",
- header: "ثبت حراست",
- id: "herasat",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- {
- accessorKey: "mil_gps",
- header: "کیلومتر GPS",
- id: "mil_gps",
- enableColumnFilter: false,
- enableSorting: false,
- datatype: "numeric",
- grow: false,
- size: 50,
- },
- ];
- }, []);
-
- return (
-
-
-
- );
-};
-
-export default ViolationsReportsList;
+"use client";
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { Box } from "@mui/material";
+import { useEffect, useMemo } from "react";
+import Toolbar from "./Toolbar";
+
+const ViolationsReportsList = ({ data, specialFilter }) => {
+ const columns = useMemo(() => {
+ return [
+ {
+ accessorKey: "edare_name",
+ header: "اداره کل",
+ id: "edare_name",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "text",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "total",
+ header: "کل تخلفات",
+ id: "total",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "done",
+ header: "اقدام شده",
+ id: "done",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "undone",
+ header: "اقدام نشده",
+ id: "un_done",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "gps",
+ header: "GPS",
+ id: "gps",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "herasat",
+ header: "ثبت حراست",
+ id: "herasat",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ {
+ accessorKey: "mil_gps",
+ header: "کیلومتر GPS",
+ id: "mil_gps",
+ enableColumnFilter: false,
+ enableSorting: false,
+ datatype: "numeric",
+ grow: false,
+ size: 50,
+ },
+ ];
+ }, []);
+
+ return (
+
+
+
+ );
+};
+
+export default ViolationsReportsList;
diff --git a/src/components/dashboard/roadMissions/reports/violationsReports/index.jsx b/src/components/dashboard/roadMissions/reports/violationsReports/index.jsx
index 37d765f..d7f9a5a 100644
--- a/src/components/dashboard/roadMissions/reports/violationsReports/index.jsx
+++ b/src/components/dashboard/roadMissions/reports/violationsReports/index.jsx
@@ -1,141 +1,141 @@
-"use client";
-import PageTitle from "@/core/components/PageTitle";
-import {
- GET_MISSIONS_REPORT_VIOLATION_COUNTRY_ACTIVITY,
- GET_MISSIONS_REPORT_VIOLATION_PROVINCE_ACTIVITY,
-} from "@/core/utils/routes";
-import { useAuth } from "@/lib/contexts/auth";
-import { usePermissions } from "@/lib/hooks/usePermissions";
-import useRequest from "@/lib/hooks/useRequest";
-import { yupResolver } from "@hookform/resolvers/yup";
-import { LinearProgress, Stack } from "@mui/material";
-import moment from "jalali-moment";
-import { useEffect, useState } from "react";
-import { useForm } from "react-hook-form";
-import * as yup from "yup";
-import ViolationsReportsList from "./ViolationsReportsList";
-import SearchReportList from "./Search";
-
-const ViolationsReportsPage = () => {
- const [data, setData] = useState(null);
- const { data: userPermissions } = usePermissions();
- const { user } = useAuth();
- const requestServer = useRequest();
- const hasProvincesPermission = userPermissions?.includes("mission-report-country");
-
- const defaultValues = {
- from_date: moment(new Date()).format("YYYY-MM-DD"),
- date_to: moment(new Date()).format("YYYY-MM-DD"),
- province_id: user.province_id || "-1",
- };
- const defaultFilter = [
- { value: `${defaultValues.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
- { value: `${defaultValues.from_date}`, datatype: "date", id: "from_date", fn: "between" },
- { value: `${defaultValues.date_to}`, datatype: "date", id: "date_to", fn: "between" },
- ];
- const [specialFilter, setSpecialFilter] = useState(defaultFilter);
-
- const onSearchSubmit = async (data) => {
- const params = new URLSearchParams();
- params.set("from_date", `${data.from_date}`);
- params.set("date_to", `${data.date_to}`);
- setSpecialFilter([
- { value: `${data.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
- { value: `${data.from_date}`, datatype: "date", id: "from_date", fn: "between" },
- { value: `${data.date_to}`, datatype: "date", id: "date_to", fn: "between" },
- ]);
- if (data.province_id === "-1") {
- try {
- // params.set("province_id", `${data.province_id}`);
- const response = await requestServer(`${GET_MISSIONS_REPORT_VIOLATION_COUNTRY_ACTIVITY}?${params}`);
- const result = response.data.data;
- const nationalReportForItem = result.activities.find((report) => report.province_id === "-1");
- const nationalReport = {
- edare_name: "کل کشور",
- ...nationalReportForItem,
- };
-
- setData({
- data: [
- nationalReport,
- ...result.provinces.map((province) => {
- const filteredReports = result.activities.find(
- (report) => report.province_id == province.id
- );
- return {
- ...filteredReports,
- edare_name: province.name_fa,
- };
- }),
- ],
- filters: data,
- });
- } catch (e) {}
- } else {
- try {
- params.set("province_id", `${data.province_id}`);
- const response = await requestServer(`${GET_MISSIONS_REPORT_VIOLATION_PROVINCE_ACTIVITY}?${params}`);
- const result = response.data.data;
-
- const nationalReportForItem = result.activities.find((report) => report.city_id === "-1");
-
- const nationalReport = {
- ...nationalReportForItem,
- edare_name: "کل استان",
- };
- setData({
- data: [
- nationalReport,
- ...result.city.map((city) => {
- const filteredReports = result.activities.find((report) => report.city_id == city.id);
- return {
- edare_name: city.name_fa,
- ...filteredReports,
- };
- }),
- ],
- filters: data,
- });
- } catch (e) {}
- }
- };
-
- useEffect(() => {
- if (!userPermissions) return;
- onSearchSubmit(defaultValues);
- }, [userPermissions]);
-
- const validationSchema = yup.object().shape({
- from_date: yup
- .string()
- .required("تاریخ شروع الزامی است!")
- .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ شروع الزامی است!")
- .test("is-valid-date", "تاریخ شروع معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
- date_to: yup
- .string()
- .required("تاریخ پایان الزامی است!")
- .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ پایان الزامی است!")
- .test("is-valid-date", "تاریخ پایان معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
- province_id: yup.string().nullable(),
- });
-
- const { control, handleSubmit } = useForm({
- defaultValues,
- resolver: yupResolver(validationSchema),
- mode: "all",
- });
-
- return (
-
-
-
- {!data ? : }
-
- );
-};
-export default ViolationsReportsPage;
+"use client";
+import PageTitle from "@/core/components/PageTitle";
+import {
+ GET_MISSIONS_REPORT_VIOLATION_COUNTRY_ACTIVITY,
+ GET_MISSIONS_REPORT_VIOLATION_PROVINCE_ACTIVITY,
+} from "@/core/utils/routes";
+import { useAuth } from "@/lib/contexts/auth";
+import { usePermissions } from "@/lib/hooks/usePermissions";
+import useRequest from "@/lib/hooks/useRequest";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { LinearProgress, Stack } from "@mui/material";
+import moment from "jalali-moment";
+import { useEffect, useState } from "react";
+import { useForm } from "react-hook-form";
+import * as yup from "yup";
+import ViolationsReportsList from "./ViolationsReportsList";
+import SearchReportList from "./Search";
+
+const ViolationsReportsPage = () => {
+ const [data, setData] = useState(null);
+ const { data: userPermissions } = usePermissions();
+ const { user } = useAuth();
+ const requestServer = useRequest();
+ const hasProvincesPermission = userPermissions?.includes("mission-report-country");
+
+ const defaultValues = {
+ from_date: moment(new Date()).format("YYYY-MM-DD"),
+ date_to: moment(new Date()).format("YYYY-MM-DD"),
+ province_id: user.province_id || "-1",
+ };
+ const defaultFilter = [
+ { value: `${defaultValues.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
+ { value: `${defaultValues.from_date}`, datatype: "date", id: "from_date", fn: "between" },
+ { value: `${defaultValues.date_to}`, datatype: "date", id: "date_to", fn: "between" },
+ ];
+ const [specialFilter, setSpecialFilter] = useState(defaultFilter);
+
+ const onSearchSubmit = async (data) => {
+ const params = new URLSearchParams();
+ params.set("from_date", `${data.from_date}`);
+ params.set("date_to", `${data.date_to}`);
+ setSpecialFilter([
+ { value: `${data.province_id}`, datatype: "numeric", id: "province_id", fn: "equals" },
+ { value: `${data.from_date}`, datatype: "date", id: "from_date", fn: "between" },
+ { value: `${data.date_to}`, datatype: "date", id: "date_to", fn: "between" },
+ ]);
+ if (data.province_id === "-1") {
+ try {
+ // params.set("province_id", `${data.province_id}`);
+ const response = await requestServer(`${GET_MISSIONS_REPORT_VIOLATION_COUNTRY_ACTIVITY}?${params}`);
+ const result = response.data.data;
+ const nationalReportForItem = result.activities.find((report) => report.province_id === "-1");
+ const nationalReport = {
+ edare_name: "کل کشور",
+ ...nationalReportForItem,
+ };
+
+ setData({
+ data: [
+ nationalReport,
+ ...result.provinces.map((province) => {
+ const filteredReports = result.activities.find(
+ (report) => report.province_id == province.id
+ );
+ return {
+ ...filteredReports,
+ edare_name: province.name_fa,
+ };
+ }),
+ ],
+ filters: data,
+ });
+ } catch (e) {}
+ } else {
+ try {
+ params.set("province_id", `${data.province_id}`);
+ const response = await requestServer(`${GET_MISSIONS_REPORT_VIOLATION_PROVINCE_ACTIVITY}?${params}`);
+ const result = response.data.data;
+
+ const nationalReportForItem = result.activities.find((report) => report.city_id === "-1");
+
+ const nationalReport = {
+ ...nationalReportForItem,
+ edare_name: "کل استان",
+ };
+ setData({
+ data: [
+ nationalReport,
+ ...result.city.map((city) => {
+ const filteredReports = result.activities.find((report) => report.city_id == city.id);
+ return {
+ edare_name: city.name_fa,
+ ...filteredReports,
+ };
+ }),
+ ],
+ filters: data,
+ });
+ } catch (e) {}
+ }
+ };
+
+ useEffect(() => {
+ if (!userPermissions) return;
+ onSearchSubmit(defaultValues);
+ }, [userPermissions]);
+
+ const validationSchema = yup.object().shape({
+ from_date: yup
+ .string()
+ .required("تاریخ شروع الزامی است!")
+ .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ شروع الزامی است!")
+ .test("is-valid-date", "تاریخ شروع معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
+ date_to: yup
+ .string()
+ .required("تاریخ پایان الزامی است!")
+ .matches(/^\d{4}-\d{2}-\d{2}$/, "تاریخ پایان الزامی است!")
+ .test("is-valid-date", "تاریخ پایان معتبر نیست!", (value) => moment(value, "YYYY-MM-DD", true).isValid()),
+ province_id: yup.string().nullable(),
+ });
+
+ const { control, handleSubmit } = useForm({
+ defaultValues,
+ resolver: yupResolver(validationSchema),
+ mode: "all",
+ });
+
+ return (
+
+
+
+ {!data ? : }
+
+ );
+};
+export default ViolationsReportsPage;