diff --git a/.env.example b/.env.example index 5288f99..fd42a87 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ HOST="rms.witel.ir" HOST_RMTO="rms.rmto.ir" -NEXT_PUBLIC_VERSION="1.8.5" +NEXT_PUBLIC_VERSION="1.8.6" NEXT_PUBLIC_API_URL="https://rms.witel.ir" NEXT_PUBLIC_MAPTILE_ENDPOINT="https://rmsmap.rmto.ir/141map" \ No newline at end of file diff --git a/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx b/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx index 45002e1..0a81488 100644 --- a/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/FromDateController.jsx @@ -1,7 +1,6 @@ -import { Controller } from "react-hook-form"; import MuiDatePicker from "@/core/components/MuiDatePicker"; -import React from "react"; import moment from "jalali-moment"; +import { Controller } from "react-hook-form"; const FromDateController = ({ control }) => { return ( diff --git a/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx b/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx index 5c6aa23..e1b71cd 100644 --- a/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/SearchReportField.jsx @@ -1,10 +1,9 @@ -import { Button, Grid, LinearProgress, Typography } from "@mui/material"; import SearchIcon from "@mui/icons-material/Search"; -import React from "react"; -import FromDateController from "./FromDateController"; -import ToDateController from "./ToDateController"; -import SelectProvince from "./SelectProvince"; +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 ( diff --git a/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx b/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx index 7f738bc..89395f0 100644 --- a/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/SelectProvince.jsx @@ -1,8 +1,6 @@ -import { Controller } from "react-hook-form"; -import MuiDatePicker from "@/core/components/MuiDatePicker"; -import React from "react"; -import { FormControl, FormHelperText, InputLabel, LinearProgress, MenuItem, Select, Typography } from "@mui/material"; 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(); diff --git a/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx b/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx index 4b5f2a8..9b9ac81 100644 --- a/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx +++ b/src/components/dashboard/roadMissions/reports/Search/ToDateController.jsx @@ -1,7 +1,6 @@ -import { Controller, useWatch } from "react-hook-form"; import MuiDatePicker from "@/core/components/MuiDatePicker"; -import React from "react"; import moment from "jalali-moment"; +import { Controller, useWatch } from "react-hook-form"; const ToDateController = ({ control }) => { const minDate = useWatch({ control, name: "from_date" }); @@ -13,6 +12,7 @@ const ToDateController = ({ control }) => { { - return ( - - - - ); + return {/* */}; }; export default Toolbar; diff --git a/src/components/dashboard/roadMissions/reports/index.jsx b/src/components/dashboard/roadMissions/reports/index.jsx index 83daf1a..54354b7 100644 --- a/src/components/dashboard/roadMissions/reports/index.jsx +++ b/src/components/dashboard/roadMissions/reports/index.jsx @@ -18,7 +18,7 @@ const ReportPage = () => { const { data: userPermissions } = usePermissions(); const { user } = useAuth(); const requestServer = useRequest(); - const hasProvincesPermission = userPermissions?.includes("all"); // TODO : change permission + const hasProvincesPermission = userPermissions?.includes("mission-report-country"); const defaultValues = { from_date: moment(new Date()).format("YYYY-MM-DD"), @@ -118,6 +118,7 @@ const ReportPage = () => { resolver: yupResolver(validationSchema), mode: "all", }); + return ( diff --git a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx index eca6626..86fb936 100644 --- a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx +++ b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm.jsx @@ -1,11 +1,13 @@ +import CarCode from "@/core/components/CarCode"; +import LtrTextField from "@/core/components/LtrTextField"; +import StyledForm from "@/core/components/StyledForm"; +import { yupResolver } from "@hookform/resolvers/yup"; import { Button, DialogActions, DialogContent, Stack } from "@mui/material"; import { Controller, useForm } from "react-hook-form"; -import CarCode from "@/core/components/CarCode"; -import { yupResolver } from "@hookform/resolvers/yup"; import * as yup from "yup"; -import StyledForm from "@/core/components/StyledForm"; const schema = yup.object().shape({ machinesId: yup.object().required("کد خودرو الزامی است."), + km: yup.string(), }); const CreateViolationForm = ({ setOpenMachinesDialog, defaultValues, onSubmitBase }) => { @@ -22,20 +24,43 @@ const CreateViolationForm = ({ setOpenMachinesDialog, defaultValues, onSubmitBas <> - - { - return ( - field.onChange(value)} - error={error} + + + { + return ( + field.onChange(value)} + error={error} + /> + ); + }} + name={"machinesId"} + /> + + + ( + { + if (isNaN(Number(e.target.value))) return; + field.onChange(e.target.value); + }} + size="small" + fullWidth + label="کیلومتر خودرو / ساعت کار" + InputLabelProps={{ shrink: true }} /> - ); - }} - name={"machinesId"} - /> + )} + /> + diff --git a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx index 260b0d9..2b70d5b 100644 --- a/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx +++ b/src/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/index.jsx @@ -9,12 +9,14 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) => const defaultValues = { machinesId: null, + km: "", }; const submitForm = async (result) => { await requestServer(CREATE_VIOLATION, "post", { data: { machine_code: result.machinesId.machine_code, + km: result.km, }, }) .then((response) => { diff --git a/src/components/dashboard/roadMissions/violations/ViolationsList.jsx b/src/components/dashboard/roadMissions/violations/ViolationsList.jsx index dfbc013..bf9566d 100644 --- a/src/components/dashboard/roadMissions/violations/ViolationsList.jsx +++ b/src/components/dashboard/roadMissions/violations/ViolationsList.jsx @@ -33,12 +33,21 @@ const ViolationsList = () => { }, { accessorKey: "machine_code", - header: "خودرو", + header: "کد خودرو", id: "machine_code", datatype: "text", columnFilterModeOptions: ["equals", "contains"], grow: false, }, + { + accessorKey: "machine", + header: "نام خودرو", + id: "machine", + datatype: "text", + columnFilterModeOptions: ["equals", "contains"], + grow: false, + Cell: ({ row }) => row.original.machine?.car_name || "-", + }, { accessorKey: "mission_id", header: "کد ماموریت", diff --git a/src/core/utils/pageMenu.js b/src/core/utils/pageMenu.js index 0a04951..802eac6 100644 --- a/src/core/utils/pageMenu.js +++ b/src/core/utils/pageMenu.js @@ -164,15 +164,15 @@ export const pageMenu = [ "manage-violation-station", ], }, - // { - // id: "roadMissionsReports", - // label: "گزارشات", - // type: "page", - // route: "/dashboard/road-missions/reports", - // icon: , - // // badges: [{ key: "mission.control" }], // TODO: add badge and permission - // permissions: ["all"], - // }, + { + id: "roadMissionsReports", + label: "گزارشات", + type: "page", + route: "/dashboard/road-missions/reports", + icon: , + // badges: [{ key: "mission.control" }], // TODO: add badge and permission + permissions: ["all"], + }, ], }, { diff --git a/src/core/utils/pageMenuDev.js b/src/core/utils/pageMenuDev.js index c887a41..b42db83 100644 --- a/src/core/utils/pageMenuDev.js +++ b/src/core/utils/pageMenuDev.js @@ -163,15 +163,15 @@ export const pageMenuDev = [ "manage-violation-station", ], }, - // { - // id: "roadMissionsReports", - // label: "گزارشات", - // type: "page", - // route: "/dashboard/road-missions/reports", - // icon: , - // // badges: [{ key: "mission.control" }], // TODO: add badge and permission - // permissions: ["all"], - // }, + { + id: "roadMissionsReports", + label: "گزارشات", + type: "page", + route: "/dashboard/road-missions/reports", + icon: , + // badges: [{ key: "mission.control" }], // TODO: add badge and permission + permissions: ["all"], + }, ], }, {