import { TimelineConnector, TimelineContent, TimelineDot, TimelineItem, TimelineOppositeContent, TimelineSeparator, } from "@mui/lab"; import { Button, ButtonGroup, TextField, ToggleButton, ToggleButtonGroup, Typography, } from "@mui/material"; import React, { useEffect, useState } from "react"; import { PropTypes } from "prop-types"; import { Grid } from "../../../../components/grid/Grid"; import { SPACING } from "../../../../data/spacing"; import { AnimatePresence, motion } from "framer-motion"; import { DRAWER, LOADING_END, LOADING_START, } from "../../../../lib/redux/slices/appSlice"; import { useFormik } from "formik"; import { Yup } from "../../../../lib/yup/yup"; import { useDispatch, useSelector } from "react-redux"; import { financialCheckRequest } from "../../services/financial-check-request"; import { useContext } from "react"; import { AppContext } from "../../../../contexts/AppContext"; import { avicultureGetChickenPrice } from "../../../aviculture/services/aviculture-get-chicken-price"; import { provinceFinancialGetPendingRequestsService } from "../../../province-finacial/services/province-financial-get-pending-requests"; import { NumberInput } from "../../../../components/number-format-custom/NumberFormatCustom"; import { SimpleTable } from "../../../../components/simple-table/SimpleTable"; import { formatJustDate } from "../../../../utils/formatTime"; export const FinancialCheckRequestOperation = ({ item }) => { const [openNotif, , selectedDate1, , selectedDate2] = useContext(AppContext); const dispatch = useDispatch(); useEffect(() => { dispatch(avicultureGetChickenPrice()); formik.validateForm(); formik2.validateForm(); }, []); const { avicultureChickenPrice } = useSelector( (state) => state.avicultureSlice ); const liveChickenPrice = avicultureChickenPrice?.liveChickenPrice; // calc suggest price // const chickenWeight = parseFloat( // file.poultry.poultryIndexWeight.split(" ")[0] // ); const chickenWeight = parseFloat( (item.barInfo.killHouseNetWeight / item.barInfo.realQuantity).toFixed(2) ); // let suggestPrice = liveChickenPrice; //buildchange // hamedan & arak & bushehr const standardChicken = 2.5; // kermanshah // const standardChicken = 2.7; // const checkStep = 0.05; // const costPerStep = 500; if (chickenWeight < standardChicken) { // const howMuchToReduce = // ((standardChicken - chickenWeight).toFixed(2) / checkStep) * costPerStep; // suggestPrice = liveChickenPrice - howMuchToReduce; } const formik = useFormik({ initialValues: { rejectText: "", // wage: "1000", }, validationSchema: Yup.object({ rejectText: Yup.string() .required("این فیلد اجباری است!") .typeError("لطفا دلیل خود را بیان کنید."), }), }); const [activeButtonIndex, setActiveButtonIndex] = useState(false); const handleButtonClick = (index) => { setActiveButtonIndex(index); if (!activeButtonIndex) { formik2.setFieldValue("reason", ""); formik2.setFieldValue("amount", ""); } }; const formik2 = useFormik({ initialValues: { fee: "", paymentType: "together", wage: 0, amount: "", reason: "", }, validationSchema: Yup.object({ fee: Yup.number().required("این فیلد اجباری است!"), amount: Yup.number(), paymentType: Yup.string().required("این فیلد اجباری است!"), reason: activeButtonIndex ? Yup.string().required("این فیلد اجباری است!") : Yup.string(), wage: Yup.number().required("این فیلد اجباری است!"), }), }); let totalFactorPrice = (formik2.values.fee + formik2.values.wage) * item.killHouseNetWeight; if (activeButtonIndex === "plus") { totalFactorPrice += Number(formik2.values.amount); } else if (activeButtonIndex === "decrease") { totalFactorPrice -= Number(formik2.values.amount); } let finalTotalFactorPrice = totalFactorPrice - item.killRequestPaymentRemainAmount; if (item.smsPayment) { finalTotalFactorPrice += 50000; } const [isDenyed, setisDenyed] = useState(false); const btnValidation = !formik2.isValid; const [paymentType, setPaymentType] = React.useState("union"); const handleChange = (event, newAlignment) => { if (newAlignment) { setPaymentType(newAlignment); } }; return ( <> انجام عملیات درخواست را بررسی و سپس تایید یا رد کنید. prop.palette.grey["A700"]} variant={"caption"} > موجودی کیف پول کشتارگاه: {`${item.killHouseWalletAmount?.toLocaleString()} ﷼`} صدور فاکتور بنام: اتحادیه مرغدار {paymentType === "union" && ( اطلاعات حساب اتحادیه شماره کارت: {item?.provinceBank?.card} شماره شبا: {item?.provinceBank?.shaba} شماره حساب: {item?.provinceBank?.account} بانک {item?.provinceBank?.bankName} - بنام{" "} {item.provinceBank?.nameOfBankUser} )} {paymentType === "poultry" && ( اطلاعات حساب مرغدار شماره کارت:{" "} {item?.poultryBank?.card ? item?.poultryBank?.card : "ندارد"} شماره شبا:{" "} {item?.poultryBank?.shaba ? item?.poultryBank?.shaba : "ندارد"} شماره حساب:{" "} {item?.poultryBank?.account ? item?.poultryBank?.account : "ندارد"} بانک{" "} {item?.poultryBank?.bankName ? item?.poultryBank?.bankName : "نامشخص"}{" "} - بنام{" "} {item.poultryBank?.nameOfBankUser ? item.poultryBank?.nameOfBankUser : "نامشخص"} )} اضافه یا کسر از فاکتور {!!activeButtonIndex && ( )} قیمت مرغ: {liveChickenPrice?.toLocaleString()} ﷼ آخرین تاریخ قیمت گذاری: {avicultureChickenPrice?.createDate && formatJustDate(avicultureChickenPrice?.createDate)} {/* prop.palette.grey["A700"]} variant={"caption"} > قیمت پیشنهادی: {suggestPrice > 0 ? `${suggestPrice?.toLocaleString()} ﷼` : "نامعتبر"} */} {/* نحوه پرداخت { formik2.setFieldValue("paymentType", e.target.value); }} > } label="پرداخت جداگانه به اتحادیه و مرغدار" /> } label="پرداخت یکجا به حساب اتحادیه" /> */} {isDenyed ? ( ) : ( )} ); }; FinancialCheckRequestOperation.propTypes = { item: PropTypes.object, file: PropTypes.object, };