diff --git a/public/locales/fa/app.json b/public/locales/fa/app.json index 4e26061..60a17b5 100644 --- a/public/locales/fa/app.json +++ b/public/locales/fa/app.json @@ -358,10 +358,18 @@ "description": "توضیحات خود را وارد نمائید", "choose_file": "انتخاب فایل", "approved_amount": "مبلغ تصویب شده", + "sakht_amount": "دوره ساخت", + "tanafos_amount": "دوره تنفس", "approved_amount_error": "وارد کردن مبلغ تصویب شده الزامیست", + "sakht_amount_error": "وارد کردن دوره ساخت الزامیست", + "tanafos_amount_error": "وارد کردن دوره تنفس الزامیست", "approved_amount_positive": "مبلغ تصویب شده باید مثبت باشد", "approved_amount_number": "مبلغ تصویب شده باید عدد باشد", + "sakht_amount_number": "دوره ساخت باید عدد باشد", + "tanafos_amount_number": "دوره تنفس باید عدد باشد", "toman": "میلیون تومان", + "tanafos_amount_month": "ماه", + "sakht_amount_day": "روز", "proposed_amount_error": "وارد کردن مقدار پیشنهادی الزامیست", "proposed_amount": "مبلغ پیشنهادی", "proposed_amount_positive": "مقدار پیشنهادی باید مثبت باشد", diff --git a/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx b/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx index ada0a12..98f5a32 100644 --- a/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx +++ b/src/components/dashboard/machinary-office/Form/ConfirmForm/ConfirmContent.jsx @@ -7,6 +7,7 @@ import { DialogContent, FormHelperText, Grid, + InputAdornment, LinearProgress, Stack, TextField, @@ -14,10 +15,7 @@ import { } from "@mui/material" import {useFormik} from "formik"; import {useTranslations} from "next-intl"; -import { - CONFIRM_MACHINARY_OFFICE, - CONFIRM_MACHINARY_OFFICE_DETAILS -} from "@/core/data/apiRoutes"; +import {CONFIRM_MACHINARY_OFFICE, CONFIRM_MACHINARY_OFFICE_DETAILS} from "@/core/data/apiRoutes"; import {useEffect, useState} from "react"; import PriceField from "@/core/components/PriceField"; import * as Yup from "yup"; @@ -28,13 +26,13 @@ const vehicle_amount = { "اتوبوس": 7000, "مینی بوس": 2000, } -const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type , handleSizeChangeClick}) => { +const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type, handleSizeChangeClick}) => { const t = useTranslations(); const [selectedImage, setSelectedImage] = useState(""); const [fileType, setfileType] = useState(null); const [fileName, setfileName] = useState(null); const [showAddIcon, setShowAddIcon] = useState(true); - const requestServer = useRequest({auth: true , notification: false}) + const requestServer = useRequest({auth: true, notification: false}) const {update_notification} = useNotification() const [accordionStates, setAccordionStates] = useState([]); const [hasImageShown, setHasImageShown] = useState(false); @@ -46,7 +44,7 @@ const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type , han useEffect(() => { requestServer(`${CONFIRM_MACHINARY_OFFICE_DETAILS}/${rowId}`, 'get') .then((response) => { - const booleanData = Array.from({ length: response.data.data.attachment_files.length }, () => false); + const booleanData = Array.from({length: response.data.data.attachment_files.length}, () => false); setAccordionStates(booleanData); setDetailsData(response.data) }) @@ -60,13 +58,11 @@ const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type , han const newAccordionStates = accordionStates.map((state, i) => i === index ? !state : false); setAccordionStates(newAccordionStates); - if (!newAccordionStates[index]) - { + if (!newAccordionStates[index]) { handleSizeChangeClick('sm'); setHasImageShown(false); setIsSkeleton(false) - } - else { + } else { handleSizeChangeClick('xl'); setHasImageShown(true); setImageLink(detailsList.data.attachment_files[index]) @@ -75,14 +71,24 @@ const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type , han }; const validationSchema = Yup.object().shape({ - proposed_amount: Yup.mixed().test( - "is-number", - `${t("ConfirmDialog.proposed_amount_number")}`, - (value) => !isNaN(value) - ).test("max-amount", `${t("MachinaryOffice.max_amount", {value: parseInt(vehicle_amount[vehicle_type]).toLocaleString('en')})}`, - (value) => value <= vehicle_amount[vehicle_type]) + proposed_amount: Yup.mixed() + .test( + "is-number", + `${t("ConfirmDialog.proposed_amount_number")}`, + (value) => !isNaN(value) + ) + .test("max-amount", `${t("MachinaryOffice.max_amount", {value: parseInt(vehicle_amount[vehicle_type]).toLocaleString('en')})}`, + (value) => value <= vehicle_amount[vehicle_type]) .test("positive", `${t("ConfirmDialog.proposed_amount_positive")}`, (value) => value >= 0) .required(t("ConfirmDialog.proposed_amount_error")), + sakht_amount: Yup.mixed() + .test("is-number", `${t("ConfirmDialog.sakht_amount_number")}`, + (value) => !isNaN(value)) + .required(t("ConfirmDialog.sakht_amount_error")), + tanafos_amount: Yup.mixed() + .test("is-number", `${t("ConfirmDialog.tanafos_amount_number")}`, + (value) => !isNaN(value)) + .required(t("ConfirmDialog.tanafos_amount_error")), confirm_img: Yup.mixed() .required(t("MachinaryOffice.upload_file_required")) .test('fileSize', `${t("MachinaryOffice.upload_file_unit")}`, (value) => { @@ -98,11 +104,15 @@ const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type , han initialValues: { description: "", proposed_amount: "", + sakht_amount: "", + tanafos_amount: "", confirm_img: null }, validationSchema, onSubmit: (values, {setSubmitting}) => { const formData = new FormData(); formData.append("proposed_amount", values.proposed_amount); + formData.append("sakht_amount", values.sakht_amount); + formData.append("tanafos_amount", values.tanafos_amount); if (values.description != "") formData.append("expert_description", values.description); if (values.confirm_img != null) formData.append("attachment", values.confirm_img); requestServer(`${CONFIRM_MACHINARY_OFFICE}/${rowId}`, 'post', { @@ -166,7 +176,7 @@ const ConfirmContent = ({mutate, setOpenConfirmDialog, rowId, vehicle_type , han - {loading ? : renderCustomAccordions()} + {loading ? : renderCustomAccordions()} + + {t("ConfirmDialog.sakht_amount_day")}, + }} + /> + + + {t("ConfirmDialog.tanafos_amount_month")}, + }} + /> + {t("MachinaryOffice.upload_file")} - - + + diff --git a/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx b/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx index 445aab3..febb675 100644 --- a/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx +++ b/src/components/dashboard/machinary-office/Form/ConfirmForm/index.jsx @@ -33,9 +33,15 @@ const Confirm = ({rowId, mutate, vehicle_type}) => { + PaperProps={{ + sx: { + transition: 'all .3s', + boxShadow: 'rgba(60, 64, 67, 0.3) 0px 1px 16px 0px, rgba(60, 64, 67, 0.15) 0px 1px 10px 0px' + } + }} maxWidth={dialogSize}> {t("MachinaryOffice.confirm")} - diff --git a/src/components/dashboard/machinary-office/index.jsx b/src/components/dashboard/machinary-office/index.jsx index 853c065..79623c4 100644 --- a/src/components/dashboard/machinary-office/index.jsx +++ b/src/components/dashboard/machinary-office/index.jsx @@ -155,9 +155,14 @@ function DashboardMachinaryOfficeComponent() { ], [] ); + const data = [{ + id: 1, + vehicle_type: "مینی بوس" + }] return ( {loading ? : <> - {numberShowBox()} + {renderCustomAccordions()} } diff --git a/src/components/dashboard/passenger-boss/index.jsx b/src/components/dashboard/passenger-boss/index.jsx index 13674dc..581f099 100644 --- a/src/components/dashboard/passenger-boss/index.jsx +++ b/src/components/dashboard/passenger-boss/index.jsx @@ -175,9 +175,14 @@ function DashboardPassengerOfficeComponent() { ], [] ); + const data = [{ + id: 1, + vehicle_type: "مینی بوس" + }] return ( { + console.log({showNumber}) + return ( + <> + + {headerTitle} + + {isNaN(showNumber) + ? "" + : (showNumber).toLocaleString()}{" "} + {unitTitle} + + + + ); +}; +export default NumberShowBox \ No newline at end of file