@@ -68,7 +68,7 @@ export default function EditProspektusInvestasi({
Tidak ada file
)}
-
+ {/* */}
>
);
diff --git a/src/app_modules/investasi/fun/fun_delete_investasi.ts b/src/app_modules/investasi/fun/fun_delete_investasi.ts
new file mode 100644
index 00000000..8a5efc44
--- /dev/null
+++ b/src/app_modules/investasi/fun/fun_delete_investasi.ts
@@ -0,0 +1,26 @@
+"use server";
+
+import prisma from "@/app/lib/prisma";
+import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import { revalidatePath } from "next/cache";
+
+export default async function funDeleteInvestasi(id: string) {
+ const res = await prisma.investasi.delete({
+ where: {
+ id: id,
+ },
+ });
+
+ if (!res) return { status: 400, message: "Gagal Hapus Data" };
+
+
+ revalidatePath(RouterInvestasi.portofolio)
+ revalidatePath(RouterAdminInvestasi.main_investasi)
+
+
+ return {
+ status: 200,
+ message: "Berhasil Hapus",
+ };
+}
diff --git a/src/app_modules/investasi/fun/fun_ganti_status.ts b/src/app_modules/investasi/fun/fun_ganti_status.ts
index 092c6af0..7fec9998 100644
--- a/src/app_modules/investasi/fun/fun_ganti_status.ts
+++ b/src/app_modules/investasi/fun/fun_ganti_status.ts
@@ -2,6 +2,7 @@
import prisma from "@/app/lib/prisma";
import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
import { revalidatePath } from "next/cache";
export default async function funGantiStatusInvestasi(id: string, val: string) {
@@ -16,7 +17,7 @@ export default async function funGantiStatusInvestasi(id: string, val: string) {
if(!data) return {status: 400}
- revalidatePath("/dev/investasi/main/portofolio")
+ revalidatePath(RouterInvestasi.portofolio)
revalidatePath(RouterAdminInvestasi.main_investasi)
return {
diff --git a/src/app_modules/investasi/fun/get_investasi_by_id.ts b/src/app_modules/investasi/fun/get_investasi_by_id.ts
index e05ac8a8..513754a7 100644
--- a/src/app_modules/investasi/fun/get_investasi_by_id.ts
+++ b/src/app_modules/investasi/fun/get_investasi_by_id.ts
@@ -2,9 +2,13 @@
import prisma from "@/app/lib/prisma";
-export default async function getInvestasiById(id: string) {
+export default async function getInvestasiByStatusId(
+ id: string,
+) {
const data = await prisma.user.findUnique({
- where: { id: id },
+ where: {
+ id: id,
+ },
select: {
Investasi: {
select: {
diff --git a/src/app_modules/investasi/fun/get_list_all_investasi.ts b/src/app_modules/investasi/fun/get_list_all_investasi.ts
deleted file mode 100644
index b5b72cea..00000000
--- a/src/app_modules/investasi/fun/get_list_all_investasi.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-"use server";
-
-import prisma from "@/app/lib/prisma";
-
-export async function getListAllInvestasi() {
- const data = await prisma.investasi.findMany({
- orderBy: {
- createdAt: "desc"
- }
- });
-
- return data;
-}
diff --git a/src/app_modules/investasi/fun/get_list_all_publish.ts b/src/app_modules/investasi/fun/get_list_all_publish.ts
new file mode 100644
index 00000000..57d9e0cc
--- /dev/null
+++ b/src/app_modules/investasi/fun/get_list_all_publish.ts
@@ -0,0 +1,44 @@
+"use server";
+
+import prisma from "@/app/lib/prisma";
+
+export async function getListAllPublish() {
+ const data = await prisma.investasi.findMany({
+ orderBy: {
+ updatedAt: "desc",
+ },
+ where: {
+ MasterStatusInvestasi: {
+ name: {
+ equals: "Publish",
+ },
+ },
+ AND: {
+ active: true
+ }
+ },
+ select: {
+ id: true,
+ title: true,
+ authorId: true,
+ hargaLembar: true,
+ targetDana: true,
+ totalLembar: true,
+ roi: true,
+ active: true,
+ createdAt: true,
+ updatedAt: true,
+ imagesId: true,
+ MasterStatusInvestasi: true,
+ BeritaInvestasi: true,
+ DokumenInvestasi: true,
+ ProspektusInvestasi: true,
+ MasterPembagianDeviden: true,
+ MasterPencarianInvestor: true,
+ MasterPeriodeDeviden: true,
+ SahamTerbeli: true,
+ },
+ });
+
+ return data;
+}
diff --git a/src/app_modules/investasi/fun/get_one_investasi_by_id.ts b/src/app_modules/investasi/fun/get_one_investasi_by_id.ts
index 79ee49e1..1d76e214 100644
--- a/src/app_modules/investasi/fun/get_one_investasi_by_id.ts
+++ b/src/app_modules/investasi/fun/get_one_investasi_by_id.ts
@@ -16,6 +16,9 @@ export default async function getOneInvestasiById(id: string) {
totalLembar: true,
roi: true,
active: true,
+ createdAt: true,
+ updatedAt: true,
+ catatan: true,
imagesId: true,
MasterStatusInvestasi: true,
BeritaInvestasi: true,
diff --git a/src/app_modules/investasi/fun/get_porto_status_by_id.ts b/src/app_modules/investasi/fun/get_porto_status_by_id.ts
new file mode 100644
index 00000000..8d1040ad
--- /dev/null
+++ b/src/app_modules/investasi/fun/get_porto_status_by_id.ts
@@ -0,0 +1,104 @@
+"use server";
+
+import prisma from "@/app/lib/prisma";
+
+export default async function getPortoByStatusId(id: string, statusId: number) {
+ // Draft
+ if (statusId === 1) {
+ const data = await prisma.investasi.findMany({
+ orderBy: {
+ updatedAt: "desc",
+ },
+ where: {
+ authorId: id,
+ MasterStatusInvestasi: {
+ name: "Draft",
+ },
+ },
+ select: {
+ id: true,
+ title: true,
+ imagesId: true,
+ // hargaLembar: true,
+ // targetDana: true,
+ // totalLembar: true,
+ // roi: true,
+ // active: true,
+ // MasterStatusInvestasi: true,
+ // BeritaInvestasi: true,
+ // DokumenInvestasi: true,
+ // ProspektusInvestasi: true,
+ // MasterPembagianDeviden: true,
+ // MasterPencarianInvestor: true,
+ // MasterPeriodeDeviden: true,
+ // SahamTerbeli: true,
+ },
+ });
+ return data;
+ }
+
+ // Review
+ if (statusId === 2) {
+ const data = await prisma.investasi.findMany({
+ orderBy: {
+ createdAt: "desc",
+ },
+ where: {
+ authorId: id,
+ MasterStatusInvestasi: {
+ name: "Review",
+ },
+ },
+ select: {
+ id: true,
+ title: true,
+ imagesId: true,
+ },
+ });
+ return data;
+ }
+
+ // Publish
+ if (statusId === 3) {
+ const data = await prisma.investasi.findMany({
+ orderBy: {
+ updatedAt: "desc",
+ },
+ where: {
+ authorId: id,
+ MasterStatusInvestasi: {
+ name: "Publish",
+ },
+ },
+ select: {
+ id: true,
+ title: true,
+ imagesId: true,
+ updatedAt: true,
+ MasterPencarianInvestor: true,
+ },
+ });
+ return data;
+ }
+
+ // Reject
+ if (statusId === 4) {
+ const data = await prisma.investasi.findMany({
+ orderBy: {
+ updatedAt: "desc",
+ },
+ where: {
+ authorId: id,
+ MasterStatusInvestasi: {
+ name: "Reject",
+ },
+ },
+ select: {
+ id: true,
+ title: true,
+ imagesId: true,
+ },
+ });
+ return data;
+ }
+}
diff --git a/src/app_modules/investasi/main/view.tsx b/src/app_modules/investasi/main/view.tsx
index 1837830d..48348d70 100644
--- a/src/app_modules/investasi/main/view.tsx
+++ b/src/app_modules/investasi/main/view.tsx
@@ -10,10 +10,12 @@ import {
Card,
CardSection,
Divider,
+ Flex,
Grid,
Group,
Image,
Paper,
+ Progress,
Slider,
Stack,
Text,
@@ -24,6 +26,8 @@ import dataDummy from "../dummy/data_dummy.json";
import moment from "moment";
import { IconCheck, IconCircleCheck } from "@tabler/icons-react";
import { MODEL_Investasi } from "../model/model_investasi";
+import _ from "lodash";
+import { useState } from "react";
export default function MainInvestasi({
listData,
@@ -31,17 +35,19 @@ export default function MainInvestasi({
periodeDeviden,
pembagianDeviden,
}: {
- listData: MODEL_Investasi[]
+ listData: MODEL_Investasi[];
pencarianInvestor: MODEL_DEFAULT_MASTER[];
periodeDeviden: MODEL_DEFAULT_MASTER[];
pembagianDeviden: MODEL_DEFAULT_MASTER[];
}) {
const router = useRouter();
+ const [investasi, setInvestasi] = useState(listData);
return (
<>
{/* {JSON.stringify(listData, null, 2)} */}
- {dataDummy.map((e) => (
+
+ {investasi.map((e) => (
+ {/* Progress dan titlr */}
-
+
{e.title}
-
-
+
+
@@ -102,9 +103,9 @@ export default function MainInvestasi({
-
+
- {e.saham_beli === 0 ? (
+ {e.SahamTerbeli === null ? (
""
) : (
@@ -112,9 +113,10 @@ export default function MainInvestasi({
)}
+
{(() => {
if (
- e.masterPencarianInvestorId -
+ Number(e.MasterPencarianInvestor.name) -
moment(new Date()).diff(new Date(e.createdAt), "days") <=
0
) {
@@ -132,9 +134,9 @@ export default function MainInvestasi({
Sisa waktu:
- {e.masterPencarianInvestorId -
+ {Number(e.MasterPencarianInvestor.name) -
moment(new Date()).diff(
- new Date(e.createdAt),
+ new Date(e.updatedAt),
"days"
)}
@@ -144,7 +146,7 @@ export default function MainInvestasi({
);
}
})()}
-
+
))}
diff --git a/src/app_modules/investasi/portofolio/draft.tsx b/src/app_modules/investasi/portofolio/draft.tsx
new file mode 100644
index 00000000..a44650fb
--- /dev/null
+++ b/src/app_modules/investasi/portofolio/draft.tsx
@@ -0,0 +1,61 @@
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import {
+ Card,
+ CardSection,
+ AspectRatio,
+ Box,
+ Title,
+ Divider,
+ Group,
+ Badge,
+ Image,
+ Text,
+ Center,
+} from "@mantine/core";
+import { useRouter } from "next/navigation";
+import { MODEL_Investasi } from "../model/model_investasi";
+import _ from "lodash";
+
+export default function Draft({ data }: { data: MODEL_Investasi[] }) {
+ const router = useRouter();
+
+ return (
+ <>
+ {/* {JSON.stringify(data,null, 2)} */}
+ {data.map((e) =>
+
+ router.push(RouterInvestasi.detail_draft + `${e.id}`)
+ }
+ >
+
+
+
+
+
+
+
+
+ {e.title}
+
+
+
+
+
+
+ Draft
+
+
+
+
+ )}
+ >
+ );
+}
diff --git a/src/app_modules/investasi/portofolio/publish.tsx b/src/app_modules/investasi/portofolio/publish.tsx
new file mode 100644
index 00000000..49c3af55
--- /dev/null
+++ b/src/app_modules/investasi/portofolio/publish.tsx
@@ -0,0 +1,96 @@
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import {
+ Card,
+ CardSection,
+ AspectRatio,
+ Box,
+ Title,
+ Slider,
+ Divider,
+ Group,
+ Badge,
+ Image,
+ Text,
+ Center,
+} from "@mantine/core";
+import { useRouter } from "next/navigation";
+import {
+ MODEL_Investasi,
+ MODEL_Status_investasi,
+} from "../model/model_investasi";
+import _ from "lodash";
+import moment from "moment";
+import { useState } from "react";
+import { IconCircleCheck } from "@tabler/icons-react";
+
+export default function Publish({ data }: { data: MODEL_Investasi[] }) {
+ const router = useRouter();
+ const [sisaWaktu, setSisaWaktu] = useState();
+ if (_.isEmpty(data))
+ return (
+ <>
+ Tidak ada Publish
+ >
+ );
+
+ return (
+ <>
+ {data.map((e) => (
+
+ router.push(RouterInvestasi.detail_publish + `${e.id}`)
+ }
+ >
+
+
+
+
+
+
+
+
+ {e.title}
+ {/* */}
+
+
+
+
+ {Number(e.MasterPencarianInvestor.name) -
+ moment(new Date()).diff(new Date(e.updatedAt), "days") <=
+ 0 ? (
+
+
+ Selesai
+
+ ) : (
+
+
+ Publish
+
+
+ Sisa Waktu :{" "}
+ {Number(e.MasterPencarianInvestor.name) -
+ moment(new Date()).diff(new Date(e.updatedAt), "days")}{" "}
+ hari
+
+
+ )}
+
+
+ ))}
+ >
+ );
+}
diff --git a/src/app_modules/investasi/portofolio/reject.tsx b/src/app_modules/investasi/portofolio/reject.tsx
new file mode 100644
index 00000000..c057650e
--- /dev/null
+++ b/src/app_modules/investasi/portofolio/reject.tsx
@@ -0,0 +1,71 @@
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import {
+ Card,
+ CardSection,
+ AspectRatio,
+ Box,
+ Title,
+ Divider,
+ Group,
+ Badge,
+ Image,
+ Text,
+ Center,
+} from "@mantine/core";
+import { useRouter } from "next/navigation";
+import {
+ MODEL_Investasi,
+ MODEL_Status_investasi,
+} from "../model/model_investasi";
+import { useState } from "react";
+import _ from "lodash";
+
+export default function Reject({ data }: { data: MODEL_Investasi[] }) {
+ const [investasi, setInvestasi] = useState(data);
+ const router = useRouter();
+
+ if (_.isEmpty(data))
+ return (
+ <>
+ Tidak ada Reject
+ >
+ );
+
+ return (
+ <>
+
+ {investasi.map((e) => (
+ router.push(RouterInvestasi.detail_reject + `${e.id}`)}
+ >
+
+
+
+
+
+
+
+
+ {e.title}
+
+
+
+
+
+
+ Reject
+
+
+
+
+ ))}
+ >
+ );
+}
diff --git a/src/app_modules/investasi/portofolio/review.tsx b/src/app_modules/investasi/portofolio/review.tsx
new file mode 100644
index 00000000..bc58bb6d
--- /dev/null
+++ b/src/app_modules/investasi/portofolio/review.tsx
@@ -0,0 +1,67 @@
+import { RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
+import {
+ Card,
+ CardSection,
+ AspectRatio,
+ Box,
+ Title,
+ Divider,
+ Group,
+ Badge,
+ Image,
+ Center,
+ Text,
+} from "@mantine/core";
+import { useRouter } from "next/navigation";
+import {
+ MODEL_Status_investasi,
+ MODEL_Investasi,
+} from "../model/model_investasi";
+import _ from "lodash";
+
+export default function Review({ data }: { data: MODEL_Investasi[] }) {
+ const router = useRouter();
+
+ if (_.isEmpty(data))
+ return (
+ <>
+ Tidak ada Review
+ >
+ );
+ return (
+ <>
+ {data.map((e) => (
+ router.push(RouterInvestasi.detail_review + `${e.id}`)}
+ >
+
+
+
+
+
+
+
+
+ {e.title}
+
+
+
+
+
+
+ Review
+
+
+
+
+ ))}
+ >
+ );
+}
diff --git a/src/app_modules/investasi/portofolio/view.tsx b/src/app_modules/investasi/portofolio/view.tsx
index f57cbd2d..ded43286 100644
--- a/src/app_modules/investasi/portofolio/view.tsx
+++ b/src/app_modules/investasi/portofolio/view.tsx
@@ -47,18 +47,26 @@ import {
MODEL_Status_investasi,
} from "../model/model_investasi";
import _ from "lodash";
+import Draft from "./draft";
+import Review from "./review";
+import Publish from "./publish";
+import Reject from "./reject";
export default function PortofolioInvestasi({
- dataInvestasi,
listStatusInvestasi,
+ dataDraft,
+ dataReview,
+ dataPublish,
+ dataReject,
}: {
- dataInvestasi: any
listStatusInvestasi: any;
+ dataDraft: any;
+ dataReview: any;
+ dataPublish: any;
+ dataReject: any;
}) {
const router = useRouter();
const [activeTab, setActiveTab] = useAtom(gs_StatusPortoInvestasi);
-
- const [investasi, setInvestasi] = useState(dataInvestasi);
const [status_inves, setStatus_inves] =
useState(listStatusInvestasi);
@@ -85,190 +93,18 @@ export default function PortofolioInvestasi({
-
+
-
+
-
+
-
+
>
);
}
-
-function Draft({ data }: { data: MODEL_Investasi[] }) {
- const router = useRouter();
- return (
- <>
- {data.map((e) =>
- e.MasterStatusInvestasi.id === "1" ? (
-
- router.push(RouterInvestasi.detail_draft + `${e.id}`)
- }
- >
-
-
-
-
-
-
-
-
- {e.title}
-
-
-
-
-
-
- Draft
-
-
-
-
- ) : (
- ""
- )
- )}
- >
- );
-}
-
-function Review({
- status,
- data,
-}: {
- status: MODEL_Status_investasi;
- data: MODEL_Investasi[];
-}) {
- const router = useRouter();
- return (
- <>
- {data.map((e) =>
- e.MasterStatusInvestasi.id === "2" ? (
- router.push(RouterInvestasi.detail_review + `${e.id}`)}
- >
-
-
-
-
-
-
-
-
- {e.title}
-
-
-
-
-
-
- Review
-
-
-
-
- ) : (
- ""
- )
- )}
- >
- );
-}
-
-function Publish({ status }: { status: MODEL_Status_investasi }) {
- const router = useRouter();
- return (
- <>
- router.push(RouterInvestasi.detail_publish)}
- >
-
-
-
-
-
-
-
-
- Judul Investasi
-
-
-
-
-
-
-
- {status.name}
-
- Sisa Waktu : 30 Hari
-
-
-
- >
- );
-}
-
-function Reject({ status }: { status: MODEL_Status_investasi }) {
- const router = useRouter();
- return (
- <>
- router.push(RouterInvestasi.detail_reject)}
- >
-
-
-
-
-
-
-
-
- Judul Investasi
-
-
-
-
-
-
- {status.name}
-
-
-
-
- >
- );
-}