diff --git a/src/Components/CurrencyInput.jsx b/src/Components/CurrencyInput.jsx
index b5d646b..c972aee 100644
--- a/src/Components/CurrencyInput.jsx
+++ b/src/Components/CurrencyInput.jsx
@@ -38,7 +38,6 @@ const CurrencyInput = forwardRef(({ value, onChange, ...props }, ref) => {
{...props}
ref={ref} // Forward ref here
type="text"
- colorScheme='forestGreen'
value={formatCurrency(value)}
onChange={handleChange}
/>
diff --git a/src/Pages/IO_Management/CreateIO/CreateIO.jsx b/src/Pages/IO_Management/CreateIO/CreateIO.jsx
index 942c9ec..25247c0 100644
--- a/src/Pages/IO_Management/CreateIO/CreateIO.jsx
+++ b/src/Pages/IO_Management/CreateIO/CreateIO.jsx
@@ -16,6 +16,7 @@ import { useParams } from "react-router-dom";
import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders";
import { useGetIOprepopulateDataQuery } from "../../../Services/io.service";
import UnderConstruction from "../../UnderConstruction";
+import Destribution from "./Destribution";
const CreateIO = () => {
const id = useParams()?.id;
@@ -74,7 +75,7 @@ const CreateIO = () => {
},
{
label: "Distribution to Investors",
- Content: IONAVDetails,
+ Content: Destribution,
isDisabled: id ? false : true,
},
];
diff --git a/src/Pages/IO_Management/CreateIO/Destribution.jsx b/src/Pages/IO_Management/CreateIO/Destribution.jsx
index 532b099..1079660 100644
--- a/src/Pages/IO_Management/CreateIO/Destribution.jsx
+++ b/src/Pages/IO_Management/CreateIO/Destribution.jsx
@@ -1,9 +1,219 @@
-import React from 'react'
+import React, { useContext, useEffect, useRef, useState } from 'react'
+import GlobalStateContext from '../../../Contexts/GlobalStateContext';
+import { Box, HStack, Input,Text, Table, Tbody, Th, Tr, Avatar, useDisclosure,Button } from '@chakra-ui/react';
+import { OPACITY_ON_LOAD } from '../../../Layout/animations';
+import Pagination from '../../../Components/Pagination';
+import NormalTable from '../../../Components/DataTable/NormalTable';
+import CustomAlertDialog from '../../../Components/CustomAlertDialog';
+import { formatDatee } from '../../../Components/FormField';
+import { AddIcon } from '@chakra-ui/icons';
+import AddIONav from './AddIONav';
-const Distribution = () => {
- return (
-
Distribution
+const Destribution = () => {
+ const { navDetails, setNavDetails, IODetails } =
+ useContext(GlobalStateContext);
+ const firstField = useRef();
+ const { isOpen, onOpen, onClose } = useDisclosure();
+ 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("");
+
+
+ console.log(IODetails?.ioNAVHistory);
+
+
+
+ useEffect(() => {
+ // Simulate loading
+ const timer = setTimeout(() => {
+ setIsLoading(false);
+ }, 1500);
+
+ // Cleanup the timer on component unmount
+ return () => clearTimeout(timer);
+ }, []);
+
+ // Table setup
+ const tableHeadRow = [
+ // "Sr.No",
+ "Date",
+ "Amount",
+ "% of Investment"
+ ];
+
+ // Table filter
+ const filteredData = IODetails?.distributionToInvestor?.filter((item) => {
+ const name = item?.transactionAmount;
+ const searchLower = searchTerm.toLowerCase();
+ const nameMatches = name.toLowerCase().includes(searchLower);
+ return nameMatches;
+ }).sort((b, a) => new Date(a.transactionDate) - new Date(b.transactionDate));
+
+ const extractedArray=filteredData?.map((item, index) => ({
+ id: item?.id,
+ "Sr.No": {item?.id},
+ "Date": (
+
+ {formatDatee(item.transactionDate)}
+
+ ),
+ "Amount": (
+
+ {/* {`${item.transactionAmount}`} */}
+
+ {`$${parseFloat(item.transactionAmount||0).toLocaleString()}`}
+
+ ),
+ "% of Investment": (
+
+ ---
+
+ ),
+ }));
+
+
+
+ const handleDelete = () => {
+ const updatedNav = navDetails.filter(
+ (sponsor) => sponsor.id !== actionId
+ );
+
+ setTimeout(() => {
+ setNavDetails(updatedNav);
+ setDeleteAlert(false);
+ setIsLoading(false);
+ }, 100);
+ setIsLoading(true);
+ };
+
+
+ const Total = () => {
+ return (
+
+
+
+ |
+ Total
+ |
+
+ {IODetails?.total_distributeToInvestor_amt?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
+ |
+
+ {" "}
+ |
+
+
+
+ );
+ };
+
+
+
+
+ return (
+
+
+ setSearchTerm(e.target.value)}
+ />
+
+
+
+
+ }
+ setMouseEnteredId={setMouseEnteredId}
+ setMouseEntered={setMouseEntered}
+ />
+
+ setDeleteAlert(false)}
+ isOpen={deleteAlert}
+ message={"Are you sure you want to delete sponers?"}
+ alertHandler={handleDelete}
+ isLoading={isLoading}
+ />
+
+
+
+
+
+
+
)
}
-export default Distribution
\ No newline at end of file
+export default Destribution
\ No newline at end of file
diff --git a/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx b/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx
index 1ff34d8..870c4b2 100644
--- a/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx
+++ b/src/Pages/IO_Management/CreateIO/IOArtifacts.jsx
@@ -22,7 +22,7 @@ import {
} from "@chakra-ui/icons";
import IOArtifactsAdd from "../IOArtifactsAdd";
import IOArtifactsVideo from "./IOArtifactsVideo";
-import SetDisplayOrder from "./SetDisplayOrder";
+import SetDisplayOrder from "./SetDisplayOrderKeyMerits";
import { useParams } from "react-router-dom";
import {
useDeleteImageArtifactsMutation,
@@ -32,6 +32,8 @@ import {
import { getFileNameFromPath } from "../../../Constants/Constants";
import ImageViewer from "../../../Components/ImageViewer";
import ToastBox from "../../../Components/ToastBox";
+import SetDisplayOrderIOArtifactsImages from "./SetDisplayOrderIOArtifactsImages";
+import SetDisplayOrderIOArtifactsVideo from "./SetDisplayOrderIOArtifactsVideo";
const IOArtifacts = ({ enableNextTab, index, data }) => {
const toast = useToast()
@@ -143,7 +145,14 @@ const IOArtifacts = ({ enableNextTab, index, data }) => {
const tableHeadRow = ["Sr.no", "File Name", "View image", "Action"];
- const extractedArray = IObyID?.data?.artifactsImage?.map((item, index) => ({
+console.log(IObyID?.data?.artifactsImage);
+ // console.log(filteredData);
+ const sortedDataImage = [...(IObyID?.data?.artifactsImage || [])]?.sort(
+ (a, b) => a?.displayOrder - b?.displayOrder
+ );
+
+
+ const extractedArray = sortedDataImage?.map((item, index) => ({
"Sr.no": (
{
),
}));
+
+ console.log(IObyID?.data?.artifactsVideo);
+// console.log(filteredData);
+const sortedDataVideo = [...(IObyID?.data?.artifactsVideo || [])]?.sort(
+ (a, b) => a?.displayOrder - b?.displayOrder
+);
+
+
+
+
+
const tableHeadRowTwo = [
"Sr.no",
"File Name",
@@ -253,7 +273,7 @@ const IOArtifacts = ({ enableNextTab, index, data }) => {
"Action",
];
- const extractedArrayTwo = IObyID?.data?.artifactsVideo?.map(
+ const extractedArrayTwo = sortedDataVideo?.map(
(item, index) => ({
"Sr.no": (
{
- {IObyID?.data?.artifactsImage?.length !== 0 &&}
+ {IObyID?.data?.artifactsImage?.length !== 0 &&}
}
onClick={onOpen}
@@ -390,7 +410,7 @@ const IOArtifacts = ({ enableNextTab, index, data }) => {
Manage IO videos
- {IObyID?.data?.artifactsVideo?.length !== 0 &&}
+ {IObyID?.data?.artifactsVideo?.length !== 0 &&}
}
onClick={onOpenVideo}
diff --git a/src/Pages/IO_Management/CreateIO/IODetails.jsx b/src/Pages/IO_Management/CreateIO/IODetails.jsx
index c3bd056..622a472 100644
--- a/src/Pages/IO_Management/CreateIO/IODetails.jsx
+++ b/src/Pages/IO_Management/CreateIO/IODetails.jsx
@@ -607,6 +607,11 @@ const IODetails = ({ enableNextTab, index, data }) => {
toast({
render: () => ,
});
+ } else if(res?.error?.status === 500){
+ setIsLoading(false);
+ toast({
+ render: () => ,
+ });
}
} else {
try {
diff --git a/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx b/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx
index 17ed754..c70c07c 100644
--- a/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx
+++ b/src/Pages/IO_Management/CreateIO/IONAVDetails.jsx
@@ -184,8 +184,6 @@ const IONAVDetails = () => {
*/}
-{IODetails?.isInvestedAmount ? :null}
-
diff --git a/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx b/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx
index acaa829..fe617b0 100644
--- a/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx
+++ b/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx
@@ -33,7 +33,8 @@ import {
import ToastBox from "../../../Components/ToastBox";
import { getFileNameFromPath } from "../../../Constants/Constants";
import { TbFileTypeDocx } from "react-icons/tb";
-import SetDisplayOrder from "./SetDisplayOrder";
+import SetDisplayOrder from "./SetDisplayOrderKeyMerits";
+import SetDisplayOrderIODocuments from "./SetDisplayOrderIODocuments";
const downloadFile = (filePath, fileName) => {
@@ -134,6 +135,10 @@ const InvestmentDocument = ({ control, errors, enableNextTab, index, }) => {
item?.documentName?.toLowerCase().includes(searchTerm.toLowerCase())
);
+ const sortedData = filteredData?.sort(
+ (a, b) => a.displayOrder - b.displayOrder
+ );
+
const handleView = (id) => {
setActionId(id);
onViewOpen();
@@ -168,7 +173,7 @@ const InvestmentDocument = ({ control, errors, enableNextTab, index, }) => {
}
};
- const extractedArray = filteredData?.map((item, index) => ({
+ const extractedArray = sortedData?.map((item, index) => ({
"Sr.no": (
{
- {filteredData?.length !== 0 &&}
+ {filteredData?.length !== 0 &&}
}
onClick={onOpen}
diff --git a/src/Pages/IO_Management/CreateIO/Investors.jsx b/src/Pages/IO_Management/CreateIO/Investors.jsx
index 67372e2..fedf87e 100644
--- a/src/Pages/IO_Management/CreateIO/Investors.jsx
+++ b/src/Pages/IO_Management/CreateIO/Investors.jsx
@@ -21,6 +21,7 @@ import {
Thead,
Tooltip,
Tr,
+ keyframes,
useToast,
} from "@chakra-ui/react";
import React, { useContext, useEffect, useState } from "react";
@@ -38,6 +39,17 @@ import { FiRefreshCw } from "react-icons/fi";
import { useGetIOByIdQuery } from "../../../Services/io.service";
import { RepeatIcon } from "@chakra-ui/icons";
+
+
+const rotate = keyframes`
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(360deg);
+ }
+`;
+
const formatDate = (date) => new Date(date).toLocaleDateString(); // Simple date formatter
const Investors = ({data}) => {
@@ -46,14 +58,11 @@ const Investors = ({data}) => {
const toast = useToast();
const { investors, setInvestors, slideFromRight, IODetails } =
useContext(GlobalStateContext);
-
-
- console.log(params?.id);
+
+ const [ isRefetchLoading, setIsRefetchLoading ] = useState(false)
const {
- data: IObyID,
isLoading: IObyIDisLoading,
- error: IObyIDerror,
refetch
} = useGetIOByIdQuery(id, { skip: !id });
@@ -396,8 +405,10 @@ const Investors = ({data}) => {
};
- const handleRefresh = () =>{
- refetch()
+ const handleRefresh = async() =>{
+ setIsRefetchLoading(true)
+ await refetch()
+ setIsRefetchLoading(false)
}
return (
@@ -421,7 +432,8 @@ const Investors = ({data}) => {
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
/>
-
+
diff --git a/src/Pages/IO_Management/CreateIO/KeyMerits.jsx b/src/Pages/IO_Management/CreateIO/KeyMerits.jsx
index d92e9b4..6d2eee0 100644
--- a/src/Pages/IO_Management/CreateIO/KeyMerits.jsx
+++ b/src/Pages/IO_Management/CreateIO/KeyMerits.jsx
@@ -32,7 +32,7 @@ import {
import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders";
import ToastBox from "../../../Components/ToastBox";
import KeyMeritsEdit from "../KeyMeritsEdit";
-import SetDisplayOrder from "./SetDisplayOrder";
+import SetDisplayOrder from "./SetDisplayOrderKeyMerits";
const KeyMerits = ({ enableNextTab, index, data: prepopData }) => {
const toast = useToast();
@@ -71,7 +71,7 @@ const KeyMerits = ({ enableNextTab, index, data: prepopData }) => {
const filteredData = IODetails?.keyMerits?.filter((item) => {
// Filter by name (case insensitive)
- const name = item.meritsHeader;
+ const name = item?.meritsHeader;
const searchLower = searchTerm.toLowerCase();
const nameMatches = name.toLowerCase().includes(searchLower);
@@ -80,7 +80,7 @@ const KeyMerits = ({ enableNextTab, index, data: prepopData }) => {
// console.log(filteredData);
const sortedData = filteredData?.sort(
- (a, b) => a.displayOder - b.displayOder
+ (a, b) => a.displayOrder - b.displayOrder
);
const handleDelete = async () => {
@@ -97,6 +97,8 @@ const KeyMerits = ({ enableNextTab, index, data: prepopData }) => {
} catch (error) {}
};
+
+
const extractedArray = sortedData?.map((item, index) => ({
id: item.id,
"Sr.no": (
diff --git a/src/Pages/IO_Management/CreateIO/SetDisplayOrderIOArtifactsImages.jsx b/src/Pages/IO_Management/CreateIO/SetDisplayOrderIOArtifactsImages.jsx
new file mode 100644
index 0000000..cb3caee
--- /dev/null
+++ b/src/Pages/IO_Management/CreateIO/SetDisplayOrderIOArtifactsImages.jsx
@@ -0,0 +1,189 @@
+import React, { useState, useEffect } from "react";
+import {
+ Modal,
+ ModalOverlay,
+ ModalContent,
+ ModalHeader,
+ ModalFooter,
+ ModalBody,
+ ModalCloseButton,
+ useDisclosure,
+ Button,
+ Box,
+ Text,
+ Image,
+ HStack,
+ useToast,
+ Link,
+ Badge,
+} from "@chakra-ui/react";
+
+import { AddIcon, DragHandleIcon, ExternalLinkIcon } from "@chakra-ui/icons";
+import DataTable from "../../../Components/DataTable/DataTable";
+import { useSetDisplayOrderIOArtifactsImageMutation } from "../../../Services/io.service";
+import ToastBox from "../../../Components/ToastBox";
+
+const SetDisplayOrderIOArtifactsImages = ({ data, }) => {
+ console.log(data);
+ const toast = useToast();
+ const { isOpen, onOpen, onClose } = useDisclosure();
+ const [isLoading, setIsLoading] = useState(false);
+
+ const tableHeadRow = ["", "File Name", "View image"];
+
+ const [extractedArray, setExtractedArray] = useState([]);
+ const [displayOrder, setDisplayOrder] = useState(null);
+ const [resetDisplayOrder] = useSetDisplayOrderIOArtifactsImageMutation();
+
+ // Update state when `data` prop changes
+ useEffect(() => {
+ if (data) {
+ const formattedData = data?.map((item, index) => ({
+ id: item?.id,
+ displayOrder: index + 1, // Add displayOrder property
+ "": (
+
+
+
+ ),
+ "File Name": (
+
+
+ {item.artifactName}
+
+
+ ),
+
+ "View image": (
+
+
+
+ {
+ // setImageSrc(item?.artifactPathName);
+ // onOpenImageViewer();
+ // }}
+ as="span"
+ cursor={"pointer"}
+ >
+ View
+ {" "}
+
+
+
+
+ ),
+ }));
+ setExtractedArray(formattedData);
+ }
+ }, [data]);
+
+ // Log the updated order in the desired format whenever `extractedArray` changes
+ useEffect(() => {
+ const displayOrderArray = extractedArray.map((item, index) => ({
+ id: item.id,
+ displayOrder: index + 1,
+ }));
+ setDisplayOrder(displayOrderArray);
+ }, [extractedArray]);
+
+ const handleSetOrder = async () => {
+ setIsLoading(true);
+ const data = {
+ displayOrder: displayOrder,
+ };
+
+ try {
+ const res = await resetDisplayOrder({ data });
+ console.log(res?.data?.statusCode);
+ if (res?.data?.statusCode === 200) {
+ toast({
+ render: () => ,
+ });
+ onClose();
+ }
+
+ setIsLoading(false);
+ } catch (error) {
+ console.log(res);
+ setIsLoading(false);
+ }
+ };
+
+ return (
+ <>
+ }
+ size={"sm"}
+ fontSize={"xs"}
+ rounded={"sm"}
+ variant={"outline"}
+ colorScheme="forestGreen"
+ onClick={onOpen}
+ >
+ Set Display Order
+
+
+
+
+
+ Set Display Order
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default SetDisplayOrderIOArtifactsImages;
diff --git a/src/Pages/IO_Management/CreateIO/SetDisplayOrderIOArtifactsVideo.jsx b/src/Pages/IO_Management/CreateIO/SetDisplayOrderIOArtifactsVideo.jsx
new file mode 100644
index 0000000..72a1fcb
--- /dev/null
+++ b/src/Pages/IO_Management/CreateIO/SetDisplayOrderIOArtifactsVideo.jsx
@@ -0,0 +1,174 @@
+import React, { useState, useEffect } from "react";
+import {
+ Modal,
+ ModalOverlay,
+ ModalContent,
+ ModalHeader,
+ ModalFooter,
+ ModalBody,
+ ModalCloseButton,
+ useDisclosure,
+ Button,
+ Box,
+ Text,
+ Image,
+ HStack,
+ useToast,
+ Badge,
+ Link,
+} from "@chakra-ui/react";
+
+import { AddIcon, DragHandleIcon, ExternalLinkIcon } from "@chakra-ui/icons";
+import DataTable from "../../../Components/DataTable/DataTable";
+import { useSetDisplayOrderIOArtifactsVideoMutation } from "../../../Services/io.service";
+import ToastBox from "../../../Components/ToastBox";
+
+const SetDisplayOrderIOArtifactsVideo = ({ data, }) => {
+ const toast = useToast();
+ const { isOpen, onOpen, onClose } = useDisclosure();
+ const [isLoading, setIsLoading] = useState(false);
+
+ const tableHeadRow = ["", "File Name", "Video streaming URL"];
+
+ const [extractedArray, setExtractedArray] = useState([]);
+ const [displayOrder, setDisplayOrder] = useState(null);
+ const [resetDisplayOrder] = useSetDisplayOrderIOArtifactsVideoMutation();
+
+ // Update state when `data` prop changes
+ useEffect(() => {
+ if (data) {
+ const formattedData = data.map((item, index) => ({
+ id: item?.id,
+ displayOrder: index + 1, // Add displayOrder property
+ "": (
+
+
+
+ ),
+ "File Name": (
+
+
+ {item.artifactName}
+
+
+ ),
+ "Video streaming URL": (
+
+
+
+ View
+
+
+
+ ),
+ }));
+ setExtractedArray(formattedData);
+ }
+ }, [data]);
+
+ // Log the updated order in the desired format whenever `extractedArray` changes
+ useEffect(() => {
+ const displayOrderArray = extractedArray.map((item, index) => ({
+ id: item.id,
+ displayOrder: index + 1,
+ }));
+ setDisplayOrder(displayOrderArray);
+ }, [extractedArray]);
+
+ const handleSetOrder = async () => {
+ setIsLoading(true);
+ const data = {
+ displayOrder: displayOrder,
+ };
+
+ try {
+ const res = await resetDisplayOrder({ data });
+ console.log(res?.data?.statusCode);
+ if (res?.data?.statusCode === 200) {
+ toast({
+ render: () => ,
+ });
+ onClose();
+ }
+
+ setIsLoading(false);
+ } catch (error) {
+ console.log(res);
+ setIsLoading(false);
+ }
+ };
+
+ return (
+ <>
+ }
+ size={"sm"}
+ fontSize={"xs"}
+ rounded={"sm"}
+ variant={"outline"}
+ colorScheme="forestGreen"
+ onClick={onOpen}
+ >
+ Set Display Order
+
+
+
+
+
+ Set Display Order
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default SetDisplayOrderIOArtifactsVideo;
diff --git a/src/Pages/IO_Management/CreateIO/SetDisplayOrderIODocuments.jsx b/src/Pages/IO_Management/CreateIO/SetDisplayOrderIODocuments.jsx
new file mode 100644
index 0000000..5ff1248
--- /dev/null
+++ b/src/Pages/IO_Management/CreateIO/SetDisplayOrderIODocuments.jsx
@@ -0,0 +1,165 @@
+import React, { useState, useEffect } from "react";
+import {
+ Modal,
+ ModalOverlay,
+ ModalContent,
+ ModalHeader,
+ ModalFooter,
+ ModalBody,
+ ModalCloseButton,
+ useDisclosure,
+ Button,
+ Box,
+ Text,
+ Image,
+ HStack,
+ useToast,
+} from "@chakra-ui/react";
+
+import { AddIcon, DragHandleIcon } from "@chakra-ui/icons";
+import DataTable from "../../../Components/DataTable/DataTable";
+import { useSetDisplayOrderIODocumentsMutation } from "../../../Services/io.service";
+import ToastBox from "../../../Components/ToastBox";
+import { GrDocumentPdf } from "react-icons/gr";
+import { TbFileTypeDocx } from "react-icons/tb";
+
+const SetDisplayOrderIODocuments = ({ data, }) => {
+ const toast = useToast();
+ const { isOpen, onOpen, onClose } = useDisclosure();
+ const [isLoading, setIsLoading] = useState(false);
+
+ const tableHeadRow = ["", "Type", "File name"];
+
+ const [extractedArray, setExtractedArray] = useState([]);
+ const [displayOrder, setDisplayOrder] = useState(null);
+ const [resetDisplayOrder] = useSetDisplayOrderIODocumentsMutation();
+
+ // Update state when `data` prop changes
+ useEffect(() => {
+ if (data) {
+ const formattedData = data.map((item, index) => ({
+ id: item?.id,
+ displayOrder: index + 1, // Add displayOrder property
+ "": (
+
+
+
+ ),
+ Type: (
+
+ {item.documentType === "application/pdf" ? (
+
+ ) : (
+
+ )}
+
+ ),
+ "File name": (
+
+ {item.documentName}
+
+ ),
+ }));
+ setExtractedArray(formattedData);
+ }
+ }, [data]);
+
+ // Log the updated order in the desired format whenever `extractedArray` changes
+ useEffect(() => {
+ const displayOrderArray = extractedArray.map((item, index) => ({
+ id: item.id,
+ displayOrder: index + 1,
+ }));
+ setDisplayOrder(displayOrderArray);
+ }, [extractedArray]);
+
+ const handleSetOrder = async () => {
+ setIsLoading(true);
+ const data = {
+ displayOrder: displayOrder,
+ };
+
+ try {
+ const res = await resetDisplayOrder({ data });
+ console.log(res?.data?.statusCode);
+ if (res?.data?.statusCode === 200) {
+ toast({
+ render: () => ,
+ });
+ onClose();
+ }
+
+ setIsLoading(false);
+ } catch (error) {
+ console.log(res);
+ setIsLoading(false);
+ }
+ };
+
+ return (
+ <>
+ }
+ size={"sm"}
+ fontSize={"xs"}
+ rounded={"sm"}
+ variant={"outline"}
+ colorScheme="forestGreen"
+ onClick={onOpen}
+ >
+ Set Display Order
+
+
+
+
+
+ Set Display Order
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default SetDisplayOrderIODocuments;
diff --git a/src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx b/src/Pages/IO_Management/CreateIO/SetDisplayOrderKeyMerits.jsx
similarity index 95%
rename from src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx
rename to src/Pages/IO_Management/CreateIO/SetDisplayOrderKeyMerits.jsx
index ebc8049..acd8cb0 100644
--- a/src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx
+++ b/src/Pages/IO_Management/CreateIO/SetDisplayOrderKeyMerits.jsx
@@ -21,7 +21,7 @@ import DataTable from "../../../Components/DataTable/DataTable";
import { useSetDisplayOrderMutation } from "../../../Services/io.service";
import ToastBox from "../../../Components/ToastBox";
-const SetDisplayOrder = ({ data }) => {
+const SetDisplayOrderKeyMerits = ({ data, }) => {
const toast = useToast();
const { isOpen, onOpen, onClose } = useDisclosure();
const [isLoading, setIsLoading] = useState(false);
@@ -57,6 +57,10 @@ const SetDisplayOrder = ({ data }) => {
),
Icon: item?.icon?.iconFilePath && (
+
{
src={import.meta.env.VITE_IMAGE_URL + item?.icon?.iconFilePath}
w={8}
h={8}
- />
+ />
),
}));
setExtractedArray(formattedData);
@@ -164,4 +168,4 @@ const SetDisplayOrder = ({ data }) => {
);
};
-export default SetDisplayOrder;
+export default SetDisplayOrderKeyMerits;
diff --git a/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx b/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx
index 0f0b093..01e6cbc 100644
--- a/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx
+++ b/src/Pages/IO_Management/ViewIO/HeaderModal/AmountInvested.jsx
@@ -50,6 +50,7 @@ const AmountInvested = ({ isOpen, onClose }) => {
const [isLoading, setIsLoading] = useState(false);
const { IODetails } = useContext(GlobalStateContext);
const [amountInvested] = useAmountIvestmentMutation();
+
useEffect(() => {
if (IODetails?.totalAmtInvestmentInUSD) {
diff --git a/src/Pages/IO_Management/ViewIO/HeaderModal/DistributionInvestor.jsx b/src/Pages/IO_Management/ViewIO/HeaderModal/DistributionInvestor.jsx
index 47d58f5..d4b87a1 100644
--- a/src/Pages/IO_Management/ViewIO/HeaderModal/DistributionInvestor.jsx
+++ b/src/Pages/IO_Management/ViewIO/HeaderModal/DistributionInvestor.jsx
@@ -27,7 +27,7 @@ import {
import NormalData from "../../../../Components/DataTable/NormalTable";
import { useState } from "react";
import { AddIcon } from "@chakra-ui/icons";
-import { useGetDistributionInvestorMutation } from "../../../../Services/io.service";
+import { useGetDistributedToInvestorMutation, useGetDistributionInvestorMutation, useUpdateExitToInvestorMutation } from "../../../../Services/io.service";
import { useParams } from "react-router-dom";
import { useEffect } from "react";
import { Controller, useForm } from "react-hook-form";
@@ -36,17 +36,20 @@ import { yupResolver } from "@hookform/resolvers/yup";
import ToastBox from "../../../../Components/ToastBox";
import CurrencyInput from "../../../../Components/CurrencyInput";
import { IoCalculator } from "react-icons/io5";
+import { debounce } from "../../../Master/Sponser/AddSponser";
export const investor = yup.object().shape({
amount: yup.string().required("Amount is required"),
});
-const DistributionInvestor = ({ isOpen, onClose }) => {
+const DistributionInvestor = ({ isOpen, onClose, exit }) => {
const params = useParams();
const toast = useToast();
const id = params?.id;
const [ isCalculateLoading, setIsCalculateLoading ] = useState(false)
+ const [ isFinalCalculateLoading, setIsFinalCalculateLoading ] = useState(false)
const [ calcualtedData, setCalculatedDate ] = useState(null)
+ const [ isCalcualtedData, setIsCalcualtedData ] = useState(false)
// const {
// data:IObyID,
@@ -55,6 +58,8 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
// } = useGetDistributionInvestorMutation(id);
const [getDistributionInvestment] = useGetDistributionInvestorMutation();
+ const [getFinalDistributionInvestment] = useGetDistributedToInvestorMutation();
+ const [ updateExitToInvestor ] = useUpdateExitToInvestorMutation()
const {
control,
@@ -64,6 +69,7 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
} = useForm({
resolver: yupResolver(investor),
});
+
// useEffect(()=>{
// try {
@@ -128,7 +134,7 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
Amount: (
- {item?.amount}
+ {item?.amount?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
),
@@ -212,7 +218,7 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
wordBreak="normal"
overflowWrap="normal"
>
- {calcualtedData?.totalInvestedAmt?.toFixed(2)?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
+ {calcualtedData?.totalInvestedAmt?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
{
wordBreak="normal"
overflowWrap="normal"
>
- {calcualtedData?.distributed_amt?.toFixed(2)?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
+ {calcualtedData?.distributed_amt?.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
|
@@ -243,7 +249,6 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
};
const onSubmit = async (data) => {
- console.log(data);
setIsCalculateLoading(true)
try {
@@ -257,6 +262,7 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
),
})
setIsCalculateLoading(false)
+ setIsCalcualtedData(false)
} else if(res?.data?.statusCode === 200){
setCalculatedDate(res?.data?.data)
toast({
@@ -265,6 +271,7 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
),
})
setIsCalculateLoading(false)
+ setIsCalcualtedData(true)
}
@@ -273,10 +280,56 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
}
};
- console.log(errors);
+
+ const onFinalSubmit = async (data) => {
+ setIsFinalCalculateLoading(true)
+ if (!isCalcualtedData) {
+
+ setIsFinalCalculateLoading(false)
+ return toast({
+ render: () => (
+
+ ),
+ })
+ }
+
+ const finalData = {
+ transactionAmount: data?.amount,
+ };
+
+ try {
+ const res = await exit ? updateExitToInvestor({id,data: finalData }) :getFinalDistributionInvestment({id,data: finalData });
+ console.log(finalData);
+
+ if (res?.error?.status === 401) {
+ toast({
+ render: () => (
+
+ ),
+ });
+ } else if (res?.data?.statusCode === 200) {
+ toast({
+ render: () => ,
+ });
+ handleClose()
+ }
+ } catch (error) {
+ console.error("An error occurred:", error);
+ } finally {
+ handleClose()
+ }
+ };
+
+
+ const handleClose = () => {
+ onClose()
+ setIsFinalCalculateLoading(false)
+ reset()
+ }
+
return (
-
+
@@ -291,13 +344,12 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
{/* */}
Amount to Distribute
-
+
(
{
Calculate
-
+
{errors.amount?.message}
@@ -346,6 +398,8 @@ const DistributionInvestor = ({ isOpen, onClose }) => {
}}
size={"sm"}
rounded={"sm"}
+ onClick={handleSubmit(onFinalSubmit)}
+ isLoading={isFinalCalculateLoading}
>
Save
diff --git a/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx b/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx
index 69eea95..9bd62ab 100644
--- a/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx
+++ b/src/Pages/IO_Management/ViewIO/ViewIOTable.jsx
@@ -81,7 +81,7 @@ const ViewIOTable = () => {
"Goal Amount",
"Holding Period",
"IO Status",
- "Preview",
+ // "Preview",
"Action",
];
diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx
index 1b6ef6e..3471146 100644
--- a/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx
+++ b/src/Pages/IO_Management/ViewIO/ViewIOdata.jsx
@@ -36,6 +36,7 @@ import IOCashDetails from "../CreateIO/IOCashDetails";
import IONAVDetails from "../CreateIO/IONAVDetails";
import { useGetIOprepopulateDataQuery } from "../../../Services/io.service";
import UnderConstruction from "../../UnderConstruction";
+import Destribution from "../CreateIO/Destribution";
const ViewIOdata = () => {
@@ -59,8 +60,8 @@ const ViewIOdata = () => {
// { label: "Investors", content: },
{ label: "IO Cash Details", content: },
{ label: "IO NAV Details", content: },
- // { label: "Distribution to Investors", content: },
- { label: "Distribution to Investors", content: },
+ { label: "Distribution to Investors", content: },
+ // { label: "Distribution to Investors", content: },
];
return (
diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx
index 75f6597..75d5096 100644
--- a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx
+++ b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx
@@ -44,14 +44,13 @@ import Loader01 from "../../../Components/Loaders/Loader01";
// import { formatCurrency } from "../../../Components/CurrencyInput";
// import { removeTrailingZeros } from "../../../Constants/Constants";
-const ViewIOdataHeader = ({data, isLoading}) => {
+const ViewIOdataHeader = ({ data, isLoading }) => {
const params = useParams();
const id = params?.id;
const { isOpen, onOpen, onClose } = useDisclosure();
const btnRef = useRef();
const { IODetails, isIOloading } = useContext(GlobalStateContext);
-
-
+
const {
isOpen: isInvestmentOpen,
onOpen: onInvestmentOpen,
@@ -104,17 +103,16 @@ const ViewIOdataHeader = ({data, isLoading}) => {
fontWeight: "400",
};
-
- console.log(import.meta.env.VITE_IMAGE_URL +
- IODetails?.artifactsImage?.[0]?.artifactPathName);
-
-
+ console.log(
+ import.meta.env.VITE_IMAGE_URL +
+ IODetails?.artifactsImage?.[0]?.artifactPathName
+ );
const menu = [
{
- id:1,
- title:"Amount Invested",
- onClickFunction: onInvestmentOpen
+ id: 1,
+ title: "Amount Invested",
+ onClickFunction: onInvestmentOpen,
},
// {
// id:2,
@@ -127,47 +125,44 @@ const ViewIOdataHeader = ({data, isLoading}) => {
// onClickFunction:onDistSponsorOpen
// },
{
- id:6,
- title:"Distribution To Investors",
- onClickFunction:onDistInvestorOpen
+ id: 6,
+ title: "Distribution To Investors",
+ onClickFunction: onDistInvestorOpen,
},
{
- id:5,
- title:"Update IO NAV",
- onClickFunction:onUpdateNavOpen
+ id: 5,
+ title: "Update IO NAV",
+ onClickFunction: onUpdateNavOpen,
},
{
- id:8,
- title:"Exit",
- onClickFunction:onExitOpen
+ id: 8,
+ title: "Exit",
+ onClickFunction: onExitOpen,
},
{
- id:9,
- title:"Cancel",
- onClickFunction:onCancleOpen
+ id: 9,
+ title: "Cancel",
+ onClickFunction: onCancleOpen,
},
{
- id:10,
- title:"Update IO Status",
- onClickFunction:onUpdateStatusOpen
+ id: 10,
+ title: "Update IO Status",
+ onClickFunction: onUpdateStatusOpen,
},
- ]
+ ];
// console.log(IODetails?.mainTranscation);
+ // Extract titles from apiTransaction
+ const apiTransactionTitles = IODetails?.mainTranscation?.map(
+ (transaction) => transaction.id
+ );
+ // Filter menu items
+ const filteredMenu = menu?.filter((item) =>
+ apiTransactionTitles?.includes(item.id)
+ );
-// Extract titles from apiTransaction
-const apiTransactionTitles = IODetails?.mainTranscation?.map(transaction => transaction.id);
-// Filter menu items
-const filteredMenu = menu?.filter(item => apiTransactionTitles?.includes(item.id));
-
-
-
-
-
-
- return (
- IODetails?.investmentNameEnglish ?
+ return IODetails?.investmentNameEnglish ? (
apiTransactionTitles?.includes(item.id
: IODetails?.ioStatus?.statusAdmin === "Closed"
? "#C6F6D5"
: IODetails?.ioStatus?.statusAdmin === "Exited"
- ? "red.500"
+ ? "#FED7D7"
: IODetails?.ioStatus?.statusAdmin === "Canclled"
? "orange.500"
: IODetails?.ioStatus?.statusAdmin === "DeActivate"
@@ -200,130 +195,163 @@ const filteredMenu = menu?.filter(item => apiTransactionTitles?.includes(item.id
boxShadow={"md"}
position={"relative"}
>
-
-
-
-
- {/* */}
- {IODetails?.artifactsImage?.[0]?.artifactPathName ? (
-
- ) : (
-
-
-
- )}
-
-
-
-
- IO Name
-
-
- {IODetails?.investmentNameEnglish
- ? IODetails?.investmentNameEnglish
- : "---"}
-
-
+
+ {/* */}
+ {IODetails?.artifactsImage?.[0]?.artifactPathName ? (
+
+ ) : (
+
+
+
+ )}
+
-
-
- Sponsor Name
-
-
- {IODetails?.sponsor?.sponsorName
- ? IODetails?.sponsor?.sponsorName
- : "---"}
-
-
+
+
+ IO Name
+
+
+ {IODetails?.investmentNameEnglish
+ ? IODetails?.investmentNameEnglish
+ : "---"}
+
+
+
+
+
+ Sponsor Name
+
+
+ {IODetails?.sponsor?.sponsorName
+ ? IODetails?.sponsor?.sponsorName
+ : "---"}
+
+
-
+
+
+ IO Status
+
+
+ {IODetails?.ioStatus?.statusAdmin
+ ? IODetails?.ioStatus?.statusAdmin
+ : "---"}
+
+
-
-
- IO Status
-
-
- {IODetails?.ioStatus?.statusAdmin
- ? IODetails?.ioStatus?.statusAdmin
- : "---"}
-
-
+
+
+ IO MV
+
+
+ {/* {IODetails?.ioNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioNAV)) : "00.00"} */}
+ {parseFloat(IODetails?.ioNAV || 0).toLocaleString(undefined, {
+ minimumFractionDigits: 2,
+ maximumFractionDigits: 2,
+ })}
+
+
-
-
- IO MV
-
-
- {/* {IODetails?.ioNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioNAV)) : "00.00"} */}
- {parseFloat(IODetails?.ioNAV||0).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
-
-
-
-
-
- IO cash
-
-
- {/* {IODetails?.ioCash ? formatCurrency(removeTrailingZeros(IODetails?.ioCash)) : "00.00"} */}
- {parseFloat(IODetails?.ioCash||0).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
-
-
-
-
-
- IO NAV
-
-
- {/* {IODetails?.ioMVNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioMVNAV)) : "00.00"} */}
- {parseFloat(IODetails?.ioMVNAV||0).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}
-
-
+
+
+ IO cash
+
+
+ {/* {IODetails?.ioCash ? formatCurrency(removeTrailingZeros(IODetails?.ioCash)) : "00.00"} */}
+ {parseFloat(IODetails?.ioCash || 0).toLocaleString(undefined, {
+ minimumFractionDigits: 2,
+ maximumFractionDigits: 2,
+ })}
+
+
+
+
+ IO NAV
+
+
+ {/* {IODetails?.ioMVNAV ? formatCurrency(removeTrailingZeros(IODetails?.ioMVNAV)) : "00.00"} */}
+ {parseFloat(IODetails?.ioMVNAV || 0).toLocaleString(undefined, {
+ minimumFractionDigits: 2,
+ maximumFractionDigits: 2,
+ })}
+
+
apiTransactionTitles?.includes(item.id
Tansaction
- {filteredMenu?.map(({id, title, onClickFunction})=>)}
-
-
+ {filteredMenu?.map(({ id, title, onClickFunction }) => (
+
+ ))}
-
-
{/* Modals */}
-
+ {/* */}
+
+
+
apiTransactionTitles?.includes(item.id
onClose={onUpdateStatusClose}
/>
-
- :
-
+
+ ) : (
apiTransactionTitles?.includes(item.id
// bgGradient='linear(to-r, #ffd54f, #caf5d8)'
// bgGradient='linear(to-r, #caf5d8, #a8e6cf)'
boxShadow={"md"}
- >
+ >
+ {" "}
+
+
);
};
diff --git a/src/Pages/Investor_Management/InvestorDetails/InvestorDetails.jsx b/src/Pages/Investor_Management/InvestorDetails/InvestorDetails.jsx
index e785d4e..0dfd678 100644
--- a/src/Pages/Investor_Management/InvestorDetails/InvestorDetails.jsx
+++ b/src/Pages/Investor_Management/InvestorDetails/InvestorDetails.jsx
@@ -181,8 +181,8 @@ const InvestorDetails = () => {
),
"Investor Type": (
-
-
+
+
{item?.investor_type?.investorTypeName}
@@ -191,29 +191,30 @@ const InvestorDetails = () => {
Status: (
{item.ioStatus ? "Ban" : "Unban"}
),
"KYC Status": (
-
-
+
{item.KYCStatus ? "Completed" : "Not complete"}
-
+
),
Action: (
diff --git a/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx b/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx
index 6b22beb..bb4082a 100644
--- a/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx
+++ b/src/Pages/Master/ExchangeRate/EditExchangeRate.jsx
@@ -158,12 +158,12 @@ const EditExchangeRate = ({ id, setIsLoading }) => {
-
+ {/*
Last effective date
{formatDate(foundObject?.effectiveFrom)}
-
+ */}
Effective from
diff --git a/src/Services/Key.merits.service.js b/src/Services/Key.merits.service.js
index eab78ae..c90ff10 100644
--- a/src/Services/Key.merits.service.js
+++ b/src/Services/Key.merits.service.js
@@ -16,11 +16,27 @@ export const keyMerits = createApi({
providesTags: ["getKeyMerits"],
}),
+
+
+
+
+
+ setDisplayOrder: builder.mutation({
+ query: ({ data }) => ({
+ url: `/io/admin/key-merits/resetDisplayOrder`,
+ method: "PATCH",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
}),
});
// Export hooks for usage in functional components
export const {
useGetKeyMeritsQuery,
+ useSetDisplayOrderMutation
} =
keyMerits;
diff --git a/src/Services/io.service.js b/src/Services/io.service.js
index 0c6521c..f3b6a66 100644
--- a/src/Services/io.service.js
+++ b/src/Services/io.service.js
@@ -50,7 +50,7 @@ export const ioService = createApi({
method: "PATCH",
body: data,
}),
- invalidatesTags: ["getIOById", "getIO","prePopulate"],
+ invalidatesTags: ["getIOById", "getIO", "prePopulate"],
}),
// =====[Key Merits]
@@ -125,9 +125,6 @@ export const ioService = createApi({
providesTags: ["getArtifactsVideo"],
}),
-
-
-
// =====[createImageArtifacts]
createImageArtifacts: builder.mutation({
query: ({ data, id }) => ({
@@ -139,9 +136,6 @@ export const ioService = createApi({
invalidatesTags: ["getIOById"],
}),
-
-
-
updateImageArtifacts: builder.mutation({
query: ({ data, id }) => ({
url: `/io/admin/artifact/image/byId/${id}`,
@@ -151,9 +145,6 @@ export const ioService = createApi({
invalidatesTags: ["getIOById"],
}),
-
-
-
// =====[createVideoArtifacts]
createVideoArtifacts: builder.mutation({
query: ({ data, id }) => ({
@@ -190,14 +181,6 @@ export const ioService = createApi({
invalidatesTags: ["getIOById"],
}),
- setDisplayOrder: builder.mutation({
- query: ({ data }) => ({
- url: `/io/artifact/artifactImage/resetDisplayOrder/`,
- method: "PATCH",
- body: data,
- }),
- invalidatesTags: ["getIOById"],
- }),
updateStatusIo: builder.mutation({
query: ({ data, id }) => ({
@@ -205,7 +188,7 @@ export const ioService = createApi({
method: "POST",
body: data,
}),
- invalidatesTags: ["getIOById", 'getIO'],
+ invalidatesTags: ["getIOById", "getIO"],
}),
createIoCash: builder.mutation({
@@ -218,7 +201,6 @@ export const ioService = createApi({
invalidatesTags: ["getIOById"],
}),
-
createIoNav: builder.mutation({
query: ({ data, id }) => ({
url: `/io/admin/transaction/${id}/io-nav/`,
@@ -229,30 +211,95 @@ export const ioService = createApi({
invalidatesTags: ["getIOById"],
}),
-
-
// =====[ Amount Investment ] ======
- amountIvestment : builder.mutation({
+ amountIvestment: builder.mutation({
query: ({ data, id }) => ({
- url: `/io/admin/amount-invested/${id}`,
+ url: `/io/admin/transaction/${id}/amount-invested`,
+
method: "POST",
body: data,
}),
invalidatesTags: ["getIOById"],
}),
-
// ======== [ Distribution Transaction ] ========
-
- getDistributionInvestor : builder.mutation({
- query: ({id,data}) => ({
+ getDistributionInvestor: builder.mutation({
+ query: ({ id, data }) => ({
url: `/io/admin/transaction/${id}/calculate-distribution-amt`,
method: "POST",
body: data,
}),
invalidatesTags: ["getIOById"],
}),
+
+ getDistributedToInvestor: builder.mutation({
+ query: ({ id, data }) => ({
+ url: `/io/admin/transaction/${id}/distributed-to-investor`,
+ method: "POST",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
+
+ updateExitToInvestor: builder.mutation({
+ query: ({ id, data }) => ({
+ url: `/io/admin/transaction/${id}/exit`,
+ method: "POST",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
+
+// ==============[ Displaye Orders ]===============
+
+ setDisplayOrder: builder.mutation({
+ query: ({ data }) => ({
+ url: `/io/admin/key-merits/resetDisplayOrder`,
+ method: "PATCH",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+ setDisplayOrderIODocuments: builder.mutation({
+ query: ({ data }) => ({
+ url: `/io/admin/document/resetDisplayOrder`,
+ method: "PATCH",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
+ setDisplayOrderIOArtifactsImage: builder.mutation({
+ query: ({ data }) => ({
+ url: `/io/admin/artifact/image/resetDisplayOrder`,
+ method: "PATCH",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
+
+ setDisplayOrderIOArtifactsVideo: builder.mutation({
+ query: ({ data }) => ({
+ url: `/io/admin/artifact/video/resetDisplayOrder`,
+ method: "PATCH",
+ body: data,
+ }),
+ invalidatesTags: ["getIOById"],
+ }),
+
+
+
+
+
}),
});
@@ -283,19 +330,25 @@ export const {
useCreateVideoArtifactsMutation,
useDeleteVideoArtifactsMutation,
useDeleteImageArtifactsMutation,
- useSetDisplayOrderMutation,
+ useSetDisplayOrderMutation,
+ useSetDisplayOrderIODocumentsMutation,
+ useSetDisplayOrderIOArtifactsImageMutation,
+ useSetDisplayOrderIOArtifactsVideoMutation,
+
useCreateIoCashMutation,
useCreateIoNavMutation,
-
-
useUpdateStatusIoMutation,
-
useAmountIvestmentMutation,
-
useGetDistributionInvestorMutation,
+
+
+
+ useGetDistributedToInvestorMutation,
+ useUpdateExitToInvestorMutation,
+
} = ioService;