diff --git a/src/app/dev/admin/main/award/page.tsx b/src/app/dev/admin/award/main/page.tsx similarity index 100% rename from src/app/dev/admin/main/award/page.tsx rename to src/app/dev/admin/award/main/page.tsx diff --git a/src/app/dev/admin/investasi/konfirmasi/[id]/layout.tsx b/src/app/dev/admin/investasi/konfirmasi/[id]/layout.tsx deleted file mode 100644 index 182eb300..00000000 --- a/src/app/dev/admin/investasi/konfirmasi/[id]/layout.tsx +++ /dev/null @@ -1,17 +0,0 @@ - -import { Admin_LayoutKonfirmasiInvestasi } from "@/app_modules/admin/investasi"; -import React from "react"; - -export default async function Layout({ - children, -}: { - children: React.ReactNode; -}) { - return ( - <> - - {children} - - > - ); -} diff --git a/src/app/dev/admin/main/investasi/page.tsx b/src/app/dev/admin/investasi/main/page.tsx similarity index 100% rename from src/app/dev/admin/main/investasi/page.tsx rename to src/app/dev/admin/investasi/main/page.tsx diff --git a/src/app/dev/admin/main/layout.tsx b/src/app/dev/admin/layout.tsx similarity index 100% rename from src/app/dev/admin/main/layout.tsx rename to src/app/dev/admin/layout.tsx diff --git a/src/app/dev/admin/splash/page.tsx b/src/app/dev/splash/admin/page.tsx similarity index 100% rename from src/app/dev/admin/splash/page.tsx rename to src/app/dev/splash/admin/page.tsx diff --git a/src/app/lib/router_hipmi/router_admin.ts b/src/app/lib/router_hipmi/router_admin.ts index 19f1b17c..d249b221 100644 --- a/src/app/lib/router_hipmi/router_admin.ts +++ b/src/app/lib/router_hipmi/router_admin.ts @@ -1,10 +1,10 @@ export const RouterAdminDashboard = { main_admin: "/dev/admin/main/dashboard", - splash_admin: "/dev/admin/splash", + splash_admin: "/dev/splash/admin", }; export const RouterAdminInvestasi = { - main_investasi: "/dev/admin/main/investasi", + main_investasi: "/dev/admin/investasi/main", halaman_aksi: "/dev/admin/investasi/halaman_aksi/", konfirmasi: "/dev/admin/investasi/konfirmasi/", bukti_transfer: "/dev/admin/investasi/bukti_transfer", @@ -12,5 +12,5 @@ export const RouterAdminInvestasi = { }; export const RouterAdminAward = { - main_award: "/dev/admin/main/award", + main_award: "/dev/admin/award/main", }; diff --git a/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts b/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts new file mode 100644 index 00000000..0b74d9b9 --- /dev/null +++ b/src/app_modules/admin/investasi/fun/fun_reject_investasi.ts @@ -0,0 +1,21 @@ +"use server" + +import prisma from "@/app/lib/prisma" + +export default async function funRejectInvestasi(data: any) { + // console.log(data) + + const res = await prisma.investasi.update({ + where: { id: data.id }, + data: { + masterStatusInvestasiId: data.status, + catatan: data.catatan + } + }) + if(!res) return {status: 400, message: "Gagal reject"} + + return { + status: 200, + message: "Reject berhasil" + } +} \ No newline at end of file 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 afc5fe7c..e1eeb3ee 100644 --- a/src/app_modules/admin/investasi/fun/get_all_investasi.ts +++ b/src/app_modules/admin/investasi/fun/get_all_investasi.ts @@ -21,6 +21,7 @@ export default async function Admin_funGetAllInvestasi() { roi: true, active: true, imagesId: true, + catatan: true, MasterStatusInvestasi: true, BeritaInvestasi: true, DokumenInvestasi: true, diff --git a/src/app_modules/admin/investasi/konfirmasi/view.tsx b/src/app_modules/admin/investasi/konfirmasi/view.tsx index d19c07a9..dc96411c 100644 --- a/src/app_modules/admin/investasi/konfirmasi/view.tsx +++ b/src/app_modules/admin/investasi/konfirmasi/view.tsx @@ -52,6 +52,7 @@ import Link from "next/link"; import { useRouter } from "next/navigation"; import { useState } from "react"; import toast from "react-simple-toasts"; +import funRejectInvestasi from "../fun/fun_reject_investasi"; export default function Admin_KonfirmasiInvestasi({ dataInvestasi, @@ -89,23 +90,33 @@ export default function Admin_KonfirmasiInvestasi({ }, ]; - // useShallowEffect(() => { - // cekStatusPublish() - // },[]) + useShallowEffect(() => { + cekStatusPublish(); + }, []); - // async function cekStatusPublish() { - // if(investasi.MasterStatusInvestasi.id === "3") - // setPublish(false) - // } + async function cekStatusPublish() { + if (investasi.MasterStatusInvestasi.id === "3") setPublish(false); + } - async function onCatatan() { - if (_.isEmpty(catatan)) return toast("Lengkapi alasan"); - console.log(catatan); - toggle(); + async function onReject() { + const body = { + id: investasi.id, + catatan: catatan, + status: "4", + }; + if (_.isEmpty(body.catatan)) return toast("Lengkapi alasan"); + await funRejectInvestasi(body).then((res) => { + if (res.status === 200) { + toast(res.message); + toggle(); + } else { + toast(res.message); + } + }); } async function onPublish() { - // const res = await funGantiStatusInvestasi(investasi.id, "3") + const res = await funGantiStatusInvestasi(investasi.id, "3"); setTimeout(() => setPublish(false), 1000); toast("Proyek Investasi Di Publish"); } @@ -113,20 +124,28 @@ export default function Admin_KonfirmasiInvestasi({ return ( <> - - - {user.username} - + + router.back()}> + + + + + {user.username} + + {" "} - {publish ? ( + {!publish || investasi.MasterStatusInvestasi.id === "4" ? ( + "" + ) : ( Publish - ) : ( - } - 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 + // )} - } - > - Reject - + {investasi.MasterStatusInvestasi.id === "3" ? ( + "" + ) : ( + } + > + Reject + + )} @@ -286,9 +308,7 @@ export default function Admin_KonfirmasiInvestasi({ {e.title} Buka @@ -319,7 +339,7 @@ export default function Admin_KonfirmasiInvestasi({ onChange={(val) => setCatatan(val.target.value)} /> - onCatatan()}> + onReject()}> Simpan diff --git a/src/app_modules/admin/investasi/main/table_publish.tsx b/src/app_modules/admin/investasi/main/table_publish.tsx new file mode 100644 index 00000000..f4fbf1ab --- /dev/null +++ b/src/app_modules/admin/investasi/main/table_publish.tsx @@ -0,0 +1,79 @@ +import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin"; +import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi"; +import { + Badge, + ActionIcon, + Box, + ScrollArea, + Table, + Tooltip, +} from "@mantine/core"; +import { 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({ + dataInvestsi, +}: { + dataInvestsi: MODEL_Investasi[]; +}) { + const [investasi, setInvestasi] = useState(dataInvestsi); + const router = useRouter(); + + const tableBody = investasi.map((e) => + e.MasterStatusInvestasi.id === "3" ? ( + + {e.title} + + {e.MasterStatusInvestasi.id === "3" ? ( + + {e.MasterStatusInvestasi.name} + + ) : ( + "-" + )} + + + + + router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`) + } + > + + + + + + ) : ( + "" + ) + ); + + return ( + <> + + + {/* + List Publish + */} + + Publish + + + + + Nama Proyek Investasi + Status + Aksi + + + {tableBody} + + + + > + ); +} diff --git a/src/app_modules/admin/investasi/main/table_reject.tsx b/src/app_modules/admin/investasi/main/table_reject.tsx new file mode 100644 index 00000000..eb4f1979 --- /dev/null +++ b/src/app_modules/admin/investasi/main/table_reject.tsx @@ -0,0 +1,77 @@ +import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin"; +import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi"; +import { + Badge, + ActionIcon, + Box, + ScrollArea, + Table, + Tooltip, +} from "@mantine/core"; +import { IconEdit } from "@tabler/icons-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export default function TableReject({ + dataInvestsi, +}: { + dataInvestsi: MODEL_Investasi[]; +}) { + const [investasi, setInvestasi] = useState(dataInvestsi); + const router = useRouter(); + + const tableBody = investasi.map((e) => + e.MasterStatusInvestasi.id === "4" ? ( + + {e.title} + + {e.MasterStatusInvestasi.id === "4" ? ( + + {e.MasterStatusInvestasi.name} + + ) : ( + "-" + )} + + {e.catatan} + + + + router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`) + } + > + + + + + + ) : ( + "" + ) + ); + + return ( + <> + + + + Reject + + + + + Nama Proyek Investasi + Status + 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 new file mode 100644 index 00000000..15511339 --- /dev/null +++ b/src/app_modules/admin/investasi/main/table_review.tsx @@ -0,0 +1,74 @@ +import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin"; +import { MODEL_Investasi } from "@/app_modules/investasi/model/model_investasi"; +import { + Badge, + ActionIcon, + Box, + ScrollArea, + Table, + Tooltip, +} from "@mantine/core"; +import { IconEdit } from "@tabler/icons-react"; +import { useRouter } from "next/navigation"; +import { useState } from "react"; + +export default function TableReview({ + dataInvestsi, +}: { + dataInvestsi: MODEL_Investasi[]; +}) { + const [investasi, setInvestasi] = useState(dataInvestsi); + const router = useRouter(); + + const tableBody = investasi.map((e) => + e.MasterStatusInvestasi.id === "2" ? ( + + {e.title} + + {e.MasterStatusInvestasi.id === "2" ? ( + + {e.MasterStatusInvestasi.name} + + ) : ( + "-" + )} + + + + + router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`) + } + > + + + + + + ) : ( + "" + ) + ); + return ( + <> + + + + Review + + + + + Nama Proyek Investasi + Status + Aksi + + + {tableBody} + + + + > + ); +} diff --git a/src/app_modules/admin/investasi/main/view.tsx b/src/app_modules/admin/investasi/main/view.tsx index e0a1938b..bb31cf64 100644 --- a/src/app_modules/admin/investasi/main/view.tsx +++ b/src/app_modules/admin/investasi/main/view.tsx @@ -19,6 +19,9 @@ import { import { IconEdit } 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"; export default function Admin_Investasi({ listInvestasi, @@ -59,33 +62,6 @@ export default function Admin_Investasi({ }, ]; - const tableBody = investasi.map((e) => ( - - {e.title} - - {e.MasterStatusInvestasi.id === "3" ? ( - - {e.MasterStatusInvestasi.name} - - ) : ( - - {e.MasterStatusInvestasi.name} - - )} - - - - router.push(RouterAdminInvestasi.konfirmasi + `${e.id}`) - } - > - - - - - )); - return ( <> Investasi @@ -108,67 +84,16 @@ export default function Admin_Investasi({ ))} - - - - List Investasi - - - - - - Nama Proyek Investasi - Status - Aksi - - - {tableBody} - - - + + + + {/* {JSON.stringify(investasi, null, 2)} */} > ); } -// const listTable = [ -// { -// id: 1, -// status: { -// id: 1, -// name: "Publish", -// }, -// name: "Subway Kuta", -// }, -// { -// id: 2, -// status: { -// id: 2, -// name: "Review", -// }, -// name: "Event MCD", -// }, -// { -// id: 3, -// status: { -// id: 2, -// name: " Review", -// }, -// name: "Villa Batubulan", -// }, -// { -// id: 4, -// status: { -// id: 1, -// name: "Publish", -// }, -// name: "Kost Alif Denpasar", -// }, -// { -// id: 5, -// status: { -// id: 1, -// name: "Publish", -// }, -// name: "Pabrik Rokok Surya Gandum", -// }, -// ]; + + + + + diff --git a/src/app_modules/investasi/fun/fun_edit_investasi.ts b/src/app_modules/investasi/fun/fun_edit_investasi.ts index e549a835..a2e83ed0 100644 --- a/src/app_modules/investasi/fun/fun_edit_investasi.ts +++ b/src/app_modules/investasi/fun/fun_edit_investasi.ts @@ -12,10 +12,10 @@ export default async function funEditInvestasi( formData: FormData, data: MODEL_Investasi ) { - const file = formData.get("file"); + const file = formData?.get("file"); if (file !== "null") { - const file: any = formData.get("file"); + const file: any = formData?.get("file"); const fName = file.name; const fExt = file && file.name ? _.lowerCase(file.name.split(".").pop()) : ""; diff --git a/src/app_modules/investasi/fun/fun_ganti_status.ts b/src/app_modules/investasi/fun/fun_ganti_status.ts index 96038a67..092c6af0 100644 --- a/src/app_modules/investasi/fun/fun_ganti_status.ts +++ b/src/app_modules/investasi/fun/fun_ganti_status.ts @@ -1,6 +1,7 @@ "use server"; import prisma from "@/app/lib/prisma"; +import { RouterAdminInvestasi } from "@/app/lib/router_hipmi/router_admin"; import { revalidatePath } from "next/cache"; export default async function funGantiStatusInvestasi(id: string, val: string) { @@ -16,6 +17,7 @@ export default async function funGantiStatusInvestasi(id: string, val: string) { if(!data) return {status: 400} revalidatePath("/dev/investasi/main/portofolio") + revalidatePath(RouterAdminInvestasi.main_investasi) return { status: 200 diff --git a/src/app_modules/investasi/model/model_investasi.ts b/src/app_modules/investasi/model/model_investasi.ts index 947615ff..6dcc1def 100644 --- a/src/app_modules/investasi/model/model_investasi.ts +++ b/src/app_modules/investasi/model/model_investasi.ts @@ -10,6 +10,7 @@ export interface MODEL_Investasi { updatedAt: Date; authorId: string; imagesId: string; + catatan: string MasterStatusInvestasi: MODEL_Status_investasi; BeritaInvestasi: Model_Berita_Investasi[]; DokumenInvestasi: Model_Dokumen_Investasi[];
{JSON.stringify(investasi, null, 2)}