import { Alert, AlertIcon, Box, Button, FormControl, FormErrorMessage, FormLabel, HStack, Input, Modal, ModalBody, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalOverlay, Switch, Table, Tbody, Text, Textarea, Th, Tr, useToast, } from "@chakra-ui/react"; import NormalData from "../../../../Components/DataTable/NormalTable"; import { useState } from "react"; import { AddIcon } from "@chakra-ui/icons"; import { useGetDistributionInvestorMutation } from "../../../../Services/io.service"; import { useParams } from "react-router-dom"; import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; import * as yup from "yup"; import { yupResolver } from "@hookform/resolvers/yup"; import ToastBox from "../../../../Components/ToastBox"; import CurrencyInput from "../../../../Components/CurrencyInput"; import { IoCalculator } from "react-icons/io5"; export const investor = yup.object().shape({ amount: yup.string().required("Amount is required"), }); const DistributionInvestor = ({ isOpen, onClose }) => { const params = useParams(); const toast = useToast(); const id = params?.id; const [ isCalculateLoading, setIsCalculateLoading ] = useState(false) const [ calcualtedData, setCalculatedDate ] = useState(null) // const { // data:IObyID, // error, // isLoading, // } = useGetDistributionInvestorMutation(id); const [getDistributionInvestment] = useGetDistributionInvestorMutation(); const { control, handleSubmit, formState: { errors }, reset, } = useForm({ resolver: yupResolver(investor), }); // useEffect(()=>{ // try { // const res = getDistributionInvestment({id,data}) // console.log(res); // } catch (error) { // } // },[]) // console.log(IObyID); // ====================================================[Table Setup]================================================================ const tableHeadRow = [ "Sr No.", "Client Id", "First name", "Last Name", "Amount", "%", "($)", ]; const extractedArray = calcualtedData?.data?.map((item, index) => ({ id: item?.id, "Sr No.": ( {index + 1} ), "Client Id": ( {item?.clientId} ), "First name": ( {item?.firstName} ), "Last Name": ( {item?.lastName} ), Amount: ( {item?.amount} ), "%": ( {item?.distribution_per} % ), "($)": ( {item?.distribution_amt?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} ), })) const Total = () => { return (
Total {" "} {" "} {" "} {calcualtedData?.totalInvestedAmt?.toFixed(2)?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })} {calcualtedData?.distributed_per?.toFixed(2)}% {calcualtedData?.distributed_amt?.toFixed(2)?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
); }; const onSubmit = async (data) => { console.log(data); setIsCalculateLoading(true) try { const res = await getDistributionInvestment({id,data}) console.log(res?.data?.data); if (res?.error?.status === 401) { toast({ render: () => ( ), }) setIsCalculateLoading(false) } else if(res?.data?.statusCode === 200){ setCalculatedDate(res?.data?.data) toast({ render: () => ( ), }) setIsCalculateLoading(false) } } catch (error) { } }; console.log(errors); return ( Distribution To Investor Transaction {/* Amount to Distribute */} {/* */} Amount to Distribute ( )} /> {errors.amount?.message} {calcualtedData ? } // isLoading={isLoading} /> : Please enter amount to calcutale Distribution! } ); }; export default DistributionInvestor;