From 9176f2078f2f5a5e3751d88e0448e90041a910f3 Mon Sep 17 00:00:00 2001 From: siddheshmorewdi Date: Thu, 25 Jul 2024 12:26:18 +0530 Subject: [PATCH] updated --- src/Components/DataTable/DataTable.jsx | 1 + src/Components/FormField.jsx | 93 ++++++---- src/Components/FormInputMain.jsx | 2 +- src/Components/FormInputView.jsx | 124 +++++++++++-- src/Pages/IO_Management/CreateIO/CreateIO.jsx | 110 +++--------- .../IO_Management/CreateIO/IODetails.jsx | 163 ++++++++---------- .../CreateIO/InvestmentDocument.jsx | 96 +++++------ .../IO_Management/CreateIO/KeyMerits.jsx | 5 +- .../CreateIO/SetDisplayOrder.jsx | 1 - .../IO_Management/InvestmentDocuments.jsx | 7 +- src/Pages/IO_Management/KeyMeritsAdd.jsx | 1 - src/Pages/IO_Management/KeyMeritsEdit.jsx | 3 +- .../IO_Management/ViewIO/ViewIOdataHeader.jsx | 1 - .../IO_Management/ViewIO/ViewIOdetails.jsx | 36 ++-- .../InvestmentType/AddInvestmentType.jsx | 12 +- .../Master/InvestmentType/InvestmentType.jsx | 6 +- src/Pages/Master/Sponser/AddSponser.jsx | 4 +- src/Services/investment.documents.service.js | 6 + src/Services/investment.type.service.js | 4 +- src/Services/io.service.js | 14 +- 20 files changed, 370 insertions(+), 319 deletions(-) diff --git a/src/Components/DataTable/DataTable.jsx b/src/Components/DataTable/DataTable.jsx index e6286c2..2029a2c 100644 --- a/src/Components/DataTable/DataTable.jsx +++ b/src/Components/DataTable/DataTable.jsx @@ -129,6 +129,7 @@ const DataTable = ({ textOverflow: "ellipsis", }} className="web-text-small" + w={400} > {item[heading]} diff --git a/src/Components/FormField.jsx b/src/Components/FormField.jsx index 54a79b2..3e08e34 100644 --- a/src/Components/FormField.jsx +++ b/src/Components/FormField.jsx @@ -28,7 +28,6 @@ import { TiWarning } from "react-icons/ti"; import { motion } from "framer-motion"; import { AddIcon, CloseIcon } from "@chakra-ui/icons"; - const today = new Date().toISOString().split("T")[0]; const formatDate = (dateString) => { @@ -43,7 +42,6 @@ const defaultDate = "8/2/2024"; // Format the default date as YYYY-MM-DD const formattedDate = formatDate(defaultDate); -console.log(formattedDate); const FormField = ({ label, @@ -381,14 +379,35 @@ const FormField = ({ } else if (type === "table") { return ( - - - {value.map((item, index) => ( - + + {value?.map((item, index) => ( + ))} @@ -396,9 +415,9 @@ const FormField = ({ - {value.map((item, index) => ( + {value?.map((item, index) => ( ))} diff --git a/src/Components/FormInputMain.jsx b/src/Components/FormInputMain.jsx index ad1bd11..27aede6 100644 --- a/src/Components/FormInputMain.jsx +++ b/src/Components/FormInputMain.jsx @@ -56,7 +56,7 @@ const FormInputMain = ({ multiple, width, value, - handleInputChange + handleInputChange, }, key ) => ( diff --git a/src/Components/FormInputView.jsx b/src/Components/FormInputView.jsx index 380227b..bc3cee5 100644 --- a/src/Components/FormInputView.jsx +++ b/src/Components/FormInputView.jsx @@ -1,4 +1,4 @@ -import { Box, Button, Divider, FormLabel, Heading } from "@chakra-ui/react"; +import { Box, Button, Divider, FormLabel, Heading, Image, Input, InputGroup, InputRightAddon, Table, Tbody, Td, Th, Thead, Tr } from "@chakra-ui/react"; import React from "react"; const FormInputView = ({ @@ -9,7 +9,6 @@ const FormInputView = ({ onSubmit, children, }) => { - return ( {Object?.entries(groupedFields, groupedFieldsTwo).map( @@ -19,21 +18,112 @@ const FormInputView = ({ {section} {/* */} - - {fields.map(({ value, label, id, width, btn, arabic, type }, key) => ( - - - {label} - - {type==="number" ? value+" /-" : value } - - ))} - + + {fields.map( + ({ value, label, id, width, btn, arabic, type }, key) => + type === "table" ? ( +
- - - {item.country} +
+ + + {item.country === "United Arab Emirates" + ? "UAE" + : item.country}
- - - - - - handleInputChange(index, e.target.value) - } - border={"1px solid #e2e8f0"} - /> - {item?.curr} - + + + handleInputChange(index, e.target.value) + } + border={"1px solid #e2e8f0"} + /> + + {item?.curr} + +
+ + + {value?.map((item, index) => ( + + ))} + + + + + {value?.map((item, index) => ( + + ))} + + +
+ + + {item.country === "United Arab Emirates" + ? "UAE" + : item.country} + +
+ + + + {item?.curr} + + +
+ ) : ( + + + {label} + + + {type === "number" ? value : value} + + + ) + )} + {/* */} {index < Object.entries(groupedFields, groupedFieldsTwo).length - 1 && ( diff --git a/src/Pages/IO_Management/CreateIO/CreateIO.jsx b/src/Pages/IO_Management/CreateIO/CreateIO.jsx index ff77d8a..8381450 100644 --- a/src/Pages/IO_Management/CreateIO/CreateIO.jsx +++ b/src/Pages/IO_Management/CreateIO/CreateIO.jsx @@ -14,72 +14,13 @@ import InvestmentDocument from "./InvestmentDocument"; // Ensure this is the cor import ViewIOdataHeader from "../ViewIO/ViewIOdataHeader"; import { useParams } from "react-router-dom"; import FullscreenLoaders from "../../../Components/Loaders/FullscreenLoaders"; - -const schema = yup.object().shape({ - ioName: yup.string().required("IO name english is required"), - ioNameArabic: yup.string().required("IO name arabic is required"), - discription: yup.string().required("Discription in english is required"), - discriptionArabic: yup.string().required("Discription in Arabic is required"), - typeName: yup.string().required("Investment type in english is required"), - typeNameArabic: yup - .string() - .required("Investment type in arabic is required"), - sponserName: yup.string().required("Sponser name is required"), - sponserNameArabic: yup.string().required("Sponser name arabic is required"), - goalAmount: yup.string().required("Goal amount is required"), - - holdingPeriod: yup.string().required("Sponser name is required"), - ioStatus: yup.string().required("Investment Object name is required"), - ioStartusArabic: yup.string().required("Sponser name is required"), - closingDate: yup.string().required("Investment Object name is required"), - minInvestment: yup.string().required("Sponser name is required"), - maxInvestment: yup.string().required("Arabic name is required"), - expectedReturn: yup.string().required("Investment Object name is required"), - originalValue: yup.string().required("Sponser name is required"), - keyname: yup.string().required("Arabic name is required"), - keyNameArabic: yup.string().required("Investment Object name is required"), - keyDescription: yup.string().required("Sponser name is required"), - keyDescriptionArabic: yup.string().required("Sponser name is required"), - docType: yup.string().required("Sponser name is required"), - destributedAmount: yup - .number() - .required("Distributed Amount is required") - .positive("Must be a positive number"), - year: yup.string().required("Year is required"), - tenure: yup - .number() - .required("Tenure is required") - .positive("Must be a positive number"), - annualReturn: yup - .number() - .required("Annual Return is required") - .positive("Must be a positive number"), - miniInvest: yup - .number() - .required("Minimum Invest is required") - .positive("Must be a positive number"), - quaterly: yup.string().required("Quaterly is required"), - targetClose: yup.date().required("Target close date is required"), - annualyield: yup - .number() - .required("Annual Yield is required") - .positive("Must be a positive number"), - iconUpload: yup.mixed().required("Profile image is required"), - bannerImages: yup.mixed().required("Profile image is required"), - otherImage: yup.mixed().required("Profile image is required"), - docAttach: yup.mixed().required("Profile image is required"), - videos: yup.mixed().required("Profile image is required"), -}); +import { useGetIOprepopulateDataQuery } from "../../../Services/io.service"; const CreateIO = () => { const id = useParams()?.id; - const { - control, - handleSubmit, - formState: { errors }, - } = useForm({ - resolver: yupResolver(schema), - }); + const { data, error, isLoading } = useGetIOprepopulateDataQuery(); + + // console.log(data?.data); const enableNextTab = (index) => { setTabs((prevTabs) => { @@ -96,55 +37,55 @@ const CreateIO = () => { { label: "IO Details", Content: IODetails, - isDisabled: id ? false : false , + isDisabled: id ? false : false, }, { label: "Investment documents", Content: InvestmentDocument, - isDisabled: id ? false : true , + isDisabled: id ? false : true, }, { label: "Key merits", Content: KeyMerits, - isDisabled: id ? false : true , + isDisabled: id ? false : true, }, { label: "IO artifacts", Content: IOArtifacts, - isDisabled: id ? false : true , + isDisabled: id ? false : true, }, { label: "Investors", Content: Investors, - isDisabled: id ? false : false , + isDisabled: id ? false : false, }, { label: "IO Cash Details", Content: IOCashDetails, - isDisabled: id ? false : false , + isDisabled: id ? false : false, }, { label: "IO NAV Details", Content: IONAVDetails, - isDisabled: id ? false : false , + isDisabled: id ? false : false, }, ]; const [tabs, setTabs] = useState(initialTabsState); const [activeIndex, setActiveIndex] = useState(0); - const [isLoading, setIsLoading] = useState(true); - const onSubmit = (data) => { - data.preventDefault(); - enableNextTab(0); - }; - - - - - return ( - - + return isLoading ? ( + + ) : ( + + {/* navigate(-1)} style={{ fontSize: "15px", cursor: "pointer" }} @@ -177,10 +118,7 @@ const CreateIO = () => { {tabs.map(({ Content }, index) => ( - + ))} diff --git a/src/Pages/IO_Management/CreateIO/IODetails.jsx b/src/Pages/IO_Management/CreateIO/IODetails.jsx index ffa9ead..b775afe 100644 --- a/src/Pages/IO_Management/CreateIO/IODetails.jsx +++ b/src/Pages/IO_Management/CreateIO/IODetails.jsx @@ -15,15 +15,24 @@ import { useUpdateIOMutation, } from "../../../Services/io.service"; import ToastBox from "../../../Components/ToastBox"; -import { Input, Table, Tbody, Td, Th, Thead, Tr, useToast } from "@chakra-ui/react"; +import { + Input, + Table, + Tbody, + Td, + Th, + Thead, + Tr, + useToast, +} from "@chakra-ui/react"; import { formatDate } from "../../Master/Sponser/Sponsers"; -import behrain from "../../../assets/bahrain_flag.png" -import kuwait from "../../../assets/kuwait_flag.png" -import oman from "../../../assets/oman_flag.png" -import qatar from "../../../assets/qatar_flag.png" -import uae from "../../../assets/uae_flag.png" -import saudi from "../../../assets/saudi_arabia_flag.png" +import behrain from "../../../assets/bahrain_flag.png"; +import kuwait from "../../../assets/kuwait_flag.png"; +import oman from "../../../assets/oman_flag.png"; +import qatar from "../../../assets/qatar_flag.png"; +import uae from "../../../assets/uae_flag.png"; +import saudi from "../../../assets/saudi_arabia_flag.png"; const schema = yup.object().shape({ investmentNameEnglish: yup @@ -61,9 +70,7 @@ const schema = yup.object().shape({ .required("Closing date is required") .min(new Date(), "Closing date cannot be in the past"), - holdingPeriod: yup - .string() - .required("Holding period is required"), + holdingPeriod: yup.string().required("Holding period is required"), // minInvestmentAmount: yup // .number() @@ -85,52 +92,13 @@ const schema = yup.object().shape({ }); -const miniValue = [ - { - country: "Behrain", - value: 1220, - logo: behrain, - curr:"BHD" - }, - { - country: "Kuwait", - value: 1220, - logo: kuwait, - curr:"KWD" - }, - { - country: "Oman", - value: 1220, - logo: oman, - curr:"OMR" - }, - { - country: "Qatar", - value: 1220, - logo: qatar, - curr:"QAR" - }, - { - country: "Saudi Arabia", - value: 1220, - logo: saudi, - curr:"SAR" - }, - { - country: "UAE", - value: 1220, - logo: uae, - curr:"AED" - }, -] +const IODetails = ({ enableNextTab, index, data }) => { + -const IODetails = ({ enableNextTab, index }) => { const params = useParams(); const navigate = useNavigate(); const toast = useToast(); - const [values, setValues] = useState(miniValue); - console.log(values); const handleInputChange = (index, newValue) => { const updatedValues = [...values]; @@ -149,17 +117,7 @@ const IODetails = ({ enableNextTab, index }) => { useContext(GlobalStateContext); // ======================[ RTK Querry Api ] - const { - data: investmentTypes, - isLoading: investmentTypesLoading, - error, - } = useGetInvestmentTypesQuery({ page: 1, size: 10 }) - const { - data: activeSponsers, - isLoading: activeSponsersIsLoading, - error: activeSponsersError, - } = useGetActiveSponserMasterQuery(); const { data: IObyID, isLoading: IObyIDisLoading, @@ -168,9 +126,8 @@ const IODetails = ({ enableNextTab, index }) => { const [creatIO] = useCreateIOMutation(); const [updateIO] = useUpdateIOMutation(); - // ======================[ Selector filter ] - const investmentTypeOptions = investmentTypes?.data?.rows?.map( + const investmentTypeOptions = data?.investmentType.map( ({ investmentTypeName, id }) => { return { label: investmentTypeName, @@ -179,13 +136,39 @@ const IODetails = ({ enableNextTab, index }) => { } ); - const sponserNameOption = activeSponsers?.data?.map(({ sponsorName, id }) => { + const sponserNameOption = data?.sponsor?.map(({ sponsorName, id }) => { return { label: sponsorName, value: Number(id), }; }); + const miniValue = data?.country?.map( + ({ countryName, flagIcon, minInvestmentAmt, countryCode, id }, index) => { + return { + id:id, + country: countryName, + value: minInvestmentAmt, + logo: flagIcon, + curr: countryCode, + }; + } + ); + + const minInvestmentById = IObyID?.data?.minInvestmentAmt?.map(({minInvestmentAmt, country, country_xid})=>{ + return{ + id:country_xid, + country: country?.countryName, + value: minInvestmentAmt, + logo: country?.flagIcon, + curr: country?.countryCode, + } + }) + + + const [values, setValues] = useState(id?minInvestmentById:miniValue); + // console.log(values); + // ======================[ Validator filter ] const { control, @@ -198,7 +181,6 @@ const IODetails = ({ enableNextTab, index }) => { }); useEffect(() => { - setIODetails({ ...IObyID?.data, }); @@ -222,6 +204,10 @@ const IODetails = ({ enableNextTab, index }) => { } }, [id, IObyID]); + + + // const minInvestmentById = + //=======================[ Creator ] const formFields = [ { @@ -341,7 +327,6 @@ const IODetails = ({ enableNextTab, index }) => { value: IObyID?.data?.InvestmentDetails, }, - { label: "Minimum Investment", placeHolder: "Enter comment here", @@ -349,14 +334,13 @@ const IODetails = ({ enableNextTab, index }) => { type: "table", section: " ", width: "100%", - isRequired:true, + isRequired: true, options: investmentTypeOptions, type: "table", - handleInputChange:handleInputChange, + handleInputChange: handleInputChange, value: values, }, - { label: "Comment", placeHolder: "Enter comment here", @@ -522,43 +506,50 @@ const IODetails = ({ enableNextTab, index }) => { return groups; }, {}); - - const onSubmit = async (data) => { - setIsLoading(true) - console.log(data); + delete data.table; + setIsLoading(true); + // console.log(data); + const updatedMinAmount = values?.map(({id, value})=>{ + return { + country_xid:id, + minInvestmentAmt: Number(value) + } + }) const formData = { ...data, investmentType_xid: Number(data.investmentType), sponsor_xid: Number(data.sponserName), + minInvestmentAmt:updatedMinAmount }; - console.log(formData); + // console.log(formData); + // console.log(formData); if (id) { - const res = await updateIO({ data : formData, id }); + const res = await updateIO({ data: formData, id }); console.log(res); - if (res?.error?.status === 400 || res?.error?.status===500 ) { - setIsLoading(false) + if (res?.error?.status === 400 || res?.error?.status === 500) { + setIsLoading(false); toast({ render: () => ( ), }); - + navigate(`/view-io/${id}`); - setIsLoading(false) + setIsLoading(false); } - + navigate(`/view-io/${id}`); - setIsLoading(false) + setIsLoading(false); } else { try { const res = await creatIO(formData); console.log(res); if (res?.data?.statusCode === 200) { - setIsLoading(false) + setIsLoading(false); toast({ render: () => , }); @@ -566,13 +557,13 @@ const IODetails = ({ enableNextTab, index }) => { enableNextTab(index); } } catch (error) { - setIsLoading(false) + setIsLoading(false); console.log(error); } } - + // ========================== // if (params?.id) { // return enableNextTab(index); // } @@ -591,7 +582,6 @@ const IODetails = ({ enableNextTab, index }) => { return IObyIDisLoading ? ( ) : ( - { onSubmit={handleSubmit(onSubmit)} btnLoading={isLoading} submitTitle={id ? "Update" : "Submit"} - > - + > ); }; diff --git a/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx b/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx index 5dc8f76..a95480b 100644 --- a/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx +++ b/src/Pages/IO_Management/CreateIO/InvestmentDocument.jsx @@ -26,12 +26,14 @@ import { GrDocumentPdf } from "react-icons/gr"; import { AiOutlineFileGif, AiOutlineFileWord } from "react-icons/ai"; import InvestmentView from "../ViewIO/InvestmentView"; import InvestmentEdit from "../EditIO/InvestmentEdit"; -import { useDeleteIODocsMutation, useGetInvestmentDocumentsQuery } from "../../../Services/io.service"; +import { + useDeleteIODocsMutation, + useGetInvestmentDocumentsQuery, +} from "../../../Services/io.service"; import ToastBox from "../../../Components/ToastBox"; import { getFileNameFromPath } from "../../../Constants/Constants"; import { TbFileTypeDocx } from "react-icons/tb"; - const downloadFile = (filePath, fileName) => { console.log("https://admin.tanami.betadelivery.com/" + filePath); @@ -69,10 +71,9 @@ const downloadFile = (filePath, fileName) => { }); }; - const InvestmentDocument = ({ control, errors, enableNextTab, index }) => { - const params = useParams() - const id = params?.id + const params = useParams(); + const id = params?.id; const { slideFromRight, create, setCreate } = useContext(GlobalStateContext); const firstField = useRef(); const secondField = useRef(); @@ -97,32 +98,15 @@ const InvestmentDocument = ({ control, errors, enableNextTab, index }) => { const navigate = useNavigate(); const toast = useToast(); - - const [ deleteIODocs] = useDeleteIODocsMutation() - -console.log(id); - + const [deleteIODocs] = useDeleteIODocsMutation(); const { data, error, - isLoading : isIODocLoading - } = useGetInvestmentDocumentsQuery(id) - - - console.log(error); - - console.log(data?.data); - - - - - - - - - - + isLoading: isIODocLoading, + } = useGetInvestmentDocumentsQuery(id, { + skip: !id, + }); const tableHeadRow = ["Sr.no", "Type", "File Name", "Document", "Action"]; @@ -155,35 +139,30 @@ console.log(id); onEditOpen(); }; - const handleDelete = async () => { - setIsLoading(true) + setIsLoading(true); try { - const res = await deleteIODocs(actionId) - if (res?.data?.statusCode === 200) { - toast({ - render: () => ( - - ), - }); - setIsLoading(false) - setDeleteAlert(false) - }else if(res?.error) { - - toast({ - render: () => ( - - ), - }); - setIsLoading(false) - setDeleteAlert(false) - } + const res = await deleteIODocs(actionId); + if (res?.data?.statusCode === 200) { + toast({ + render: () => , + }); + setIsLoading(false); + setDeleteAlert(false); + } else if (res?.error) { + toast({ + render: () => ( + + ), + }); + setIsLoading(false); + setDeleteAlert(false); + } } catch (error) { console.log(error); - } - } - + }; + const extractedArray = filteredData?.map((item, index) => ({ "Sr.no": ( - {item.documentType === "application/pdf" ? : } + {item.documentType === "application/pdf" ? ( + + ) : ( + + )} ), "File Name": ( @@ -277,7 +260,7 @@ console.log(id); color="blue.400" rounded="sm" size="xs" - onClick={()=>downloadFile(item?.documentPath, item?.documentName)} + onClick={() => downloadFile(item?.documentPath, item?.documentName)} > @@ -307,8 +290,6 @@ console.log(id); ), })); - - return ( @@ -328,11 +309,12 @@ console.log(id); size="sm" fontSize="xs" rounded="sm" - colorScheme="forestGreen" + colorScheme="forestGreen" > Add Document - { // =====================[ variables ] const id = params?.id; - const { data, isLoading, error } = useGetKeyMeritsQuery(id); + const { data, isLoading, error } = useGetKeyMeritsQuery(id, { + skip: !id, + }); - console.log(data?.data); const { keyMerits, setKeyMerits, slideFromRight } = useContext(GlobalStateContext); diff --git a/src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx b/src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx index defb2d5..1a8ceb5 100644 --- a/src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx +++ b/src/Pages/IO_Management/CreateIO/SetDisplayOrder.jsx @@ -62,7 +62,6 @@ const SetDisplayOrder = ({data,}) => { ), }))) - console.log(extractedArray); diff --git a/src/Pages/IO_Management/InvestmentDocuments.jsx b/src/Pages/IO_Management/InvestmentDocuments.jsx index e68b29b..bab1490 100644 --- a/src/Pages/IO_Management/InvestmentDocuments.jsx +++ b/src/Pages/IO_Management/InvestmentDocuments.jsx @@ -67,6 +67,7 @@ const InvestmentDocuments = ({ firstField, create, setCreate, + data }) => { const toast = useToast(); const params = useParams(); @@ -78,12 +79,17 @@ const InvestmentDocuments = ({ // =====================[ variables ] const id = params?.id; + const filterObject = data?.find((item)=> item?.id === id) + + console.log(filterObject); // =====================[ RTK Api calls ] const [createInvestmentDocument] = useCreateInvestmentDocumentsMutation(); const navigate = useNavigate(); + console.log(data); + const { register, handleSubmit, @@ -93,7 +99,6 @@ const InvestmentDocuments = ({ resolver: yupResolver(investmentDocSchema), }); - console.log(errors); const onSubmit = async (data) => { console.log("sibmited"); diff --git a/src/Pages/IO_Management/KeyMeritsAdd.jsx b/src/Pages/IO_Management/KeyMeritsAdd.jsx index 3bf0b2c..3ac2bc6 100644 --- a/src/Pages/IO_Management/KeyMeritsAdd.jsx +++ b/src/Pages/IO_Management/KeyMeritsAdd.jsx @@ -109,7 +109,6 @@ const KeyMeritsAdd = ({ isOpen, onClose, firstField, id }) => { } }; - console.log(file); return ( <> diff --git a/src/Pages/IO_Management/KeyMeritsEdit.jsx b/src/Pages/IO_Management/KeyMeritsEdit.jsx index 9b864ea..861919a 100644 --- a/src/Pages/IO_Management/KeyMeritsEdit.jsx +++ b/src/Pages/IO_Management/KeyMeritsEdit.jsx @@ -30,14 +30,13 @@ const keyMeritsSchema = yup.object().shape({ }); const KeyMeritsEdit = ({ isOpen, onClose, firstField, id, actionId, data }) => { - console.log(actionId); + const toast = useToast() const [alert, setAlert] = useState(false); const [isLoading, setIsLoading] = useState(false); const [ editKeyMerits ] = useUpdateKeyMeritsMutation() const found = data?.find((item)=> item?.id === actionId) - console.log(found); const { control, diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx index 877341e..a50aa08 100644 --- a/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx +++ b/src/Pages/IO_Management/ViewIO/ViewIOdataHeader.jsx @@ -46,7 +46,6 @@ const ViewIOdataHeader = () => { const { isOpen, onOpen, onClose } = useDisclosure(); const btnRef = useRef(); const { IODetails } = useContext(GlobalStateContext); - console.log(IODetails); const { isOpen: isInvestmentOpen, diff --git a/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx b/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx index 7161bd0..58754e2 100644 --- a/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx +++ b/src/Pages/IO_Management/ViewIO/ViewIOdetails.jsx @@ -119,6 +119,16 @@ const ViewIOdetails = () => { }, [id, IObyID]); console.log(IObyID); + const minInvestmentById = IObyID?.data?.minInvestmentAmt?.map(({minInvestmentAmt, country, id})=>{ + return{ + id:id, + country: country?.countryName, + value: minInvestmentAmt, + logo: country?.flagIcon, + curr: country?.countryCode, + } + }) + //=======================[ Editor ] const formFields = [ { @@ -233,19 +243,7 @@ const ViewIOdetails = () => { : "---", section: " ", width: "32.3%", - }, - { - label: "Minimum Investment Amount", - placeHolder: "$00.00", - name: "minInvestmentAmount", - value: IObyID?.data?.minInvestmentAmount - ? IObyID?.data?.minInvestmentAmount - : "---", - type: "number", - isRequired: true, - section: " ", - width: "32.3%", - }, + }, { label: "ISIN", placeHolder: "$00.00", @@ -266,6 +264,18 @@ const ViewIOdetails = () => { section: " ", width: "32.3%", }, + + { + label: "Minimum Investment", + placeHolder: "Enter comment here", + name: "table", + type: "table", + section: " ", + width: "100%", + isRequired: true, + type: "table", + value: minInvestmentById, + }, { label: "Comment", diff --git a/src/Pages/Master/InvestmentType/AddInvestmentType.jsx b/src/Pages/Master/InvestmentType/AddInvestmentType.jsx index b0b47d5..27f9462 100644 --- a/src/Pages/Master/InvestmentType/AddInvestmentType.jsx +++ b/src/Pages/Master/InvestmentType/AddInvestmentType.jsx @@ -176,13 +176,13 @@ const AddInvestmentType = () => { type: "text", isRequired: true, section: "Add Details", - isArabic: true, + arabic: true, }, { label: "Description (English)", placeHolder: " ", name: "note", - type: "text", + type: "textarea", isRequired: true, section: "Add Details", }, @@ -190,9 +190,9 @@ const AddInvestmentType = () => { label: "Description (Arabic)", placeHolder: " ", name: "noteArabic", - type: "text", + type: "textarea", isRequired: true, - isArabic: true, + arabic: true, section: "Add Details", }, ]; @@ -215,7 +215,7 @@ const AddInvestmentType = () => { type: "text", isRequired: true, section: "Add Details", - isArabic: true, + arabic: true, }, { label: "Description (English)", @@ -231,7 +231,7 @@ const AddInvestmentType = () => { name: "noteArabic", type: "text", isRequired: true, - isArabic: true, + arabic: true, section: "Add Details", }, ]; diff --git a/src/Pages/Master/InvestmentType/InvestmentType.jsx b/src/Pages/Master/InvestmentType/InvestmentType.jsx index cde187e..fc21760 100644 --- a/src/Pages/Master/InvestmentType/InvestmentType.jsx +++ b/src/Pages/Master/InvestmentType/InvestmentType.jsx @@ -9,7 +9,7 @@ import CustomAlertDialog from "../../../Components/CustomAlertDialog"; import ToastBox from "../../../Components/ToastBox"; import { debounce } from "./AddInvestmentType"; import DataTable from "../../../Components/DataTable/DataTable"; -import {useDeleteInvestmentTypeMutation,useGetInvestmentTypesQuery,} from "../../../Services/investment.type.service"; +import {useDeleteInvestmentTypeMutation, useGetInvestmentTypesQuery,} from "../../../Services/investment.type.service"; const formatDate = (date) => new Date(date).toLocaleDateString(); // Simple date formatter @@ -94,11 +94,9 @@ const InvestmentType = () => { ), Description: ( - - + {item.note} - ), Status: ( diff --git a/src/Pages/Master/Sponser/AddSponser.jsx b/src/Pages/Master/Sponser/AddSponser.jsx index 97af839..5ef6c70 100644 --- a/src/Pages/Master/Sponser/AddSponser.jsx +++ b/src/Pages/Master/Sponser/AddSponser.jsx @@ -164,7 +164,7 @@ const AddSponser = () => { type: "text", isRequired: true, section: "Add Details", - isArabic: true, + arabic: true, right: true, }, { @@ -195,7 +195,7 @@ const AddSponser = () => { type: "text", isRequired: true, section: "Add Details", - isArabic: true, + arabic: true, }, { label: "Email adress", diff --git a/src/Services/investment.documents.service.js b/src/Services/investment.documents.service.js index d373502..0086219 100644 --- a/src/Services/investment.documents.service.js +++ b/src/Services/investment.documents.service.js @@ -8,12 +8,18 @@ export const ioService = createApi({ reducerPath: "ioService", baseQuery: fetchBaseQuery({ baseUrl }), tagTypes: ["getInvestmentDocuments"], + + + endpoints: (builder) => ({ // =====[get] getInvestmentDocuments: builder.query({ query: ({id}) => `/io/admin/document/${id}`, providesTags: ["getInvestmentDocuments"], }), + + + diff --git a/src/Services/investment.type.service.js b/src/Services/investment.type.service.js index 11638f1..0f0a2ef 100644 --- a/src/Services/investment.type.service.js +++ b/src/Services/investment.type.service.js @@ -23,7 +23,7 @@ export const investmentType = createApi({ getInvestmentTypeById: builder.query({ query: (id) => `/investmentType/admin/${id}`, - providesTags: ["getInvestmentType"], + invalidatesTags: ["getInvestmentType"], }), // ========[Create Investment]======== @@ -55,7 +55,7 @@ export const investmentType = createApi({ url: `/investmentType/admin/delete/${id}`, method: "DELETE", }), - invalidatesTags: ["getSponser"], + invalidatesTags: ["getInvestmentType"], }), }), diff --git a/src/Services/io.service.js b/src/Services/io.service.js index b70a2bd..5df578b 100644 --- a/src/Services/io.service.js +++ b/src/Services/io.service.js @@ -7,11 +7,19 @@ const baseUrl = api?.defaults.baseURL; export const ioService = createApi({ reducerPath: "ioService", baseQuery: fetchBaseQuery({ baseUrl }), - tagTypes: ["getIO", "getKeyMerits", "getArtifacts", "getInvestmentDocuments"], + tagTypes: ["prePopulate","getIO", "getKeyMerits", "getArtifacts", "getInvestmentDocuments"], endpoints: (builder) => ({ + // =====[get prepopulate data] + getIOprepopulateData: builder.query({ + query: () => `/io/admin/pre-populate`, + providesTags: ["prePopulate"], + }), + + + // =====[get] getIOs: builder.query({ query: ({ page, size }) => `/io/admin?page=${page}&size=${size}`, @@ -130,6 +138,10 @@ export const ioService = createApi({ // Export hooks for usage in functional components export const { + useGetIOprepopulateDataQuery, + + + useGetIOsQuery, useGetIOByIdQuery, useCreateIOMutation ,