show time on edit dialog and remove time in tashih mamoriat
This commit is contained in:
@@ -5,6 +5,7 @@ import { yupResolver } from "@hookform/resolvers/yup";
|
||||
import { Button, DialogActions, DialogContent, Stack } from "@mui/material";
|
||||
import { Controller, useForm } from "react-hook-form";
|
||||
import * as yup from "yup";
|
||||
import MissionDates from "@/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/MissionDates";
|
||||
const schema = yup.object().shape({
|
||||
machinesId: yup.object().required("کد خودرو الزامی است."),
|
||||
km: yup.string(),
|
||||
@@ -61,6 +62,9 @@ const CreateViolationForm = ({ setOpenMachinesDialog, defaultValues, onSubmitBas
|
||||
)}
|
||||
/>
|
||||
</Stack>
|
||||
<Stack spacing={2} sx={{ minWidth: "200px" }}>
|
||||
<MissionDates control={control} />
|
||||
</Stack>
|
||||
</Stack>
|
||||
</DialogContent>
|
||||
<DialogActions sx={{ alignItems: "center", justifyContent: "end" }}>
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
import MuiDatePicker from "@/core/components/MuiDatePicker";
|
||||
import MuiTimePicker from "@/core/components/MuiTimePicker";
|
||||
import { Grid } from "@mui/material";
|
||||
import { Controller, useWatch } from "react-hook-form";
|
||||
|
||||
const MissionDates = ({ control }) => {
|
||||
const start_date = useWatch({ control, name: "start_date" });
|
||||
const now = new Date();
|
||||
|
||||
return (
|
||||
<>
|
||||
<Grid item xs={12} sm={6}>
|
||||
<Controller
|
||||
control={control}
|
||||
name={"start_date"}
|
||||
render={({ field, fieldState: { error } }) => {
|
||||
return (
|
||||
<MuiDatePicker
|
||||
name="start_date"
|
||||
error={error}
|
||||
value={field.value}
|
||||
disableFuture={false}
|
||||
minDate={start_date ? start_date : now}
|
||||
placeholder={"تاریخ شروع ماموریت را وارد کنید"}
|
||||
label={"تاریخ شروع ماموریت"}
|
||||
setFieldValue={(name, value) => field.onChange(value || [])}
|
||||
helperText={error ? error.message : null}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item xs={12} sm={6}>
|
||||
<Controller
|
||||
control={control}
|
||||
name={"start_time"}
|
||||
render={({ field, fieldState: { error } }) => {
|
||||
return (
|
||||
<MuiTimePicker
|
||||
name="start_time"
|
||||
error={error}
|
||||
value={field.value}
|
||||
placeholder={"زمان شروع ماموریت را وارد کنید"}
|
||||
label={"زمان شروع ماموریت"}
|
||||
setFieldValue={(name, value) => field.onChange(value || null)}
|
||||
helperText={error ? error.message : null}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
</>
|
||||
);
|
||||
};
|
||||
export default MissionDates;
|
||||
@@ -3,6 +3,7 @@ import { DialogHeader } from "next/dist/client/components/react-dev-overlay/inte
|
||||
import useRequest from "@/lib/hooks/useRequest";
|
||||
import { CREATE_VIOLATION } from "@/core/utils/routes";
|
||||
import CreateViolationForm from "@/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm";
|
||||
import moment from "jalali-moment";
|
||||
|
||||
const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) => {
|
||||
const requestServer = useRequest({ notificationSuccess: true });
|
||||
@@ -10,6 +11,8 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) =>
|
||||
const defaultValues = {
|
||||
machinesId: null,
|
||||
km: "",
|
||||
start_date: null,
|
||||
start_time: null,
|
||||
};
|
||||
|
||||
const submitForm = async (result) => {
|
||||
@@ -17,6 +20,7 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) =>
|
||||
data: {
|
||||
machine_code: result.machinesId.machine_code,
|
||||
km: result.km,
|
||||
exit_time: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
|
||||
},
|
||||
})
|
||||
.then((response) => {
|
||||
|
||||
@@ -59,10 +59,9 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
|
||||
}}
|
||||
>
|
||||
<Tab icon={<InsertDriveFile />} label="مشخصات" />
|
||||
<Tab disabled={tabState < 1} icon={<AccessTime />} label="زمانبندی" />
|
||||
<Tab disabled={tabState < 2} icon={<Person />} label="راننده" />
|
||||
<Tab disabled={tabState < 3} icon={<Engineering />} label="همراهان" />
|
||||
<Tab disabled={tabState < 4} icon={<Verified />} label="بررسی نهایی" />
|
||||
<Tab disabled={tabState < 1} icon={<Person />} label="راننده" />
|
||||
<Tab disabled={tabState < 2} icon={<Engineering />} label="همراهان" />
|
||||
<Tab disabled={tabState < 3} icon={<Verified />} label="بررسی نهایی" />
|
||||
</Tabs>
|
||||
<TabPanel value={tabState} index={0}>
|
||||
<GetItemInfo
|
||||
@@ -74,16 +73,6 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
|
||||
setTabState={setTabState}
|
||||
/>
|
||||
</TabPanel>
|
||||
<TabPanel value={tabState} index={1}>
|
||||
<GetDateTime
|
||||
allData={allData}
|
||||
setAllData={(data) => {
|
||||
dispatch({ type: "changeData", data });
|
||||
}}
|
||||
handlePrev={handlePrev}
|
||||
setTabState={setTabState}
|
||||
/>
|
||||
</TabPanel>
|
||||
<TabPanel value={tabState} index={2}>
|
||||
<MachineAndDriver
|
||||
allData={allData}
|
||||
|
||||
@@ -25,8 +25,6 @@ const CreateWithoutProcess = ({ row, mutate }) => {
|
||||
...(result.rahdaran.length != 0 ? { rahdaran: result.rahdaran.map((r) => r.id) } : {}),
|
||||
zone: result.region,
|
||||
end_point: result.end_point,
|
||||
start_date: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
|
||||
end_date: `${result.end_date} ${moment(result.end_time).format("HH:mm")}`,
|
||||
driver: result.driver.id,
|
||||
},
|
||||
hasSidebarUpdate: true,
|
||||
@@ -70,10 +68,6 @@ const CreateWithoutProcess = ({ row, mutate }) => {
|
||||
category_id: "",
|
||||
road_observed_id: "",
|
||||
rahdaran: [],
|
||||
start_date: "",
|
||||
start_time: null,
|
||||
end_date: "",
|
||||
end_time: null,
|
||||
end_point: "",
|
||||
region: "",
|
||||
driver: null,
|
||||
|
||||
@@ -5,24 +5,19 @@ import { DialogHeader } from "next/dist/client/components/react-dev-overlay/inte
|
||||
import EditViolationForm from "./EditViolationForm";
|
||||
import moment from "jalali-moment";
|
||||
|
||||
const EditController = ({ rowId, mutate, setOpen }) => {
|
||||
const EditController = ({ rowId, mutate, setOpen, row }) => {
|
||||
const requestServer = useRequest({ notificationSuccess: true });
|
||||
const [endDate] = row?.original?.enter_time?.split(" ") || [null];
|
||||
|
||||
const defaultData = {
|
||||
start_date: null,
|
||||
start_time: null,
|
||||
end_date: null,
|
||||
end_time: null,
|
||||
end_date: endDate,
|
||||
end_time: row?.original?.enter_time ? new Date(row.original.enter_time) : null,
|
||||
};
|
||||
const handleSubmit = async (result) => {
|
||||
const payload = {};
|
||||
|
||||
if (result.start_date && result.start_time) {
|
||||
payload.enter_time = `${result.start_date} ${moment(result.start_time).format("HH:mm")}`;
|
||||
}
|
||||
|
||||
if (result.end_date && result.end_time) {
|
||||
payload.exit_time = `${result.end_date} ${moment(result.end_time).format("HH:mm")}`;
|
||||
payload.enter_time = `${result.end_date} ${moment(result.end_time).format("HH:mm")}`;
|
||||
}
|
||||
|
||||
await requestServer(`${EDIT_VIOLATION}/${rowId}`, "post", {
|
||||
|
||||
@@ -5,52 +5,11 @@ import { Grid } from "@mui/material";
|
||||
import { Controller, useWatch } from "react-hook-form";
|
||||
|
||||
const MissionDates = ({ control }) => {
|
||||
const start_date = useWatch({ control, name: "start_date" });
|
||||
const end_date = useWatch({ control, name: "end_date" });
|
||||
const now = new Date();
|
||||
|
||||
return (
|
||||
<>
|
||||
<Grid item xs={12} sm={6}>
|
||||
<Controller
|
||||
control={control}
|
||||
name={"start_date"}
|
||||
render={({ field, fieldState: { error } }) => {
|
||||
return (
|
||||
<MuiDatePicker
|
||||
name="start_date"
|
||||
error={error}
|
||||
value={field.value}
|
||||
disableFuture={false}
|
||||
maxDate={end_date ?? null}
|
||||
placeholder={"تاریخ شروع ماموریت را وارد کنید"}
|
||||
label={"تاریخ شروع ماموریت"}
|
||||
setFieldValue={(name, value) => field.onChange(value || [])}
|
||||
helperText={error ? error.message : null}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item xs={12} sm={6}>
|
||||
<Controller
|
||||
control={control}
|
||||
name={"start_time"}
|
||||
render={({ field, fieldState: { error } }) => {
|
||||
return (
|
||||
<MuiTimePicker
|
||||
name="start_time"
|
||||
error={error}
|
||||
value={field.value}
|
||||
placeholder={"زمان شروع ماموریت را وارد کنید"}
|
||||
label={"زمان شروع ماموریت"}
|
||||
setFieldValue={(name, value) => field.onChange(value || null)}
|
||||
helperText={error ? error.message : null}
|
||||
/>
|
||||
);
|
||||
}}
|
||||
/>
|
||||
</Grid>
|
||||
<Grid item xs={12} sm={6}>
|
||||
<Controller
|
||||
control={control}
|
||||
@@ -62,7 +21,7 @@ const MissionDates = ({ control }) => {
|
||||
error={error}
|
||||
value={field.value}
|
||||
disableFuture={false}
|
||||
minDate={start_date ? start_date : now}
|
||||
minDate={end_date ? end_date : now}
|
||||
placeholder={"تاریخ پایان ماموریت را وارد کنید"}
|
||||
label={"تاریخ پایان ماموریت"}
|
||||
setFieldValue={(name, value) => field.onChange(value || [])}
|
||||
|
||||
Reference in New Issue
Block a user