diff --git a/example.env.local b/example.env.local
index 2c06285..6d90f46 100644
--- a/example.env.local
+++ b/example.env.local
@@ -1,5 +1,5 @@
NEXT_PUBLIC_API_NAME = "Loan Facilities Dashboard"
-NEXT_PUBLIC_API_VERSION = "1.0.0"
+NEXT_PUBLIC_API_VERSION = "1.7.0"
NEXT_PUBLIC_DEFAULT_LANGUAGE = "fa"
NEXT_PUBLIC_DEFAULT_DIRECTION = "rtl"
diff --git a/package-lock.json b/package-lock.json
index 42161b1..1815fa2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -43,7 +43,8 @@
},
"devDependencies": {
"@faker-js/faker": "^7.6.0",
- "eslint-config-next": "^13.3.0"
+ "eslint-config-next": "^13.3.0",
+ "run-script-os": "^1.1.6"
}
},
"node_modules/@babel/code-frame": {
@@ -4789,6 +4790,16 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/run-script-os": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz",
+ "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==",
+ "dev": true,
+ "bin": {
+ "run-os": "index.js",
+ "run-script-os": "index.js"
+ }
+ },
"node_modules/rxjs": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
@@ -8841,6 +8852,12 @@
"queue-microtask": "^1.2.2"
}
},
+ "run-script-os": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/run-script-os/-/run-script-os-1.1.6.tgz",
+ "integrity": "sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw==",
+ "dev": true
+ },
"rxjs": {
"version": "7.8.1",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json
index e78f16e..065e317 100644
--- a/public/locales/fa/app.json
+++ b/public/locales/fa/app.json
@@ -35,6 +35,8 @@
"transportation-assistant": "معاونت حمل و نقل",
"navgan-province-manager": "مدیر کل استانی",
"refahi-province-manager": "مدیر کل استانی",
+ "refahi-loan-management": "مدیریت وام",
+ "navgan-loan-management": "مدیریت وام",
"commercial-chief": "رئیس اداره بازرگانی",
"inspector-expert": "بازدید کارشناس",
"province-head-expert": "کارشناس ستادی",
@@ -46,6 +48,8 @@
"passenger-office": "توزیع درخواست",
"passenger-boss": "کارگروه استانی",
"refahi-province-manager": "رفاهی",
+ "refahi-loan-management": "رفاهی",
+ "navgan-loan-management": "ناوگان",
"navgan-province-manager": "ناوگان"
},
"Authorization": {
@@ -86,6 +90,7 @@
"province_manager_page": "مدیر کل استانی",
"province_head_expert": "کارشناس ستادی",
"passenger_office_page": "اداره مسافر",
+ "loan_management_page": "مدیریت وام",
"machinary_office_page": "ماشین آلات",
"development_assistant_page": "معاون توسعه",
"inspector_expert_page": "بازدید کارشناس",
@@ -186,7 +191,18 @@
"vehicle_type": "نوع ماشین",
"state_name": "وضعیت درخواست"
},
- "DevelopmentAssistant": {
+ "RefahiLoanManagement": {
+ "name": "نام",
+ "id": "کد یکتا",
+ "national_id": "کد ملی",
+ "phone_number": "موبایل",
+ "created_at": "تاریخ درخواست",
+ "updated_at": "تاریخ بروزرسانی",
+ "navgan_id": "کد ناوگان",
+ "vehicle_type": "نوع ماشین",
+ "state_name": "وضعیت درخواست"
+ },
+ "NavganLoanManagement": {
"name": "نام",
"id": "کد یکتا",
"national_id": "کد ملی",
@@ -265,16 +281,18 @@
"approved_amount": "مبلغ تصویب شده",
"approved_amount_error": "وارد کردن مبلغ تصویب شده الزامیست",
"approved_amount_positive": "مبلغ تصویب شده باید مثبت باشد",
+ "approved_amount_number": "مبلغ تصویب شده باید عدد باشد",
+ "toman": "تومان",
"proposed_amount_error": "وارد کردن مقدار پیشنهادی الزامیست",
"proposed_amount": "مقدار پیشنهادی",
"proposed_amount_positive": "مقدار پیشنهادی باید مثبت باشد"
},
"ReviseDialog": {
- "revise": "ویرایش",
+ "revise": " نیاز به ویرایش",
"description_error": "وارد کردن توضیحات الزامی است!",
"optional": " (اختیاری)",
"button-cancel": "بستن",
- "button-revise": "ویرایش",
+ "button-revise": "ارسال",
"description": "توضیحات خود را وارد نمائید"
},
"RejectDialog": {
@@ -286,6 +304,16 @@
"optional": " (اختیاری)",
"description_error": "وارد کردن توضیحات الزامی است!"
},
+ "UpdateDialog": {
+ "update": "تغییر وضعیت درخواست",
+ "update-tooltip": "بروزرسانی",
+ "button-cancel": "بستن",
+ "button-update": "بروزرسانی",
+ "description": "توضیحات خود را وارد نمائید",
+ "description_error": "وارد کردن توضیحات الزامی است!",
+ "next-state-id": "وضعیت بعدی",
+ "next-state-id-error": "وارد کردن وضعیت بعدی الزامی است!"
+ },
"UploadSystem": {
"upload_file": "فایل خود را بارگذاری کنید",
"optional": " (اختیاری)",
diff --git a/src/components/dashboard/commercial-chief/index.jsx b/src/components/dashboard/commercial-chief/index.jsx
index 4ac03b3..9f84193 100644
--- a/src/components/dashboard/commercial-chief/index.jsx
+++ b/src/components/dashboard/commercial-chief/index.jsx
@@ -1,15 +1,12 @@
import DashboardLayouts from "@/layouts/dashboardLayouts";
-import {Box, IconButton, Typography} from "@mui/material";
-import ClearIcon from "@mui/icons-material/Clear";
+import {Box, Typography} from "@mui/material";
import {useMemo} from "react";
import {GET_COMMERCIAL_CHIEF} from "@/core/data/apiRoutes";
import {useTranslations} from "next-intl";
import TableRowActions from "./TableRowActions";
-import {LocalizationProvider, MobileDateTimePicker,} from "@mui/x-date-pickers";
-import {AdapterDateFnsJalali} from "@mui/x-date-pickers/AdapterDateFnsJalali";
import moment from "jalali-moment";
-import {faIR} from "@mui/x-date-pickers/locales";
import DataTable from "@/core/components/DataTable";
+import MuiDatePicker from "@/core/components/MuiDatePicker";
function DashboardCommercialChiefComponent() {
const t = useTranslations();
@@ -96,56 +93,10 @@ function DashboardCommercialChiefComponent() {
Cell: ({renderedCellValue}) => {
return {renderedCellValue};
},
- Header: ({column}) => {column.columnDef.header},
+ Header: ({column}) => <>{column.columnDef.header}>,
Filter: ({column}) => {
- const filterFnValue = column.columnDef._filterFn;
return (
-
-
- {
- const date = new Date(newValue);
- const formattedDate = moment(date)
- .locale("en")
- .format("YYYY-MM-DD HH:mm");
- column.setFilterValue(formattedDate);
- }}
- slotProps={{
- textField: {
- placeholder: "تاریخ خود را وارد کنید",
- helperText: `${t("filter_mode")}: ${t(filterFnValue)}`,
- sx: {minWidth: "120px"},
- variant: "standard",
- },
- }}
- value={
- column.getFilterValue()
- ? new Date(column.getFilterValue())
- : null
- }
- />
-
- {
- column.setFilterValue(null);
- }}
- sx={{
- color: column.getFilterValue()
- ? "rgba(0, 0, 0, 0.54)"
- : "#bfbfbf",
- }}
- >
-
-
-
+
);
},
},
diff --git a/src/components/dashboard/development-assistant/index.jsx b/src/components/dashboard/development-assistant/index.jsx
index e54daab..ed46fb0 100644
--- a/src/components/dashboard/development-assistant/index.jsx
+++ b/src/components/dashboard/development-assistant/index.jsx
@@ -1,15 +1,12 @@
import DashboardLayouts from "@/layouts/dashboardLayouts";
-import {Box, IconButton, Typography} from "@mui/material";
-import ClearIcon from "@mui/icons-material/Clear";
+import {Box, Typography} from "@mui/material";
import {useMemo} from "react";
import {GET_DEVELOPMENT_ASSISTANT} from "@/core/data/apiRoutes";
import {useTranslations} from "next-intl";
import TableRowActions from "./TableRowActions";
-import {LocalizationProvider, MobileDateTimePicker,} from "@mui/x-date-pickers";
-import {AdapterDateFnsJalali} from "@mui/x-date-pickers/AdapterDateFnsJalali";
import moment from "jalali-moment";
-import {faIR} from "@mui/x-date-pickers/locales";
import DataTable from "@/core/components/DataTable";
+import MuiDatePicker from "@/core/components/MuiDatePicker";
function DashboardDevelopmentAssistantComponent() {
const t = useTranslations();
@@ -97,56 +94,10 @@ function DashboardDevelopmentAssistantComponent() {
Cell: ({renderedCellValue}) => {
return {renderedCellValue};
},
- Header: ({column}) => {column.columnDef.header},
+ Header: ({column}) => <>{column.columnDef.header}>,
Filter: ({column}) => {
- const filterFnValue = column.columnDef._filterFn;
return (
-
-
- {
- const date = new Date(newValue);
- const formattedDate = moment(date)
- .locale("en")
- .format("YYYY-MM-DD HH:mm");
- column.setFilterValue(formattedDate);
- }}
- slotProps={{
- textField: {
- placeholder: "تاریخ خود را وارد کنید",
- helperText: `${t("filter_mode")}: ${t(filterFnValue)}`,
- sx: {minWidth: "120px"},
- variant: "standard",
- },
- }}
- value={
- column.getFilterValue()
- ? new Date(column.getFilterValue())
- : null
- }
- />
-
- {
- column.setFilterValue(null);
- }}
- sx={{
- color: column.getFilterValue()
- ? "rgba(0, 0, 0, 0.54)"
- : "#bfbfbf",
- }}
- >
-
-
-
+
);
},
},
diff --git a/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx b/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx
index 2661965..92e1a1e 100644
--- a/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx
+++ b/src/components/dashboard/inspector-expert/Form/ReviseForm.jsx
@@ -15,7 +15,7 @@ import {useFormik} from "formik";
import * as Yup from "yup";
import {useState} from "react";
import useRequest from "@/lib/app/hooks/useRequest";
-import EditIcon from "@mui/icons-material/Edit";
+import ReplyIcon from '@mui/icons-material/Reply';
import useNotification from "@/lib/app/hooks/useNotification";
@@ -59,7 +59,7 @@ const Revise = ({rowId, fetchUrl, mutate}) => {
<>
setOpenRejectDialog(true)}>
-
+