From 13b6cf6ede4c0e347119ff9a0881f948f7675dbb Mon Sep 17 00:00:00 2001 From: AminGhasempoor Date: Tue, 7 May 2024 16:28:27 +0330 Subject: [PATCH] confirm form passengers boss --- public/locales/fa/app.json | 42 ++ .../Form/ConfirmForm/ConfirmContent.jsx | 696 ++++++++++++++---- .../passenger-boss/Form/ReserveForm/index.jsx | 75 ++ .../passenger-boss/TableRowActions.jsx | 5 + .../dashboard/passenger-boss/index.jsx | 47 -- 5 files changed, 659 insertions(+), 206 deletions(-) create mode 100644 src/components/dashboard/passenger-boss/Form/ReserveForm/index.jsx diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 6d4bba5..243d08b 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -241,6 +241,12 @@ }, "PassengerBoss": { "name": "نام", + "button-reserve-confirm": "رزرو", + "reserve-loan-title": "رزرو وام", + "description-reserve-loan-first": "آیا از رزرو وام به کد یکتا", + "description-reserve-loan-second": "اطمینان دارید؟", + "button-reserve-cancel": "بستن", + "button-reserve-confirm": "رزرو", "city_name": "شهرستان", "plate_number": "پلاک", "statement_count": "تعداد صورت وضعیت", @@ -265,9 +271,13 @@ "state_name": "وضعیت درخواست", "confirm": "ارجاع به معاون حمل و نقل", "upload_file": "فایل خود را بارگذاری کنید(اختیاری)", + "upload_expert_img": "فایل گزارش کارشناسی را بارگذاری کنید", "upload_file_required": "وارد کردن گزارش کارشناسی الزامیست", "upload_file_unit": "فایل بارگذاری شده باید حداکثر 5Mb باشد", "upload_file_format": "فرمت قابل قبول : png,jpg,pdf", + "upload_expert_file_required": "وارد کردن گزارش کارشناسی الزامیست", + "upload_expert_file_unit": "فایل بارگذاری شده باید حداکثر 5Mb باشد", + "upload_expert_file_format": "فرمت قابل قبول : png,jpg,pdf", "max_amount": "حداکثر مبلغ تصویب شده {value} میلیون ریال می باشد", "excel_report": "گزارش اکسل", "first_form": "فرم الف را بارگذاری کنید", @@ -467,28 +477,60 @@ "context": "آیا از تایید این آیتم اطمینان دارید؟", "button-cancel": "بستن", "button-confirm": "ارجاع", + "bank_facility": "تسهیلات سهم بانک", + "user_facility": "تسهیلات سهم متقاضی", + "government_facility": "تسهیلات سهم دولت", + "committed_employment": "تعداد اشتغال تعهد شده", + "history_facilities": "سابقه استفاده از تسهیلات تکلیفی", + "available_jobs": "تعداد اشتغال موجود", + "physical_progress": "درصد پیشرفت فیزیکی", + "interest_rate": "نرخ بهره", "description_error": "وارد کردن توضیحات الزامی است!", "optional": " (اختیاری)", "unit": " (میلیون ریال)", "description": "توضیحات خود را وارد نمائید", "choose_file": "انتخاب فایل", + "repayment_period": "دوره باز پرداخت", + "participation_period": "دوره مشارکت", "approved_amount": "مبلغ تصویب شده", "sakht_period": "دوره ساخت", "tanafos_period": "دوره تنفس", "approved_amount_error": "وارد کردن مبلغ تصویب شده الزامیست", + "bank_facility_error": "وارد کردن تسهیلات سهم بانک الزامیست", + "government_facility_error": "وارد کردن تسهیلات سهم دولت الزامیست", + "committed_employment_error": "وارد کردن تعداد اشتغال تعهد شده الزامیست", + "history_facilities_error": "وارد کردن سابقه استفاده از تسهیلات تکلیفی الزامیست", + "available_jobs_error": "وارد کردن تعداد اشتغال موجود الزامیست", "sakht_period_error": "وارد کردن دوره ساخت الزامیست", "tanafos_period_error": "وارد کردن دوره تنفس الزامیست", "approved_amount_positive": "مبلغ تصویب شده باید مثبت باشد", + "bank_facility_positive": "تسهیلات سهم بانک باید مثبت باشد", + "repayment_period_positive": "دوره باز پرداخت باید مثبت باشد", + "participation_period_positive": "دوره مشارکت باید مثبت باشد", + "government_facility_positive": "تسهیلات سهم دولت باید مثبت باشد", + "committed_employment_positive": "تعداد اشتغال تعهد شده باید مثبت باشد", + "history_facilities_positive": "سابقه استفاده از تسهیلات تکلیفی باید مثبت باشد", + "available_jobs_positive": "تعدلد اشتغال موجود باید مثبت باشد", "approved_amount_number": "مبلغ تصویب شده باید عدد باشد", + "bank_facility_number": "تسهیلات سهم بانک باید عدد باشد", + "government_facility_number": "تسهیلات سهم دولت باید عدد باشد", + "committed_employment_number": "تعداد سابقه استفاده از تسهیلات تکلیفی باید عدد باشد", + "history_facilities_number": "تعداد اشتغال تعهد شده باید عدد باشد", + "available_jobs_number": "تعداد اشتغال موجود باید عدد باشد", "sakht_period_positive": "دوره ساخت باید مثبت باشد", "tanafos_period_positive": "دوره تنفس باید مثبت باشد", "sakht_period_number": "دوره ساخت باید عدد باشد", + "repayment_period_number": "دوره باز پرداخت باید عدد باشد", + "participation_period_number": "دوره مشارکت باید عدد باشد", "tanafos_period_number": "دوره تنفس باید عدد باشد", "toman": "میلیون تومان", "tanafos_period_month": "ماه", "approved_amount_title": "مبلغ تصویب شده کارگروه", "sakht_period_day": "روز", "proposed_amount_error": "وارد کردن مقدار پیشنهادی الزامیست", + "repayment_period_error": "وارد کردن دوره باز پرداخت الزامیست", + "participation_period_error": "وارد کردن دوره مشارکت الزامیست", + "interest_rate_error": "وارد کردن نرخ بهره الزامیست", "proposed_amount": "مبلغ پیشنهادی", "proposed_amount_positive": "مقدار پیشنهادی باید مثبت باشد", "proposed_amount_number": "مقدار پیشنهادی باید عدد باشد" diff --git a/src/components/dashboard/passenger-boss/Form/ConfirmForm/ConfirmContent.jsx b/src/components/dashboard/passenger-boss/Form/ConfirmForm/ConfirmContent.jsx index b4cddd6..da86c63 100644 --- a/src/components/dashboard/passenger-boss/Form/ConfirmForm/ConfirmContent.jsx +++ b/src/components/dashboard/passenger-boss/Form/ConfirmForm/ConfirmContent.jsx @@ -6,84 +6,35 @@ import { DialogActions, DialogContent, FormHelperText, - Grid, - LinearProgress, Stack, TextField, Typography } from "@mui/material" import {useFormik} from "formik"; import {useTranslations} from "next-intl"; -import {CONFIRM_PASSENGER_BOSS, EXPORT_PASSENGER_BOSS_DETAILS,} from "@/core/data/apiRoutes"; -import {useEffect, useState} from "react"; +import {CONFIRM_PASSENGER_BOSS} from "@/core/data/apiRoutes"; +import {useState} from "react"; import PriceField from "@/core/components/PriceField"; import * as Yup from "yup"; -import CustomAccordion from "@/core/components/CustomAccordion"; -import ImageContent from "@/core/components/ImageContent"; -import NumberShowBox from "@/core/components/NumberShowBox"; +import SelectBox from "@/core/components/SelectBox"; const vehicle_amount = { "اتوبوس": 7000, "مینی بوس": 2000, } -const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, handleSizeChangeClick}) => { +const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type}) => { const t = useTranslations(); const [selectedImage, setSelectedImage] = useState(""); + const [expertImg, setExpertImg] = useState(""); const [fileType, setFileType] = useState(null); const [fileName, setFileName] = useState(null); const [showAddIcon, setShowAddIcon] = useState(true); + const [expertFileType, setExpertFileType] = useState(null); + const [expertfileName, setExpertFileName] = useState(null); + const [showExpertAddIcon, setShowExpertAddIcon] = useState(true); const requestServer = useRequest({auth: true, notification: false}) const {update_notification} = useNotification(); - const [attachmentsData, setAttachmentsData] = useState([]); - const [accordionStates, setAccordionStates] = useState([]); - const [hasImageShown, setHasImageShown] = useState(false); - const [imageLink, setImageLink] = useState(null); - const [detailsList, setDetailsData] = useState(null); - const [loading, setLoading] = useState(true); - const [isSkeleton, setIsSkeleton] = useState(false); - - useEffect(() => { - requestServer(`${EXPORT_PASSENGER_BOSS_DETAILS}/${rowId}`, 'get') - .then((response) => { - const allAttachments = []; - response.data.data.histories.map((history) => { - history.attachments.map((attachment) => { - allAttachments.push(attachment); - }); - }); - setDetailsData(response.data); - setAttachmentsData(allAttachments); - setDetailsData(response.data) - }) - .catch(() => { - }).finally(() => { - setLoading(false); - }); - }, []); - - useEffect(() => { - if (attachmentsData.length !== 0) { - const booleanData = Array.from({length: attachmentsData.length}, () => false); - setAccordionStates(booleanData); - } - }, [attachmentsData]); - - const handleAccordionChange = (index) => { - const newAccordionStates = accordionStates.map((state, i) => i === index ? !state : false); - setAccordionStates(newAccordionStates); - - if (!newAccordionStates[index]) { - handleSizeChangeClick('sm'); - setHasImageShown(false); - setIsSkeleton(false) - } else { - handleSizeChangeClick('xl'); - setHasImageShown(true); - setImageLink(attachmentsData[index]) - setIsSkeleton(true) - } - }; - + const [showFacility, setShowFacility] = useState(false) const validationSchema = Yup.object().shape({ approved_amount: Yup.mixed().test( @@ -94,6 +45,53 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, hand (value) => value <= vehicle_amount[vehicle_type]) .test("positive", `${t("ConfirmDialog.approved_amount_positive")}`, (value) => value >= 0) .required(t("ConfirmDialog.approved_amount_error")), + bank_facility: Yup.mixed().test( + "is-number", + `${t("ConfirmDialog.bank_facility_number")}`, + (value) => !isNaN(value) + ).test("positive", `${t("ConfirmDialog.bank_facility_positive")}`, (value) => value >= 0) + .required(t("ConfirmDialog.bank_facility_error")), + repayment_period: Yup.mixed().test( + "is-number", + `${t("ConfirmDialog.repayment_period_number")}`, + (value) => !isNaN(value) + ).test("positive", `${t("ConfirmDialog.repayment_period_positive")}`, (value) => value >= 0) + .required(t("ConfirmDialog.repayment_period_error")), + participation_period: Yup.mixed().test( + "is-number", + `${t("ConfirmDialog.participation_period_number")}`, + (value) => !isNaN(value) + ).test("positive", `${t("ConfirmDialog.participation_period_positive")}`, (value) => value >= 0) + .required(t("ConfirmDialog.participation_period_error")), + government_facility: Yup.mixed().test( + "is-number", + `${t("ConfirmDialog.government_facility_number")}`, + (value) => !isNaN(value) + ).test("positive", `${t("ConfirmDialog.government_facility_positive")}`, (value) => value >= 0) + .required(t("ConfirmDialog.government_facility_error")), + committed_employment: Yup.mixed().test( + "is-number", + `${t("ConfirmDialog.committed_employment_number")}`, + (value) => !isNaN(value) + ).test("positive", `${t("ConfirmDialog.committed_employment_positive")}`, (value) => value >= 0) + .required(t("ConfirmDialog.committed_employment_error")), + available_jobs: Yup.mixed().test( + "is-number", + `${t("ConfirmDialog.available_jobs_number")}`, + (value) => !isNaN(value) + ).test("positive", `${t("ConfirmDialog.available_jobs_positive")}`, (value) => value >= 0) + .required(t("ConfirmDialog.available_jobs_error")), + sakht_period: Yup.mixed() + .test("is-number", `${t("ConfirmDialog.sakht_period_number")}`, + (value) => !isNaN(value)) + .test("positive", `${t("ConfirmDialog.sakht_period_positive")}`, (value) => value > 0) + .required(t("ConfirmDialog.sakht_period_error")), + tanafos_period: Yup.mixed() + .test("is-number", `${t("ConfirmDialog.tanafos_period_number")}`, + (value) => !isNaN(value)) + .test("positive", `${t("ConfirmDialog.tanafos_period_positive")}`, (value) => value > 0) + .required(t("ConfirmDialog.tanafos_period_error")), + interest_rate: Yup.mixed().required(t("ConfirmDialog.interest_rate_error")), confirm_img: Yup.mixed().notRequired(t("ConfirmDialog.approved_amount_error")) .test('fileSize', `${t("PassengerBoss.upload_file_unit")}`, (value) => { if (!value) return true @@ -103,6 +101,15 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, hand if (!value) return true const allowedTypes = ['image/jpg', 'image/jpeg', 'image/png', 'application/pdf']; return allowedTypes.includes(value.type); + }), + expert_img: Yup.mixed() + .required(t("PassengerBoss.upload_expert_file_required")) + .test('fileSize', `${t("PassengerBoss.upload_expert_file_unit")}`, (value) => { + return value.size <= 5 * 1024 * 1024; + }) + .test('fileType', `${t("PassengerBoss.upload_expert_file_format")}`, (value) => { + const allowedTypes = ['image/jpg', 'image/jpeg', 'image/png', 'application/pdf']; + return allowedTypes.includes(value.type); }) }); @@ -110,13 +117,29 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, hand initialValues: { description: "", approved_amount: "", + bank_facility: "", + government_facility: "", + user_facility: "", + physical_progress: "", + repayment_period: "", + participation_period: "", + interest_rate: "", + committed_employment: "", + sakht_period: "", + tanafos_period: "", + history_facilities: "", + available_jobs: "", + expert_img: null, confirm_img: null, }, validationSchema, onSubmit: (values, {setSubmitting}) => { const formData = new FormData(); - formData.append("approved_amount", values.approved_amount); + formData.append("bank_facility", values.bank_facility); + formData.append("government_facility", values.government_facility); + if (values.description != "") formData.append("expert_description", values.description); + if (values.physical_progress != "") formData.append("physical_progress", values.physical_progress); if (values.confirm_img != null) { const attachments = [ { @@ -144,9 +167,6 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, hand }, }); - const handleDescriptionChange = (event) => { - formik.setFieldValue("description", event.target.value) - }; const handleUploadChange = (event) => { const uploadedFile = event.target?.files?.[0]; @@ -162,75 +182,80 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, hand setShowAddIcon(false); } }; + const handleExpertFileChange = (event) => { + const uploadedFile = event.target?.files?.[0]; + if (uploadedFile) { + const fileType = event.target?.files?.[0].type; + const fileName = event.target?.files?.[0].name; + setExpertImg(URL.createObjectURL(uploadedFile)); + setExpertFileType(fileType); + setExpertFileName(fileName); + formik.setFieldValue("expert_img", uploadedFile).then(() => { + formik.setFieldTouched("expert_img", true); + }) + setShowExpertAddIcon(false); + } + }; const handleAmountChange = (event) => { if (!isNaN(event.target.value)) { formik.setFieldValue("approved_amount", event.target.value) + setShowFacility(!showFacility) } else { formik.setFieldValue("approved_amount", formik.values.approved_amount) } }; - const renderCustomAccordions = () => { - if (attachmentsData) { - return attachmentsData.map((file, index) => ( - handleAccordionChange(index)} - accordionIndex={index} - downloadFile={file.file} - /> - )); - } - return null; - }; return ( <> - - - {loading ? : - <> - - - - {renderCustomAccordions()} - - } - - - - {t("ConfirmDialog.description")}{t("ConfirmDialog.optional")}} - value={formik.values.description} - onChange={handleDescriptionChange} - fullWidth - variant="outlined" - sx={{mt: 1}} - /> - - + + + + {t("ConfirmDialog.description")}{t("ConfirmDialog.optional")}} + value={formik.values.description} + onChange={formik.handleChange} + fullWidth + variant="outlined" + sx={{mt: 1}} + /> + + + + {t("ConfirmDialog.approved_amount")}{t("ConfirmDialog.unit")}} + type="text" + inputProps={{ + inputMode: "number", + min: 0, + pattern: "[0-9]*", + }} + variant="outlined" + value={formik.values.approved_amount} + onChange={handleAmountChange} + onBlur={formik.handleBlur("approved_amount")} + error={ + formik.touched.approved_amount && + Boolean(formik.errors.approved_amount) + } + helperText={ + formik.touched.approved_amount && formik.errors.approved_amount + } + sx={{mt: 1}} + fullWidth + /> + + {showFacility ? ( + <> + - {t("ConfirmDialog.approved_amount")}{t("ConfirmDialog.unit")}} + {t("ConfirmDialog.bank_facility")}{t("ConfirmDialog.unit")}} type="text" inputProps={{ inputMode: "number", @@ -238,59 +263,412 @@ const ConfirmContent = ({rowId, mutate, setOpenConfirmDialog, vehicle_type, hand pattern: "[0-9]*", }} variant="outlined" - value={formik.values.approved_amount} - onChange={handleAmountChange} - onBlur={formik.handleBlur("approved_amount")} + value={formik.values.bank_facility} + onChange={(event) => { + if (!isNaN(event.target.value)) { + formik.setFieldValue("bank_facility", event.target.value) + } else { + formik.setFieldValue("bank_facility", formik.values.bank_facility) + } + }} + onBlur={formik.handleBlur("bank_facility")} error={ - formik.touched.approved_amount && - Boolean(formik.errors.approved_amount) + formik.touched.bank_facility && + Boolean(formik.errors.bank_facility) } helperText={ - formik.touched.approved_amount && formik.errors.approved_amount + formik.touched.bank_facility && formik.errors.bank_facility } - sx={{mt: 1}} fullWidth /> - {t("PassengerBoss.upload_file")} - + {t("ConfirmDialog.government_facility")}{t("ConfirmDialog.unit")}} + type="text" + inputProps={{ + inputMode: "number", + min: 0, + pattern: "[0-9]*", + }} + variant="outlined" + value={formik.values.government_facility} + onChange={(event) => { + if (!isNaN(event.target.value)) { + formik.setFieldValue("government_facility", event.target.value) + } else { + formik.setFieldValue("government_facility", formik.values.government_facility) + } + }} + onBlur={formik.handleBlur("government_facility")} error={ - formik.touched.confirm_img && - Boolean(formik.errors.confirm_img) + formik.touched.government_facility && + Boolean(formik.errors.government_facility) } - setShowAddIcon={setShowAddIcon} - showAddIcon={showAddIcon} + helperText={ + formik.touched.government_facility && formik.errors.government_facility + } + fullWidth /> - - {formik.touched.confirm_img && formik.errors.confirm_img} - - - - - - - - - + + + {t("ConfirmDialog.user_facility")}{t("ConfirmDialog.unit")}} + type="text" + inputProps={{ + inputMode: "number", + min: 0, + pattern: "[0-9]*", + }} + variant="outlined" + value={formik.values.user_facility} + onChange={(event) => { + if (!isNaN(event.target.value)) { + formik.setFieldValue("user_facility", event.target.value) + } else { + formik.setFieldValue("user_facility", formik.values.user_facility) + } + }} + onBlur={formik.handleBlur("user_facility")} + disabled + fullWidth + /> + + + ) : null} + + + {t("ConfirmDialog.physical_progress")}{t("ConfirmDialog.optional")}} + type="text" + inputProps={{ + inputMode: "number", + min: 0, + pattern: "[0-9]*", + }} + variant="outlined" + value={formik.values.physical_progress} + onChange={(event) => { + if (!isNaN(event.target.value)) { + formik.setFieldValue("physical_progress", event.target.value) + } else { + formik.setFieldValue("physical_progress", formik.values.physical_progress) + } + }} + onBlur={formik.handleBlur("physical_progress")} + fullWidth + /> + + + { + if (!isNaN(event.target.value)) { + formik.setFieldValue("interest_rate", event.target.value) + } else { + formik.setFieldValue("interest_rate", formik.values.interest_rate) + } + }} + onBlur={formik.handleBlur("interest_rate")} + fullWidth + /> + + + { + if (!isNaN(event.target.value)) { + formik.setFieldValue("repayment_period", event.target.value) + } else { + formik.setFieldValue("repayment_period", formik.values.repayment_period) + } + }} + onBlur={formik.handleBlur("repayment_period")} + error={ + formik.touched.repayment_period && + Boolean(formik.errors.repayment_period) + } + helperText={ + formik.touched.repayment_period && formik.errors.repayment_period + } + fullWidth + /> + + + { + if (!isNaN(event.target.value)) { + formik.setFieldValue("participation_period", event.target.value) + } else { + formik.setFieldValue("participation_period", formik.values.participation_period) + } + }} + onBlur={formik.handleBlur("participation_period")} + error={ + formik.touched.participation_period && + Boolean(formik.errors.participation_period) + } + helperText={ + formik.touched.participation_period && formik.errors.participation_period + } + fullWidth + /> + + + { + if (!isNaN(event.target.value)) { + formik.setFieldValue("committed_employment", event.target.value) + } else { + formik.setFieldValue("committed_employment", formik.values.committed_employment) + } + }} + onBlur={formik.handleBlur("committed_employment")} + error={ + formik.touched.committed_employment && + Boolean(formik.errors.committed_employment) + } + helperText={ + formik.touched.committed_employment && formik.errors.committed_employment + } + fullWidth + /> + + + { + if (!isNaN(event.target.value)) { + formik.setFieldValue("available_jobs", event.target.value) + } else { + formik.setFieldValue("available_jobs", formik.values.available_jobs) + } + }} + onBlur={formik.handleBlur("available_jobs")} + error={ + formik.touched.available_jobs && + Boolean(formik.errors.available_jobs) + } + helperText={ + formik.touched.available_jobs && formik.errors.available_jobs + } + fullWidth + /> + + + { + formik.setFieldValue('history_facilities', event.target.value) + }} + setFieldTouched={formik.setFieldTouched} + error={formik.touched.history_facilities && Boolean(formik.errors.history_facilities)} + helperText={formik.touched.history_facilities && formik.errors.history_facilities} + onBlur={formik.handleBlur("history_facilities")} + /> + + + { + formik.setFieldValue('sakht_period', event.target.value) + }} + setFieldTouched={formik.setFieldTouched} + error={formik.touched.sakht_period && Boolean(formik.errors.sakht_period)} + helperText={formik.touched.sakht_period && formik.errors.sakht_period} + onBlur={formik.handleBlur("sakht_period")} + /> + + + { + formik.setFieldValue('tanafos_period', event.target.value) + }} + setFieldTouched={formik.setFieldTouched} + error={formik.touched.tanafos_period && Boolean(formik.errors.tanafos_period)} + helperText={formik.touched.tanafos_period && formik.errors.tanafos_period} + onBlur={formik.handleBlur("tanafos_period")} + /> + + + {t("PassengerBoss.upload_expert_img")} + + + {formik.touched.expert_img && formik.errors.expert_img} + + + + {t("PassengerBoss.upload_file")} + + + {formik.touched.confirm_img && formik.errors.confirm_img} + + + + + + + + ) + +} +export default ReserveForm; \ No newline at end of file diff --git a/src/components/dashboard/passenger-boss/TableRowActions.jsx b/src/components/dashboard/passenger-boss/TableRowActions.jsx index cef474d..6a8b915 100644 --- a/src/components/dashboard/passenger-boss/TableRowActions.jsx +++ b/src/components/dashboard/passenger-boss/TableRowActions.jsx @@ -1,6 +1,7 @@ import {Box} from "@mui/material"; import Reject from "./Form/RejectForm" import Confirm from "./Form/ConfirmForm"; +import ReserveForm from "@/components/dashboard/passenger-boss/Form/ReserveForm"; const TableRow = ({row, mutate}) => { @@ -11,6 +12,10 @@ const TableRow = ({row, mutate}) => { vehicle_type={row.original.vehicle_type} mutate={mutate} /> + ), }, - { - accessorFn: (row) => row.proposed_amount, - id: "proposed_amount", - header: t("PassengerBoss.proposed_amount"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals", - "notEquals", - "contains", - "lessThan", - "greaterThan", - "between", - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue / 1000000} - ), - }, - { - accessorFn: (row) => row.sakht_period, - id: "sakht_period", - header: t("PassengerBoss.sakht_period"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals" - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, - { - accessorFn: (row) => row.tanafos_period, - id: "tanafos_period", - header: t("PassengerBoss.tanafos_period"), - enableColumnFilter: true, - datatype: "numeric", - filterFn: "equals", - columnFilterModeOptions: [ - "equals" - ], - Cell: ({renderedCellValue}) => ( - {renderedCellValue} - ), - }, { accessorFn: (row) => row.state_name, id: "state_id",