diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/CreateFormContent.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/CreateFormContent.jsx
index 293c6a7..b5e2105 100644
--- a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/CreateFormContent.jsx
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/CreateFormContent.jsx
@@ -1,20 +1,20 @@
-import React, { useState } from "react";
-import { useForm } from "react-hook-form";
-import { yupResolver } from "@hookform/resolvers/yup";
-import { array, mixed, number, object, string } from "yup";
-import { useTheme } from "@emotion/react";
-import { Box, Button, DialogActions, DialogContent, Tab, Tabs, useMediaQuery } from "@mui/material";
-import StyledForm from "@/core/components/StyledForm";
-import InsertDriveFileIcon from "@mui/icons-material/InsertDriveFile";
-import FileCopyIcon from "@mui/icons-material/FileCopy";
-import InfoIcon from "@mui/icons-material/Info";
-import ExitToAppIcon from "@mui/icons-material/ExitToApp";
-import KeyboardDoubleArrowRightIcon from "@mui/icons-material/KeyboardDoubleArrowRight";
-import BeenhereIcon from "@mui/icons-material/Beenhere";
+import GetItemInfo from "@/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo";
import GetItemsForm from "@/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemsForm";
import GetSubItemsForm from "@/components/dashboard/roadItems/operator/Actions/Create/Forms/GetSubItemsForm";
-import GetItemInfo from "@/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo";
+import StyledForm from "@/core/components/StyledForm";
+import { useTheme } from "@emotion/react";
+import { yupResolver } from "@hookform/resolvers/yup";
+import BeenhereIcon from "@mui/icons-material/Beenhere";
+import ExitToAppIcon from "@mui/icons-material/ExitToApp";
+import FileCopyIcon from "@mui/icons-material/FileCopy";
+import InfoIcon from "@mui/icons-material/Info";
+import InsertDriveFileIcon from "@mui/icons-material/InsertDriveFile";
+import KeyboardDoubleArrowRightIcon from "@mui/icons-material/KeyboardDoubleArrowRight";
+import { Box, Button, DialogActions, DialogContent, Tab, Tabs, useMediaQuery } from "@mui/material";
import { format } from "date-fns";
+import { useState } from "react";
+import { useForm } from "react-hook-form";
+import { mixed, number, object, string } from "yup";
function TabPanel(props) {
const { children, value, index } = props;
@@ -29,24 +29,7 @@ const validationSchema = object({
item_id: number().required("نوع آیتم را مشخص کنید!"),
sub_item_id: number().required("اقدام انجام شده را مشخص کنید!"),
amount: string().required("وارد کردن مقدار الزامیست!"),
- cmms_machines: array()
- .test("cmms-machines-conditional", "وارد کردن کد خودرو الزامیست!", function (value) {
- const { is_gasht } = this.options.context;
- if (is_gasht) {
- return true; // اگر is_gasht true باشد، این فیلد نیاز به اعتبارسنجی ندارد
- }
- return Array.isArray(value) && value.length > 0; // حداقل یک کد باید وجود داشته باشد
- })
- .min(1, "حداقل یک کد خودرو باید وارد شود!"), // پیام خطا برای زمانی که شرط تست برقرار باشد
- rahdaran_id: array()
- .test("rahdaran-id-conditional", "وارد کردن کد راهداران الزامیست!", function (value) {
- const { is_gasht } = this.options.context;
- if (is_gasht) {
- return true; // اگر is_gasht true باشد، این فیلد نیاز به اعتبارسنجی ندارد
- }
- return Array.isArray(value) && value.length > 0; // حداقل یک کد باید وجود داشته باشد
- })
- .min(1, "حداقل یک کد راهدار باید وارد شود!"), // پیام خطا برای زمانی که شرط تست برقرار باشد
+ mission_id: object().required("ماموریت را مشخص کنید!"),
activity_time: string().test("activity-time-conditional", "لطفا زمان فعالیت را انتخاب کنید!", function (value) {
const { is_gasht } = this.options.context; // دسترسی به context
if (is_gasht) {
@@ -110,10 +93,9 @@ const CreateFormContent = ({ setOpen, onSubmit, is_gasht = false }) => {
start_point: "",
end_point: "",
...(!is_gasht && {
+ mission_id: null,
activity_time: "",
activity_date: "",
- cmms_machines: [],
- rahdaran_id: [],
}),
};
@@ -139,8 +121,6 @@ const CreateFormContent = ({ setOpen, onSubmit, is_gasht = false }) => {
"activity_date",
"before_image",
"after_image",
- "cmms_machines",
- "rahdaran_id",
"start_point",
"end_point",
];
@@ -195,20 +175,9 @@ const CreateFormContent = ({ setOpen, onSubmit, is_gasht = false }) => {
}
if (!is_gasht) {
- result.rahdaran_id.forEach((rahdar, index) => {
- result[`rahdaran_id[${index}]`] = rahdar.id;
- });
- delete result.rahdaran_id;
-
- result.cmms_machines.forEach((cmms_machine, index) => {
- result[`machines_id[${index}]`] = cmms_machine.id;
- });
- delete result.cmms_machines;
-
result[`activity_time`] = format(new Date(result.activity_time), "HH:mm");
+ result.mission_id = result.mission_id.id
} else {
- delete result.rahdaran_id;
- delete result.cmms_machines;
delete result.activity_date;
delete result.activity_time;
}
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/ImageUpload.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/ImageUpload.jsx
similarity index 97%
rename from src/components/dashboard/roadItems/operator/Actions/Create/Forms/ImageUpload.jsx
rename to src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/ImageUpload.jsx
index 6e33e99..8c23c76 100644
--- a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/ImageUpload.jsx
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/ImageUpload.jsx
@@ -1,173 +1,173 @@
-import { FormControl, FormHelperText, Grid } from "@mui/material";
-import UploadSystem from "@/core/components/UploadSystem";
-import { Controller } from "react-hook-form";
-import React, { useEffect, useState } from "react";
-
-const ImageUpload = ({ control, setValue, errors, getValues, beforeImage = null, afterImage = null }) => {
- const [beforeImg, setBeforeImg] = useState(beforeImage ? beforeImage : null);
- const [beforeFileType, setBeforeFileType] = useState(beforeImage ? "image/" : null);
- const [beforeFileName, setBeforeFileName] = useState(null);
- const [showBeforeImage, setShowBeforeImage] = useState(!beforeImage);
-
- const [afterImg, setAfterImg] = useState(afterImage ? afterImage : null);
- const [afterFileType, setAfterFileType] = useState(afterImage ? "image/" : null);
- const [afterFileName, setAfterFileName] = useState(null);
- const [showAfterImage, setShowAfterImage] = useState(!afterImage);
-
- useEffect(() => {
- const beforeImage = getValues("before_image");
- const afterImage = getValues("after_image");
-
- if (beforeImage) {
- setShowBeforeImage(false);
-
- if (typeof beforeImage === "string") {
- setBeforeImg(beforeImage);
- setBeforeFileType("image/");
- } else if (beforeImage instanceof File) {
- setBeforeImg(URL.createObjectURL(beforeImage));
- setBeforeFileType(beforeImage.type);
- }
- }
-
- if (afterImage) {
- setShowAfterImage(false);
-
- if (typeof afterImage === "string") {
- setAfterImg(afterImage);
- setAfterFileType("image/");
- } else if (afterImage instanceof File) {
- setAfterImg(URL.createObjectURL(afterImage));
- setAfterFileType(afterImage.type);
- }
- }
- }, [getValues]);
-
- const handleBeforeFileChange = (event) => {
- const uploadedFile = event.target?.files?.[0];
- if (uploadedFile) {
- const fileType = event.target?.files?.[0].type;
- const fileName = event.target?.files?.[0].name;
- setBeforeImg(URL.createObjectURL(uploadedFile));
- setBeforeFileType(fileType);
- setBeforeFileName(fileName);
- setValue("before_image", uploadedFile);
- setShowBeforeImage(false);
- }
- };
- const handleAfterFileChange = (event) => {
- const uploadedFile = event.target?.files?.[0];
- if (uploadedFile) {
- const fileType = event.target?.files?.[0].type;
- const fileName = event.target?.files?.[0].name;
- setAfterImg(URL.createObjectURL(uploadedFile));
- setAfterFileType(fileType);
- setAfterFileName(fileName);
- setValue("after_image", uploadedFile);
- setShowAfterImage(false);
- }
- };
- return (
-
-
- {
- return (
-
-
- عکس قبل از اقدام
-
-
-
- {errors.before_image ? errors.before_image.message : null}
-
-
- );
- }}
- />
-
-
- {
- return (
-
-
- عکس بعد از اقدام
-
-
-
- {errors.after_image ? errors.after_image.message : null}
-
-
- );
- }}
- />
-
-
- );
-};
-export default ImageUpload;
+import { FormControl, FormHelperText, Grid } from "@mui/material";
+import UploadSystem from "@/core/components/UploadSystem";
+import { Controller } from "react-hook-form";
+import React, { useEffect, useState } from "react";
+
+const ImageUpload = ({ control, setValue, errors, getValues, beforeImage = null, afterImage = null }) => {
+ const [beforeImg, setBeforeImg] = useState(beforeImage ? beforeImage : null);
+ const [beforeFileType, setBeforeFileType] = useState(beforeImage ? "image/" : null);
+ const [beforeFileName, setBeforeFileName] = useState(null);
+ const [showBeforeImage, setShowBeforeImage] = useState(!beforeImage);
+
+ const [afterImg, setAfterImg] = useState(afterImage ? afterImage : null);
+ const [afterFileType, setAfterFileType] = useState(afterImage ? "image/" : null);
+ const [afterFileName, setAfterFileName] = useState(null);
+ const [showAfterImage, setShowAfterImage] = useState(!afterImage);
+
+ useEffect(() => {
+ const beforeImage = getValues("before_image");
+ const afterImage = getValues("after_image");
+
+ if (beforeImage) {
+ setShowBeforeImage(false);
+
+ if (typeof beforeImage === "string") {
+ setBeforeImg(beforeImage);
+ setBeforeFileType("image/");
+ } else if (beforeImage instanceof File) {
+ setBeforeImg(URL.createObjectURL(beforeImage));
+ setBeforeFileType(beforeImage.type);
+ }
+ }
+
+ if (afterImage) {
+ setShowAfterImage(false);
+
+ if (typeof afterImage === "string") {
+ setAfterImg(afterImage);
+ setAfterFileType("image/");
+ } else if (afterImage instanceof File) {
+ setAfterImg(URL.createObjectURL(afterImage));
+ setAfterFileType(afterImage.type);
+ }
+ }
+ }, [getValues]);
+
+ const handleBeforeFileChange = (event) => {
+ const uploadedFile = event.target?.files?.[0];
+ if (uploadedFile) {
+ const fileType = event.target?.files?.[0].type;
+ const fileName = event.target?.files?.[0].name;
+ setBeforeImg(URL.createObjectURL(uploadedFile));
+ setBeforeFileType(fileType);
+ setBeforeFileName(fileName);
+ setValue("before_image", uploadedFile);
+ setShowBeforeImage(false);
+ }
+ };
+ const handleAfterFileChange = (event) => {
+ const uploadedFile = event.target?.files?.[0];
+ if (uploadedFile) {
+ const fileType = event.target?.files?.[0].type;
+ const fileName = event.target?.files?.[0].name;
+ setAfterImg(URL.createObjectURL(uploadedFile));
+ setAfterFileType(fileType);
+ setAfterFileName(fileName);
+ setValue("after_image", uploadedFile);
+ setShowAfterImage(false);
+ }
+ };
+ return (
+
+
+ {
+ return (
+
+
+ عکس قبل از اقدام
+
+
+
+ {errors.before_image ? errors.before_image.message : null}
+
+
+ );
+ }}
+ />
+
+
+ {
+ return (
+
+
+ عکس بعد از اقدام
+
+
+
+ {errors.after_image ? errors.after_image.message : null}
+
+
+ );
+ }}
+ />
+
+
+ );
+};
+export default ImageUpload;
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/RowActions/Allocate/index.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/RowActions/Allocate/index.jsx
new file mode 100644
index 0000000..6fb60b0
--- /dev/null
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/RowActions/Allocate/index.jsx
@@ -0,0 +1,18 @@
+import { Done } from "@mui/icons-material";
+import { Button } from "@mui/material";
+
+const Allocate = ({ row, setMission, setOpenDialog }) => {
+ const handleClick = () => {
+ setMission(row.original);
+ setOpenDialog(false);
+ };
+
+ return (
+ <>
+ }>
+ انتخاب
+
+ >
+ );
+};
+export default Allocate;
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/RowActions/index.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/RowActions/index.jsx
new file mode 100644
index 0000000..31e8824
--- /dev/null
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/RowActions/index.jsx
@@ -0,0 +1,6 @@
+import Allocate from "./Allocate";
+
+const RowActions = ({ row, setMission, setOpenDialog }) => {
+ return ;
+};
+export default RowActions;
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/index.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/index.jsx
new file mode 100644
index 0000000..a66e705
--- /dev/null
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/MissionsList/index.jsx
@@ -0,0 +1,111 @@
+import DataTableWithAuth from "@/core/components/DataTableWithAuth";
+import { GET_ROAD_MISSIONS_OPERATOR_LIST } from "@/core/utils/routes";
+import { Box } from "@mui/material";
+import { useMemo } from "react";
+import RowActions from "./RowActions";
+import moment from "jalali-moment";
+
+const MissionList = ({ setMission, setOpenDialog }) => {
+ const columns = useMemo(
+ () => [
+ {
+ accessorKey: "id",
+ header: "کد یکتا",
+ id: "id",
+ enableColumnFilter: true,
+ datatype: "text",
+ filterMode: "equals",
+ columnFilterModeOptions: ["equals", "contains"],
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "explanation",
+ header: "موضوع",
+ id: "explanation",
+ enableColumnFilter: false,
+ datatype: "numeric",
+ filterMode: "equals",
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "zone",
+ header: "محدوده",
+ id: "zone",
+ enableColumnFilter: true,
+ datatype: "numeric",
+ filterMode: "equals",
+ sortDescFirst: true,
+ grow: false,
+ size: 100,
+ columnSelectOption: () => {
+ return missionRegions.map((region) => ({
+ value: region.id,
+ label: region.name_fa,
+ }));
+ },
+ Cell: ({ row }) => row.original.zone_fa,
+ },
+ {
+ accessorFn: (row) =>
+ row.type == 1
+ ? moment(row.start_date).locale("fa").format("HH:mm | yyyy/MM/DD")
+ : moment(row.start_date).locale("fa").format("yyyy/MM/DD"),
+ header: "تاریخ شروع",
+ id: "start_date",
+ enableColumnFilter: true,
+ datatype: "date",
+ filterMode: "between",
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorFn: (row) =>
+ row.type == 1
+ ? moment(row.end_date).locale("fa").format("HH:mm | yyyy/MM/DD")
+ : moment(row.end_date).locale("fa").format("yyyy/MM/DD"),
+ header: "تاریخ پایان",
+ id: "end_date",
+ enableColumnFilter: true,
+ datatype: "date",
+ filterMode: "between",
+ grow: false,
+ size: 100,
+ },
+ {
+ accessorKey: "end_point",
+ header: "مقصد",
+ id: "end_point",
+ enableColumnFilter: false,
+ datatype: "numeric",
+ filterMode: "equals",
+ grow: false,
+ size: 100,
+ },
+ ],
+ []
+ );
+
+ return (
+ <>
+
+ (
+
+ )}
+ />
+
+ >
+ );
+};
+export default MissionList;
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/index.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/index.jsx
new file mode 100644
index 0000000..dbc6856
--- /dev/null
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/MissionsDialog/index.jsx
@@ -0,0 +1,40 @@
+import { Close, Edit } from "@mui/icons-material";
+import { Button, Dialog, IconButton } from "@mui/material";
+import { useState } from "react";
+import MissionList from "./MissionsList";
+
+const MissionsDialog = ({ setMission, mode }) => {
+ const [open, setOpen] = useState(false);
+ return (
+ <>
+ {mode == "edit" ? (
+ setOpen(true)}>
+
+
+ ) : (
+
+ )}
+
+ >
+ );
+};
+export default MissionsDialog;
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/PreviousStatesInfo.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/PreviousStatesInfo.jsx
similarity index 97%
rename from src/components/dashboard/roadItems/operator/Actions/Create/Forms/PreviousStatesInfo.jsx
rename to src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/PreviousStatesInfo.jsx
index a944ccd..51fac42 100644
--- a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/PreviousStatesInfo.jsx
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/PreviousStatesInfo.jsx
@@ -1,43 +1,43 @@
-import { Box, Chip, Divider, Grid, Typography } from "@mui/material";
-import InsertDriveFileIcon from "@mui/icons-material/InsertDriveFile";
-import FileCopyIcon from "@mui/icons-material/FileCopy";
-
-const PreviousStatesInfo = ({ itemsList, subItemsList }) => {
- return (
-
-
-
- }
- label={
-
- آیتم انتخاب شده
-
- }
- />
-
-
-
- {itemsList.name || "هیچ آیتمی انتخاب نشده است"}
-
-
-
-
- }
- label={
-
- اقدام انجام شده
-
- }
- />
-
-
-
- {subItemsList?.name || "هیچ اقدامی انتخاب نشده است"}
-
-
-
- );
-};
-export default PreviousStatesInfo;
+import { Box, Chip, Divider, Grid, Typography } from "@mui/material";
+import InsertDriveFileIcon from "@mui/icons-material/InsertDriveFile";
+import FileCopyIcon from "@mui/icons-material/FileCopy";
+
+const PreviousStatesInfo = ({ itemsList, subItemsList }) => {
+ return (
+
+
+
+ }
+ label={
+
+ آیتم انتخاب شده
+
+ }
+ />
+
+
+
+ {itemsList.name || "هیچ آیتمی انتخاب نشده است"}
+
+
+
+
+ }
+ label={
+
+ اقدام انجام شده
+
+ }
+ />
+
+
+
+ {subItemsList?.name || "هیچ اقدامی انتخاب نشده است"}
+
+
+
+ );
+};
+export default PreviousStatesInfo;
diff --git a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo.jsx b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/index.jsx
similarity index 69%
rename from src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo.jsx
rename to src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/index.jsx
index 82d5cca..48e1ce2 100644
--- a/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo.jsx
+++ b/src/components/dashboard/roadItems/operator/Actions/Create/Forms/GetItemInfo/index.jsx
@@ -1,124 +1,115 @@
-import { Grid, Stack } from "@mui/material";
-import ImageUpload from "./ImageUpload";
-import MuiDatePicker from "@/core/components/MuiDatePicker";
-import MuiTimePicker from "@/core/components/MuiTimePicker";
-import MapInfoTwoMarker from "@/core/components/MapInfoTwoMarker";
-import MapInfoOneMarker from "@/core/components/MapInfoOneMarker";
-import { Controller } from "react-hook-form";
-import CarCode from "@/core/components/CarCode";
-import RahdarCode from "@/core/components/RahdarCode";
-import PreviousStatesInfo from "./PreviousStatesInfo";
-import NumberField from "@/core/components/NumberField";
-
-const GetItemInfo = ({ register, itemsList, subItemsList, control, setValue, errors, watch, getValues, is_gasht }) => {
- return (
-
-
-
-
-
- {
- if (!isNaN(event.target.value)) {
- setValue("amount", event.target.value);
- } else {
- setValue("amount", watch("amount"));
- }
- }}
- helperText={errors.amount ? errors.amount.message : null}
- variant="outlined"
- fullWidth
- />
-
- {!is_gasht && (
-
- {
- return (
- field.onChange(value || [])}
- error={error}
- multiple={true}
- />
- );
- }}
- name={"cmms_machines"}
- />
-
- )}
- {!is_gasht && (
-
- {
- return (
- field.onChange(value || [])}
- error={error}
- />
- );
- }}
- name={"rahdaran_id"}
- />
-
- )}
-
- {subItemsList.needs_image ? (
-
- ) : null}
-
- {!is_gasht ? (
-
-
-
-
-
-
-
-
-
-
- ) : null}
-
- {subItemsList?.needs_end_point === 1 ? (
-
- ) : (
-
- )}
-
-
- );
-};
-export default GetItemInfo;
+import MapInfoOneMarker from "@/core/components/MapInfoOneMarker";
+import MapInfoTwoMarker from "@/core/components/MapInfoTwoMarker";
+import MuiDatePicker from "@/core/components/MuiDatePicker";
+import MuiTimePicker from "@/core/components/MuiTimePicker";
+import NumberField from "@/core/components/NumberField";
+import { Chip, Divider, FormHelperText, Grid, Stack, Typography } from "@mui/material";
+import ImageUpload from "./ImageUpload";
+import MissionsDialog from "./MissionsDialog";
+import PreviousStatesInfo from "./PreviousStatesInfo";
+import { Controller } from "react-hook-form";
+
+const GetItemInfo = ({ register, itemsList, subItemsList, control, setValue, errors, watch, getValues, is_gasht }) => {
+ return (
+
+
+
+
+ {
+ return value ? (
+
+
+
+
+ onChange(m)} mode={"edit"} />
+
+ {error ? error.message : null}
+
+ ) : (
+
+ onChange(m)} />
+ {error ? error.message : null}
+
+ )
+ }}
+ />
+
+ {
+ if (!isNaN(event.target.value)) {
+ setValue("amount", event.target.value);
+ } else {
+ setValue("amount", watch("amount"));
+ }
+ }}
+ helperText={errors.amount ? errors.amount.message : null}
+ variant="outlined"
+ fullWidth
+ />
+
+ {!is_gasht ? (
+
+
+
+
+
+
+
+
+
+
+ ) : null}
+
+ {subItemsList.needs_image ? (
+
+ ) : null}
+
+
+ {subItemsList?.needs_end_point === 1 ? (
+
+ ) : (
+
+ )}
+
+
+ );
+};
+export default GetItemInfo;
\ No newline at end of file
diff --git a/src/components/dashboard/roadItems/operator/OperatorList.jsx b/src/components/dashboard/roadItems/operator/OperatorList.jsx
index 06b98ff..f4a7648 100644
--- a/src/components/dashboard/roadItems/operator/OperatorList.jsx
+++ b/src/components/dashboard/roadItems/operator/OperatorList.jsx
@@ -129,8 +129,8 @@ const OperatorList = () => {
props.dependencyFieldValue.value === ""
? "empty"
: loadingSubItemsList
- ? "loading"
- : props.filterParameters.value
+ ? "loading"
+ : props.filterParameters.value
}
columnSelectOption={getColumnSelectOptions}
/>
@@ -219,60 +219,6 @@ const OperatorList = () => {
);
},
},
- {
- header: "خودرو ها",
- id: "cmmsMachines__machine_code",
- enableColumnFilter: true,
- datatype: "text",
- filterMode: "contains",
- enableSorting: false,
- columnFilterModeOptions: ["equals", "contains"],
- grow: false,
- size: 100,
- muiTableBodyCellProps: {
- sx: {
- borderLeft: "1px solid #e1e1e1",
- py: 0,
- "&:first-of-type": {
- borderLeft: "unset",
- },
- },
- },
- Cell: ({ renderedCellValue, row }) => {
- return (
-
-
-
- );
- },
- },
- {
- header: "راهداران",
- id: "rahdaran__code",
- enableColumnFilter: true,
- enableSorting: false,
- datatype: "text",
- filterMode: "contains",
- columnFilterModeOptions: ["equals", "contains"],
- grow: false,
- size: 100,
- muiTableBodyCellProps: {
- sx: {
- borderLeft: "1px solid #e1e1e1",
- py: 0,
- "&:first-of-type": {
- borderLeft: "unset",
- },
- },
- },
- Cell: ({ renderedCellValue, row }) => {
- return (
-
-
-
- );
- },
- },
{
accessorFn: (row) => moment(row.activity_date_time).locale("fa").format("HH:mm | yyyy/MM/DD"),
header: "تاریخ فعالیت", // Start Date
diff --git a/src/components/dashboard/roadItems/operator/RowActions/EditForm/EditFormCreate.jsx b/src/components/dashboard/roadItems/operator/RowActions/EditForm/EditFormCreate.jsx
index 4004086..5a24c01 100644
--- a/src/components/dashboard/roadItems/operator/RowActions/EditForm/EditFormCreate.jsx
+++ b/src/components/dashboard/roadItems/operator/RowActions/EditForm/EditFormCreate.jsx
@@ -1,36 +1,15 @@
-import { Button, DialogActions, DialogContent, Stack } from "@mui/material";
-import ImageUpload from "@/components/dashboard/roadItems/operator/Actions/Create/Forms/ImageUpload";
-import NumberField from "@/core/components/NumberField";
-import { Controller, useForm } from "react-hook-form";
-import CarCode from "@/core/components/CarCode";
-import RahdarCode from "@/core/components/RahdarCode";
-import MapInfoTwoMarker from "@/core/components/MapInfoTwoMarker";
import MapInfoOneMarker from "@/core/components/MapInfoOneMarker";
+import MapInfoTwoMarker from "@/core/components/MapInfoTwoMarker";
+import NumberField from "@/core/components/NumberField";
import StyledForm from "@/core/components/StyledForm";
-import React from "react";
import { yupResolver } from "@hookform/resolvers/yup";
-import { array, mixed, object, string } from "yup";
+import { Button, DialogActions, DialogContent, Stack } from "@mui/material";
+import { useForm } from "react-hook-form";
+import { mixed, object, string } from "yup";
+import ImageUpload from "../../Actions/ObservedGashtCreate/RowActions/ImageUpload";
const validationSchema = object({
amount: string().required("وارد کردن مقدار الزامیست!"),
- cmms_machines: array()
- .test("cmms-machines-conditional", "وارد کردن کد خودرو الزامیست!", function (value) {
- const { is_gasht } = this.options.context;
- if (is_gasht) {
- return true; // اگر is_gasht true باشد، این فیلد نیاز به اعتبارسنجی ندارد
- }
- return Array.isArray(value) && value.length > 0; // حداقل یک کد باید وجود داشته باشد
- })
- .min(1, "حداقل یک کد خودرو باید وارد شود!"), // پیام خطا برای زمانی که شرط تست برقرار باشد
- rahdaran_id: array()
- .test("rahdaran-id-conditional", "وارد کردن کد راهداران الزامیست!", function (value) {
- const { is_gasht } = this.options.context;
- if (is_gasht) {
- return true; // اگر is_gasht true باشد، این فیلد نیاز به اعتبارسنجی ندارد
- }
- return Array.isArray(value) && value.length > 0; // حداقل یک کد باید وجود داشته باشد
- })
- .min(1, "حداقل یک کد راهدار باید وارد شود!"),
before_image: mixed()
.nullable()
.test("before-image-required", "لطفا عکس قبل از اقدام را بارگذاری کنید!", function (value) {
@@ -124,42 +103,6 @@ const EditFormCreate = ({ defaultData, subItem, onSubmitBase, defaultValues, set
fullWidth
/>
- {!is_gasht && (
-
- {
- return (
- field.onChange(value || [])}
- inputValueDefault={defaultData?.cmms_machines}
- multiple={true}
- error={error} // اگر خطا وجود داشته باشد
- />
- );
- }}
- name={"cmms_machines"}
- />
-
- )}
- {!is_gasht && (
-
- {
- return (
- field.onChange(value || [])}
- error={error}
- />
- );
- }}
- name={"rahdaran_id"}
- />
-
- )}
{subItem.needs_end_point === 1 ? (
{
-
+ {/* */}
);
};
diff --git a/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx b/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx
index 807f417..0efcb18 100644
--- a/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx
+++ b/src/components/dashboard/roadItems/supervisor/SupervisorList.jsx
@@ -127,8 +127,8 @@ const SupervisorList = () => {
props.dependencyFieldValue?.value === ""
? "empty"
: loadingEdaratList
- ? "loading"
- : props.filterParameters.value
+ ? "loading"
+ : props.filterParameters.value
}
columnSelectOption={getColumnSelectOptions}
/>
@@ -227,8 +227,8 @@ const SupervisorList = () => {
props.dependencyFieldValue.value === ""
? "empty"
: loadingSubItemsList
- ? "loading"
- : props.filterParameters.value
+ ? "loading"
+ : props.filterParameters.value
}
columnSelectOption={getColumnSelectOptions}
/>
@@ -316,60 +316,6 @@ const SupervisorList = () => {
);
},
},
- {
- header: "خودرو ها",
- id: "cmmsMachines__machine_code",
- enableColumnFilter: true,
- datatype: "text",
- filterMode: "contains",
- enableSorting: false,
- columnFilterModeOptions: ["equals", "contains"],
- grow: false,
- size: 100,
- muiTableBodyCellProps: {
- sx: {
- borderLeft: "1px solid #e1e1e1",
- py: 0,
- "&:first-of-type": {
- borderLeft: "unset",
- },
- },
- },
- Cell: ({ renderedCellValue, row }) => {
- return (
-
-
-
- );
- },
- },
- {
- header: "راهداران",
- id: "rahdaran__code",
- enableColumnFilter: true,
- enableSorting: false,
- datatype: "text",
- filterMode: "contains",
- columnFilterModeOptions: ["equals", "contains"],
- grow: false,
- size: 100,
- muiTableBodyCellProps: {
- sx: {
- borderLeft: "1px solid #e1e1e1",
- py: 0,
- "&:first-of-type": {
- borderLeft: "unset",
- },
- },
- },
- Cell: ({ renderedCellValue, row }) => {
- return (
-
-
-
- );
- },
- },
{
accessorFn: (row) => moment(row.activity_date_time).locale("fa").format("HH:mm | yyyy/MM/DD"),
header: "تاریخ فعالیت", // Start Date
diff --git a/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/GetDateTime/MissionDates/index.jsx b/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/GetDateTime/MissionDates/index.jsx
index 312d6dc..f8ae064 100644
--- a/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/GetDateTime/MissionDates/index.jsx
+++ b/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/GetDateTime/MissionDates/index.jsx
@@ -1,5 +1,6 @@
import MuiDatePicker from "@/core/components/MuiDatePicker";
import MuiTimePicker from "@/core/components/MuiTimePicker";
+import { makeDateTime } from "@/core/utils/makeDateTime";
import { Grid } from "@mui/material";
import { Controller, useWatch } from "react-hook-form";
diff --git a/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/MachineAndDriver/index.jsx b/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/MachineAndDriver/index.jsx
index 7fda6e0..24bfb15 100644
--- a/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/MachineAndDriver/index.jsx
+++ b/src/components/dashboard/roadMissions/operator/Actions/CreateWithoutProcess/Form/MachineAndDriver/index.jsx
@@ -1,7 +1,7 @@
import { Box, Button, Chip, DialogActions, DialogContent, Divider, Stack, Typography } from "@mui/material";
import DriversDialog from "./DriversDialog";
-import MachinesDialog from "./MachinesDialog";
import { useState } from "react";
+import MachinesDialog from "./MachinesDialog";
const MachineAndDriver = ({ setTabState, allData, setAllData, handlePrev }) => {
const [machine, setMachine] = useState(allData.machine);
diff --git a/src/core/utils/missionCategoryTypes.js b/src/core/utils/missionCategoryTypes.js
index d0711ad..10ee11b 100644
--- a/src/core/utils/missionCategoryTypes.js
+++ b/src/core/utils/missionCategoryTypes.js
@@ -1,5 +1,5 @@
export const missionCategoryTypes = [
{ id: 1, name_fa: "فعالیت روزانه" },
{ id: 2, name_fa: "گشت راهداری" },
- { id: 3, name_fa: "واکنش سریع" },
+ // { id: 3, name_fa: "واکنش سریع" },
];