diff --git a/src/app/dev/admin/investasi/main/page.tsx b/src/app/dev/admin/investasi/main/page.tsx
index caffdf70..fdeee026 100644
--- a/src/app/dev/admin/investasi/main/page.tsx
+++ b/src/app/dev/admin/investasi/main/page.tsx
@@ -1,7 +1,7 @@
import { Admin_Investasi } from "@/app_modules/admin/investasi";
import Admin_CountStatusInvestasi from "@/app_modules/admin/investasi/fun/count_status";
import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi";
-import Admin_getTargetTerbesarInvestasi from "@/app_modules/admin/investasi/fun/get_target_terbesar";
+import Admin_getPublishProgresInvestasi from "@/app_modules/admin/investasi/fun/get_publish_progres";
import Admin_getTotalInvestasiByUser from "@/app_modules/admin/investasi/fun/get_total_investasi_by_user";
export default async function Page() {
@@ -11,8 +11,8 @@ export default async function Page() {
const countPublish = await Admin_CountStatusInvestasi(3);
const countReject = await Admin_CountStatusInvestasi(4);
const totalInvestasiByUser = await Admin_getTotalInvestasiByUser()
- const targetTerbesar = await Admin_getTargetTerbesarInvestasi()
- // console.log(totalInvestasi)
+ const publishProgres = await Admin_getPublishProgresInvestasi()
+ // console.log(targetTerbesar)
return (
<>
@@ -23,6 +23,7 @@ export default async function Page() {
countPublish={countPublish}
countReject={countReject}
totalInvestasiByUser={totalInvestasiByUser}
+ publishProgres={publishProgres}
/>
{/*
{JSON.stringify(totalInvestasiByUser, null,2)} */}
diff --git a/src/app/dev/admin/investasi/table_status/publish/page.tsx b/src/app/dev/admin/investasi/table_status/publish/page.tsx
new file mode 100644
index 00000000..1d9f989c
--- /dev/null
+++ b/src/app/dev/admin/investasi/table_status/publish/page.tsx
@@ -0,0 +1,10 @@
+import { Admin_TablePublishInvestasi } from "@/app_modules/admin/investasi";
+import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi";
+
+export default async function Page() {
+ const listInvestasi = await Admin_funGetAllInvestasi();
+
+ return<>
+
+ >
+}
\ No newline at end of file
diff --git a/src/app/dev/admin/investasi/table_status/reject/page.tsx b/src/app/dev/admin/investasi/table_status/reject/page.tsx
new file mode 100644
index 00000000..55092f60
--- /dev/null
+++ b/src/app/dev/admin/investasi/table_status/reject/page.tsx
@@ -0,0 +1,10 @@
+import { Admin_TableRejectInvestasi } from "@/app_modules/admin/investasi";
+import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi";
+
+export default async function Page() {
+ const dataInvestsi = await Admin_funGetAllInvestasi()
+ return <>
+
+
+ >
+}
\ No newline at end of file
diff --git a/src/app/dev/admin/investasi/table_status/review/page.tsx b/src/app/dev/admin/investasi/table_status/review/page.tsx
new file mode 100644
index 00000000..350245f7
--- /dev/null
+++ b/src/app/dev/admin/investasi/table_status/review/page.tsx
@@ -0,0 +1,9 @@
+import { Admin_TableReviewInvestasi } from "@/app_modules/admin/investasi";
+import Admin_funGetAllInvestasi from "@/app_modules/admin/investasi/fun/get_all_investasi";
+
+export default async function Page() {
+ const dataInvestsi = await Admin_funGetAllInvestasi()
+ return <>
+
+ >
+}
\ No newline at end of file
diff --git a/src/app/lib/router_hipmi/router_admin.ts b/src/app/lib/router_hipmi/router_admin.ts
index d249b221..a34b4710 100644
--- a/src/app/lib/router_hipmi/router_admin.ts
+++ b/src/app/lib/router_hipmi/router_admin.ts
@@ -8,7 +8,10 @@ export const RouterAdminInvestasi = {
halaman_aksi: "/dev/admin/investasi/halaman_aksi/",
konfirmasi: "/dev/admin/investasi/konfirmasi/",
bukti_transfer: "/dev/admin/investasi/bukti_transfer",
- status_transfer: "/dev/admin/investasi/status_transfer"
+ status_transfer: "/dev/admin/investasi/status_transfer",
+ table_status_publish: "/dev/admin/investasi/table_status/publish",
+ table_status_review: "/dev/admin/investasi/table_status/review",
+ table_status_reject: "/dev/admin/investasi/table_status/reject",
};
export const RouterAdminAward = {
diff --git a/src/app_modules/admin/investasi/fun/get_all_investasi.ts b/src/app_modules/admin/investasi/fun/get_all_investasi.ts
index 9f0945e1..69504d5c 100644
--- a/src/app_modules/admin/investasi/fun/get_all_investasi.ts
+++ b/src/app_modules/admin/investasi/fun/get_all_investasi.ts
@@ -1,36 +1,39 @@
-"use server"
+"use server";
-import prisma from "@/app/lib/prisma"
+import prisma from "@/app/lib/prisma";
export default async function Admin_funGetAllInvestasi() {
- const res = await prisma.investasi.findMany({
- where: {
- MasterStatusInvestasi: {
- name: {
- not: "Draft"
- }
- }
+ const res = await prisma.investasi.findMany({
+ where: {
+ MasterStatusInvestasi: {
+ name: {
+ not: "Draft",
},
- select: {
- id: true,
- title: true,
- authorId: true,
- hargaLembar: true,
- targetDana: true,
- totalLembar: true,
- roi: true,
- active: true,
- imagesId: true,
- catatan: true,
- MasterStatusInvestasi: true,
- BeritaInvestasi: true,
- DokumenInvestasi: true,
- ProspektusInvestasi: true,
- MasterPembagianDeviden: true,
- MasterPencarianInvestor: true,
- MasterPeriodeDeviden: true,
- },
- })
- // console.log(res)
- return res
-}
\ No newline at end of file
+ },
+ },
+ select: {
+ id: true,
+ title: true,
+ authorId: true,
+ hargaLembar: true,
+ targetDana: true,
+ totalLembar: true,
+ roi: true,
+ active: true,
+ imagesId: true,
+ catatan: true,
+ MasterStatusInvestasi: true,
+ BeritaInvestasi: true,
+ DokumenInvestasi: true,
+ ProspektusInvestasi: true,
+ MasterPembagianDeviden: true,
+ MasterPencarianInvestor: true,
+ MasterPeriodeDeviden: true,
+ author: true,
+ progress: true,
+ sisaLembar: true
+ },
+ });
+ // console.log(res)
+ return res;
+}
diff --git a/src/app_modules/admin/investasi/fun/get_target_terbesar.ts b/src/app_modules/admin/investasi/fun/get_publish_progres.ts
similarity index 50%
rename from src/app_modules/admin/investasi/fun/get_target_terbesar.ts
rename to src/app_modules/admin/investasi/fun/get_publish_progres.ts
index 1409ce07..d920aa62 100644
--- a/src/app_modules/admin/investasi/fun/get_target_terbesar.ts
+++ b/src/app_modules/admin/investasi/fun/get_publish_progres.ts
@@ -3,20 +3,31 @@
import prisma from "@/app/lib/prisma";
import _ from "lodash";
-export default async function Admin_getTargetTerbesarInvestasi() {
+export default async function Admin_getPublishProgresInvestasi() {
const data = await prisma.investasi.findMany({
orderBy: {
- targetDana: "desc",
+ updatedAt: "desc"
},
+ where: {
+ MasterStatusInvestasi: {
+ name: "Publish",
+ },
+ },
+
select: {
+ id: true,
+
author: {
select: {
username: true,
},
},
+ updatedAt: true,
targetDana: true,
+ progress: true,
},
});
-// console.log(data)
+ // console.log(data)
+ return data;
}
diff --git a/src/app_modules/admin/investasi/index.tsx b/src/app_modules/admin/investasi/index.tsx
index 79fc0b57..1bd2d83e 100644
--- a/src/app_modules/admin/investasi/index.tsx
+++ b/src/app_modules/admin/investasi/index.tsx
@@ -7,6 +7,9 @@ import Admin_BuktiTransferInvestasi from "./bukti_transfer/view";
import Admin_LayoutBuktiTransferInvestasi from "./bukti_transfer/layout";
import Admin_StatusTransferInvesatasi from "./status_transfer/view";
import Admin_LayoutStatusTransferInvesatasi from "./status_transfer/layout";
+import Admin_TableReviewInvestasi from "./main/table_review";
+import Admin_TablePublishInvestasi from "./main/table_publish";
+import Admin_TableRejectInvestasi from "./main/table_reject";
export {
Admin_Investasi,
@@ -18,4 +21,7 @@ export {
Admin_LayoutBuktiTransferInvestasi,
Admin_StatusTransferInvesatasi,
Admin_LayoutStatusTransferInvesatasi,
+ Admin_TablePublishInvestasi,
+ Admin_TableReviewInvestasi,
+ Admin_TableRejectInvestasi,
};
diff --git a/src/app_modules/admin/investasi/konfirmasi/view.tsx b/src/app_modules/admin/investasi/konfirmasi/view.tsx
index f9ab4c1d..2b3d7559 100644
--- a/src/app_modules/admin/investasi/konfirmasi/view.tsx
+++ b/src/app_modules/admin/investasi/konfirmasi/view.tsx
@@ -51,8 +51,12 @@ import _ from "lodash";
import Link from "next/link";
import { useRouter } from "next/navigation";
import { useState } from "react";
-import toast from "react-simple-toasts";
+import toast, { toastConfig } from "react-simple-toasts";
import Admin_funRejectInvestasi from "../fun/fun_reject_investasi";
+import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
+import "react-simple-toasts/dist/theme/dark.css";
+
+toastConfig({ theme: "dark" });
export default function Admin_KonfirmasiInvestasi({
dataInvestasi,
@@ -101,13 +105,14 @@ export default function Admin_KonfirmasiInvestasi({
async function onReject() {
const body = {
id: investasi.id,
- catatan: catatan,
+ catatan: investasi.catatan,
status: "4",
};
if (_.isEmpty(body.catatan)) return toast("Lengkapi alasan");
await Admin_funRejectInvestasi(body).then((res) => {
if (res.status === 200) {
toast(res.message);
+ router.back()
toggle();
} else {
toast(res.message);
@@ -116,9 +121,13 @@ export default function Admin_KonfirmasiInvestasi({
}
async function onPublish() {
- const res = await funGantiStatusInvestasi(investasi.id, "3");
- setTimeout(() => setPublish(false), 1000);
- toast("Proyek Investasi Di Publish");
+ await funGantiStatusInvestasi(investasi.id, "3").then((res) => {
+ if (res.status === 200) {
+ setTimeout(() => setPublish(false), 1000);
+ router.push(RouterAdminInvestasi.table_status_review);
+ toast("Proyek Investasi Di Publish");
+ }
+ });
}
return (
@@ -146,6 +155,18 @@ export default function Admin_KonfirmasiInvestasi({
{!publish || investasi.MasterStatusInvestasi.id === "4" ? (
""
) : (
+ // }
+ // bg={"orange"}
+ // color="orange"
+ // onClick={() => {
+ // setTimeout(() => setPublish(true), 1000);
+ // toast("Proyek Investasi Di Non-Aktifkan");
+ // }}
+ // >
+ // Non - aktifkan
+ //
- // }
- // bg={"orange"}
- // color="orange"
- // onClick={() => {
- // setTimeout(() => setPublish(true), 1000);
- // toast("Proyek Investasi Di Non-Aktifkan");
- // }}
- // >
- // Non - aktifkan
- //
)}
{investasi.MasterStatusInvestasi.id === "3" ? (
@@ -191,7 +200,7 @@ export default function Admin_KonfirmasiInvestasi({
-
+
{/* Title */}
@@ -209,17 +218,27 @@ export default function Admin_KonfirmasiInvestasi({
{/* Rincian Data */}
-
-
+
+
Dana Dibutuhkan
- Rp. {investasi.targetDana}
+
+ Rp.{" "}
+ {new Intl.NumberFormat("id-ID", {
+ maximumFractionDigits: 10,
+ }).format(+investasi.targetDana)}
+
Harga Per Lembar
- Rp.{investasi.hargaLembar}
+
+ Rp.{" "}
+ {new Intl.NumberFormat("id-ID", {
+ maximumFractionDigits: 10,
+ }).format(+investasi.hargaLembar)}{" "}
+
Jadwal Pembagian
@@ -239,7 +258,13 @@ export default function Admin_KonfirmasiInvestasi({
Total Lembar
- {investasi.totalLembar} lembar
+
+ {" "}
+ {new Intl.NumberFormat("id-ID", {
+ maximumFractionDigits: 10,
+ }).format(+investasi.totalLembar)}{" "}
+ lembar
+
Pembagian Deviden
@@ -249,11 +274,14 @@ export default function Admin_KonfirmasiInvestasi({
+
- {/* Note dan dokumen */}
-
-
- {/* Note */}
+
+
+ {/* Note */}
+ {!publish || investasi.MasterStatusInvestasi.id === "4" ? (
+ ""
+ ) : (
Note :
@@ -263,6 +291,11 @@ export default function Admin_KonfirmasiInvestasi({
kekurangnya.
+ )}
+
+ {/* Note dan dokumen */}
+
+
{/* File file */}
{/* Prospektus */}
@@ -336,7 +369,13 @@ export default function Admin_KonfirmasiInvestasi({
autosize
minRows={2}
maxRows={4}
- onChange={(val) => setCatatan(val.target.value)}
+ value={investasi.catatan === null ? [] : investasi.catatan}
+ onChange={(val) =>
+ setInvestasi({
+ ...investasi,
+ catatan: val.target.value
+ })
+ }
/>
>
);
}
diff --git a/src/app_modules/admin/investasi/main/table_reject.tsx b/src/app_modules/admin/investasi/main/table_reject.tsx
index eb4f1979..f1508b37 100644
--- a/src/app_modules/admin/investasi/main/table_reject.tsx
+++ b/src/app_modules/admin/investasi/main/table_reject.tsx
@@ -1,3 +1,4 @@
+"use client";
import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi";
import {
@@ -7,12 +8,18 @@ import {
ScrollArea,
Table,
Tooltip,
+ Stack,
+ Center,
+ Avatar,
+ Group,
+ Text,
} from "@mantine/core";
-import { IconEdit } from "@tabler/icons-react";
+import { IconChevronLeft, IconEdit } from "@tabler/icons-react";
+import _ from "lodash";
import { useRouter } from "next/navigation";
import { useState } from "react";
-export default function TableReject({
+export default function Admin_TableRejectInvestasi({
dataInvestsi,
}: {
dataInvestsi: MODEL_Investasi[];
@@ -23,28 +30,27 @@ export default function TableReject({
const tableBody = investasi.map((e) =>
e.MasterStatusInvestasi.id === "4" ? (
- | {e.title} |
- {e.MasterStatusInvestasi.id === "4" ? (
-
- {e.MasterStatusInvestasi.name}
-
- ) : (
- "-"
- )}
+
+
+ {e.author.username}
+
|
+ {_.capitalize(e.title)} |
{e.catatan} |
-
-
- router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`)
- }
- >
-
-
-
+
+
+
+ router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`)
+ }
+ >
+
+
+
+
|
) : (
@@ -54,24 +60,36 @@ export default function TableReject({
return (
<>
-
-
-
- Reject
-
-
-
-
- | Nama Proyek Investasi |
- Status |
- Catatan |
- Aksi |
-
-
- {tableBody}
-
-
-
+
+ router.back()}>
+
+
+
+
+
+ Reject
+
+
+
+
+ | Username |
+ Nama Proyek Investasi |
+ Catatan |
+
+ Aksi
+ |
+
+
+ {tableBody}
+
+
+
+
>
);
}
diff --git a/src/app_modules/admin/investasi/main/table_review.tsx b/src/app_modules/admin/investasi/main/table_review.tsx
index 15511339..5fa0382f 100644
--- a/src/app_modules/admin/investasi/main/table_review.tsx
+++ b/src/app_modules/admin/investasi/main/table_review.tsx
@@ -1,3 +1,4 @@
+"use client";
import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin";
import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi";
import {
@@ -7,12 +8,17 @@ import {
ScrollArea,
Table,
Tooltip,
+ Stack,
+ Group,
+ Avatar,
+ Text,
+ Center,
} from "@mantine/core";
-import { IconEdit } from "@tabler/icons-react";
+import { IconChevronLeft, IconEdit } from "@tabler/icons-react";
import { useRouter } from "next/navigation";
import { useState } from "react";
-export default function TableReview({
+export default function Admin_TableReviewInvestasi({
dataInvestsi,
}: {
dataInvestsi: MODEL_Investasi[];
@@ -23,17 +29,28 @@ export default function TableReview({
const tableBody = investasi.map((e) =>
e.MasterStatusInvestasi.id === "2" ? (
- | {e.title} |
- {e.MasterStatusInvestasi.id === "2" ? (
-
- {e.MasterStatusInvestasi.name}
-
- ) : (
- "-"
- )}
+
+
+ {e.author.username}
+
|
+ {e.title}
+ |
+
+
+ {e.ProspektusInvestasi === null ? (
+ Unavailable
+ ) : (
+
+ Available
+
+ )}
+
+ |
+
+
-
+
+
|
) : (
@@ -52,23 +70,29 @@ export default function TableReview({
);
return (
<>
-
-
-
- Review
-
-
-
-
- | Nama Proyek Investasi |
- Status |
- Aksi |
-
-
- {tableBody}
-
-
-
+
+ router.back()}>
+
+
+
+
+
+ Review
+
+
+
+
+ | Username |
+ Nama Proyek Investasi |
+ File Prospektus |
+ Aksi |
+
+
+ {tableBody}
+
+
+
+
>
);
}
diff --git a/src/app_modules/admin/investasi/main/table_total_investasi.tsx b/src/app_modules/admin/investasi/main/table_total_investasi.tsx
new file mode 100644
index 00000000..2fee444e
--- /dev/null
+++ b/src/app_modules/admin/investasi/main/table_total_investasi.tsx
@@ -0,0 +1,61 @@
+"use client";
+
+import {
+ Paper,
+ Stack,
+ Center,
+ Title,
+ Table,
+ Group,
+ Avatar,
+} from "@mantine/core";
+
+export default function TableTotalInvestasi({
+ totalInvestasiByUser,
+}: {
+ totalInvestasiByUser: any[];
+}) {
+ return (
+ <>
+
+
+
+ Total Investasi Pengguna
+
+
+
+
+ |
+ Username
+ |
+
+ Total
+ |
+
+
+
+ {totalInvestasiByUser.map((e) => (
+
+ |
+
+ {e.username}
+
+ |
+
+ {e._count.Investasi}
+ |
+
+ ))}
+
+
+
+
+ >
+ );
+}
diff --git a/src/app_modules/admin/investasi/main/view.tsx b/src/app_modules/admin/investasi/main/view.tsx
index 39736a75..d5477276 100644
--- a/src/app_modules/admin/investasi/main/view.tsx
+++ b/src/app_modules/admin/investasi/main/view.tsx
@@ -18,12 +18,25 @@ import {
Text,
Title,
} from "@mantine/core";
-import { IconEdit } from "@tabler/icons-react";
+import {
+ IconArrowBadgeRight,
+ IconArrowBigRightLine,
+ IconArrowsMaximize,
+ IconCaretRight,
+ IconChevronsDownRight,
+ IconChevronsRight,
+ IconEdit,
+ IconZoomCheck,
+} from "@tabler/icons-react";
import { useRouter } from "next/navigation";
import { useState } from "react";
-import TablePublish from "./table_publish";
-import TableReview from "./table_review";
-import TableReject from "./table_reject";
+import Admin_TablePublishInvestasi from "./table_publish";
+import Admin_TableReviewInvestasi from "./table_review";
+import Admin_TableRejectInvestasi from "./table_reject";
+import moment from "moment";
+import _ from "lodash";
+import TableTotalInvestasi from "./table_total_investasi";
+import TablePublikasiProgresInvestasi from "./table_publikasi_progres";
export default function Admin_Investasi({
listInvestasi,
@@ -32,6 +45,7 @@ export default function Admin_Investasi({
countPublish,
countReject,
totalInvestasiByUser,
+ publishProgres,
}: {
listInvestasi: MODEL_Investasi[];
countDraft: number | any;
@@ -39,6 +53,7 @@ export default function Admin_Investasi({
countPublish: number | any;
countReject: number | any;
totalInvestasiByUser: any[];
+ publishProgres: any[];
}) {
const [investasi, setInvestasi] = useState(listInvestasi);
const router = useRouter();
@@ -48,84 +63,81 @@ export default function Admin_Investasi({
id: 1,
name: "Draft",
jumlah: countDraft,
- color: "yellow"
+ link: "",
+ color: "yellow",
},
{
id: 2,
name: "Review",
jumlah: countReview,
- color: "orange"
-
+ link: RouterAdminInvestasi.table_status_review,
+ color: "orange",
},
{
id: 3,
name: "Publish",
jumlah: countPublish,
- color: "green"
-
+ link: RouterAdminInvestasi.table_status_publish,
+ color: "green",
},
{
id: 4,
name: "Reject",
jumlah: countReject,
- color: "red"
-
+ link: RouterAdminInvestasi.table_status_reject,
+ color: "red",
},
];
return (
<>
- Investasi
-
-
- {listBox.map((e) => (
-
-
-
-
- {e.name}
-
-
- {e.jumlah}
-
-
+
+ Investasi
+
+ {/* Status box */}
+
+ {listBox.map((e) => (
+
+
+
+ {e.name}
+
+ {e.jumlah}
+
-
-
-
- ))}
-
+
+ {e.link === "" ? (
+
+ {/* */}
+
+ ) : (
+ router.push(e.link)}>
+
+
+ )}
+
+
+
+ ))}
+
+
+ {/* Table Total & Progres */}
+
+
+
+
+
+
+
+
+
-
-
- Total Investasi Per User
-
-
-
- | Username |
- Total |
-
-
-
- {totalInvestasiByUser.map((e) => (
-
- | {e.username} |
- {e._count.Investasi} |
-
- ))}
-
-
-
-
{/*
*/}
- {/* {JSON.stringify(totalInvestasiByUser, null, 2)} */}
+ {/* {JSON.stringify(targetTerbesar, null, 2)} */}
>
);
}
diff --git a/src/app_modules/investasi/model/model_investasi.ts b/src/app_modules/investasi/model/model_investasi.ts
index c6896e15..2290ccb9 100644
--- a/src/app_modules/investasi/model/model_investasi.ts
+++ b/src/app_modules/investasi/model/model_investasi.ts
@@ -26,6 +26,7 @@ export interface MODEL_Investasi {
masterPeriodeDevidenId: string;
masterPembagianDevidenId: string;
masterPencarianInvestorId: string;
+ author: MODEL_User_profile
}
export interface MODEL_Transaksi_Investasi {