diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 8a1a6f1..f9db612 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -522,12 +522,14 @@ "description_error": "وارد کردن توضیحات الزامی است!", "optional": " (اختیاری)", "approved_amount": "مبلغ تصویب شده", - "edit_approved_amount": "ویرایش مبلغ تصویب شده", "button-cancel": "بستن", "button-edit": "ویرایش", "edit_approved_amount_required": "وارد کردن مبلغ تصویب شده الزامیست", "unit": " (میلیون ریال)", "button-revise": "ارسال", + "approved_amount_positive": "مبلغ تصویب شده باید مثبت باشد", + "max_amount": "حداکثر مبلغ تصویب شده {value} میلیون ریال می باشد", + "approved_amount_number": "مبلغ تصویب شده باید عدد باشد", "description": "توضیحات خود را وارد نمائید" }, "UpdateDialog": { diff --git a/src/components/dashboard/bank-management/Form/Edit/EditContent.jsx b/src/components/dashboard/bank-management/Form/Edit/EditContent.jsx index cee3fcc..79b1961 100644 --- a/src/components/dashboard/bank-management/Form/Edit/EditContent.jsx +++ b/src/components/dashboard/bank-management/Form/Edit/EditContent.jsx @@ -3,25 +3,40 @@ import useRequest from "@/lib/app/hooks/useRequest"; import {Button, DialogActions, DialogContent, Stack,} from "@mui/material" import {useFormik} from "formik"; import {useTranslations} from "next-intl"; -import {CONFIRM_TRANSPORTATION_ASSISTANCE} from "@/core/data/apiRoutes"; +import {EDIT_APPROVED_AMOUNT} from "@/core/data/apiRoutes"; import * as Yup from "yup"; import PriceField from "@/core/components/PriceField"; -const EditContent = ({rowId, row, mutate, setOpenEditDialog}) => { +const vehicle_amount = { + "اتوبوس": 7000, + "مینی بوس": 2000, +} + +const EditContent = ({rowId, row, mutate, setOpenEditDialog, vehicle_type}) => { const t = useTranslations(); const requestServer = useRequest({auth: true, notification: false}); const {update_notification} = useNotification(); const validationSchema = Yup.object().shape({ - approved_amount: Yup.string().required(`${t("EditDialog.edit_approved_amount_required")}`) + approved_amount: Yup.mixed().test( + "is-number", + `${t("EditDialog.approved_amount_number")}`, + (value) => !isNaN(value) + ).test("max-amount", `${t("EditDialog.max_amount", {value: parseInt(vehicle_amount[vehicle_type]).toLocaleString('en')})}`, + (value) => value <= vehicle_amount[vehicle_type]) + .test("positive", `${t("EditDialog.approved_amount_positive")}`, (value) => value >= 0) + .required(t("EditDialog.edit_approved_amount_required")), }) const formik = useFormik({ initialValues: { - approved_amount: String(row.original.approved_amount / 1000000), + approved_amount: String(row.original.approved_amount / 1000000) }, validationSchema, onSubmit: (values, {setSubmitting}) => { - requestServer(`${CONFIRM_TRANSPORTATION_ASSISTANCE}/${rowId}`, 'post', { + requestServer(`${EDIT_APPROVED_AMOUNT}/${rowId}`, 'post', { + data: { + approved_amount: values.approved_amount + }, notification: true }).then(() => { setOpenEditDialog(false) diff --git a/src/components/dashboard/bank-management/Form/Edit/index.jsx b/src/components/dashboard/bank-management/Form/Edit/index.jsx index f443ef8..bc7a168 100644 --- a/src/components/dashboard/bank-management/Form/Edit/index.jsx +++ b/src/components/dashboard/bank-management/Form/Edit/index.jsx @@ -4,7 +4,7 @@ import {useState} from "react"; import EditIcon from '@mui/icons-material/Edit'; import EditContent from "@/components/dashboard/bank-management/Form/Edit/EditContent"; -const EditForm = ({rowId, row, mutate}) => { +const EditForm = ({rowId, row, mutate, vehicle_type}) => { const t = useTranslations(); const [openEditDialog, setOpenEditDialog] = useState(false); @@ -30,6 +30,7 @@ const EditForm = ({rowId, row, mutate}) => { {t("EditDialog.edit_approved_amount")} diff --git a/src/components/dashboard/bank-management/TableRowActions.jsx b/src/components/dashboard/bank-management/TableRowActions.jsx index 5fa249d..d11d62e 100644 --- a/src/components/dashboard/bank-management/TableRowActions.jsx +++ b/src/components/dashboard/bank-management/TableRowActions.jsx @@ -20,11 +20,16 @@ const TableRow = ({row, mutate}) => { /> ) } - + { + row.original.bank_state == 8 && ( + + ) + } ); }; diff --git a/src/core/data/apiRoutes.js b/src/core/data/apiRoutes.js index 7488c12..f7500f4 100644 --- a/src/core/data/apiRoutes.js +++ b/src/core/data/apiRoutes.js @@ -257,6 +257,7 @@ export const GET_BANK_STATEMENT = BASE_URL + "/dashboard/bank_referred_loans" export const RESEND_BANK_STATEMENT = BASE_URL + "/dashboard/bank_referred_loans/send" export const EXPORT_BANK_MANAGEMENT = BASE_URL + "/dashboard/bank_referred_loans/export" export const REJECT_BANK_MANAGEMENT = BASE_URL + "/dashboard/bank_referred_loans/reject" +export const EDIT_APPROVED_AMOUNT = BASE_URL + "/dashboard/bank_referred_loans/update" // loan statistics export const GET_LOAN_STATISTICS = BASE_URL + "/dashboard/reports/navgan/statistics"