Merge pull request #142 from bipproduction/notifikasi/donasi

Fix: Donasi
This commit is contained in:
Bagasbanuna02
2024-11-28 16:49:01 +08:00
committed by GitHub
7 changed files with 134 additions and 82 deletions

View File

@@ -1,9 +1,8 @@
import { AdminDonasi_DetailReview } from "@/app_modules/admin/donasi";
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
export default async function Page({params}: {params: {id: string}}) {
// console.log(params.id)
const dataReview = await AdminDonasi_getOneById(params.id)
// console.log(dataReview)
return <AdminDonasi_DetailReview dataReview={dataReview as any}/>
}
export default async function Page({ params }: { params: { id: string } }) {
const dataReview = await AdminDonasi_getOneById(params.id);
return <AdminDonasi_DetailReview dataReview={dataReview as any} />;
}

View File

@@ -1,16 +1,30 @@
import { atom } from "jotai";
export type IRealtimeData = {
status?:
| "Publish"
| "Review"
| "Draft"
| "Reject"
// EVNET
| "Peserta Event"
// VOTING
| "Voting Masuk";
/**
* @param status | status jika perlu acc admin > "Publish", "Review", "Draft", "Reject"
* @param status | khusus kategori | EVENT > "Peserta Event" | VOTING > "Voting Masuk" | DONASI > "Berhasil", "Proses", "Menunggu", "Gagal"
*/
export type ITypeStatusNotifikasi =
| "Publish"
| "Review"
| "Draft"
| "Reject"
// EVENT
| "Peserta Event"
// VOTING
| "Voting Masuk"
// DONASI
| "Berhasil"
| "Proses"
| "Menunggu"
| "Gagal";
/**
* @param kategoriApp | "JOB", "VOTING", "EVENT", "DONASI", "INVESTASI", "COLLABORATION", "FORUM"
* @type string
*/
export type IRealtimeData = {
status?: ITypeStatusNotifikasi;
appId: string;
userId: string;
pesan: string;
@@ -44,4 +58,4 @@ export const gs_votingTiggerBeranda = atom<boolean>(false);
// donasi
export const gs_adminDonasi_triggerReview = atom<boolean>(false);
export const gs_donasiTriggerBeranda = atom<boolean>(false);
export const gs_donasiTriggerBeranda = atom<boolean>(false);

View File

@@ -185,10 +185,18 @@ export default function RealtimeProvider({
data.dataMessage?.kategoriApp == "DONASI" &&
data.dataMessage.status == "Publish"
) {
console.log("masuk trigger ");
setIsTriggerDonasiBeranda(true);
}
// if (
// data.type == "notification" &&
// data.pushNotificationTo == "ADMIN" &&
// data.dataMessage?.status == "Menunggu" &&
// userLoginId !== data.dataMessage?.userId
// ) {
// console.log("yes");
// }
// ---------------------- DONASI ------------------------- //
},
});

View File

