Merge branch 'release/v1.3.7'

This commit is contained in:
AmirHossein Mahmoodi
2025-06-01 08:53:05 +03:30
10 changed files with 56 additions and 48 deletions

View File

@@ -1,4 +1,4 @@
HOST="rms.witel.ir" HOST="rms.witel.ir"
NEXT_PUBLIC_VERSION="1.3.6" NEXT_PUBLIC_VERSION="1.3.7"
NEXT_PUBLIC_API_URL="https://rms.witel.ir" NEXT_PUBLIC_API_URL="https://rms.witel.ir"
NEXT_PUBLIC_MAPTILE_ENDPOINT="https://rmsmap.rmto.ir/141map" NEXT_PUBLIC_MAPTILE_ENDPOINT="https://rmsmap.rmto.ir/141map"

View File

@@ -32,47 +32,49 @@ const validationSchema = object({
province_id: number().required("لطفا استان را وارد کنید!!!"), province_id: number().required("لطفا استان را وارد کنید!!!"),
city_id: number().required("لطفا شهرستان را وارد کنید!!!"), city_id: number().required("لطفا شهرستان را وارد کنید!!!"),
axis_name: string().required("لطفا نام محور را وارد کنید!!!"), axis_name: string().required("لطفا نام محور را وارد کنید!!!"),
driver_name: string().when('isForeign', { driver_name: string().when("isForeign", {
is: "0", is: "0",
then: (schema) => schema.required("لطفا نام و نام خانوادگی را وارد کنید!!!"), then: (schema) => schema.required("لطفا نام و نام خانوادگی را وارد کنید!!!"),
}), }),
phone_number: string() phone_number: string().when("isForeign", {
.when('isForeign', {
is: "0",
then: (schema) => schema.matches(/^09\d{9}$/, "شماره موبایل باید با 09 شروع شده و 11 رقم باشد")
.required("لطفا تلفن همراه را وارد کنید!!!"),
}),
national_code: mixed().when('isForeign', {
is: "0", is: "0",
then: (schema) => schema.test("max", "کد ملی باید شامل 10 رقم باشد", (value) => value.toString().length === 10) then: (schema) =>
.test("validation", "کد ملی صحیح نمی باشد", (value) => validateNationalCode(value)) schema
.required("لطفا کد ملی را وارد کنید!!!"), .matches(/^09\d{9}$/, "شماره موبایل باید با 09 شروع شده و 11 رقم باشد")
.required("لطفا تلفن همراه را وارد کنید!!!"),
}),
national_code: mixed().when("isForeign", {
is: "0",
then: (schema) =>
schema
.test("max", "کد ملی باید شامل 10 رقم باشد", (value) => value.toString().length === 10)
.test("validation", "کد ملی صحیح نمی باشد", (value) => validateNationalCode(value))
.required("لطفا کد ملی را وارد کنید!!!"),
}), }),
start_point: mixed() start_point: mixed()
.test("start-point-required", "لطفاً نقطه تصادف را مشخص کنید!", function (value) { .test("start-point-required", "لطفاً نقطه تصادف را مشخص کنید!", function (value) {
return !!value; return !!value;
}) })
.required("لطفاً نقطه تصادف را مشخص کنید!"), .required("لطفاً نقطه تصادف را مشخص کنید!"),
plate_part1: mixed() plate_part1: mixed().when("isForeign", {
.when('isForeign', { is: "0",
is: "0", then: (schema) =>
then: (schema) => schema.test("max", "2رقم", (value) => value.toString().length === 2) schema.test("max", "2رقم", (value) => value.toString().length === 2).required("plate_part1 الزامیست"),
.required("plate_part1 الزامیست"), }),
}), plate_part2: mixed().when("isForeign", {
plate_part2: mixed().when('isForeign', {
is: "0", is: "0",
then: (schema) => schema.required("plate_part2 الزامیست"), then: (schema) => schema.required("plate_part2 الزامیست"),
}), }),
plate_part3: mixed().when('isForeign', { plate_part3: mixed().when("isForeign", {
is: "0", is: "0",
then: (schema) => schema.test("max", "3رقم", (value) => value.toString().length === 3) then: (schema) =>
.required("plate_part3الزامیست"), schema.test("max", "3رقم", (value) => value.toString().length === 3).required("plate_part3الزامیست"),
}), }),
plate_part4: mixed().when('isForeign', { plate_part4: mixed().when("isForeign", {
is: "0", is: "0",
then: (schema) => schema.test("max", "2رقم", (value) => value.toString().length === 2) then: (schema) =>
.required("plate_part4الزامیست"), schema.test("max", "2رقم", (value) => value.toString().length === 2).required("plate_part4الزامیست"),
}), }),
damage_picture1: mixed().nullable().required("لطفا عکس تصادف را بارگذاری کنید!"), damage_picture1: mixed().nullable().required("لطفا عکس تصادف را بارگذاری کنید!"),
damage_picture2: mixed().nullable().required("لطفا عکس تصادف را بارگذاری کنید!"), damage_picture2: mixed().nullable().required("لطفا عکس تصادف را بارگذاری کنید!"),

View File

@@ -16,7 +16,7 @@ const DamageInfo = ({ control, setValue, errors }) => {
return ( return (
<Stack> <Stack>
<LogesticController control={control} /> <LogesticController control={control} />
<Stack sx={{ mt: 2 }} alignItems={'center'} justifyContent={'center'}> <Stack sx={{ mt: 2 }} alignItems={"center"} justifyContent={"center"}>
<Controller <Controller
name="isForeign" name="isForeign"
control={control} control={control}
@@ -26,12 +26,8 @@ const DamageInfo = ({ control, setValue, errors }) => {
exclusive exclusive
onChange={(event, newAlignment) => field.onChange(newAlignment)} onChange={(event, newAlignment) => field.onChange(newAlignment)}
> >
<ToggleButton value="0"> <ToggleButton value="0">ناوگان داخلی</ToggleButton>
ناوگان داخلی <ToggleButton value="1">ناوگان خارجی</ToggleButton>
</ToggleButton>
<ToggleButton value="1">
ناوگان خارجی
</ToggleButton>
</ToggleButtonGroup> </ToggleButtonGroup>
)} )}
/> />

View File

@@ -23,7 +23,7 @@ const OperatorCreateForm = ({ open, setOpen, mutate }) => {
formData.append("city_id", result.city_id); formData.append("city_id", result.city_id);
formData.append("axis_name", result.axis_name); formData.append("axis_name", result.axis_name);
formData.append("is_foreign", result.isForeign); formData.append("is_foreign", result.isForeign);
if (result.isForeign == '0') { if (result.isForeign == "0") {
formData.append("driver_name", result.driver_name); formData.append("driver_name", result.driver_name);
formData.append("driver_phone_number", result.phone_number); formData.append("driver_phone_number", result.phone_number);
formData.append("driver_national_code", result.national_code); formData.append("driver_national_code", result.national_code);
@@ -54,7 +54,7 @@ const OperatorCreateForm = ({ open, setOpen, mutate }) => {
mutate(); mutate();
setOpen(false); setOpen(false);
}) })
.catch(() => { }); .catch(() => {});
}; };
const defaultData = { const defaultData = {
isForeign: "0", isForeign: "0",

View File

@@ -151,7 +151,7 @@ const CreateFactorContent = ({ row, mutate, rowId, setOpenCreateFactorDialog })
<Grid item xs={12}> <Grid item xs={12}>
<Stack spacing={1}> <Stack spacing={1}>
<Alert severity="warning"> <Alert severity="warning">
بعد از صدور فاکتور، ویرایش اطلاعات کاربر و مبالغ امکانپذیر نخواهد بود. پس از صدور فاکتور، امکان ویرایش مبالغ بیمه و داغی وجود نخواهد داشت
</Alert> </Alert>
<Alert severity="info"> <Alert severity="info">
لینک پرداخت فاکتور به شماره {row.original?.driver_phone_number} ارسال می شود. لینک پرداخت فاکتور به شماره {row.original?.driver_phone_number} ارسال می شود.

View File

@@ -29,9 +29,9 @@ const EditController = ({ rowId, mutate, setOpenEditDialog }) => {
}, [rowId]); }, [rowId]);
const today = new Date().toISOString().split("T")[0]; const today = new Date().toISOString().split("T")[0];
const plaqueNumber = damageItemDetails?.plaque.split("-") || []; const plaqueNumber = damageItemDetails?.is_foreign == 0 ? damageItemDetails?.plaque.split("-") || [] : [];
const defaultData = { const defaultData = {
isForeign: damageItemDetails?.is_foreign, isForeign: String(damageItemDetails?.is_foreign),
damage_picture1: damageItemDetails?.damage_picture1 || null, damage_picture1: damageItemDetails?.damage_picture1 || null,
damage_picture2: damageItemDetails?.damage_picture2 || null, damage_picture2: damageItemDetails?.damage_picture2 || null,
accident_date: new Date(damageItemDetails?.accident_date) || "", accident_date: new Date(damageItemDetails?.accident_date) || "",
@@ -70,7 +70,7 @@ const EditController = ({ rowId, mutate, setOpenEditDialog }) => {
formData.append("city_id", result.city_id); formData.append("city_id", result.city_id);
formData.append("axis_name", result.axis_name); formData.append("axis_name", result.axis_name);
formData.append("is_foreign", result.isForeign); formData.append("is_foreign", result.isForeign);
if (result.isForeign == '0') { if (result.isForeign == "0") {
formData.append("driver_name", result.driver_name); formData.append("driver_name", result.driver_name);
formData.append("driver_phone_number", result.phone_number); formData.append("driver_phone_number", result.phone_number);
formData.append("driver_national_code", result.national_code); formData.append("driver_national_code", result.national_code);
@@ -103,7 +103,7 @@ const EditController = ({ rowId, mutate, setOpenEditDialog }) => {
mutate(); mutate();
setOpenEditDialog(false); setOpenEditDialog(false);
}) })
.catch(() => { }); .catch(() => {});
}; };
return ( return (
<> <>

View File

@@ -162,8 +162,8 @@ const OperatorList = () => {
props.dependencyFieldValue?.value === "" props.dependencyFieldValue?.value === ""
? "empty" ? "empty"
: loadingCityList : loadingCityList
? "loading" ? "loading"
: props.filterParameters.value : props.filterParameters.value
} }
columnSelectOption={getColumnSelectOptions} columnSelectOption={getColumnSelectOptions}
/> />
@@ -199,7 +199,11 @@ const OperatorList = () => {
})); }));
}, },
Cell: ({ row }) => { Cell: ({ row }) => {
return <Typography variant={"body2"}>{row.original.is_foreign == "0" ? "داخلی" : "خارجی"}</Typography>; return (
<Typography variant={"body2"}>
{row.original.is_foreign == "0" ? "داخلی" : "خارجی"}
</Typography>
);
}, },
}, },
{ {
@@ -248,7 +252,8 @@ const OperatorList = () => {
enableSorting: false, enableSorting: false,
grow: false, grow: false,
size: 100, size: 100,
Cell: ({ row, renderedCellValue }) => row.original.is_foreign == "0" ? <ShowPlate plate={renderedCellValue} /> : '', Cell: ({ row, renderedCellValue }) =>
row.original.is_foreign == "0" ? <ShowPlate plate={renderedCellValue} /> : "",
}, },
{ {
accessorKey: "accident_type", accessorKey: "accident_type",

View File

@@ -1,4 +1,4 @@
import { Button, DialogActions, DialogContent, Stack, Typography } from "@mui/material"; import { Alert, Button, DialogActions, DialogContent, Stack, Typography } from "@mui/material";
import React, { useState } from "react"; import React, { useState } from "react";
import useRequest from "@/lib/hooks/useRequest"; import useRequest from "@/lib/hooks/useRequest";
import { GET_INSURANCE, GET_INSURANCE_PAGE } from "@/core/utils/routes"; import { GET_INSURANCE, GET_INSURANCE_PAGE } from "@/core/utils/routes";
@@ -24,6 +24,9 @@ const SendToInsuranceContent = ({ setOpenSendInsuranceDialog, rowId, mutate }) =
<DialogContent> <DialogContent>
<Stack spacing={2}> <Stack spacing={2}>
<Typography mt={2}>آیا از صدور نامه بیمه اطمینان دارید؟</Typography> <Typography mt={2}>آیا از صدور نامه بیمه اطمینان دارید؟</Typography>
<Alert color="warning" icon={false}>
در صورت صدور نامه بیمه، اطلاعات قابل ویرایش یا حذف نخواهند بود
</Alert>
</Stack> </Stack>
</DialogContent> </DialogContent>
<DialogActions> <DialogActions>

View File

@@ -26,7 +26,9 @@ const RowActions = ({ row, mutate }) => {
{hasEditPermission && [0].includes(row.original?.status) && ( {hasEditPermission && [0].includes(row.original?.status) && (
<EditForm row={row} mutate={mutate} rowId={row.getValue("id")} /> <EditForm row={row} mutate={mutate} rowId={row.getValue("id")} />
)} )}
{(hasDeletePermission && [0].includes(row.original?.status)) && <DeleteDialog mutate={mutate} rowId={row.getValue("id")} />} {hasDeletePermission && [0].includes(row.original?.status) && (
<DeleteDialog mutate={mutate} rowId={row.getValue("id")} />
)}
</Box> </Box>
); );
}; };

View File

@@ -19,7 +19,7 @@ const ReportLists = ({ data, specialFilter }) => {
}, },
{ {
header: "تعداد خسارات ثبت شده", header: "تعداد خسارات ثبت شده",
id: 'countAll', id: "countAll",
enableColumnFilter: false, enableColumnFilter: false,
enableSorting: false, enableSorting: false,
datatype: "text", datatype: "text",
@@ -118,11 +118,11 @@ const ReportLists = ({ data, specialFilter }) => {
return (renderedCellValue / 1).toLocaleString(); return (renderedCellValue / 1).toLocaleString();
}, },
}, },
] ],
}, },
{ {
header: "تعداد نحوه شناسایی خسارت", header: "تعداد نحوه شناسایی خسارت",
id: 'police_rah_All', id: "police_rah_All",
enableColumnFilter: false, enableColumnFilter: false,
enableSorting: false, enableSorting: false,
datatype: "text", datatype: "text",