From 265a8699461a993abc5d1a2072e2cb6a612b6119 Mon Sep 17 00:00:00 2001 From: Bagasbanuna02 Date: Tue, 5 Dec 2023 17:09:07 +0800 Subject: [PATCH] Revisi Admin Investasi # fix: - Perbaharui tampilan ### No issue --- src/app/dev/admin/investasi/main/page.tsx | 7 +- .../investasi/table_status/publish/page.tsx | 10 ++ .../investasi/table_status/reject/page.tsx | 10 ++ .../investasi/table_status/review/page.tsx | 9 ++ src/app/lib/router_hipmi/router_admin.ts | 5 +- .../admin/investasi/fun/get_all_investasi.ts | 67 +++++----- ...get_terbesar.ts => get_publish_progres.ts} | 17 ++- src/app_modules/admin/investasi/index.tsx | 6 + .../admin/investasi/konfirmasi/view.tsx | 95 +++++++++---- .../main/table_publikasi_progres.tsx | 75 +++++++++++ .../admin/investasi/main/table_publish.tsx | 115 +++++++++++----- .../admin/investasi/main/table_reject.tsx | 94 +++++++------ .../admin/investasi/main/table_review.tsx | 80 +++++++---- .../investasi/main/table_total_investasi.tsx | 61 +++++++++ src/app_modules/admin/investasi/main/view.tsx | 126 ++++++++++-------- .../investasi/model/model_investasi.ts | 1 + 16 files changed, 551 insertions(+), 227 deletions(-) create mode 100644 src/app/dev/admin/investasi/table_status/publish/page.tsx create mode 100644 src/app/dev/admin/investasi/table_status/reject/page.tsx create mode 100644 src/app/dev/admin/investasi/table_status/review/page.tsx rename src/app_modules/admin/investasi/fun/{get_target_terbesar.ts => get_publish_progres.ts} (50%) create mode 100644 src/app_modules/admin/investasi/main/table_publikasi_progres.tsx create mode 100644 src/app_modules/admin/investasi/main/table_total_investasi.tsx 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" ? ( "" ) : ( + // - // )} {investasi.MasterStatusInvestasi.id === "3" ? ( @@ -191,7 +200,7 @@ export default function Admin_KonfirmasiInvestasi({ - + {/* Title */}
@@ -209,17 +218,27 @@ export default function Admin_KonfirmasiInvestasi({ </Grid.Col> {/* Rincian Data */} - <Grid.Col span={4}> - <Grid p={"md"} mb={"md"}> + <Grid.Col span={6}> + <Grid mt={"md"}> <Grid.Col span={6}> <Stack> <Box> <Text>Dana Dibutuhkan</Text> - <Text>Rp. {investasi.targetDana}</Text> + <Text> + Rp.{" "} + {new Intl.NumberFormat("id-ID", { + maximumFractionDigits: 10, + }).format(+investasi.targetDana)} + </Text> </Box> <Box> <Text>Harga Per Lembar</Text> - <Text>Rp.{investasi.hargaLembar} </Text> + <Text> + Rp.{" "} + {new Intl.NumberFormat("id-ID", { + maximumFractionDigits: 10, + }).format(+investasi.hargaLembar)}{" "} + </Text> </Box> <Box> <Text>Jadwal Pembagian</Text> @@ -239,7 +258,13 @@ export default function Admin_KonfirmasiInvestasi({ </Box> <Box> <Text>Total Lembar</Text> - <Text> {investasi.totalLembar} lembar</Text> + <Text> + {" "} + {new Intl.NumberFormat("id-ID", { + maximumFractionDigits: 10, + }).format(+investasi.totalLembar)}{" "} + lembar + </Text> </Box> <Box> <Text>Pembagian Deviden</Text> @@ -249,11 +274,14 @@ export default function Admin_KonfirmasiInvestasi({ </Grid.Col> </Grid> </Grid.Col> + </Grid> - {/* Note dan dokumen */} - <Grid.Col span={4}> - <Stack> - {/* Note */} + <Grid> + <Grid.Col span={6}> + {/* Note */} + {!publish || investasi.MasterStatusInvestasi.id === "4" ? ( + "" + ) : ( <Stack spacing={0}> <Text fw={"bold"}>Note :</Text> <Text fw={"lighter"} fs={"italic"}> @@ -263,6 +291,11 @@ export default function Admin_KonfirmasiInvestasi({ kekurangnya. </Text> </Stack> + )} + </Grid.Col> + {/* Note dan dokumen */} + <Grid.Col span={6}> + <Stack> {/* File file */} <Stack> {/* 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 + }) + } /> <Group position="right"> <Button radius={50} compact onClick={() => onReject()}> diff --git a/src/app_modules/admin/investasi/main/table_publikasi_progres.tsx b/src/app_modules/admin/investasi/main/table_publikasi_progres.tsx new file mode 100644 index 00000000..c50d29c1 --- /dev/null +++ b/src/app_modules/admin/investasi/main/table_publikasi_progres.tsx @@ -0,0 +1,75 @@ +"use client"; + +import { + Paper, + Stack, + Center, + Title, + Table, + Group, + Avatar, +} from "@mantine/core"; +import _ from "lodash"; +import moment from "moment"; + +export default function TablePublikasiProgresInvestasi({ + publishProgres, +}: { + publishProgres: any[]; +}) { + return ( + <> + <Paper + radius={"md"} + bg={"gray.4"} + p={"sm"} + // sx={{ borderStyle: "solid", borderColor: "teal" }} + > + <Stack spacing={"xl"}> + <Center> + <Title order={4}>Publikasi & Progres Investasi +
+ + + + + + + + + + + {_.isEmpty(publishProgres) + ? [] + : publishProgres.map((e) => ( + + + + + + + ))} + +
+
Username
+
+
Publis
+
+
Progres
+
+ + {" "} + {e.author.username} + + +
+ {moment(e.updatedAt).format("DD MMM YYYY")}{" "} +
+
+
{e.progress} %
+
+
+ + + ); +} diff --git a/src/app_modules/admin/investasi/main/table_publish.tsx b/src/app_modules/admin/investasi/main/table_publish.tsx index f4fbf1ab..a2c6168f 100644 --- a/src/app_modules/admin/investasi/main/table_publish.tsx +++ b/src/app_modules/admin/investasi/main/table_publish.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,13 +8,18 @@ import { ScrollArea, Table, Tooltip, + Stack, + Avatar, + Group, + Text, + Center, } from "@mantine/core"; -import { IconEyeCheck } from "@tabler/icons-react"; +import { IconChevronLeft, IconEyeCheck } from "@tabler/icons-react"; import { IconEdit, IconEye } from "@tabler/icons-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; -export default function TablePublish({ +export default function Admin_TablePublishInvestasi({ dataInvestsi, }: { dataInvestsi: MODEL_Investasi[]; @@ -21,30 +27,41 @@ export default function TablePublish({ const [investasi, setInvestasi] = useState(dataInvestsi); const router = useRouter(); + // console.log(investasi); + const tableBody = investasi.map((e) => e.MasterStatusInvestasi.id === "3" ? ( + + + + {e.author.username} + + {e.title} - {e.MasterStatusInvestasi.id === "3" ? ( - - {e.MasterStatusInvestasi.name} - - ) : ( - "-" - )} +
{e.progress} %
- - - router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`) - } - > - - - +
{new Intl.NumberFormat("id-ID", {maximumFractionDigits: 10}).format(+e.sisaLembar)}
+ + +
{new Intl.NumberFormat("id-ID", {maximumFractionDigits: 10}).format(+e.totalLembar)}
+ + + +
+ + + router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`) + } + > + + + +
) : ( @@ -54,26 +71,50 @@ export default function TablePublish({ return ( <> - - - {/* + <Stack> + <ActionIcon + variant="outline" + onClick={() => router.push(RouterAdminInvestasi.main_investasi)} + > + <IconChevronLeft /> + </ActionIcon> + <Box> + <ScrollArea w={"100%"}> + {/* <Title order={5} mb={5}> List Publish */} - - Publish - - - - - - - - - - {tableBody} -
Nama Proyek InvestasiStatusAksi
-
-
+ + Publish + + + + + + + + + + + + + {tableBody} +
UsernameNama Proyek Investasi +
Progres
+
+
Sisa Saham
+
+
Total Saham
+
+
Aksi
+
+ + + ); } 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 - - - - - - - - - - - {tableBody} -
Nama Proyek InvestasiStatusCatatanAksi
-
-
+ + router.back()}> + + + + + + Reject + + + + + + + + + + + {tableBody} +
UsernameNama Proyek InvestasiCatatan +
Aksi
+
+
+
+
); } 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 - - - - - - - - - - {tableBody} -
Nama Proyek InvestasiStatusAksi
-
-
+ + router.back()}> + + + + + + Review + + + + + + + + + + + {tableBody} +
UsernameNama Proyek Investasi
File Prospektus
Aksi
+
+
+
); } 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 +
+ + + + + + + + + {totalInvestasiByUser.map((e) => ( + + + + + ))} + +
+
Username
+
+
Total
+
+ + {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 - - - - - - - - - {totalInvestasiByUser.map((e) => ( - - - - - ))} - -
Username
Total
{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 {