exit station time
This commit is contained in:
@@ -20,7 +20,7 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) =>
|
|||||||
data: {
|
data: {
|
||||||
machine_code: result.machinesId.machine_code,
|
machine_code: result.machinesId.machine_code,
|
||||||
km: result.km,
|
km: result.km,
|
||||||
exit_time: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
|
exit_station: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { AccessTime, Engineering, InsertDriveFile, Person, Verified } from "@mui/icons-material";
|
import { Engineering, InsertDriveFile, Person, Verified } from "@mui/icons-material";
|
||||||
import { Box, Tab, Tabs } from "@mui/material";
|
import { Box, Tab, Tabs } from "@mui/material";
|
||||||
import { useReducer, useState } from "react";
|
import { useReducer, useState } from "react";
|
||||||
import GetDateTime from "./GetDateTime";
|
|
||||||
import GetItemInfo from "./GetItemInfo";
|
import GetItemInfo from "./GetItemInfo";
|
||||||
import MachineAndDriver from "./MachineAndDriver";
|
import MachineAndDriver from "./MachineAndDriver";
|
||||||
import Rahdaran from "./Rahdaran";
|
import Rahdaran from "./Rahdaran";
|
||||||
@@ -42,7 +41,6 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
|
|||||||
setTabState((t) => t - 1);
|
setTabState((t) => t - 1);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Tabs
|
<Tabs
|
||||||
@@ -73,7 +71,7 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
|
|||||||
setTabState={setTabState}
|
setTabState={setTabState}
|
||||||
/>
|
/>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
<TabPanel value={tabState} index={2}>
|
<TabPanel value={tabState} index={1}>
|
||||||
<MachineAndDriver
|
<MachineAndDriver
|
||||||
allData={allData}
|
allData={allData}
|
||||||
setAllData={(data) => {
|
setAllData={(data) => {
|
||||||
@@ -83,7 +81,7 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
|
|||||||
setTabState={setTabState}
|
setTabState={setTabState}
|
||||||
/>
|
/>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
<TabPanel value={tabState} index={3}>
|
<TabPanel value={tabState} index={2}>
|
||||||
<Rahdaran
|
<Rahdaran
|
||||||
allData={allData}
|
allData={allData}
|
||||||
setAllData={(data) => {
|
setAllData={(data) => {
|
||||||
@@ -93,7 +91,7 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
|
|||||||
setTabState={setTabState}
|
setTabState={setTabState}
|
||||||
/>
|
/>
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
<TabPanel value={tabState} index={4}>
|
<TabPanel value={tabState} index={3}>
|
||||||
<Verify allData={allData} handlePrev={handlePrev} submitForm={submitForm} submitting={submitting} />
|
<Verify allData={allData} handlePrev={handlePrev} submitForm={submitForm} submitting={submitting} />
|
||||||
</TabPanel>
|
</TabPanel>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@@ -7,17 +7,17 @@ import moment from "jalali-moment";
|
|||||||
|
|
||||||
const EditController = ({ rowId, mutate, setOpen, row }) => {
|
const EditController = ({ rowId, mutate, setOpen, row }) => {
|
||||||
const requestServer = useRequest({ notificationSuccess: true });
|
const requestServer = useRequest({ notificationSuccess: true });
|
||||||
const [endDate] = row?.original?.enter_time?.split(" ") || [null];
|
const [endDate] = row?.original?.enter_station?.split(" ") || [null];
|
||||||
|
|
||||||
const defaultData = {
|
const defaultData = {
|
||||||
end_date: endDate,
|
end_date: endDate,
|
||||||
end_time: row?.original?.enter_time ? new Date(row.original.enter_time) : null,
|
end_time: row?.original?.enter_station ? new Date(row.original.enter_station) : null,
|
||||||
};
|
};
|
||||||
const handleSubmit = async (result) => {
|
const handleSubmit = async (result) => {
|
||||||
const payload = {};
|
const payload = {};
|
||||||
|
|
||||||
if (result.end_date && result.end_time) {
|
if (result.end_date && result.end_time) {
|
||||||
payload.enter_time = `${result.end_date} ${moment(result.end_time).format("HH:mm")}`;
|
payload.enter_station = `${result.end_date} ${moment(result.end_time).format("HH:mm")}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
await requestServer(`${EDIT_VIOLATION}/${rowId}`, "post", {
|
await requestServer(`${EDIT_VIOLATION}/${rowId}`, "post", {
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ const MissionDates = ({ control }) => {
|
|||||||
name="end_time"
|
name="end_time"
|
||||||
error={error}
|
error={error}
|
||||||
value={field.value}
|
value={field.value}
|
||||||
views={["hours"]}
|
|
||||||
placeholder={"زمان پایان ماموریت را وارد کنید"}
|
placeholder={"زمان پایان ماموریت را وارد کنید"}
|
||||||
label={"زمان پایان ماموریت"}
|
label={"زمان پایان ماموریت"}
|
||||||
setFieldValue={(name, value) => field.onChange(value || null)}
|
setFieldValue={(name, value) => field.onChange(value || null)}
|
||||||
|
|||||||
@@ -7,75 +7,166 @@ import { useMemo } from "react";
|
|||||||
import RowActions from "./RowActions";
|
import RowActions from "./RowActions";
|
||||||
import Toolbar from "./Toolbar";
|
import Toolbar from "./Toolbar";
|
||||||
import { violationsCategoryStatus } from "@/core/utils/violationsCategoryStatus";
|
import { violationsCategoryStatus } from "@/core/utils/violationsCategoryStatus";
|
||||||
|
import useProvinces from "@/lib/hooks/useProvince";
|
||||||
|
import CustomSelectByDependency from "@/core/components/DataTable/filter/fieldsType/CustomSelectByDependency";
|
||||||
|
import useCities from "@/lib/hooks/useCities";
|
||||||
|
|
||||||
const ViolationsList = () => {
|
const ViolationsList = () => {
|
||||||
const columns = useMemo(
|
const columns = useMemo(
|
||||||
() => [
|
() => {
|
||||||
{
|
const dynamicColumns = {
|
||||||
accessorKey: "id",
|
header: "استان",
|
||||||
header: "کد یکتا",
|
id: "province_id",
|
||||||
id: "id",
|
|
||||||
enableColumnFilter: true,
|
|
||||||
datatype: "text",
|
|
||||||
filterMode: "equals",
|
|
||||||
columnFilterModeOptions: ["equals", "contains"],
|
|
||||||
grow: false,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
accessorKey: "status",
|
|
||||||
header: "وضعیت",
|
|
||||||
id: "status",
|
|
||||||
enableColumnFilter: true,
|
enableColumnFilter: true,
|
||||||
datatype: "numeric",
|
datatype: "numeric",
|
||||||
filterMode: "equals",
|
filterMode: "equals",
|
||||||
sortDescFirst: true,
|
|
||||||
grow: false,
|
grow: false,
|
||||||
columnSelectOption: () => {
|
size: 130,
|
||||||
return violationsCategoryStatus.map((category) => ({
|
ColumnSelectComponent: (props) => {
|
||||||
value: category.id,
|
const { provinces, errorProvinces, loadingProvinces } = useProvinces();
|
||||||
label: category.name_fa,
|
const getColumnSelectOptions = useMemo(() => {
|
||||||
}));
|
if (loadingProvinces) {
|
||||||
|
return [{ value: "loading", label: "در حال بارگذاری..." }];
|
||||||
|
}
|
||||||
|
if (errorProvinces) {
|
||||||
|
return [{ value: "error", label: "خطا در بارگذاری" }];
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
{ value: "", label: "کل کشور" },
|
||||||
|
...provinces.map((province) => ({
|
||||||
|
value: province.id,
|
||||||
|
label: province.name_fa,
|
||||||
|
})),
|
||||||
|
];
|
||||||
|
}, [provinces, errorProvinces, loadingProvinces]);
|
||||||
|
return (
|
||||||
|
<CustomSelectByDependency
|
||||||
|
{...props}
|
||||||
|
value={loadingProvinces ? "loading" : props.filterParameters.value}
|
||||||
|
columnSelectOption={getColumnSelectOptions}
|
||||||
|
/>
|
||||||
|
);
|
||||||
},
|
},
|
||||||
Cell: ({ row }) => (row.original.type === 1 ? "خروج بدون مجوز" : "عدم تحرک"),
|
Cell: ({ renderedCellValue, row }) => {
|
||||||
},
|
return <>{row.original.province_name}</>;
|
||||||
{
|
},
|
||||||
accessorKey: "machine_code",
|
};
|
||||||
header: "کد خودرو",
|
return [
|
||||||
id: "machine_code",
|
{
|
||||||
datatype: "text",
|
accessorKey: "id",
|
||||||
columnFilterModeOptions: ["equals", "contains"],
|
header: "کد یکتا",
|
||||||
grow: false,
|
id: "id",
|
||||||
},
|
enableColumnFilter: true,
|
||||||
{
|
datatype: "text",
|
||||||
accessorKey: "machine",
|
filterMode: "equals",
|
||||||
header: "نام خودرو",
|
columnFilterModeOptions: ["equals", "contains"],
|
||||||
id: "machine",
|
grow: false,
|
||||||
datatype: "text",
|
},
|
||||||
columnFilterModeOptions: ["equals", "contains"],
|
{
|
||||||
grow: false,
|
accessorKey: "status",
|
||||||
Cell: ({ row }) => row.original.machine?.car_name || "-",
|
header: "وضعیت",
|
||||||
},
|
id: "status",
|
||||||
{
|
enableColumnFilter: true,
|
||||||
accessorKey: "mission_id",
|
datatype: "numeric",
|
||||||
header: "کد ماموریت",
|
filterMode: "equals",
|
||||||
id: "mission_id",
|
sortDescFirst: true,
|
||||||
enableColumnFilter: false,
|
grow: false,
|
||||||
datatype: "numeric",
|
columnSelectOption: () => {
|
||||||
filterMode: "equals",
|
return violationsCategoryStatus.map((category) => ({
|
||||||
grow: false,
|
value: category.id,
|
||||||
Cell: ({ row }) => row.original.mission_id || "-",
|
label: category.name_fa,
|
||||||
},
|
}));
|
||||||
{
|
},
|
||||||
accessorKey: "request_date",
|
Cell: ({ row }) => (row.original.type === 1 ? "خروج بدون مجوز" : "عدم تحرک"),
|
||||||
header: "تاریخ تخلف",
|
},
|
||||||
id: "request_date",
|
{
|
||||||
enableColumnFilter: true,
|
accessorKey: "machine_code",
|
||||||
datatype: "date",
|
header: "کد خودرو",
|
||||||
filterMode: "between",
|
id: "machine_code",
|
||||||
grow: false,
|
datatype: "text",
|
||||||
Cell: ({ row }) => moment(row.original.request_date).locale("fa").format("YYYY/MM/DD"),
|
columnFilterModeOptions: ["equals", "contains"],
|
||||||
},
|
grow: false,
|
||||||
],
|
},
|
||||||
|
...[dynamicColumns],
|
||||||
|
{
|
||||||
|
header: "شهر",
|
||||||
|
id: "city_id",
|
||||||
|
enableColumnFilter: true,
|
||||||
|
datatype: "numeric",
|
||||||
|
filterMode: "equals",
|
||||||
|
dependencyId: "province_id",
|
||||||
|
grow: false,
|
||||||
|
size: 120,
|
||||||
|
ColumnSelectComponent: (props) => {
|
||||||
|
const { cityList, loadingCityList, errorCityList } = useCities(
|
||||||
|
props.dependencyFieldValue.value
|
||||||
|
);
|
||||||
|
|
||||||
|
const getColumnSelectOptions = useMemo(() => {
|
||||||
|
if (props.dependencyFieldValue.value === "") {
|
||||||
|
return [{ value: "empty", label: "ابتدا استان را انتخاب کنید" }];
|
||||||
|
}
|
||||||
|
if (loadingCityList) {
|
||||||
|
return [{ value: "loading", label: "در حال بارگذاری..." }];
|
||||||
|
}
|
||||||
|
if (errorCityList) {
|
||||||
|
return [{ value: "error", label: "خطا در بارگذاری" }];
|
||||||
|
}
|
||||||
|
return [
|
||||||
|
{ value: "", label: "کل ادارات" },
|
||||||
|
...cityList.map((edare) => ({
|
||||||
|
value: edare.id,
|
||||||
|
label: edare.name_fa,
|
||||||
|
})),
|
||||||
|
];
|
||||||
|
}, [cityList, loadingCityList, errorCityList]);
|
||||||
|
return (
|
||||||
|
<CustomSelectByDependency
|
||||||
|
{...props}
|
||||||
|
value={
|
||||||
|
props.dependencyFieldValue?.value === ""
|
||||||
|
? "empty"
|
||||||
|
: loadingCityList
|
||||||
|
? "loading"
|
||||||
|
: props.filterParameters.value
|
||||||
|
}
|
||||||
|
columnSelectOption={getColumnSelectOptions}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
},
|
||||||
|
Cell: ({ row }) => <>{row.original.city_name}</>,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: "machine",
|
||||||
|
header: "نام خودرو",
|
||||||
|
id: "machine",
|
||||||
|
datatype: "text",
|
||||||
|
columnFilterModeOptions: ["equals", "contains"],
|
||||||
|
grow: false,
|
||||||
|
Cell: ({ row }) => row.original.machine?.car_name || "-",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: "mission_id",
|
||||||
|
header: "کد ماموریت",
|
||||||
|
id: "mission_id",
|
||||||
|
enableColumnFilter: false,
|
||||||
|
datatype: "numeric",
|
||||||
|
filterMode: "equals",
|
||||||
|
grow: false,
|
||||||
|
Cell: ({ row }) => row.original.mission_id || "-",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorKey: "request_date",
|
||||||
|
header: "تاریخ تخلف",
|
||||||
|
id: "request_date",
|
||||||
|
enableColumnFilter: true,
|
||||||
|
datatype: "date",
|
||||||
|
filterMode: "between",
|
||||||
|
grow: false,
|
||||||
|
Cell: ({ row }) => moment(row.original.request_date).locale("fa").format("YYYY/MM/DD"),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
},
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user