diff --git a/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-calls-report/page.js b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-calls-report/page.js
new file mode 100644
index 0000000..619de50
--- /dev/null
+++ b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-calls-report/page.js
@@ -0,0 +1,16 @@
+import ProvinceCumulativeCallsReportPage from "@/components/dashboard/provinceReports/ProvinceCumulativeCallsReport";
+import WithPermission from "@/core/middlewares/withPermission";
+
+export const metadata = {
+ title: "گزارشات",
+};
+
+const Page = () => {
+ return (
+
+
+
+ );
+};
+
+export default Page;
diff --git a/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-detailed-report/page.js b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-detailed-report/page.js
new file mode 100644
index 0000000..16930e9
--- /dev/null
+++ b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-detailed-report/page.js
@@ -0,0 +1,16 @@
+import ProvinceDetailedLogsReportPage from "@/components/dashboard/provinceReports/ProvinceDetailedLogsReport";
+import WithPermission from "@/core/middlewares/withPermission";
+
+export const metadata = {
+ title: "ریز گزارشات",
+};
+
+const Page = () => {
+ return (
+
+
+
+ );
+};
+
+export default Page;
diff --git a/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-messages-report/page.js b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-messages-report/page.js
new file mode 100644
index 0000000..e1741f9
--- /dev/null
+++ b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-messages-report/page.js
@@ -0,0 +1,16 @@
+import ProvincePeopleMessagesReportPage from "@/components/dashboard/provinceReports/ProvincePeopleMessagesReport";
+import WithPermission from "@/core/middlewares/withPermission";
+
+export const metadata = {
+ title: "گزارش پیامها",
+};
+
+const Page = () => {
+ return (
+
+
+
+ );
+};
+
+export default Page;
diff --git a/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-operators-performance-report/page.js b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-operators-performance-report/page.js
new file mode 100644
index 0000000..0655af7
--- /dev/null
+++ b/src/app/(withAuth)/(dashboardLayout)/dashboard/province-reports/province-operators-performance-report/page.js
@@ -0,0 +1,16 @@
+import ProvinceOperatorPerformanceReportPage from "@/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport";
+import WithPermission from "@/core/middlewares/withPermission";
+
+export const metadata = {
+ title: "عملکرد کارشناسان",
+};
+
+const Page = () => {
+ return (
+
+
+
+ );
+};
+
+export default Page;
diff --git a/src/components/dashboard/provinceReports/ProvinceCumulativeCallsReport/DataTable.jsx b/src/components/dashboard/provinceReports/ProvinceCumulativeCallsReport/DataTable.jsx
new file mode 100644
index 0000000..a69b843
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceCumulativeCallsReport/DataTable.jsx
@@ -0,0 +1,200 @@
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { GET_PROVINCE_CUMULATIVE_CALLS_DAILY_REPORT } from "@/core/utils/routes";
+import { Box } from "@mui/material";
+import moment from "jalali-moment";
+import { useMemo } from "react";
+
+export default function DataTable() {
+ const columns = useMemo(() => [
+ {
+ header: "تاریخ",
+ id: "date",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ Cell: ({ row }) => (row.original.d ? moment(row.original.d).locale("fa").format("yyyy/MM/DD") : <>->),
+ },
+ {
+ accessorKey: "total",
+ header: "تمامی تماس ها",
+ id: "total",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ header: "تماس با تهران",
+ id: "call_to_tehran",
+ enableColumnFilter: false,
+ enableSorting: false,
+ grow: false,
+ size: 50,
+ columns: [
+ {
+ accessorKey: "teh4",
+ header: "کلید 4",
+ id: "teh4",
+ enableColumnFilter: true,
+ datatype: "integer",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "teh5",
+ header: "کلید 5",
+ id: "teh5",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ ],
+ },
+ {
+ header: "تماس با اپراتور استانی",
+ id: "call_to_ostan",
+ enableColumnFilter: false,
+ enableSorting: false,
+ grow: false,
+ size: 50,
+ columns: [
+ {
+ accessorKey: "ok",
+ header: "موفق",
+ id: "ok",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "fail",
+ header: "جواب داده نشده",
+ id: "fail",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "nok",
+ header: "نا موفق",
+ id: "nok",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "os4",
+ header: "کلید 4",
+ id: "os4",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "os5",
+ header: "کلید 5",
+ id: "os5",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "dnd",
+ header: "dnd",
+ id: "dnd",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "trans",
+ header: "انتقال تماس",
+ id: "trans",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ ],
+ },
+ {
+ accessorKey: "b10",
+ header: "تماس بالای 10 ثانیه",
+ id: "b10",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "avg",
+ header: "میانگین تماس ها",
+ id: "avg",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ Cell: ({ row }) => <>{row.original.avg ? row.original.avg : <>->}>,
+ },
+ ]);
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvinceCumulativeCallsReport/index.js b/src/components/dashboard/provinceReports/ProvinceCumulativeCallsReport/index.js
new file mode 100644
index 0000000..fcad677
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceCumulativeCallsReport/index.js
@@ -0,0 +1,14 @@
+"use client";
+
+import PageTitle from "@/core/components/PageTitle";
+import { Stack } from "@mui/material";
+import DataTable from "./DataTable";
+
+export default function ProvinceCumulativeCallsReportPage() {
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvinceDetailedLogsReport/DataTable.jsx b/src/components/dashboard/provinceReports/ProvinceDetailedLogsReport/DataTable.jsx
new file mode 100644
index 0000000..57a19e8
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceDetailedLogsReport/DataTable.jsx
@@ -0,0 +1,103 @@
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { GET_PROVINCE_DETAILED_LOGS_REPORT } from "@/core/utils/routes";
+import { Box } from "@mui/material";
+import moment from "jalali-moment";
+import { useMemo } from "react";
+
+export default function DataTable() {
+ const columns = useMemo(() => [
+ {
+ header: "تاریخ",
+ id: "date",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ Cell: ({ row }) => {
+ const dateTime = row.original.calldate;
+ if (!dateTime) return <>->;
+ const date = dateTime.split(" ")[0];
+ const persianDate = moment(date).locale("fa").format("YYYY-MM-DD") || "";
+ return <>{persianDate}>;
+ },
+ },
+ {
+ header: "ساعت",
+ id: "time",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ Cell: ({ row }) => {
+ const dateTime = row.original.calldate;
+ if (!dateTime) return <>->;
+ const time = dateTime.split(" ")[1] || "";
+ return <>{time}>;
+ },
+ },
+ {
+ accessorKey: "src",
+ header: "شماره تماس گیرنده",
+ id: "src",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "dst",
+ header: "مقصد تماس",
+ id: "dst",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "disposition",
+ header: "وضعیت پاسخگویی",
+ id: "disposition",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "duration",
+ header: "مدت زمان تماس",
+ id: "duration",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ ]);
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvinceDetailedLogsReport/index.js b/src/components/dashboard/provinceReports/ProvinceDetailedLogsReport/index.js
new file mode 100644
index 0000000..1be362c
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceDetailedLogsReport/index.js
@@ -0,0 +1,14 @@
+"use client";
+
+import PageTitle from "@/core/components/PageTitle";
+import { Stack } from "@mui/material";
+import DataTable from "./DataTable";
+
+export default function ProvinceDetailedLogsReportPage() {
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/DataTableCumulative.jsx b/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/DataTableCumulative.jsx
new file mode 100644
index 0000000..0051c3c
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/DataTableCumulative.jsx
@@ -0,0 +1,101 @@
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { GET_PROVINCE_OPERATORS_PERFORMANCE_TOTAL_REPORT } from "@/core/utils/routes";
+import { Box } from "@mui/material";
+import { useMemo } from "react";
+
+export default function DataTableCumulative() {
+ const columns = useMemo(() => [
+ {
+ accessorKey: "dst",
+ header: "کد یکتای کارشناس",
+ id: "dst",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "total",
+ header: "تعداد کل تماس ها",
+ id: "total",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "ok",
+ header: "تماس های موفق",
+ id: "ok",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "fail",
+ header: "تماس های جواب داده نشده",
+ id: "fail",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "nok",
+ header: "تماس های ناموفق",
+ id: "nok",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "b10",
+ header: "تماس های بالای 10 ثانیه",
+ id: "b10",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "dnd",
+ header: "dnd",
+ id: "dnd",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ ]);
+
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/DataTableDaily.jsx b/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/DataTableDaily.jsx
new file mode 100644
index 0000000..9e3016d
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/DataTableDaily.jsx
@@ -0,0 +1,113 @@
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { GET_PROVINCE_OPERATORS_PERFORMANCE_DAILY_REPORT } from "@/core/utils/routes";
+import { Box } from "@mui/material";
+import moment from "jalali-moment";
+import { useMemo } from "react";
+
+export default function DataTableDaily() {
+ const columns = useMemo(() => [
+ {
+ header: "تاریخ",
+ id: "date",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ Cell: ({ row }) => (row.original.d ? moment(row.original.d).locale("fa").format("yyyy/MM/DD") : <>->),
+ },
+ {
+ accessorKey: "dst",
+ header: "کد یکتای کارشناس",
+ id: "dst",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "total",
+ header: "تعداد کل تماس ها",
+ id: "total",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "ok",
+ header: "تماس های موفق",
+ id: "ok",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "fail",
+ header: "تماس های جواب داده نشده",
+ id: "fail",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "nok",
+ header: "تماس های ناموفق",
+ id: "nok",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "b10",
+ header: "تماس های بالای 10 ثانیه",
+ id: "b10",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "dnd",
+ header: "dnd",
+ id: "dnd",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ grow: false,
+ size: 100,
+ },
+ ]);
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/index.js b/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/index.js
new file mode 100644
index 0000000..fc7033d
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvinceOperatorPerformanceReport/index.js
@@ -0,0 +1,17 @@
+"use client";
+
+import PageTitle from "@/core/components/PageTitle";
+import { Stack } from "@mui/material";
+import DataTableCumulative from "./DataTableCumulative";
+import DataTableDaily from "./DataTableDaily";
+
+export default function ProvinceOperatorPerformanceReportPage() {
+ return (
+
+
+
+
+
+
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvincePeopleMessagesReport/DataTable.jsx b/src/components/dashboard/provinceReports/ProvincePeopleMessagesReport/DataTable.jsx
new file mode 100644
index 0000000..87565d7
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvincePeopleMessagesReport/DataTable.jsx
@@ -0,0 +1,59 @@
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { GET_PROVINCE_PEOPLE_MESSAGES_REPORT } from "@/core/utils/routes";
+import { Box } from "@mui/material";
+import { useMemo } from "react";
+
+export default function DataTable() {
+ const columns = useMemo(() => [
+ {
+ header: "تعداد",
+ id: "count",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ Cell: ({ row }) => <>{row.original.nl + row.original.l}>,
+ },
+ {
+ accessorKey: "l",
+ header: "تماس های شنیده شده",
+ id: "l",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "nl",
+ header: "تماس های شنیده نشده",
+ id: "nl",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ sortDescFirst: false,
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ ]);
+ return (
+ <>
+
+
+
+ >
+ );
+}
diff --git a/src/components/dashboard/provinceReports/ProvincePeopleMessagesReport/index.js b/src/components/dashboard/provinceReports/ProvincePeopleMessagesReport/index.js
new file mode 100644
index 0000000..1b2da26
--- /dev/null
+++ b/src/components/dashboard/provinceReports/ProvincePeopleMessagesReport/index.js
@@ -0,0 +1,14 @@
+"use client";
+
+import PageTitle from "@/core/components/PageTitle";
+import { Stack } from "@mui/material";
+import DataTable from "./DataTable";
+
+export default function ProvincePeopleMessagesReportPage() {
+ return (
+
+
+
+
+ );
+}
diff --git a/src/core/utils/pageMenu.js b/src/core/utils/pageMenu.js
index 3428724..95f99ea 100644
--- a/src/core/utils/pageMenu.js
+++ b/src/core/utils/pageMenu.js
@@ -1,15 +1,17 @@
import { Settings } from "@mui/icons-material";
import AssessmentIcon from "@mui/icons-material/Assessment";
-import SupervisedUserCircleIcon from "@mui/icons-material/SupervisedUserCircle";
-import VerifiedUserIcon from "@mui/icons-material/VerifiedUser";
-import SpaceDashboardIcon from "@mui/icons-material/SpaceDashboard";
+import ContentPasteSearchIcon from "@mui/icons-material/ContentPasteSearch";
+import MarkEmailReadIcon from "@mui/icons-material/MarkEmailRead";
import PointOfSaleIcon from "@mui/icons-material/PointOfSale";
+import SpaceDashboardIcon from "@mui/icons-material/SpaceDashboard";
+import StarIcon from "@mui/icons-material/Star";
+import SupervisedUserCircleIcon from "@mui/icons-material/SupervisedUserCircle";
+import SupervisorAccountIcon from "@mui/icons-material/SupervisorAccount";
import ThreePIcon from "@mui/icons-material/ThreeP";
+import TtyIcon from "@mui/icons-material/Tty";
+import VerifiedUserIcon from "@mui/icons-material/VerifiedUser";
import VoiceChatIcon from "@mui/icons-material/VoiceChat";
import ZoomInMapIcon from "@mui/icons-material/ZoomInMap";
-import StarIcon from "@mui/icons-material/Star";
-import MarkEmailReadIcon from "@mui/icons-material/MarkEmailRead";
-import TtyIcon from "@mui/icons-material/Tty";
export const pageMenu = [
{
@@ -61,6 +63,48 @@ export const pageMenu = [
},
],
},
+ {
+ id: "province-reports",
+ label: "گزارش ها",
+ type: "menu",
+ icon: ,
+ hasSubitems: true,
+ permissions: ["all"],
+ Subitems: [
+ {
+ id: "province-calls-report",
+ label: "تجمعی",
+ type: "page",
+ icon: ,
+ route: "/dashboard/province-reports/province-calls-report",
+ permissions: ["all"],
+ },
+ {
+ id: "province-messages-reports",
+ label: "تجمعی پیامهای مردمی",
+ type: "page",
+ icon: ,
+ route: "/dashboard/province-reports/province-messages-report",
+ permissions: ["all"],
+ },
+ {
+ id: "province-detailed-reports",
+ label: "ریز گزارش ها",
+ type: "page",
+ icon: ,
+ route: "/dashboard/province-reports/province-detailed-report",
+ permissions: ["all"],
+ },
+ {
+ id: "province-operators-performance-reports",
+ label: "عملکرد کارشناسان",
+ type: "page",
+ icon: ,
+ route: "/dashboard/province-reports/province-operators-performance-report",
+ permissions: ["all"],
+ },
+ ],
+ },
{
id: "systemManagment",
label: "مدیریت سامانه",
diff --git a/src/core/utils/routes.js b/src/core/utils/routes.js
index a01817f..bafc9aa 100644
--- a/src/core/utils/routes.js
+++ b/src/core/utils/routes.js
@@ -25,3 +25,10 @@ export const GET_COUNTRY_KEYPRESS_REPORT = api + "/cumulative_keypress_stats";
export const GET_SYSTEM_MESSAGES_SUPERVISOR = api + "/system_messages/supervisor";
export const GET_SYSTEM_MESSAGES_OPERATOR = api + "/system_messages/operator";
+
+// export const GET_PROVINCE_CUMULATIVE_CALLS_TOTAL_REPORT = api + "/report/cumulative_total";
+export const GET_PROVINCE_CUMULATIVE_CALLS_DAILY_REPORT = api + "/report/cumulative";
+export const GET_PROVINCE_PEOPLE_MESSAGES_REPORT = api + "/report/people_messages";
+export const GET_PROVINCE_DETAILED_LOGS_REPORT = api + "/report/detailed_logs";
+export const GET_PROVINCE_OPERATORS_PERFORMANCE_DAILY_REPORT = api + "/report/operator_performance_daily";
+export const GET_PROVINCE_OPERATORS_PERFORMANCE_TOTAL_REPORT = api + "/report/operator_performance_total";
diff --git a/src/lib/contexts/DataTable.js b/src/lib/contexts/DataTable.js
index 60ef071..1ca0674 100644
--- a/src/lib/contexts/DataTable.js
+++ b/src/lib/contexts/DataTable.js
@@ -91,7 +91,7 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns,
};
}
return acc;
- }, {});
+ }, []);
const getHideValues = (columns) => {
return columns.reduce((acc, column) => {