Merge pull request #142 from bipproduction/notifikasi/donasi
Fix: Donasi
This commit is contained in:
@@ -1,9 +1,8 @@
|
|||||||
import { AdminDonasi_DetailReview } from "@/app_modules/admin/donasi";
|
import { AdminDonasi_DetailReview } from "@/app_modules/admin/donasi";
|
||||||
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
|
import { AdminDonasi_getOneById } from "@/app_modules/admin/donasi/fun/get/get_one_by_id";
|
||||||
|
|
||||||
export default async function Page({params}: {params: {id: string}}) {
|
export default async function Page({ params }: { params: { id: string } }) {
|
||||||
// console.log(params.id)
|
const dataReview = await AdminDonasi_getOneById(params.id);
|
||||||
const dataReview = await AdminDonasi_getOneById(params.id)
|
|
||||||
// console.log(dataReview)
|
return <AdminDonasi_DetailReview dataReview={dataReview as any} />;
|
||||||
return <AdminDonasi_DetailReview dataReview={dataReview as any}/>
|
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,30 @@
|
|||||||
import { atom } from "jotai";
|
import { atom } from "jotai";
|
||||||
|
|
||||||
export type IRealtimeData = {
|
/**
|
||||||
status?:
|
* @param status | status jika perlu acc admin > "Publish", "Review", "Draft", "Reject"
|
||||||
| "Publish"
|
* @param status | khusus kategori | EVENT > "Peserta Event" | VOTING > "Voting Masuk" | DONASI > "Berhasil", "Proses", "Menunggu", "Gagal"
|
||||||
| "Review"
|
*/
|
||||||
| "Draft"
|
export type ITypeStatusNotifikasi =
|
||||||
| "Reject"
|
| "Publish"
|
||||||
// EVNET
|
| "Review"
|
||||||
| "Peserta Event"
|
| "Draft"
|
||||||
// VOTING
|
| "Reject"
|
||||||
| "Voting Masuk";
|
// 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;
|
appId: string;
|
||||||
userId: string;
|
userId: string;
|
||||||
pesan: string;
|
pesan: string;
|
||||||
|
|||||||
@@ -185,10 +185,18 @@ export default function RealtimeProvider({
|
|||||||
data.dataMessage?.kategoriApp == "DONASI" &&
|
data.dataMessage?.kategoriApp == "DONASI" &&
|
||||||
data.dataMessage.status == "Publish"
|
data.dataMessage.status == "Publish"
|
||||||
) {
|
) {
|
||||||
console.log("masuk trigger ");
|
|
||||||
setIsTriggerDonasiBeranda(true);
|
setIsTriggerDonasiBeranda(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (
|
||||||
|
// data.type == "notification" &&
|
||||||
|
// data.pushNotificationTo == "ADMIN" &&
|
||||||
|
// data.dataMessage?.status == "Menunggu" &&
|
||||||
|
// userLoginId !== data.dataMessage?.userId
|
||||||
|
// ) {
|
||||||
|
// console.log("yes");
|
||||||
|
// }
|
||||||
|
|
||||||
// ---------------------- DONASI ------------------------- //
|
// ---------------------- DONASI ------------------------- //
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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_countNotifikasi from "../fun/count/count_is_read";
|
||||||
import adminNotifikasi_getByUserId from "../fun/get/get_notifikasi_by_user_id";
|
import adminNotifikasi_getByUserId from "../fun/get/get_notifikasi_by_user_id";
|
||||||
import { ComponentAdminGlobal_NotifikasiPeringatan } from "../../_admin_global/admin_notifikasi/notifikasi_peringatan";
|
import { ComponentAdminGlobal_NotifikasiPeringatan } from "../../_admin_global/admin_notifikasi/notifikasi_peringatan";
|
||||||
|
import { ITypeStatusNotifikasi } from "@/app/lib/global_state";
|
||||||
|
|
||||||
export default async function adminNotifikasi_findRouterDonasi({
|
export default async function adminNotifikasi_findRouterDonasi({
|
||||||
appId,
|
appId,
|
||||||
notifikasiId,
|
notifikasiId,
|
||||||
|
status,
|
||||||
router,
|
router,
|
||||||
onLoadCountNotif,
|
onLoadCountNotif,
|
||||||
onLoadDataNotifikasi,
|
onLoadDataNotifikasi,
|
||||||
@@ -21,6 +23,7 @@ export default async function adminNotifikasi_findRouterDonasi({
|
|||||||
}: {
|
}: {
|
||||||
appId: string;
|
appId: string;
|
||||||
notifikasiId: string;
|
notifikasiId: string;
|
||||||
|
status: ITypeStatusNotifikasi;
|
||||||
router: AppRouterInstance;
|
router: AppRouterInstance;
|
||||||
onLoadCountNotif: (val: any) => void;
|
onLoadCountNotif: (val: any) => void;
|
||||||
onLoadDataNotifikasi: (val: any) => void;
|
onLoadDataNotifikasi: (val: any) => void;
|
||||||
@@ -29,54 +32,69 @@ export default async function adminNotifikasi_findRouterDonasi({
|
|||||||
childId: IAdmin_ActiveChildId;
|
childId: IAdmin_ActiveChildId;
|
||||||
}) => void;
|
}) => void;
|
||||||
}) {
|
}) {
|
||||||
const check = await admin_funDonasiCheckStatus({ id: appId });
|
if (
|
||||||
|
status == "Menunggu" ||
|
||||||
if (check.status == 200) {
|
status == "Berhasil" ||
|
||||||
const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
|
status == "Proses" ||
|
||||||
notifId: notifikasiId,
|
status == "Gagal"
|
||||||
|
) {
|
||||||
|
const path = RouterAdminDonasi_OLD.detail_publish + appId;
|
||||||
|
router.push(path, { scroll: false });
|
||||||
|
onChangeNavbar({
|
||||||
|
id: "Donasi",
|
||||||
|
childId: "Donasi_2",
|
||||||
});
|
});
|
||||||
|
|
||||||
if (udpateReadNotifikasi.status == 200) {
|
return true;
|
||||||
const loadCountNotif = await adminNotifikasi_countNotifikasi();
|
} else {
|
||||||
onLoadCountNotif(loadCountNotif);
|
const check = await admin_funDonasiCheckStatus({ id: appId });
|
||||||
|
if (check.status == 200) {
|
||||||
const loadListNotifikasi = await adminNotifikasi_getByUserId({
|
const udpateReadNotifikasi = await adminNotifikasi_funUpdateIsReadById({
|
||||||
page: 1,
|
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") {
|
const loadListNotifikasi = await adminNotifikasi_getByUserId({
|
||||||
ComponentAdminGlobal_NotifikasiPeringatan(
|
page: 1,
|
||||||
"Status telah dirubah oleh user"
|
});
|
||||||
);
|
onLoadDataNotifikasi(loadListNotifikasi);
|
||||||
} else {
|
|
||||||
if (check.statusName == "publish") {
|
const path = `/dev/admin/donasi/sub-menu/${check.statusName}`;
|
||||||
onChangeNavbar({
|
|
||||||
id: "Donasi",
|
if (check.statusName == "draft") {
|
||||||
childId: "Donasi_2",
|
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") {
|
return true;
|
||||||
onChangeNavbar({
|
|
||||||
id: "Donasi",
|
|
||||||
childId: "Donasi_3",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
if (check.statusName == "reject") {
|
|
||||||
onChangeNavbar({
|
|
||||||
id: "Donasi",
|
|
||||||
childId: "Donasi_4",
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
router.push(path, { scroll: false });
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
|
||||||
} else {
|
} else {
|
||||||
ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
|
ComponentAdminGlobal_NotifikasiPeringatan("Status tidak ditemukan");
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import {
|
|||||||
gs_adminEvent_triggerReview,
|
gs_adminEvent_triggerReview,
|
||||||
gs_adminJob_triggerReview,
|
gs_adminJob_triggerReview,
|
||||||
gs_adminVoting_triggerReview,
|
gs_adminVoting_triggerReview,
|
||||||
|
ITypeStatusNotifikasi,
|
||||||
} from "@/app/lib/global_state";
|
} from "@/app/lib/global_state";
|
||||||
import { AccentColor } from "@/app_modules/_global/color";
|
import { AccentColor } from "@/app_modules/_global/color";
|
||||||
import { ComponentGlobal_CardLoadingOverlay } from "@/app_modules/_global/component";
|
import { ComponentGlobal_CardLoadingOverlay } from "@/app_modules/_global/component";
|
||||||
@@ -169,6 +170,7 @@ export default function AdminNotifikasi_ViewCardDrawer({
|
|||||||
appId: data.appId,
|
appId: data.appId,
|
||||||
notifikasiId: data.id,
|
notifikasiId: data.id,
|
||||||
router: router,
|
router: router,
|
||||||
|
status: data.status as ITypeStatusNotifikasi,
|
||||||
onLoadCountNotif(val) {
|
onLoadCountNotif(val) {
|
||||||
onLoadCountNotif(val);
|
onLoadCountNotif(val);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { DIRECTORY_ID } from "@/app/lib";
|
import { DIRECTORY_ID } from "@/app/lib";
|
||||||
|
import { IRealtimeData } from "@/app/lib/global_state";
|
||||||
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
|
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
|
||||||
import {
|
import {
|
||||||
AccentColor,
|
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_NotifikasiBerhasil } from "@/app_modules/_global/notif_global/notifikasi_berhasil";
|
||||||
import { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal";
|
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 notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin";
|
||||||
import mqtt_client from "@/util/mqtt_client";
|
|
||||||
import {
|
import {
|
||||||
Button,
|
Button,
|
||||||
Center,
|
Center,
|
||||||
@@ -28,6 +28,7 @@ import { IconCamera, IconCircleCheck } from "@tabler/icons-react";
|
|||||||
import { useAtom } from "jotai";
|
import { useAtom } from "jotai";
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
import { WibuRealtime } from "wibu-pkg";
|
||||||
import TampilanRupiahDonasi from "../../component/tampilan_rupiah";
|
import TampilanRupiahDonasi from "../../component/tampilan_rupiah";
|
||||||
import { Donasi_funUpdateStatusInvoice } from "../../fun/update/fun_update_status_invoice";
|
import { Donasi_funUpdateStatusInvoice } from "../../fun/update/fun_update_status_invoice";
|
||||||
import { gs_donasi_hot_menu } from "../../global_state";
|
import { gs_donasi_hot_menu } from "../../global_state";
|
||||||
@@ -63,26 +64,34 @@ export default function Donasi_InvoiceProses({
|
|||||||
fileId: uploadImage.data.id,
|
fileId: uploadImage.data.id,
|
||||||
});
|
});
|
||||||
if (res.status === 200) {
|
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,
|
appId: res.data?.Donasi?.id as any,
|
||||||
|
status: res.data?.DonasiMaster_StatusInvoice?.name as any,
|
||||||
userId: res.data?.Donasi?.authorId as any,
|
userId: res.data?.Donasi?.authorId as any,
|
||||||
pesan: res.data?.Donasi?.title as any,
|
pesan: res.data?.Donasi?.title as any,
|
||||||
status: res.data?.DonasiMaster_StatusInvoice?.name,
|
|
||||||
kategoriApp: "DONASI",
|
kategoriApp: "DONASI",
|
||||||
title: "Donatur melakukan transfer",
|
title: "Donatur telah melakukan transfer",
|
||||||
};
|
};
|
||||||
|
|
||||||
const notif = await notifikasiToAdmin_funCreate({
|
const notif = await notifikasiToAdmin_funCreate({
|
||||||
data: dataNotif as any,
|
data: dataNotifikasi as any,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (notif.status === 201) {
|
if (notif.status === 201) {
|
||||||
mqtt_client.publish(
|
WibuRealtime.setData({
|
||||||
"ADMIN",
|
type: "notification",
|
||||||
JSON.stringify({
|
pushNotificationTo: "ADMIN",
|
||||||
count: 1,
|
});
|
||||||
})
|
|
||||||
);
|
|
||||||
ComponentGlobal_NotifikasiBerhasil(res.message);
|
ComponentGlobal_NotifikasiBerhasil(res.message);
|
||||||
setActive(2);
|
setActive(2);
|
||||||
router.push(RouterDonasi.proses_transaksi + `${invoice.id}`);
|
router.push(RouterDonasi.proses_transaksi + `${invoice.id}`);
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
|
import { IRealtimeData } from "@/app/lib/global_state";
|
||||||
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
|
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
|
||||||
import {
|
import {
|
||||||
AccentColor,
|
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 { ComponentGlobal_NotifikasiGagal } from "@/app_modules/_global/notif_global/notifikasi_gagal";
|
||||||
import { MODEL_MASTER_BANK } from "@/app_modules/investasi/_lib/interface";
|
import { MODEL_MASTER_BANK } from "@/app_modules/investasi/_lib/interface";
|
||||||
import notifikasiToAdmin_funCreate from "@/app_modules/notifikasi/fun/create/create_notif_to_admin";
|
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 { Button, Paper, Radio, Stack, Title } from "@mantine/core";
|
||||||
import { useAtom } from "jotai";
|
import { useAtom } from "jotai";
|
||||||
import { useRouter } from "next/navigation";
|
import { useRouter } from "next/navigation";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import { Donasi_funCreateInvoice } from "../../fun/create/fun_create_invoice";
|
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({
|
export default function Donasi_MetodePembayaran({
|
||||||
listBank,
|
listBank,
|
||||||
@@ -31,6 +32,7 @@ export default function Donasi_MetodePembayaran({
|
|||||||
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
|
const [prosesDonasi, setProsesDonasi] = useAtom(gs_proses_donasi);
|
||||||
const [pilihBank, setPilihBank] = useState("");
|
const [pilihBank, setPilihBank] = useState("");
|
||||||
const [bank, setBank] = useState(listBank);
|
const [bank, setBank] = useState(listBank);
|
||||||
|
const [activeHotMenu, setActiveHotMenu] = useAtom(gs_donasi_hot_menu);
|
||||||
|
|
||||||
async function onProses() {
|
async function onProses() {
|
||||||
const body = {
|
const body = {
|
||||||
@@ -40,31 +42,31 @@ export default function Donasi_MetodePembayaran({
|
|||||||
authorId: authorId,
|
authorId: authorId,
|
||||||
};
|
};
|
||||||
|
|
||||||
// console.log(body)
|
|
||||||
|
|
||||||
const res = await Donasi_funCreateInvoice(body);
|
const res = await Donasi_funCreateInvoice(body);
|
||||||
if (res.status === 200) {
|
if (res.status === 200) {
|
||||||
const dataNotif = {
|
|
||||||
|
const dataNotifikasi: IRealtimeData = {
|
||||||
appId: res.data?.Donasi?.id as any,
|
appId: res.data?.Donasi?.id as any,
|
||||||
|
status: res.data?.DonasiMaster_StatusInvoice?.name as any,
|
||||||
userId: res.data?.Donasi?.authorId as any,
|
userId: res.data?.Donasi?.authorId as any,
|
||||||
pesan: res.data?.Donasi?.title as any,
|
pesan: res.data?.Donasi?.title as any,
|
||||||
status: res.data?.DonasiMaster_StatusInvoice?.name,
|
|
||||||
kategoriApp: "DONASI",
|
kategoriApp: "DONASI",
|
||||||
title: "Donatur mengirim invoice",
|
title: "Donatur membuat invoice donasi",
|
||||||
};
|
};
|
||||||
|
|
||||||
const notif = await notifikasiToAdmin_funCreate({
|
const notif = await notifikasiToAdmin_funCreate({
|
||||||
data: dataNotif as any,
|
data: dataNotifikasi as any,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (notif.status === 201) {
|
if (notif.status === 201) {
|
||||||
mqtt_client.publish(
|
WibuRealtime.setData({
|
||||||
"ADMIN",
|
type: "notification",
|
||||||
JSON.stringify({
|
pushNotificationTo: "ADMIN",
|
||||||
count: 1,
|
});
|
||||||
})
|
|
||||||
);
|
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
setActiveHotMenu(2);
|
||||||
ComponentGlobal_NotifikasiBerhasil(res.message);
|
ComponentGlobal_NotifikasiBerhasil(res.message);
|
||||||
setProsesDonasi({
|
setProsesDonasi({
|
||||||
...prosesDonasi,
|
...prosesDonasi,
|
||||||
|
|||||||
Reference in New Issue
Block a user