diff --git a/src/app/dev/admin/investasi/table_status/publish/page.tsx b/src/app/dev/admin/investasi/table_status/publish/page.tsx
deleted file mode 100644
index 1d9f989c..00000000
--- a/src/app/dev/admin/investasi/table_status/publish/page.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644
index 55092f60..00000000
--- a/src/app/dev/admin/investasi/table_status/reject/page.tsx
+++ /dev/null
@@ -1,10 +0,0 @@
-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
deleted file mode 100644
index 350245f7..00000000
--- a/src/app/dev/admin/investasi/table_status/review/page.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-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/dev/investasi/transaksi/metode-pembayaran/[id]/page.tsx b/src/app/dev/investasi/transaksi/metode-pembayaran/[id]/page.tsx
index 7553f2ef..1c7e75a0 100644
--- a/src/app/dev/investasi/transaksi/metode-pembayaran/[id]/page.tsx
+++ b/src/app/dev/investasi/transaksi/metode-pembayaran/[id]/page.tsx
@@ -1,6 +1,5 @@
import { funGlobal_getAllBank } from "@/app_modules/_global/fun/get/fun_get_all_bank";
import { Investasi_UiMetodePembayaran } from "@/app_modules/investasi/_ui";
-import getMaster_NamaBank from "@/app_modules/investasi/fun/master/get_nama_bank";
export default async function Page({ params }: { params: { id: string } }) {
const investasiId = params.id;
diff --git a/src/app/lib/global_state.ts b/src/app/lib/global_state.ts
index b26559c5..d8792fc0 100644
--- a/src/app/lib/global_state.ts
+++ b/src/app/lib/global_state.ts
@@ -13,12 +13,13 @@ export type ITypeStatusNotifikasi =
| "Peserta Event"
// VOTING
| "Voting Masuk"
- // DONASI
+ // DONASI & INVESTASI
| "Berhasil"
| "Proses"
| "Menunggu"
| "Gagal";
+
/**
* @param kategoriApp | "JOB", "VOTING", "EVENT", "DONASI", "INVESTASI", "COLLABORATION", "FORUM"
* @type string
diff --git a/src/app/zCoba/page.tsx b/src/app/zCoba/page.tsx
index dd5cb2f4..148b1e76 100644
--- a/src/app/zCoba/page.tsx
+++ b/src/app/zCoba/page.tsx
@@ -1,8 +1,6 @@
"use client";
import { MainColor } from "@/app_modules/_global/color";
-import { funGetUserIdByToken } from "@/app_modules/_global/fun/get";
-import Coba_TestLoading from "@/app_modules/zCoba";
import {
Avatar,
Button,
@@ -14,8 +12,6 @@ import {
import { IconCamera } from "@tabler/icons-react";
import { useState } from "react";
import { DIRECTORY_ID } from "../lib";
-import { TokenStorage } from "../lib/token";
-import { envs } from "@/lib/envs";
export default function Page() {
const [filePP, setFilePP] = useState(null);
diff --git a/src/app_modules/admin/investasi/_component/button/button_konfirmasi_transaksi.tsx b/src/app_modules/admin/investasi/_component/button/button_konfirmasi_transaksi.tsx
index 624a25ee..fcf8f02d 100644
--- a/src/app_modules/admin/investasi/_component/button/button_konfirmasi_transaksi.tsx
+++ b/src/app_modules/admin/investasi/_component/button/button_konfirmasi_transaksi.tsx
@@ -1,15 +1,22 @@
+"use client";
+
+import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_berhasil";
+import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_gagal";
import { Button, Stack } from "@mantine/core";
+import { IconBan, IconCircleCheck } from "@tabler/icons-react";
+import { useState } from "react";
import {
adminInvestasi_funAcceptTransaksiById,
adminInvestasi_funGetAllTransaksiById,
adminInvestasi_funRejectInvoiceById,
} from "../../fun";
-import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_berhasil";
-import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_gagal";
-import { useState } from "react";
-import { IconCircleCheck } from "@tabler/icons-react";
-import { IconBan } from "@tabler/icons-react";
-import { MODEL_INVOICE_INVESTASI } from "@/app_modules/investasi/_lib/interface";
+import { clientLogger } from "@/util/clientLogger";
+import { IRealtimeData } from "@/app/lib/global_state";
+import {
+ notifikasiToAdmin_funCreate,
+ notifikasiToUser_funCreate,
+} from "@/app_modules/notifikasi/fun";
+import { WibuRealtime } from "wibu-pkg";
export function AdminInvestasi_ComponentButtonKonfirmasiTransaksi({
invoiceId,
@@ -26,47 +33,112 @@ export function AdminInvestasi_ComponentButtonKonfirmasiTransaksi({
const [isLoadingReject, setLoadingReject] = useState(false);
async function onReject() {
- const res = await adminInvestasi_funRejectInvoiceById({ invoiceId });
- if (res.status == 200) {
- try {
- const dataTransaksi = await adminInvestasi_funGetAllTransaksiById({
- investasiId,
- page: 1,
+ try {
+ setLoadingReject(true);
+
+ const res = await adminInvestasi_funRejectInvoiceById({ invoiceId });
+ if (res.status == 200) {
+ const notifikasiInvestor: IRealtimeData = {
+ appId: invoiceId as string,
+ userId: res.userId as string,
+ status: res.statusName as any,
+ pesan: "Transaksi anda gagal, coba hubungi admin",
+ kategoriApp: "INVESTASI",
+ title: "Transaksi Gagal",
+ };
+
+ const notifToInvestor = await notifikasiToUser_funCreate({
+ data: notifikasiInvestor as any,
});
- onLoadData(dataTransaksi);
- } catch (error) {
- console.log(error);
- } finally {
- ComponentAdminGlobal_NotifikasiBerhasil(res.message);
- setLoadingReject(true);
+
+ if (notifToInvestor.status === 201) {
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "USER",
+ dataMessage: notifikasiInvestor,
+ });
+
+ const dataTransaksi = await adminInvestasi_funGetAllTransaksiById({
+ investasiId,
+ page: 1,
+ });
+ onLoadData(dataTransaksi);
+
+ ComponentAdminGlobal_NotifikasiBerhasil(res.message);
+ }
+ } else {
+ ComponentAdminGlobal_NotifikasiGagal(res.message);
}
- } else {
- ComponentAdminGlobal_NotifikasiGagal(res.message);
+ } catch (error) {
+ clientLogger.error("Error rejected investasi:", error);
+ } finally {
+ setLoadingReject(false);
}
}
async function onAccept() {
- const res = await adminInvestasi_funAcceptTransaksiById({
- invoiceId,
- investasiId,
- lembarTerbeli,
- });
+ try {
+ setLoadingAccept(true);
+ const res = await adminInvestasi_funAcceptTransaksiById({
+ invoiceId,
+ investasiId,
+ lembarTerbeli,
+ });
+
+ if (res.status == 200) {
+ const dataNotifikasi: IRealtimeData = {
+ appId: investasiId,
+ status: res.data?.dataInvestasi?.MasterStatusInvestasi?.name as any,
+ userId: res.data?.dataInvestasi.authorId as string,
+ pesan: "Cek investasi anda, Anda memiliki investor baru",
+ kategoriApp: "INVESTASI",
+ title: "Investor baru",
+ };
+
+ const notif = await notifikasiToUser_funCreate({
+ data: dataNotifikasi as any,
+ });
+
+ if (notif.status === 201) {
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "USER",
+ dataMessage: dataNotifikasi,
+ });
+ }
+
+ const notifikasiInvestor: IRealtimeData = {
+ appId: res.data?.dataInvestor.id as string,
+ status: "Berhasil",
+ userId: res.data?.dataInvestor.authorId as string,
+ pesan: "Selamat, anda telah menjadi investor baru",
+ kategoriApp: "INVESTASI",
+ title: "Investasi berhasil",
+ };
+
+ const notifToInvestor = await notifikasiToUser_funCreate({
+ data: notifikasiInvestor as any,
+ });
+
+ if (notifToInvestor.status === 201) {
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "USER",
+ dataMessage: notifikasiInvestor,
+ });
+ }
- if (res.status == 200) {
- try {
const dataTransaksi = await adminInvestasi_funGetAllTransaksiById({
investasiId,
page: 1,
});
onLoadData(dataTransaksi);
- } catch (error) {
- console.log(error);
- } finally {
ComponentAdminGlobal_NotifikasiBerhasil(res.message);
- setLoadingAccept(true);
}
- } else {
- ComponentAdminGlobal_NotifikasiGagal(res.message);
+ } catch (error) {
+ clientLogger.error("Error accept invoice", error);
+ } finally {
+ setLoadingAccept(false);
}
}
diff --git a/src/app_modules/admin/investasi/detail/detail_publish.tsx b/src/app_modules/admin/investasi/detail/detail_publish.tsx
index 141d562c..087b61e1 100644
--- a/src/app_modules/admin/investasi/detail/detail_publish.tsx
+++ b/src/app_modules/admin/investasi/detail/detail_publish.tsx
@@ -74,7 +74,6 @@ export function AdminInvestasi_DetailPublish({
investasiId={investasiId}
/>
) : null}
- {/* {selectPage == "3" ? : null} */}
>
);
diff --git a/src/app_modules/admin/investasi/fun/edit/fun_accept_invoice_by_id.ts b/src/app_modules/admin/investasi/fun/edit/fun_accept_invoice_by_id.ts
index 61081ad6..751c1cdf 100644
--- a/src/app_modules/admin/investasi/fun/edit/fun_accept_invoice_by_id.ts
+++ b/src/app_modules/admin/investasi/fun/edit/fun_accept_invoice_by_id.ts
@@ -60,15 +60,26 @@ export async function adminInvestasi_funAcceptTransaksiById({
lembarTerbeli: resultLembarTerbeli.toString(),
progress: resultProgres,
},
+ include: {
+ MasterStatusInvestasi: true,
+ },
});
if (!updateInvestasi)
return { status: 400, message: "Gagal Update Data Investasi" };
+ const newData = updateInvestasi;
+
+ const allData = {
+ dataInvestasi: updateInvestasi,
+ dataInvestor: updt,
+ };
+
revalidatePath(RouterAdminInvestasi.detail_publish);
return {
status: 200,
message: "Update Berhasil",
+ data: allData,
};
}
}
diff --git a/src/app_modules/admin/investasi/fun/edit/fun_reject_invoice_by_id.ts b/src/app_modules/admin/investasi/fun/edit/fun_reject_invoice_by_id.ts
index 1facc575..fafa01ff 100644
--- a/src/app_modules/admin/investasi/fun/edit/fun_reject_invoice_by_id.ts
+++ b/src/app_modules/admin/investasi/fun/edit/fun_reject_invoice_by_id.ts
@@ -9,9 +9,6 @@ export async function adminInvestasi_funRejectInvoiceById({
}: {
invoiceId: string;
}) {
-
-
-
const updt = await prisma.investasi_Invoice.update({
where: {
id: invoiceId,
@@ -19,12 +16,19 @@ export async function adminInvestasi_funRejectInvoiceById({
data: {
statusInvoiceId: "4",
},
+ select: {
+ StatusInvoice: true,
+ authorId: true,
+ },
});
- if (!updt) return { status: 400, message: "Gagal Update" };
+ if (!updt)
+ return { status: 400, message: "Gagal Melakukan Reject", statusName: "" , userId: ""};
revalidatePath(RouterAdminInvestasi.detail_publish);
return {
status: 200,
- message: "Update Berhasil",
+ message: "Reject Berhasil",
+ statusName: updt.StatusInvoice?.name,
+ userId: updt.authorId,
};
}
diff --git a/src/app_modules/admin/investasi/main/table_review.tsx b/src/app_modules/admin/investasi/main/table_review.tsx
index 432241e4..4b384a80 100644
--- a/src/app_modules/admin/investasi/main/table_review.tsx
+++ b/src/app_modules/admin/investasi/main/table_review.tsx
@@ -62,12 +62,7 @@ function TableView({ listData }: { listData: any }) {
useShallowEffect(() => {
if (isAdminInvestasi_TriggerReview) {
setIsShowReload(false);
- }
- }, [isAdminInvestasi_TriggerReview]);
-
- useShallowEffect(() => {
- if (isAdminInvestasi_TriggerReview) {
- setIsShowReload(true);
+ setIsAdminInvestasi_TriggerReview(false)
}
}, [isAdminInvestasi_TriggerReview]);
diff --git a/src/app_modules/admin/notifikasi/route_setting/donasi.ts b/src/app_modules/admin/notifikasi/route_setting/donasi.ts
index 467184e4..10c2aec6 100644
--- a/src/app_modules/admin/notifikasi/route_setting/donasi.ts
+++ b/src/app_modules/admin/notifikasi/route_setting/donasi.ts
@@ -1,16 +1,12 @@
-import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi";
-import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin";
-import { MODEL_NOTIFIKASI } from "@/app_modules/notifikasi/model/interface";
-import { data } from "autoprefixer";
-import _ from "lodash";
-import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime";
-import { IAdmin_ActivePage, IAdmin_ActiveChildId } from "./type_of_select_page";
-import { admin_funDonasiCheckStatus } from "../fun/get/fun_donasi_check_status";
-import adminNotifikasi_funUpdateIsReadById from "../fun/update/fun_update_is_read_by_id";
-import adminNotifikasi_countNotifikasi from "../fun/count/count_is_read";
-import adminNotifikasi_getByUserId from "../fun/get/get_notifikasi_by_user_id";
-import { ComponentAdminGlobal_NotifikasiPeringatan } from "../../_admin_global/admin_notifikasi/notifikasi_peringatan";
import { ITypeStatusNotifikasi } from "@/app/lib/global_state";
+import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin";
+import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime";
+import { ComponentAdminGlobal_NotifikasiPeringatan } from "../../_admin_global/admin_notifikasi/notifikasi_peringatan";
+import adminNotifikasi_countNotifikasi from "../fun/count/count_is_read";
+import { admin_funDonasiCheckStatus } from "../fun/get/fun_donasi_check_status";
+import adminNotifikasi_getByUserId from "../fun/get/get_notifikasi_by_user_id";
+import adminNotifikasi_funUpdateIsReadById from "../fun/update/fun_update_is_read_by_id";
+import { IAdmin_ActiveChildId, IAdmin_ActivePage } from "./type_of_select_page";
export default async function adminNotifikasi_findRouterDonasi({
appId,
@@ -38,13 +34,29 @@ export default async function adminNotifikasi_findRouterDonasi({
status == "Proses" ||
status == "Gagal"
) {
- const path = RouterAdminDonasi_OLD.detail_publish + appId;
- router.push(path, { scroll: false });
- onChangeNavbar({
- id: "Donasi",
- childId: "Donasi_2",
+ const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
+ notifId: notifikasiId,
});
+ if (udpateReadNotifikasi.status == 200) {
+ const loadCountNotif = await adminNotifikasi_countNotifikasi();
+ onLoadCountNotif(loadCountNotif);
+
+ const loadListNotifikasi = await adminNotifikasi_getByUserId({
+ page: 1,
+ });
+ onLoadDataNotifikasi(loadListNotifikasi);
+ const path = RouterAdminDonasi_OLD.detail_publish + appId;
+ router.push(path, { scroll: false });
+ onChangeNavbar({
+ id: "Donasi",
+ childId: "Donasi_2",
+ });
+ } else {
+ ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
+ return false;
+ }
+
return true;
} else {
const check = await admin_funDonasiCheckStatus({ id: appId });
diff --git a/src/app_modules/admin/notifikasi/route_setting/investasi.ts b/src/app_modules/admin/notifikasi/route_setting/investasi.ts
index 5a92413f..a235f875 100644
--- a/src/app_modules/admin/notifikasi/route_setting/investasi.ts
+++ b/src/app_modules/admin/notifikasi/route_setting/investasi.ts
@@ -6,6 +6,7 @@ import { admin_funInvestasiCheckStatus } from "../fun/get/fun_investasi_check_st
import adminNotifikasi_getByUserId from "../fun/get/get_notifikasi_by_user_id";
import adminNotifikasi_funUpdateIsReadById from "../fun/update/fun_update_is_read_by_id";
import { IAdmin_ActiveChildId, IAdmin_ActivePage } from "./type_of_select_page";
+import { RouterAdminInvestasi } from "@/app/lib/router_admin/router_admin_investasi";
export default async function adminNotifikasi_findRouterInvestasi({
appId,
@@ -27,13 +28,15 @@ export default async function adminNotifikasi_findRouterInvestasi({
childId: IAdmin_ActiveChildId;
}) => void;
}) {
- const check = await admin_funInvestasiCheckStatus({ id: appId });
-
- if (check.status == 200) {
+ if (
+ status == "Menunggu" ||
+ status == "Berhasil" ||
+ status == "Proses" ||
+ status == "Gagal"
+ ) {
const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
notifId: notifikasiId,
});
-
if (udpateReadNotifikasi.status == 200) {
const loadCountNotif = await adminNotifikasi_countNotifikasi();
onLoadCountNotif(loadCountNotif);
@@ -42,59 +45,72 @@ export default async function adminNotifikasi_findRouterInvestasi({
page: 1,
});
onLoadDataNotifikasi(loadListNotifikasi);
+ const path = RouterAdminInvestasi.detail_publish + appId;
+ router.push(path, { scroll: false });
- const path = `/dev/admin/investasi/sub-menu/${check.statusName}`;
-
- if (check.statusName == "draft") {
- ComponentAdminGlobal_NotifikasiPeringatan(
- "Status telah dirubah oleh user"
- );
- } else {
- if (check.statusName == "publish") {
- onChangeNavbar({
- id: "Investasi",
- childId: "Investasi_2",
- });
- }
-
- if (check.statusName == "review") {
- onChangeNavbar({
- id: "Investasi",
- childId: "Investasi_3",
- });
- }
-
- if (check.statusName == "reject") {
- onChangeNavbar({
- id: "Investasi",
- childId: "Investasi_4",
- });
- }
-
- router.push(path, { scroll: false });
- }
+ onChangeNavbar({
+ id: "Investasi",
+ childId: "Investasi_2",
+ });
return true;
+ } else {
+ ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
+ return false;
}
} else {
- ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
- return false;
+ const check = await admin_funInvestasiCheckStatus({ id: appId });
+
+ if (check.status == 200) {
+ const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
+ notifId: notifikasiId,
+ });
+
+ if (udpateReadNotifikasi.status == 200) {
+ const loadCountNotif = await adminNotifikasi_countNotifikasi();
+ onLoadCountNotif(loadCountNotif);
+
+ const loadListNotifikasi = await adminNotifikasi_getByUserId({
+ page: 1,
+ });
+ onLoadDataNotifikasi(loadListNotifikasi);
+
+ const path = `/dev/admin/investasi/sub-menu/${check.statusName}`;
+
+ if (check.statusName == "draft") {
+ ComponentAdminGlobal_NotifikasiPeringatan(
+ "Status telah dirubah oleh user"
+ );
+ } else {
+ if (check.statusName == "publish") {
+ onChangeNavbar({
+ id: "Investasi",
+ childId: "Investasi_2",
+ });
+ }
+
+ if (check.statusName == "review") {
+ onChangeNavbar({
+ id: "Investasi",
+ childId: "Investasi_3",
+ });
+ }
+
+ if (check.statusName == "reject") {
+ onChangeNavbar({
+ id: "Investasi",
+ childId: "Investasi_4",
+ });
+ }
+
+ router.push(path, { scroll: false });
+ }
+
+ return true;
+ }
+ } else {
+ ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
+ return false;
+ }
}
- // if (
- // status == "Menunggu" ||
- // status == "Berhasil" ||
- // status == "Proses" ||
- // status == "Gagal"
- // ) {
- // const path = RouterAdminDonasi_OLD.detail_publish + appId;
- // router.push(path, { scroll: false });
- // onChangeNavbar({
- // id: "Donasi",
- // childId: "Donasi_2",
- // });
-
- // return true;
- // } else {
-
- // }
}
diff --git a/src/app_modules/admin/notifikasi/view_card_drawer.tsx b/src/app_modules/admin/notifikasi/view_card_drawer.tsx
index 57484dc9..b57bd44a 100644
--- a/src/app_modules/admin/notifikasi/view_card_drawer.tsx
+++ b/src/app_modules/admin/notifikasi/view_card_drawer.tsx
@@ -13,18 +13,16 @@ import { IconCheck, IconChecks } from "@tabler/icons-react";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { useState } from "react";
-import { ComponentAdminGlobal_NotifikasiPeringatan } from "../_admin_global/admin_notifikasi/notifikasi_peringatan";
-import adminNotifikasi_countNotifikasi from "./fun/count/count_is_read";
-import adminNotifikasi_getByUserId from "./fun/get/get_notifikasi_by_user_id";
+import adminNotifikasi_findRouterDonasi from "./route_setting/donasi";
import { adminNotifikasi_findRouterEvent } from "./route_setting/event";
+import adminNotifikasi_findRouterInvestasi from "./route_setting/investasi";
import { adminNotifikasi_findRouterJob } from "./route_setting/job";
import {
IAdmin_ActiveChildId,
IAdmin_ActivePage,
} from "./route_setting/type_of_select_page";
import { adminNotifikasi_findRouterVoting } from "./route_setting/voting";
-import adminNotifikasi_findRouterDonasi from "./route_setting/donasi";
-import adminNotifikasi_findRouterInvestasi from "./route_setting/investasi";
+import { clientLogger } from "@/util/clientLogger";
export default function AdminNotifikasi_ViewCardDrawer({
data,
@@ -64,199 +62,200 @@ export default function AdminNotifikasi_ViewCardDrawer({
async function onRead() {
// ========================== JOB ========================== //
- if (data?.kategoriApp === "JOB") {
+ try {
setVisible(true);
- setDataId(data.id);
- const checkJob = await adminNotifikasi_findRouterJob({
- appId: data.appId,
- notifikasiId: data.id,
- router: router,
- activePage: activePage,
- onLoadCountNotif(val) {
- onLoadCountNotif(val);
- },
- onLoadDataNotifikasi(val) {
- onLoadDataNotifikasi(val);
- },
- onChangeNavbar(val) {
- onChangeNavbar({
- id: val.id,
- childId: val.childId,
- });
- },
- });
+ if (data?.kategoriApp === "JOB") {
+ setDataId(data.id);
- if (checkJob) {
- setIsAdminJob_TriggerReview(false);
- setVisible(false);
- setDataId("");
- onToggleNavbar(false);
+ const checkJob = await adminNotifikasi_findRouterJob({
+ appId: data.appId,
+ notifikasiId: data.id,
+ router: router,
+ activePage: activePage,
+ onLoadCountNotif(val) {
+ onLoadCountNotif(val);
+ },
+ onLoadDataNotifikasi(val) {
+ onLoadDataNotifikasi(val);
+ },
+ onChangeNavbar(val) {
+ onChangeNavbar({
+ id: val.id,
+ childId: val.childId,
+ });
+ },
+ });
+
+ if (checkJob) {
+ setIsAdminJob_TriggerReview(false);
+ setVisible(false);
+ setDataId("");
+ onToggleNavbar(false);
+ }
+
+ return;
}
- }
- // ========================== JOB ========================== //
+ // ========================== JOB ========================== //
- // ========================== EVENT ========================== //
+ // ========================== EVENT ========================== //
- if (data.kategoriApp == "EVENT") {
- setVisible(true);
- setDataId(data.id);
+ if (data.kategoriApp == "EVENT") {
+ setDataId(data.id);
- const checkEvent = await adminNotifikasi_findRouterEvent({
- appId: data.appId,
- notifikasiId: data.id,
- router: router,
- activePage: activePage,
- onLoadCountNotif(val) {
- onLoadCountNotif(val);
- },
- onLoadDataNotifikasi(val) {
- onLoadDataNotifikasi(val);
- },
- onChangeNavbar(val) {
- onChangeNavbar({
- id: val.id,
- childId: val.childId,
- });
- },
- });
+ const checkEvent = await adminNotifikasi_findRouterEvent({
+ appId: data.appId,
+ notifikasiId: data.id,
+ router: router,
+ activePage: activePage,
+ onLoadCountNotif(val) {
+ onLoadCountNotif(val);
+ },
+ onLoadDataNotifikasi(val) {
+ onLoadDataNotifikasi(val);
+ },
+ onChangeNavbar(val) {
+ onChangeNavbar({
+ id: val.id,
+ childId: val.childId,
+ });
+ },
+ });
- if (checkEvent) {
- setIsAdminEvent_TriggerReview(false);
- setVisible(false);
- setDataId("");
- onToggleNavbar(false);
+ if (checkEvent) {
+ setIsAdminEvent_TriggerReview(false);
+ setVisible(false);
+ setDataId("");
+ onToggleNavbar(false);
+ }
+
+ return;
}
- }
- // ========================== EVENT ========================== //
+ // ========================== EVENT ========================== //
- // ========================== VOTING ========================== //
+ // ========================== VOTING ========================== //
- if (data.kategoriApp == "VOTING") {
- setVisible(true);
- setDataId(data.id);
+ if (data.kategoriApp == "VOTING") {
+ setDataId(data.id);
- const checkVoting = await adminNotifikasi_findRouterVoting({
- router: router,
- appId: data.appId,
- notifikasiId: data.id,
- activePage: activePage,
- onLoadCountNotif(val) {
- onLoadCountNotif(val);
- },
- onLoadDataNotifikasi(val) {
- onLoadDataNotifikasi(val);
- },
- onChangeNavbar(val) {
- onChangeNavbar({
- id: val.id,
- childId: val.childId,
- });
- },
- });
+ const checkVoting = await adminNotifikasi_findRouterVoting({
+ router: router,
+ appId: data.appId,
+ notifikasiId: data.id,
+ activePage: activePage,
+ onLoadCountNotif(val) {
+ onLoadCountNotif(val);
+ },
+ onLoadDataNotifikasi(val) {
+ onLoadDataNotifikasi(val);
+ },
+ onChangeNavbar(val) {
+ onChangeNavbar({
+ id: val.id,
+ childId: val.childId,
+ });
+ },
+ });
- if (checkVoting) {
- setIsAdminVoting_TriggerReview(false);
- setVisible(false);
- setDataId("");
- onToggleNavbar(false);
+ if (checkVoting) {
+ setIsAdminVoting_TriggerReview(false);
+ setVisible(false);
+ setDataId("");
+ onToggleNavbar(false);
+ }
+
+ return;
}
- }
- // ========================== VOTING ========================== //
+ // ========================== VOTING ========================== //
- // ========================== DONASI ========================== //
+ // ========================== DONASI ========================== //
- if (data.kategoriApp == "DONASI") {
- setVisible(true);
- setDataId(data.id);
+ if (data.kategoriApp == "DONASI") {
+ setDataId(data.id);
- const checkDonasi = await adminNotifikasi_findRouterDonasi({
- appId: data.appId,
- notifikasiId: data.id,
- router: router,
- status: data.status as ITypeStatusNotifikasi,
- onLoadCountNotif(val) {
- onLoadCountNotif(val);
- },
- onLoadDataNotifikasi(val) {
- onLoadDataNotifikasi(val);
- },
- onChangeNavbar(val) {
- onChangeNavbar({
- id: val.id,
- childId: val.childId,
- });
- },
- });
+ const checkDonasi = await adminNotifikasi_findRouterDonasi({
+ appId: data.appId,
+ notifikasiId: data.id,
+ router: router,
+ status: data.status as ITypeStatusNotifikasi,
+ onLoadCountNotif(val) {
+ onLoadCountNotif(val);
+ },
+ onLoadDataNotifikasi(val) {
+ onLoadDataNotifikasi(val);
+ },
+ onChangeNavbar(val) {
+ onChangeNavbar({
+ id: val.id,
+ childId: val.childId,
+ });
+ },
+ });
- if (checkDonasi) {
- setIsAdminDonasi_TriggerReview(false);
- setVisible(false);
- setDataId("");
- onToggleNavbar(false);
+ if (checkDonasi) {
+ setIsAdminDonasi_TriggerReview(false);
+ setVisible(false);
+ setDataId("");
+ onToggleNavbar(false);
+ }
+
+ return;
}
- }
- // ========================== DONASI ========================== //
+ // ========================== DONASI ========================== //
- // ========================== INVESTASI ========================== //
+ // ========================== INVESTASI ========================== //
- if (data.kategoriApp == "INVESTASI") {
- setVisible(true);
- setDataId(data.id);
+ if (data.kategoriApp == "INVESTASI") {
+ setDataId(data.id);
- const checkInvestasi = await adminNotifikasi_findRouterInvestasi({
- appId: data.appId,
- notifikasiId: data.id,
- status: data.status as ITypeStatusNotifikasi,
- router: router,
- onLoadCountNotif(val) {
- onLoadCountNotif(val);
- },
- onLoadDataNotifikasi(val) {
- onLoadDataNotifikasi(val);
- },
- onChangeNavbar(val) {
- onChangeNavbar({
- id: val.id,
- childId: val.childId,
- });
- },
- });
+ const checkInvestasi = await adminNotifikasi_findRouterInvestasi({
+ appId: data.appId,
+ notifikasiId: data.id,
+ status: data.status as ITypeStatusNotifikasi,
+ router: router,
+ onLoadCountNotif(val) {
+ onLoadCountNotif(val);
+ },
+ onLoadDataNotifikasi(val) {
+ onLoadDataNotifikasi(val);
+ },
+ onChangeNavbar(val) {
+ onChangeNavbar({
+ id: val.id,
+ childId: val.childId,
+ });
+ },
+ });
- if (checkInvestasi) {
- setIsAdminDonasi_TriggerReview(false);
- setVisible(false);
- setDataId("");
- onToggleNavbar(false);
+ if (checkInvestasi) {
+ setIsAdminDonasi_TriggerReview(false);
+ setVisible(false);
+ setDataId("");
+ onToggleNavbar(false);
+ }
+
+ return;
}
+
+ // // FORUM
+ // e?.kategoriApp === "FORUM" &&
+ // adminNotifikasi_findRouterForum({
+ // data: e,
+ // router: router,
+ // onChangeNavbar(val) {
+ // onChangeNavbar(val);
+ // },
+ // onToggleNavbar(val) {
+ // onToggleNavbar(val);
+ // },
+ // });
+
+ } catch (error) {
+ clientLogger.error("Error notifikasi function", error);
+ } finally {
+ setVisible(false);
}
-
- // // FORUM
- // e?.kategoriApp === "FORUM" &&
- // adminNotifikasi_findRouterForum({
- // data: e,
- // router: router,
- // onChangeNavbar(val) {
- // onChangeNavbar(val);
- // },
- // onToggleNavbar(val) {
- // onToggleNavbar(val);
- // },
- // });
-
- // // VOTE
- // e?.kategoriApp === "VOTING" &&
- // adminNotifikasi_findRouterVoting({
- // data: e,
- // router: router,
- // onChangeNavbar(val) {
- // onChangeNavbar(val);
- // },
- // onToggleNavbar(val) {
- // onToggleNavbar(val);
- // },
- // });
}
return (
diff --git a/src/app_modules/investasi/_view/status_transaksi/view_invoice_berhasil.tsx b/src/app_modules/investasi/_view/status_transaksi/view_invoice_berhasil.tsx
index 9b20f7d5..87317b8a 100644
--- a/src/app_modules/investasi/_view/status_transaksi/view_invoice_berhasil.tsx
+++ b/src/app_modules/investasi/_view/status_transaksi/view_invoice_berhasil.tsx
@@ -1,19 +1,20 @@
"use client";
-import { RouterAdminInvestasi } from "@/app/lib/router_admin/router_admin_investasi";
import { AccentColor } from "@/app_modules/_global/color/color_pallet";
-import { ComponentGlobal_LoadImage, ComponentGlobal_TampilanRupiah } from "@/app_modules/_global/component";
+import {
+ ComponentGlobal_LoadImage,
+ ComponentGlobal_TampilanRupiah,
+} from "@/app_modules/_global/component";
import {
Box,
Button,
Collapse,
Grid,
Group,
- Image,
Paper,
Stack,
Text,
- Title
+ Title,
} from "@mantine/core";
import { IconBrandCashapp } from "@tabler/icons-react";
import { useRouter } from "next/navigation";
@@ -157,12 +158,7 @@ export function Investasi_ViewTransaksiBerhasil({
transitionDuration={500}
transitionTimingFunction="linear"
>
-
-
- {/* */}
+
diff --git a/src/app_modules/investasi/_view/status_transaksi/view_transaksi_gagal.tsx b/src/app_modules/investasi/_view/status_transaksi/view_transaksi_gagal.tsx
index e0fcfb16..47a04eb8 100644
--- a/src/app_modules/investasi/_view/status_transaksi/view_transaksi_gagal.tsx
+++ b/src/app_modules/investasi/_view/status_transaksi/view_transaksi_gagal.tsx
@@ -2,7 +2,7 @@
import { RouterAdminInvestasi } from "@/app/lib/router_admin/router_admin_investasi";
import { AccentColor } from "@/app_modules/_global/color/color_pallet";
-import { ComponentGlobal_TampilanRupiah } from "@/app_modules/_global/component";
+import { ComponentGlobal_LoadImage, ComponentGlobal_TampilanRupiah } from "@/app_modules/_global/component";
import {
ActionIcon,
Box,
@@ -170,10 +170,7 @@ export function Investasi_ViewTransaksiGagal({
transitionDuration={500}
transitionTimingFunction="linear"
>
-
+
diff --git a/src/app_modules/investasi/_view/transaksi/view_invoice.tsx b/src/app_modules/investasi/_view/transaksi/view_invoice.tsx
index 775f869c..ac6855c7 100644
--- a/src/app_modules/investasi/_view/transaksi/view_invoice.tsx
+++ b/src/app_modules/investasi/_view/transaksi/view_invoice.tsx
@@ -28,6 +28,10 @@ import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_glo
import { funGlobal_UploadToStorage } from "@/app_modules/_global/fun";
import { DIRECTORY_ID } from "@/app/lib";
import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global";
+import { IRealtimeData } from "@/app/lib/global_state";
+import { notifikasiToAdmin_funCreate } from "@/app_modules/notifikasi/fun";
+import { WibuRealtime } from "wibu-pkg";
+import { clientLogger } from "@/util/clientLogger";
export function Investasi_ViewInvoice({
dataInvoice,
@@ -40,25 +44,59 @@ export function Investasi_ViewInvoice({
const [file, setFile] = useState(null);
async function onUpload() {
- const uploadFileToStorage = await funGlobal_UploadToStorage({
- file: file as any,
- dirId: DIRECTORY_ID.investasi_bukti_transfer,
- });
+ try {
+ setLoading(true);
+ const uploadFileToStorage = await funGlobal_UploadToStorage({
+ file: file as any,
+ dirId: DIRECTORY_ID.investasi_bukti_transfer,
+ });
- if (!uploadFileToStorage.success)
- return ComponentGlobal_NotifikasiPeringatan("Gagal upload bukti transfer")
+ if (!uploadFileToStorage.success) {
+ ComponentGlobal_NotifikasiPeringatan("Gagal upload bukti transfer");
+ return;
+ }
- const res = await investasi_funUploadBuktiTransferById({
- invoiceId: data.id,
- fileId: uploadFileToStorage.data.id,
- });
+ const res = await investasi_funUploadBuktiTransferById({
+ invoiceId: data.id,
+ fileId: uploadFileToStorage.data.id,
+ });
- if (res.status !== 200) return ComponentGlobal_NotifikasiGagal(res.message);
- ComponentGlobal_NotifikasiBerhasil(res.message);
- setLoading(true);
- router.push(NEW_RouterInvestasi.proses_transaksi + data.id, {
- scroll: false,
- });
+ if (res.status != 200) {
+ ComponentGlobal_NotifikasiGagal(res.message);
+ return;
+ }
+
+ const dataNotifikasi: IRealtimeData = {
+ appId: dataInvoice.Investasi.id,
+ status: "Proses",
+ userId: dataInvoice.authorId as string,
+ pesan: "Bukti transfer telah diupload",
+ kategoriApp: "INVESTASI",
+ title: "Invoice baru",
+ };
+
+ const notif = await notifikasiToAdmin_funCreate({
+ data: dataNotifikasi as any,
+ });
+
+ if (notif.status === 201) {
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "ADMIN",
+ dataMessage: dataNotifikasi,
+ });
+
+ ComponentGlobal_NotifikasiBerhasil(res.message);
+
+ router.push(NEW_RouterInvestasi.proses_transaksi + data.id, {
+ scroll: false,
+ });
+ }
+ } catch (error) {
+ clientLogger.error(" Error upload invoice", error);
+ } finally {
+ setLoading(false);
+ }
}
return (
diff --git a/src/app_modules/investasi/_view/transaksi/view_metode_pembayaran.tsx b/src/app_modules/investasi/_view/transaksi/view_metode_pembayaran.tsx
index c0ed8d22..eabb3f3d 100644
--- a/src/app_modules/investasi/_view/transaksi/view_metode_pembayaran.tsx
+++ b/src/app_modules/investasi/_view/transaksi/view_metode_pembayaran.tsx
@@ -1,17 +1,20 @@
+import { IRealtimeData } from "@/app/lib/global_state";
import { NEW_RouterInvestasi } from "@/app/lib/router_hipmi/router_investasi";
import {
AccentColor,
MainColor,
} from "@/app_modules/_global/color/color_pallet";
-import { Button, Paper, Radio, Stack, Text, Title } from "@mantine/core";
+import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
+import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan";
+import { notifikasiToAdmin_funCreate } from "@/app_modules/notifikasi/fun";
+import { clientLogger } from "@/util/clientLogger";
+import { Button, Paper, Radio, Stack, Title } from "@mantine/core";
import { useLocalStorage } from "@mantine/hooks";
import { useRouter } from "next/navigation";
import { useState } from "react";
-import { MODEL_MASTER_BANK } from "../../_lib/interface";
+import { WibuRealtime } from "wibu-pkg";
import { investasi_funCreateInvoice } from "../../_fun/create/fun_create_invoice";
-import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global/notifikasi_peringatan";
-import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
-import { data } from "autoprefixer";
+import { MODEL_MASTER_BANK } from "../../_lib/interface";
export function Investasi_ViewMetodePembayaran({
listBank,
@@ -34,20 +37,50 @@ export function Investasi_ViewMetodePembayaran({
});
async function onProses() {
- const res = await investasi_funCreateInvoice({
- data: {
- total: total,
- pilihBank: pilihBank,
- investasiId: investasiId,
- jumlah: jumlah,
- },
- });
+ try {
+ const res = await investasi_funCreateInvoice({
+ data: {
+ total: total,
+ pilihBank: pilihBank,
+ investasiId: investasiId,
+ jumlah: jumlah,
+ },
+ });
- if (res.status !== 201)
- return ComponentGlobal_NotifikasiPeringatan(res.message);
- ComponentGlobal_NotifikasiBerhasil(res.message);
- setLoading(true);
- router.push(NEW_RouterInvestasi.invoice + res.data?.id, { scroll: false });
+ if (res.status != 201) {
+ ComponentGlobal_NotifikasiPeringatan(res.message);
+ return;
+ }
+
+ const dataNotifikasi: IRealtimeData = {
+ appId: investasiId,
+ status: "Menunggu",
+ userId: res.data?.authorId as string,
+ pesan: "Menunggu transfer",
+ kategoriApp: "INVESTASI",
+ title: "Transaksi baru",
+ };
+
+ const notif = await notifikasiToAdmin_funCreate({
+ data: dataNotifikasi as any,
+ });
+
+ if (notif.status === 201) {
+ WibuRealtime.setData({
+ type: "notification",
+ pushNotificationTo: "ADMIN",
+ dataMessage: dataNotifikasi,
+ });
+
+ ComponentGlobal_NotifikasiBerhasil(res.message);
+ setLoading(true);
+ router.push(NEW_RouterInvestasi.invoice + res.data?.id, {
+ scroll: false,
+ });
+ }
+ } catch (error) {
+ clientLogger.error("Error create invoice:", error);
+ }
}
return (
diff --git a/src/app_modules/notifikasi/component/path/investasi.ts b/src/app_modules/notifikasi/component/path/investasi.ts
index 6a51e236..0cf3fb65 100644
--- a/src/app_modules/notifikasi/component/path/investasi.ts
+++ b/src/app_modules/notifikasi/component/path/investasi.ts
@@ -8,6 +8,10 @@ import notifikasi_countUserNotifikasi from "../../fun/count/fun_count_by_id";
import notifikasi_funUpdateIsReadById from "../../fun/update/fun_update_is_read_by_user_id";
import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/notif_global";
import { notifikasi_funInvestasiCheckStatus } from "../../fun/check/fun_check_investasi_status";
+import {
+ notifikasi_funGetStatusTransaksiById,
+ notifikasi_funInvestasiChecInvestaorStatus,
+} from "../../fun";
export async function redirectInvestasiPage({
appId,
@@ -29,25 +33,22 @@ export async function redirectInvestasiPage({
onLoadCountNtf(val: number): void;
}) {
const check = await notifikasi_funInvestasiCheckStatus({ id: appId });
+ const checkInvestor = await notifikasi_funInvestasiChecInvestaorStatus({
+ id: appId,
+ });
+
+ console.log("check", check);
+ console.log("check investor:", checkInvestor);
if (check.status == 200) {
- // const loadListNotifikasi = await notifikasi_getByUserId({
- // page: 1,
- // kategoriApp: categoryPage as any,
- // });
- // onLoadDataEvent(loadListNotifikasi);
-
- // const loadCountNotifikasi = await notifikasi_countUserNotifikasi();
- // onLoadCountNtf(loadCountNotifikasi);
-
const updateReadNotifikasi = await notifikasi_funUpdateIsReadById({
notifId: dataId,
});
if (updateReadNotifikasi.status == 200) {
onSetVisible(true);
-
onSetMenuId(1);
+
if (check.statusName == "publish") {
router.push(`/dev/investasi/detail/${appId}`, { scroll: false });
} else {
@@ -55,6 +56,25 @@ export async function redirectInvestasiPage({
router.push(path, { scroll: false });
}
}
+ } else if (checkInvestor.status == 200) {
+ const updateReadNotifikasi = await notifikasi_funUpdateIsReadById({
+ notifId: dataId,
+ });
+
+ if (updateReadNotifikasi.status == 200) {
+ onSetVisible(true);
+ onSetMenuId(1);
+
+ if (checkInvestor.statusName == "berhasil") {
+ const path = `/dev/investasi/detail/saham/${appId}`;
+ router.push(path, { scroll: false });
+ }
+
+ if (checkInvestor.statusName == "gagal") {
+ const path = `/dev/investasi/status-transaksi/gagal/${appId}`;
+ router.push(path, { scroll: false });
+ }
+ }
} else {
ComponentGlobal_NotifikasiPeringatan("Status tidak ditemukan");
}
diff --git a/src/app_modules/notifikasi/fun/check/fun_check_investasi_status.ts b/src/app_modules/notifikasi/fun/check/fun_check_investasi_status.ts
index a9e87485..ce617c54 100644
--- a/src/app_modules/notifikasi/fun/check/fun_check_investasi_status.ts
+++ b/src/app_modules/notifikasi/fun/check/fun_check_investasi_status.ts
@@ -23,6 +23,7 @@ export async function notifikasi_funInvestasiCheckStatus({
message: "Investasi tidak ditemukan",
statusName: "",
};
+
return {
status: 200,
message: "Berhasil di cek",
diff --git a/src/app_modules/notifikasi/fun/check/fun_check_investor_status.ts b/src/app_modules/notifikasi/fun/check/fun_check_investor_status.ts
new file mode 100644
index 00000000..80a0c903
--- /dev/null
+++ b/src/app_modules/notifikasi/fun/check/fun_check_investor_status.ts
@@ -0,0 +1,32 @@
+"use server";
+
+import { prisma } from "@/app/lib";
+import _ from "lodash";
+
+export async function notifikasi_funInvestasiChecInvestaorStatus({
+ id,
+}: {
+ id: string;
+}) {
+ const data = await prisma.investasi_Invoice.findUnique({
+ where: {
+ id: id,
+ },
+ select: {
+ StatusInvoice: true,
+ },
+ });
+
+ if (!data)
+ return {
+ status: 400,
+ message: "Investasi tidak ditemukan",
+ statusName: "",
+ };
+
+ return {
+ status: 200,
+ message: "Berhasil di cek",
+ statusName: _.lowerCase(data.StatusInvoice?.name),
+ };
+}
diff --git a/src/app_modules/notifikasi/fun/create/create_notif_to_user.ts b/src/app_modules/notifikasi/fun/create/create_notif_to_user.ts
index e6f5ce65..dc232709 100644
--- a/src/app_modules/notifikasi/fun/create/create_notif_to_user.ts
+++ b/src/app_modules/notifikasi/fun/create/create_notif_to_user.ts
@@ -2,23 +2,29 @@
import prisma from "@/app/lib/prisma";
import { MODEL_NOTIFIKASI } from "../../model/interface";
+import backendLogger from "@/util/backendLogger";
export default async function notifikasiToUser_funCreate({
data,
}: {
data: MODEL_NOTIFIKASI;
}) {
- const created = await prisma.notifikasi.create({
- data: {
- userId: data.userId,
- appId: data.appId,
- status: data.status,
- title: data.title,
- pesan: data.pesan,
- kategoriApp: data.kategoriApp,
- userRoleId: "1",
- },
- });
- if (!created) return { status: 400, message: "Gagal mengirim notifikasi" };
- return { status: 201, message: "Berhasil mengirim notifikasi" };
+ try {
+ const created = await prisma.notifikasi.create({
+ data: {
+ userId: data.userId,
+ appId: data.appId,
+ status: data.status,
+ title: data.title,
+ pesan: data.pesan,
+ kategoriApp: data.kategoriApp,
+ userRoleId: "1",
+ },
+ });
+ if (!created) return { status: 400, message: "Gagal mengirim notifikasi" };
+ return { status: 201, message: "Berhasil mengirim notifikasi" };
+ } catch (error) {
+ backendLogger.error("Gagal mengirim notifikasi", error);
+ return { status: 401, message: "Error server" };
+ }
}
diff --git a/src/app_modules/notifikasi/fun/get/fun_get_status_transaksi.ts b/src/app_modules/notifikasi/fun/get/fun_get_status_transaksi.ts
new file mode 100644
index 00000000..ef295853
--- /dev/null
+++ b/src/app_modules/notifikasi/fun/get/fun_get_status_transaksi.ts
@@ -0,0 +1,22 @@
+"use server";
+
+import prisma from "@/app/lib/prisma";
+
+export default async function notifikasi_funGetStatusTransaksiById({
+ notifId,
+}: {
+ notifId: string;
+}) {
+ const data = await prisma.notifikasi.findFirst({
+ where: {
+ id: notifId,
+ },
+ select: {
+ status: true,
+ },
+ });
+
+
+ if (!data) return { status: 400 };
+ return { status: 200, data: data };
+}
diff --git a/src/app_modules/notifikasi/fun/index.ts b/src/app_modules/notifikasi/fun/index.ts
index 8c097218..ca01304b 100644
--- a/src/app_modules/notifikasi/fun/index.ts
+++ b/src/app_modules/notifikasi/fun/index.ts
@@ -1,11 +1,15 @@
import { notifikasi_funEventCheckStatus } from "./check/fun_check_event_status";
+import { notifikasi_funInvestasiChecInvestaorStatus } from "./check/fun_check_investor_status";
import notifikasiToAdmin_funCreate from "./create/create_notif_to_admin";
import notifikasiToUser_funCreate from "./create/create_notif_to_user";
import { notifikasiToUser_CreateGroupCollaboration } from "./create/create_notif_to_user_collaboration";
import { notifikasiToUser_CreateKabarDonasi } from "./create/create_notif_to_user_kabar_donasi";
+import notifikasi_funGetStatusTransaksiById from "./get/fun_get_status_transaksi";
export { notifikasiToAdmin_funCreate };
export { notifikasiToUser_CreateGroupCollaboration };
export { notifikasiToUser_CreateKabarDonasi };
export { notifikasiToUser_funCreate };
export { notifikasi_funEventCheckStatus };
+export { notifikasi_funGetStatusTransaksiById };
+export { notifikasi_funInvestasiChecInvestaorStatus };