diff --git a/src/Pages/IO_Management/CreateIO/IOCashDetails/Approved.jsx b/src/Pages/IO_Management/CreateIO/IOCashDetails/Approved.jsx index b0f2014..34f727a 100644 --- a/src/Pages/IO_Management/CreateIO/IOCashDetails/Approved.jsx +++ b/src/Pages/IO_Management/CreateIO/IOCashDetails/Approved.jsx @@ -112,7 +112,10 @@ const Approved = () => { $ - {item?.transactionAmount} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), Comments: ( @@ -224,9 +227,13 @@ const Approved = () => { overflowWrap="normal" > - $ - - {IODetails?.ioCash} + $ + + {/* {IODetails?.ioCash} */} + {parseFloat(IODetails?.ioCash || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} { $ - {item?.transactionAmount} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), Comments: ( @@ -289,7 +292,13 @@ const Pending = () => { wordBreak="normal" overflowWrap="normal" > - {"48,000.00"} + + $ + + {parseFloat(IODetails?.ioCash || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} { isLoading={isLoading} viewActionId={actionId} setViewActionId={setActionId} - total={} + // total={} setMouseEnteredId={setMouseEnteredId} setMouseEntered={setMouseEntered} /> diff --git a/src/Pages/IO_Management/CreateIO/IOCashDetails/Rejected.jsx b/src/Pages/IO_Management/CreateIO/IOCashDetails/Rejected.jsx index 7f18cc6..243e624 100644 --- a/src/Pages/IO_Management/CreateIO/IOCashDetails/Rejected.jsx +++ b/src/Pages/IO_Management/CreateIO/IOCashDetails/Rejected.jsx @@ -117,9 +117,12 @@ import AddCaseDetails from "./AddCaseDetails"; fontWeight={"500"} > - $ - - {item?.transactionAmount} + $ + + {parseFloat(IODetails?.ioCash || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), "Comments": ( @@ -328,7 +331,7 @@ import AddCaseDetails from "./AddCaseDetails"; isLoading={isLoading} viewActionId={actionId} setViewActionId={setActionId} - total={} + // total={} setMouseEnteredId={setMouseEnteredId} setMouseEntered={setMouseEntered} /> diff --git a/src/Pages/IO_Management/CreateIO/IONAVDetails/Approved.jsx b/src/Pages/IO_Management/CreateIO/IONAVDetails/Approved.jsx index 354da90..f6ed889 100644 --- a/src/Pages/IO_Management/CreateIO/IONAVDetails/Approved.jsx +++ b/src/Pages/IO_Management/CreateIO/IONAVDetails/Approved.jsx @@ -1,136 +1,128 @@ import { - Avatar, - Badge, - Box, - Button, - HStack, - Input, - Table, - Tag, - Tbody, - Text, - Th, - Tooltip, - Tr, - useDisclosure, - useToast, - } from "@chakra-ui/react"; - import React, { useContext, useEffect, useRef, useState } from "react"; - import { AddIcon, DeleteIcon, EditIcon, ViewIcon } from "@chakra-ui/icons"; - import { LuFileSpreadsheet } from "react-icons/lu"; - import { OPACITY_ON_LOAD } from "../../../../Layout/animations"; - import NormalTable from "../../../../Components/DataTable/NormalTable"; - import GlobalStateContext from "../../../../Contexts/GlobalStateContext"; - import CustomAlertDialog from "../../../../Components/CustomAlertDialog"; - import * as XLSX from "xlsx"; - import ToastBox from "../../../../Components/ToastBox"; - import AddCashDetails from "../AddCashDetails"; - import { debounce } from "../../../Admin/Contact"; + Avatar, + Badge, + Box, + Button, + HStack, + Input, + Table, + Tag, + Tbody, + Text, + Th, + Tooltip, + Tr, + useDisclosure, + useToast, +} from "@chakra-ui/react"; +import React, { useContext, useEffect, useRef, useState } from "react"; +import { AddIcon, DeleteIcon, EditIcon, ViewIcon } from "@chakra-ui/icons"; +import { LuFileSpreadsheet } from "react-icons/lu"; +import { OPACITY_ON_LOAD } from "../../../../Layout/animations"; +import NormalTable from "../../../../Components/DataTable/NormalTable"; +import GlobalStateContext from "../../../../Contexts/GlobalStateContext"; +import CustomAlertDialog from "../../../../Components/CustomAlertDialog"; +import * as XLSX from "xlsx"; +import ToastBox from "../../../../Components/ToastBox"; +import AddCashDetails from "../AddCashDetails"; +import { debounce } from "../../../Admin/Contact"; import { useParams } from "react-router-dom"; import { useUpdateIOCaseMutation } from "../../../../Services/io.service"; import AddApproved from "./AddNavDetails"; import AddNavDetails from "./AddNavDetails"; - - const formatDate = (date) => new Date(date).toLocaleDateString(); - - const Approved = () => { - const params = useParams() - const toast = useToast(); - const id = params?.id - const firstField = useRef(); - const { isOpen, onOpen, onClose } = useDisclosure(); - const { IODetails, iONAVDetail, setIONAVDetail } = - useContext(GlobalStateContext); - const [searchTerm, setSearchTerm] = useState(""); - const [isLoading, setIsLoading] = useState(true); - const [deleteAlert, setDeleteAlert] = useState(false); - const [actionId, setActionId] = useState(false); - const [mouseEntered, setMouseEntered] = useState(false); - const [mouseEnteredId, setMouseEnteredId] = useState(""); - const [updateIOCase] = useUpdateIOCaseMutation() - - useEffect(() => { - // Simulate loading - const timer = setTimeout(() => { - setIsLoading(false); - }, 1500); - - // Cleanup the timer on component unmount - return () => clearTimeout(timer); - }, []); - - const formatDate = (date) => { - return new Date(date).toLocaleDateString("en-GB", { - day: "2-digit", - month: "2-digit", - year: "numeric", - }); - }; - - - // Table filter - const filteredData = IODetails?.ioNAVStatusHistory?.Approved?.filter((item) => { + +const formatDate = (date) => new Date(date).toLocaleDateString(); + +const Approved = () => { + const params = useParams(); + const toast = useToast(); + const id = params?.id; + const firstField = useRef(); + const { isOpen, onOpen, onClose } = useDisclosure(); + const { IODetails, iONAVDetail, setIONAVDetail } = + useContext(GlobalStateContext); + const [searchTerm, setSearchTerm] = useState(""); + const [isLoading, setIsLoading] = useState(true); + const [deleteAlert, setDeleteAlert] = useState(false); + const [actionId, setActionId] = useState(false); + const [mouseEntered, setMouseEntered] = useState(false); + const [mouseEnteredId, setMouseEnteredId] = useState(""); + const [updateIOCase] = useUpdateIOCaseMutation(); + + useEffect(() => { + // Simulate loading + const timer = setTimeout(() => { + setIsLoading(false); + }, 1500); + + // Cleanup the timer on component unmount + return () => clearTimeout(timer); + }, []); + + const formatDate = (date) => { + return new Date(date).toLocaleDateString("en-GB", { + day: "2-digit", + month: "2-digit", + year: "numeric", + }); + }; + + // Table filter + const filteredData = IODetails?.ioNAVStatusHistory?.Approved?.filter( + (item) => { // Filter by name (case insensitive) const name = item.transactionAmount; const searchLower = searchTerm?.toLowerCase(); const nameMatches = name?.toLowerCase().includes(searchLower); return nameMatches; - }); - - const tableHeadRow = [ - "Sr No.", - "Valuation date", - "NAV", - "Last Nav Update", - "Investment Closed", - "Comments", - "Updated By", - ]; - - const extractedArray = filteredData?.map((item, index) => ({ - id: item?.id, - "Sr No.": ( - - {index + 1}. - - ), - "Valuation date": ( - - {formatDate(item?.transactionDate)} - - ), - "NAV": ( - - - $ - - {item?.transactionAmount} - - ), - "Last Nav Update": ( - - {item.previousNAVvalue && `${item.previousNAVvalue}`} - - ), - "Investment Closed": ( + } + ); + + const tableHeadRow = [ + "Sr No.", + "Valuation date", + "NAV", + "Last Nav Update", + "Investment Closed", + "Comments", + "Updated By", + ]; + + const extractedArray = filteredData?.map((item, index) => ({ + id: item?.id, + "Sr No.": ( + + {index + 1}. + + ), + "Valuation date": ( + + {formatDate(item?.transactionDate)} + + ), + NAV: ( + + + $ + + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} + + ), + "Last Nav Update": ( + + {item.previousNAVvalue && `${item.previousNAVvalue}`} + + ), + "Investment Closed": ( ), - "Comments": ( - - {item?.comments ? item?.comments : "---" } - - ), - "Updated By": ( - + {item?.comments ? item?.comments : "---"} + + ), + "Updated By": ( + - + - {item?.creator?.firstName} - - ), - })); + {item?.creator?.firstName} + + ), + })); - - const handleAdd = async () =>{ - try { - const res = await updateIOCase(id) - if (res?.data) { - toast({ - render: () => ( - - ), - }); - setIsLoading(false); - onOpen() - - } else if (res?.error) { - toast({ - render: () => ( - - ), - }); - setIsLoading(false); - } - } catch (error) { - - } - } - - const handleDelete = () => { - const updatedSponsors = sponser.filter( - (sponsor) => sponsor.id !== actionId - ); - - setTimeout(() => { - setCaseDetails(updatedSponsors); - setDeleteAlert(false); + const handleAdd = async () => { + try { + const res = await updateIOCase(id); + if (res?.data) { + toast({ + render: () => ( + + ), + }); setIsLoading(false); - }, 100); - setIsLoading(true); - }; + onOpen(); + } else if (res?.error) { + toast({ + render: () => ( + + ), + }); + setIsLoading(false); + } + } catch (error) {} + }; - const exportToExcelNew = (data, fileName) => { - const worksheet = XLSX.utils.json_to_sheet(data); - const workbook = XLSX.utils.book_new(); - XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1"); - - // Export file - XLSX.writeFile(workbook, `${fileName}.xlsx`); - }; + const handleDelete = () => { + const updatedSponsors = sponser.filter( + (sponsor) => sponsor.id !== actionId + ); - const ioNavExport = IODetails?.ioNAVStatusHistory?.Approved?.map((item, index) => ({ - "ID": item?.id, // Keep as integer if it's already a number + setTimeout(() => { + setCaseDetails(updatedSponsors); + setDeleteAlert(false); + setIsLoading(false); + }, 100); + setIsLoading(true); + }; + + const exportToExcelNew = (data, fileName) => { + const worksheet = XLSX.utils.json_to_sheet(data); + const workbook = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(workbook, worksheet, "Sheet1"); + + // Export file + XLSX.writeFile(workbook, `${fileName}.xlsx`); + }; + + const ioNavExport = IODetails?.ioNAVStatusHistory?.Approved?.map( + (item, index) => ({ + ID: item?.id, // Keep as integer if it's already a number "Valuation date": formatDate(item?.transactionDate), // Assuming this is a date, no conversion needed - "NAV": parseFloat(item?.transactionAmount) || 0, // Convert to float + NAV: parseFloat(item?.transactionAmount) || 0, // Convert to float "Last Nav Update": parseFloat(item?.previousNAVvalue) || 0, // Convert to float "Investment Closed": parseFloat(item?.initialNAVvalue) || 0, // Convert to float - "Comments": item?.comments, // Keep as string + Comments: item?.comments, // Keep as string // "Transaction Type": item?.transactionType, "Updated By": item?.creator?.firstName, // Keep as string // "Update On": formatDate(item?.updatedAt) // Assuming this is a date, no conversion needed - })); - - return ( - - - + + - - {IODetails?.isInvestedAmount ? ( - localStorage?.getItem('role') ==="Maker"&& - ) : null} + {IODetails?.isInvestedAmount + ? localStorage?.getItem("role") === "Maker" && ( + + ) + : null} - - - - - - setDeleteAlert(false)} - isOpen={deleteAlert} - message={"Are you sure you want to delete sponers?"} - alertHandler={handleDelete} - isLoading={isLoading} - /> + + + + + + setDeleteAlert(false)} + isOpen={deleteAlert} + message={"Are you sure you want to delete sponers?"} + alertHandler={handleDelete} + isLoading={isLoading} + /> - - ); - }; - - export default Approved; - \ No newline at end of file + + ); +}; + +export default Approved; diff --git a/src/Pages/IO_Management/CreateIO/IONAVDetails/Pending.jsx b/src/Pages/IO_Management/CreateIO/IONAVDetails/Pending.jsx index 39a0218..d68239e 100644 --- a/src/Pages/IO_Management/CreateIO/IONAVDetails/Pending.jsx +++ b/src/Pages/IO_Management/CreateIO/IONAVDetails/Pending.jsx @@ -110,7 +110,10 @@ const Pending = () => { $ - {item?.transactionAmount} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), "Last Nav Update": ( diff --git a/src/Pages/IO_Management/CreateIO/IONAVDetails/Rejected.jsx b/src/Pages/IO_Management/CreateIO/IONAVDetails/Rejected.jsx index 8b69230..3f0aa17 100644 --- a/src/Pages/IO_Management/CreateIO/IONAVDetails/Rejected.jsx +++ b/src/Pages/IO_Management/CreateIO/IONAVDetails/Rejected.jsx @@ -114,7 +114,10 @@ import AddNavDetails from "./AddNavDetails"; $ - {item?.transactionAmount} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), "Last Nav Update": ( diff --git a/src/Pages/IO_Management/CreateIO/IOTransaction/Approved.jsx b/src/Pages/IO_Management/CreateIO/IOTransaction/Approved.jsx index 86b65d6..b027b7d 100644 --- a/src/Pages/IO_Management/CreateIO/IOTransaction/Approved.jsx +++ b/src/Pages/IO_Management/CreateIO/IOTransaction/Approved.jsx @@ -71,6 +71,7 @@ import { const tableHeadRow = [ "Sr No.", + "Transaction Date", "Transaction Name", "Amount", "Created By", @@ -90,6 +91,15 @@ import { {index + 1}. ), + "Transaction Date": ( + + {formatDate(item?.transactionDate)} + + ), "Transaction Name": ( $ - {item?.transactionAmount} + {/* {item?.transactionAmount} */} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), "Created By": ( @@ -118,7 +132,7 @@ import { color={"gray.800"} fontWeight={"500"} > - {item?.createdBy} + {item?.creator?.firstName} ), "Created On": ( diff --git a/src/Pages/IO_Management/CreateIO/IOTransaction/Pending.jsx b/src/Pages/IO_Management/CreateIO/IOTransaction/Pending.jsx index cd9a771..18138fc 100644 --- a/src/Pages/IO_Management/CreateIO/IOTransaction/Pending.jsx +++ b/src/Pages/IO_Management/CreateIO/IOTransaction/Pending.jsx @@ -108,6 +108,7 @@ const Pending = () => { const tableHeadRow = [ "Sr No.", + "Transaction Date", "Transaction Name", "Amount", "Created By", @@ -125,6 +126,15 @@ const Pending = () => { {index + 1}. ), + "Transaction Date": ( + + {formatDate(item?.transactionDate)} + + ), "Transaction Name": ( {item?.transactionType} @@ -135,12 +145,15 @@ const Pending = () => { $ - {item?.transactionAmount} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), "Created By": ( - {item?.createdBy} + {item?.creator?.firstName} ), "Created On": ( diff --git a/src/Pages/IO_Management/CreateIO/IOTransaction/Rejected.jsx b/src/Pages/IO_Management/CreateIO/IOTransaction/Rejected.jsx index ef5420d..388ce77 100644 --- a/src/Pages/IO_Management/CreateIO/IOTransaction/Rejected.jsx +++ b/src/Pages/IO_Management/CreateIO/IOTransaction/Rejected.jsx @@ -108,7 +108,10 @@ import { $ - {item?.transactionAmount} + {parseFloat(item?.transactionAmount || 0).toLocaleString(undefined, { + minimumFractionDigits: 2, + maximumFractionDigits: 2, + })} ), "Created By": ( @@ -118,7 +121,7 @@ import { color={"gray.800"} fontWeight={"500"} > - {item?.createdBy} + {item?.creator?.firstName} ), "Created On": ( diff --git a/src/Pages/IO_Management/CreateIO/IOTransaction/ViewAmountInvested.jsx b/src/Pages/IO_Management/CreateIO/IOTransaction/ViewAmountInvested.jsx index 3983f72..9d43fd8 100644 --- a/src/Pages/IO_Management/CreateIO/IOTransaction/ViewAmountInvested.jsx +++ b/src/Pages/IO_Management/CreateIO/IOTransaction/ViewAmountInvested.jsx @@ -230,7 +230,7 @@ const ViewAmountInvested = ({ isOpen, onClose, id: investorId }) => { /> - + {localStorage?.getItem("role") !== "Maker" && - + } diff --git a/src/Pages/IO_Management/CreateIO/IOTransaction/ViewCancel.jsx b/src/Pages/IO_Management/CreateIO/IOTransaction/ViewCancel.jsx index 5dc7406..c5a2864 100644 --- a/src/Pages/IO_Management/CreateIO/IOTransaction/ViewCancel.jsx +++ b/src/Pages/IO_Management/CreateIO/IOTransaction/ViewCancel.jsx @@ -309,8 +309,8 @@ import RequestRejectModal from "./RequestRejectModal"; data={extractedArray} /> - - + {localStorage?.getItem("role") !== "Maker" && + - - + + } { resolver: yupResolver(investorExit), }); - // useEffect(() => { - // console.log("hiit useEffectc"); - // handleCalculate(id, { - // amount: IODetails?.ioMVNAV, - // }); - // reset({ - // amount: IODetails?.ioMVNAV, - // }); - // }, [IODetails, id]); + useEffect(() => { + console.log("hiit useEffectc"); + handleCalculate(id, { + amount: IODetails?.ioMVNAV, + }); + reset({ + amount: IODetails?.ioMVNAV, + }); + }, [IODetails, id]); const handleCalculate = async (id, data) => { try { @@ -212,7 +212,8 @@ const ViewDistributionInvestor = ({ isOpen, onClose,id:exitId }) => { data={extractedArray} /> - + {/* ...(localStorage?.getItem("role") !== "Maker" ? ["Status"] : []), */} + {localStorage?.getItem("role") !== "Maker" && - + } {/* ) } */} - - + {localStorage?.getItem("role") !== "Maker" && + - - + + } { alignItems={"start"} height={"95px"} > - - + { ))} - + } {/* Modals */}