diff --git a/src/components/dashboard/damages/operator/RowActions/ChangeStatus/Dialog.jsx b/src/components/dashboard/damages/operator/RowActions/ChangeStatus/Dialog.jsx
new file mode 100644
index 0000000..64a3c70
--- /dev/null
+++ b/src/components/dashboard/damages/operator/RowActions/ChangeStatus/Dialog.jsx
@@ -0,0 +1,26 @@
+import { Close } from "@mui/icons-material";
+import { Dialog, DialogTitle, IconButton } from "@mui/material";
+import ChangeStatusForm from "./Form";
+
+const ChangeStatusDialog = ({ open, setOpen, mutate, row }) => {
+ return (
+
+ );
+};
+export default ChangeStatusDialog;
diff --git a/src/components/dashboard/damages/operator/RowActions/ChangeStatus/Form.jsx b/src/components/dashboard/damages/operator/RowActions/ChangeStatus/Form.jsx
new file mode 100644
index 0000000..3f30c68
--- /dev/null
+++ b/src/components/dashboard/damages/operator/RowActions/ChangeStatus/Form.jsx
@@ -0,0 +1,102 @@
+import SelectBox from "@/core/components/SelectBox";
+import StyledForm from "@/core/components/StyledForm";
+import { CHANGE_STATUS_RECEIPT } from "@/core/utils/routes";
+import useRequest from "@/lib/hooks/useRequest";
+import { yupResolver } from "@hookform/resolvers/yup";
+import { Beenhere, ExitToApp } from "@mui/icons-material";
+import { Button, DialogActions, DialogContent, Grid, Stack } from "@mui/material";
+import { Controller, useForm } from "react-hook-form";
+import { object, string } from "yup";
+
+const validationSchema = object({
+ status: string().required("وضعیت را مشخص کنید!"),
+});
+
+const ChangeStatusForm = ({ setOpen, mutate, row }) => {
+ const requestServer = useRequest({ notificationSuccess: true });
+ const defaultValues = {
+ status: row.original.status || "",
+ };
+
+ const handleClose = () => {
+ setOpen(false);
+ };
+
+ const {
+ control,
+ handleSubmit,
+ formState: { isSubmitting },
+ } = useForm({
+ defaultValues,
+ resolver: yupResolver(validationSchema),
+ mode: "all",
+ });
+ const onSubmitBase = async (data) => {
+ const formData = new FormData();
+ formData.append("status_id", data.status);
+ await requestServer(`${CHANGE_STATUS_RECEIPT}/${row.original.id}`, "post", {
+ data: formData,
+ })
+ .then((response) => {
+ mutate();
+ setOpen(false);
+ })
+ .catch((error) => {});
+ };
+
+ return (
+
+
+
+
+
+ (
+
+ )}
+ />
+
+
+
+
+
+ }
+ >
+ بستن
+
+ }
+ >
+ {isSubmitting ? "در حال ثبت" : "ثبت"}
+
+
+
+ );
+};
+export default ChangeStatusForm;
diff --git a/src/components/dashboard/damages/operator/RowActions/ChangeStatus/index.jsx b/src/components/dashboard/damages/operator/RowActions/ChangeStatus/index.jsx
new file mode 100644
index 0000000..6c237be
--- /dev/null
+++ b/src/components/dashboard/damages/operator/RowActions/ChangeStatus/index.jsx
@@ -0,0 +1,19 @@
+import { Reply } from "@mui/icons-material";
+import { IconButton, Tooltip } from "@mui/material";
+import { useState } from "react";
+import ChangeStatusDialog from "./Dialog";
+
+const ChangeStatus = ({ row, mutate }) => {
+ const [open, setOpen] = useState(false);
+ return (
+ <>
+
+ setOpen(true)}>
+
+
+
+
+ >
+ );
+};
+export default ChangeStatus;
diff --git a/src/components/dashboard/damages/operator/RowActions/index.jsx b/src/components/dashboard/damages/operator/RowActions/index.jsx
index c1e47d2..1c735db 100644
--- a/src/components/dashboard/damages/operator/RowActions/index.jsx
+++ b/src/components/dashboard/damages/operator/RowActions/index.jsx
@@ -6,13 +6,14 @@ import SendToInsurance from "./SendToInsurance";
import PoliceRahLetter from "./PoliceRahLetter";
import EditForm from "../Form/EditForm";
import { usePermissions } from "@/lib/hooks/usePermissions";
+import ChangeStatus from "./ChangeStatus";
const RowActions = ({ row, mutate }) => {
const { data: userPermissions } = usePermissions();
- const hasDeletePermission = userPermissions.some((item) =>
- ["delete-receipt", "delete-receipt-province"].includes(item)
- );
- const hasEditPermission = userPermissions.some((item) => ["edit-receipt", "edit-receipt-province"].includes(item));
+ const hasChangeStatusPermission = userPermissions.some((item) => ["change-accident-status"].includes(item));
+ const hasDeletePermission = userPermissions.some((item) => ["delete-receipt"].includes(item));
+ const hasDeleteProvincePermission = userPermissions.some((item) => ["delete-receipt-province"].includes(item));
+ const hasEditPermission = userPermissions.some((item) => ["edit-receipt", "edit-receipt-province"].includes(item));
return (
{[4, 5].includes(row.original?.status) && }
@@ -26,9 +27,10 @@ const RowActions = ({ row, mutate }) => {
{hasEditPermission && [0].includes(row.original?.status) && (
)}
- {hasDeletePermission && [0].includes(row.original?.status) && (
+ {(hasDeletePermission || (hasDeleteProvincePermission && [0].includes(row.original?.status))) && (
)}
+ {hasChangeStatusPermission && }
);
};
diff --git a/src/core/utils/routes.js b/src/core/utils/routes.js
index 75eb864..a2e7f01 100644
--- a/src/core/utils/routes.js
+++ b/src/core/utils/routes.js
@@ -112,6 +112,7 @@ export const GET_INSURANCE = api + "/api/v3/receipts/generate_insurance_letter";
export const GET_INSURANCE_PAGE = api + "/v2/receipt/send-to-insurance";
export const GET_POLICERAH = api + "/api/v3/receipts/generate_police_document";
export const GET_POLICERAH_PAGE = api + "/v2/receipt/document-release";
+export const CHANGE_STATUS_RECEIPT = api + "/api/v3/receipts/change_status";
// recept report
export const GET_COUNTRY_RECEIPT_REPORT = api + "/api/v3/receipt_reports/country_report";