- UI Investasi
- UI Donasi
## No issue
This commit is contained in:
2024-08-01 16:48:54 +08:00
parent 810ce1c00d
commit 2ab3a8abb1
135 changed files with 2222 additions and 1652 deletions

View File

@@ -35,6 +35,8 @@ import { AdminDonasi_funUpdateStatusReject } from "../fun/update/fun_status_reje
import ComponentAdminGlobal_BackButton from "../../component_global/back_button";
import ComponentAdminDonasi_TampilanDetailDonasi from "../component/tampilan_detail_donasi";
import ComponentAdminDonasi_CeritaPenggalangDana from "../component/tampilan_detail_cerita";
import mqtt_client from "@/util/mqtt_client";
import adminNotifikasi_funCreateToUser from "../../notifikasi/fun/create/fun_create_notif_user";
export default function AdminDonasi_DetailReview({
dataReview,
@@ -80,22 +82,36 @@ function ButtonOnHeader({
const [catatan, setCatatan] = useState("");
async function onPulish() {
await AdminDonasi_funUpdateStatusPublish(donasi.id, "1").then(
async (res) => {
if (res.status === 200) {
const newData = await AdminDonasi_getOneById(donasi?.id);
setData(newData);
ComponentAdminGlobal_NotifikasiBerhasil(
"Berhasil Mengubah Status Donasi"
);
setLoadingPublish(true);
} else {
ComponentAdminGlobal_NotifikasiPeringatan(
"Gagal Mengubah Status Donasi"
);
}
const res = await AdminDonasi_funUpdateStatusPublish(donasi.id, "1");
if (res.status === 200) {
const dataNotif = {
appId: res.data?.id,
status: res.data?.DonasiMaster_Status?.name as any,
userId: res.data?.authorId as any,
pesan: res.data?.title as any,
kategoriApp: "DONASI",
title: "Donasi publish",
};
const notif = await adminNotifikasi_funCreateToUser({
data: dataNotif as any,
});
if (notif.status === 201) {
mqtt_client.publish(
"USER",
JSON.stringify({ userId: res?.data?.authorId, count: 1 })
);
const newData = await AdminDonasi_getOneById(donasi?.id);
setData(newData);
ComponentAdminGlobal_NotifikasiBerhasil(
"Berhasil Mengubah Status Donasi"
);
setLoadingPublish(true);
}
);
} else {
ComponentAdminGlobal_NotifikasiPeringatan("Gagal Mengubah Status Donasi");
}
}
async function onReject() {
@@ -104,19 +120,40 @@ function ButtonOnHeader({
"Lengkapi Alasan Penolakan"
);
await AdminDonasi_funUpdateStatusReject(donasi.id, "4", catatan).then(
async (res) => {
if (res.status === 200) {
const newData = await AdminDonasi_getOneById(donasi?.id);
setData(newData);
close();
ComponentAdminGlobal_NotifikasiBerhasil(res.message);
setLoadingReject(true);
} else {
ComponentAdminGlobal_NotifikasiGagal(res.message);
}
}
const res = await AdminDonasi_funUpdateStatusReject(
donasi.id,
"4",
catatan
);
if (res.status === 200) {
const dataNotif = {
appId: res.data?.id,
status: res.data?.DonasiMaster_Status?.name as any,
userId: res.data?.authorId as any,
pesan: res.data?.title as any,
kategoriApp: "DONASI",
title: "Donasi anda di tolak !",
};
const notif = await adminNotifikasi_funCreateToUser({
data: dataNotif as any,
});
if (notif.status === 201) {
mqtt_client.publish(
"USER",
JSON.stringify({ userId: res?.data?.authorId, count: 1 })
);
}
const newData = await AdminDonasi_getOneById(donasi?.id);
setData(newData);
close();
ComponentAdminGlobal_NotifikasiBerhasil(res.message);
setLoadingReject(true);
} else {
ComponentAdminGlobal_NotifikasiGagal(res.message);
}
}
return (
@@ -190,5 +227,3 @@ function ButtonOnHeader({
</>
);
}

View File

@@ -55,6 +55,8 @@ import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi";
import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total";
import { ComponentAdminGlobal_NotifikasiBerhasil } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_berhasil";
import { ComponentAdminGlobal_NotifikasiGagal } from "@/app_modules/admin/component_global/admin_notifikasi/notifikasi_gagal";
import mqtt_client from "@/util/mqtt_client";
import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user";
export default function AdminDonasi_DetailPublish({
dataPublish,
@@ -266,7 +268,6 @@ function TampilanListDonatur({
donatur: any;
listMasterStatus: MODEL_NEW_DEFAULT_MASTER[];
dataDonasi: MODEL_DONASI;
onSuccessDonasi: (val: any) => void;
}) {
const router = useRouter();
@@ -509,6 +510,57 @@ function ButtonAccept({
target: target,
});
if (updateStatus.status == 200) {
const dataNotif = {
appId: updateStatus.data?.id,
userId: updateStatus.data?.authorId,
pesan: updateStatus.data?.Donasi?.title,
status: updateStatus.data?.DonasiMaster_StatusInvoice?.name,
kategoriApp: "DONASI",
title: "Terimakasih, Donasi anda telah diterima",
};
const notif = await adminNotifikasi_funCreateToUser({
data: dataNotif as any,
});
if (notif.status === 201) {
mqtt_client.publish(
"USER",
JSON.stringify({ userId: updateStatus?.data?.authorId, count: 1 })
);
mqtt_client.publish(
"donasi_invoice",
JSON.stringify({
invoiceId: invoiceId,
statusInvoiceId: "1",
})
);
}
const dataNotifToAuthorDonasi = {
appId: updateStatus.data?.Donasi?.id,
userId: updateStatus.data?.Donasi?.authorId,
pesan: updateStatus.data?.Donasi?.title,
status: "Donatur Baru",
kategoriApp: "DONASI",
title: "Ada donatur baru",
};
const notifToAuthorDonasi = await adminNotifikasi_funCreateToUser({
data: dataNotifToAuthorDonasi as any,
});
if (notifToAuthorDonasi.status === 201) {
mqtt_client.publish(
"USER",
JSON.stringify({
userId: updateStatus?.data?.Donasi?.authorId,
count: 1,
})
);
}
const updateData = await AdminDonasi_getOneById(donasiId);
onSuccessDonasi(updateData as any);
const updatelistDonatur = await adminDonasi_getListDonatur({
@@ -516,7 +568,6 @@ function ButtonAccept({
page: 1,
});
onSuccessDonatur(updatelistDonatur);
ComponentAdminGlobal_NotifikasiBerhasil(updateStatus.message);
} else {
ComponentAdminGlobal_NotifikasiGagal(updateStatus.message);

View File

@@ -5,7 +5,8 @@ import prisma from "@/app/lib/prisma";
export async function AdminDonasi_funCountDonatur(donasiId: string) {
const donatur = await prisma.donasi_Invoice.count({
where: {
donasiId: donasiId
donasiId: donasiId,
donasiMaster_StatusInvoiceId: "1"
}
});

View File

@@ -20,7 +20,7 @@ export default async function adminDonasi_getListReview({
skip: skipData,
take: takeData,
orderBy: {
createdAt: "desc",
updatedAt: "desc",
},
where: {
donasiMaster_StatusDonasiId: "2",

View File

@@ -33,7 +33,6 @@ export async function AdminDonasi_getOneById(id: string) {
DonasiMaster_Ketegori: true,
DonasiMaster_Durasi: true,
DonasiMaster_Status: true,
},
});
return res;

View File

@@ -1,6 +1,7 @@
"use server";
import prisma from "@/app/lib/prisma";
import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi";
import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin";
import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi";
import { revalidatePath } from "next/cache";
@@ -19,11 +20,22 @@ export async function AdminDonasi_funUpdateStatusPublish(
donasiMaster_StatusDonasiId: statusId,
publishTime: new Date(publishTime),
},
select: {
id: true,
title: true,
authorId: true,
DonasiMaster_Status: {
select: {
name: true,
},
},
},
});
if (!data) return { status: 400, message: "Data tidak ditemukan" };
revalidatePath("/dev/admin/donasi/table/review");
revalidatePath(RouterAdminDonasi.table_review);
return {
data: data,
status: 200,
message: "Status berhasil diganti",
};

View File

@@ -19,11 +19,22 @@ export async function AdminDonasi_funUpdateStatusReject(
donasiMaster_StatusDonasiId: statusId,
catatan: catatan,
},
select: {
id: true,
title: true,
authorId: true,
DonasiMaster_Status: {
select: {
name: true,
},
},
},
});
if (!data) return { status: 400, message: "Data tidak ditemukan" };
revalidatePath(RouterAdminDonasi.table_review);
return {
data: data,
status: 200,
message: "Status berhasil diganti",
};

View File

@@ -30,6 +30,23 @@ export default async function adminDonasi_funUpdateStatusDanTotal({
data: {
donasiMaster_StatusInvoiceId: statusInvoiceId,
},
select: {
id: true,
authorId: true,
Donasi: {
select: {
id: true,
title: true,
authorId: true,
},
},
DonasiMaster_StatusInvoice: {
select: {
name: true,
},
},
},
});
if (!updateInvoice) return { status: 400, message: "Update invoice gagal" };
@@ -45,5 +62,5 @@ export default async function adminDonasi_funUpdateStatusDanTotal({
if (!updateDonasi) return { status: 400, message: "Update donasi gagal" };
revalidatePath(RouterAdminDonasi_OLD.detail_publish + donasiId);
return { status: 200, message: "Update Berhasil" };
return { data: updateInvoice, status: 200, message: "Update Berhasil" };
}

View File

@@ -229,7 +229,7 @@ async function onReject(
catatan: catatan,
};
const res = await AdminEvent_funEditCatatanById(body as any, "4");
const res = await AdminEvent_funEditCatatanById(body as any, "4");
if (res.status === 200) {
const dataNotif = {
appId: res.data?.id,

View File

@@ -53,6 +53,7 @@ import adminNotifikasi_findRouterJob from "./notifikasi/route_setting/job";
import adminNotifikasi_findRouterForum from "./notifikasi/route_setting/forum";
import { adminNotifikasi_findRouterVoting } from "./notifikasi/route_setting/voting";
import { adminNotifikasi_findRouterEvent } from "./notifikasi/route_setting/event";
import adminNotifikasi_findRouterDonasi from "./notifikasi/route_setting/donasi";
export default function AdminLayout({
children,
@@ -441,6 +442,17 @@ function DrawerNotifikasi({
},
});
e.kategoriApp === "DONASI" && adminNotifikasi_findRouterDonasi({
data: e,
router: router,
onChangeNavbar(val) {
onChangeNavbar(val);
},
onToggleNavbar(val) {
onToggleNavbar(val);
},
})
const updateIsRead = await adminNotifikasi_funUpdateIsReadById({
notifId: e?.id,
});

View File

@@ -0,0 +1,50 @@
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 _ from "lodash";
import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime";
export default async function adminNotifikasi_findRouterDonasi({
data,
router,
onChangeNavbar,
onToggleNavbar,
}: {
data: MODEL_NOTIFIKASI;
router: AppRouterInstance;
onChangeNavbar: (val: any) => void;
onToggleNavbar: (val: any) => void;
}) {
if (data.status === "Review") {
const path = RouterAdminDonasi.table_review;
router.push(path);
onChangeNavbar({
id: 3,
childId: 33,
});
}
if (
data.status === "Menunggu" ||
data.status === "Berhasil" ||
data.status === "Proses" ||
data.status === "Gagal"
) {
const path = RouterAdminDonasi_OLD.detail_publish + data.appId;
router.push(path, { scroll: false });
onChangeNavbar({
id: 3,
childId: 32,
});
}
// if (data.status === "Draft") {
// router.push(routeName + "review");
// onChangeNavbar({
// id: 6,
// childId: 63,
// });
// }
onToggleNavbar(true);
}