@@ -10,10 +10,12 @@ import adminNotifikasi_funUpdateIsReadById from "../fun/update/fun_update_is_rea
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";
export default async function adminNotifikasi_findRouterDonasi({
appId,
notifikasiId,
status,
router,
onLoadCountNotif,
onLoadDataNotifikasi,
@@ -21,6 +23,7 @@ export default async function adminNotifikasi_findRouterDonasi({
}: {
appId: string;
notifikasiId: string;
status: ITypeStatusNotifikasi;
router: AppRouterInstance;
onLoadCountNotif: (val: any) => void;
onLoadDataNotifikasi: (val: any) => void;
@@ -29,54 +32,69 @@ export default async function adminNotifikasi_findRouterDonasi({
childId: IAdmin_ActiveChildId;
}) => void;
}) {
const check = await admin_funDonasiCheckStatus({ id: appId });
if (check.status == 200) {
const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
notifId: notifikasiId,
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",
});
if (udpateReadNotifikasi.status == 200) {
const loadCountNotif = await adminNotifikasi_countNotifikasi();
onLoadCountNotif(loadCountNotif);
const loadListNotifikasi = await adminNotifikasi_getByUserId({
page: 1,
return true;
} else {
const check = await admin_funDonasiCheckStatus({ id: appId });
if (check.status == 200) {
const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
notifId: notifikasiId,
});
onLoadDataNotifikasi(loadListNotifikasi);
const path = `/dev/admin/donasi/sub-menu/${check.statusName}`;
if (udpateReadNotifikasi.status == 200) {
const loadCountNotif = await adminNotifikasi_countNotifikasi();
onLoadCountNotif(loadCountNotif);
if (check.statusName == "draft") {
ComponentAdminGlobal_NotifikasiPeringatan(
"Status telah dirubah oleh user"
);
} else {
if (check.statusName == "publish") {
onChangeNavbar({
id: "Donasi",
childId: "Donasi_2",
});
const loadListNotifikasi = await adminNotifikasi_getByUserId({
page: 1,
});
onLoadDataNotifikasi(loadListNotifikasi);
const path = `/dev/admin/donasi/sub-menu/${check.statusName}`;
if (check.statusName == "draft") {
ComponentAdminGlobal_NotifikasiPeringatan(
"Status telah dirubah oleh user"
);
} else {
if (check.statusName == "publish") {
onChangeNavbar({
id: "Donasi",
childId: "Donasi_2",
});
}
if (check.statusName == "review") {
onChangeNavbar({
id: "Donasi",
childId: "Donasi_3",
});
}
if (check.statusName == "reject") {
onChangeNavbar({
id: "Donasi",
childId: "Donasi_4",
});
}
router.push(path, { scroll: false });
}
if (check.statusName == "review") {
onChangeNavbar({
id: "Donasi",
childId: "Donasi_3",
});
}
if (check.statusName == "reject") {
onChangeNavbar({
id: "Donasi",
childId: "Donasi_4",
});
}
router.push(path, { scroll: false });
return true;
}
return true;
} else {
ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
return false;

View File

@@ -3,6 +3,7 @@ import {
gs_adminEvent_triggerReview,
gs_adminJob_triggerReview,
gs_adminVoting_triggerReview,
ITypeStatusNotifikasi,
} from "@/app/lib/global_state";
import { AccentColor } from "@/app_modules/_global/color";
import { ComponentGlobal_CardLoadingOverlay } from "@/app_modules/_global/component";
@@ -169,6 +170,7 @@ export default function AdminNotifikasi_ViewCardDrawer({
appId: data.appId,
notifikasiId: data.id,
router: router,
status: data.status as ITypeStatusNotifikasi,
onLoadCountNotif(val) {
onLoadCountNotif(val);
},

View File

@@ -1,6 +1,7 @@
"use client";
import { DIRECTORY_ID } from "@/app/lib";
import { IRealtimeData } from "@/app/lib/global_state";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import {
AccentColor,
@@ -11,7 +12,6 @@ import { ComponentGlobal_NotifikasiPeringatan } from "@/app_modules/_global/noti
import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal";
import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin";
import mqtt_client from "@/util/mqtt_client";
import {
Button,
Center,
@@ -28,6 +28,7 @@ import { IconCamera, IconCircleCheck } from "@tabler/icons-react";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { WibuRealtime } from "wibu-pkg";
import TampilanRupiahDonasi from "../../component/tampilan_rupiah";
import { Donasi_funUpdateStatusInvoice } from "../../fun/update/fun_update_status_invoice";
import { gs_donasi_hot_menu } from "../../global_state";
@@ -63,26 +64,34 @@ export default function Donasi_InvoiceProses({
fileId: uploadImage.data.id,
});
if (res.status === 200) {
const dataNotif: any = {
// const dataNotif: any = {
// appId: res.data?.Donasi?.id as any,
// userId: res.data?.Donasi?.authorId as any,
// pesan: res.data?.Donasi?.title as any,
// status: res.data?.DonasiMaster_StatusInvoice?.name,
// kategoriApp: "DONASI",
// title: "Donatur melakukan transfer",
// };
const dataNotifikasi: IRealtimeData = {
appId: res.data?.Donasi?.id as any,
status: res.data?.DonasiMaster_StatusInvoice?.name as any,
userId: res.data?.Donasi?.authorId as any,
pesan: res.data?.Donasi?.title as any,
status: res.data?.DonasiMaster_StatusInvoice?.name,
kategoriApp: "DONASI",
title: "Donatur melakukan transfer",
title: "Donatur telah melakukan transfer",
};
const notif = await notifikasiToAdmin_funCreate({
data: dataNotif as any,
data: dataNotifikasi as any,
});
if (notif.status === 201) {
mqtt_client.publish(
"ADMIN",
JSON.stringify({
count: 1,
})
);
WibuRealtime.setData({
type: "notification",
pushNotificationTo: "ADMIN",
});
ComponentGlobal_NotifikasiBerhasil(res.message);
setActive(2);
router.push(RouterDonasi.proses_transaksi + `${invoice.id}`);

View File

@@ -1,5 +1,6 @@
"use client";
import { IRealtimeData } from "@/app/lib/global_state";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import {
AccentColor,
@@ -9,13 +10,13 @@ import { ComponentGlobal_NotifikasiBerhasil } from "@/app_modules/_global/notif_
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal";
import { MODEL_MASTER_BANK } from "@/app_modules/investasi/_lib/interface";
import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin";
import mqtt_client from "@/util/mqtt_client";
import { Button, Paper, Radio, Stack, Title } from "@mantine/core";
import { useAtom } from "jotai";
import { useRouter } from "next/navigation";
import { useState } from "react";
import { Donasi_funCreateInvoice } from "../../fun/create/fun_create_invoice";
import { gs_proses_donasi } from "../../global_state";
import { gs_donasi_hot_menu, gs_proses_donasi } from "../../global_state";
import { WibuRealtime } from "wibu-pkg";
export default function Donasi_MetodePembayaran({
listBank,
@@ -31,6 +32,7 @@ export default function Donasi_MetodePembayaran({
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
const [pilihBank, setPilihBank] = useState("");
const [bank, setBank] = useState(listBank);
const [activeHotMenu, setActiveHotMenu] = useAtom(gs_donasi_hot_menu);
async function onProses() {
const body = {
@@ -40,31 +42,31 @@ export default function Donasi_MetodePembayaran({
authorId: authorId,
};
// console.log(body)
const res = await Donasi_funCreateInvoice(body);
if (res.status === 200) {
const dataNotif = {
const dataNotifikasi: IRealtimeData = {
appId: res.data?.Donasi?.id as any,
status: res.data?.DonasiMaster_StatusInvoice?.name as any,
userId: res.data?.Donasi?.authorId as any,
pesan: res.data?.Donasi?.title as any,
status: res.data?.DonasiMaster_StatusInvoice?.name,
kategoriApp: "DONASI",
title: "Donatur mengirim invoice",
title: "Donatur membuat invoice donasi",
};
const notif = await notifikasiToAdmin_funCreate({
data: dataNotif as any,
data: dataNotifikasi as any,
});
if (notif.status === 201) {
mqtt_client.publish(
"ADMIN",
JSON.stringify({
count: 1,
})
);
WibuRealtime.setData({
type: "notification",
pushNotificationTo: "ADMIN",
});
setLoading(true);
setActiveHotMenu(2);
ComponentGlobal_NotifikasiBerhasil(res.message);
setProsesDonasi({
...prosesDonasi,