}
variant="white"
onClick={() => router.back()}
diff --git a/src/app_modules/admin/donasi/detail/publish/detail_list_pencairan.tsx b/src/app_modules/admin/donasi/detail/publish/detail_list_pencairan.tsx
index 06d1f4e3..43722946 100644
--- a/src/app_modules/admin/donasi/detail/publish/detail_list_pencairan.tsx
+++ b/src/app_modules/admin/donasi/detail/publish/detail_list_pencairan.tsx
@@ -38,7 +38,7 @@ function TampilanListPencairan({
-
+
{e.deskripsi}
diff --git a/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx b/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx
index d977cc8c..12a1e487 100644
--- a/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx
+++ b/src/app_modules/admin/donasi/detail/publish/detail_publish.tsx
@@ -65,6 +65,7 @@ export default function AdminDonasi_DetailPublish({
const [isReload, setReload] = useState(false);
const params = useParams<{ id: string }>();
const [data, setData] = useState(null);
+ console.log("Ini data", data)
//
useShallowEffect(() => {
@@ -110,7 +111,7 @@ export default function AdminDonasi_DetailPublish({
donasi={data}
isReload={isReload}
/>)}
-
+
>
>
diff --git a/src/app_modules/admin/donasi/detail/publish/detail_publish_backup.tsx b/src/app_modules/admin/donasi/detail/publish/detail_publish_backup.tsx
deleted file mode 100644
index 6a255814..00000000
--- a/src/app_modules/admin/donasi/detail/publish/detail_publish_backup.tsx
+++ /dev/null
@@ -1,889 +0,0 @@
-"use client";
-
-import { RouterAdminGlobal } from "@/lib";
-import { RouterAdminDonasi } from "@/lib/router_admin/router_admin_donasi";
-import { RouterAdminDonasi_OLD } from "@/lib/router_hipmi/router_admin";
-import { ComponentGlobal_TampilanRupiah } from "@/app_modules/_global/component";
-import { Admin_ComponentLoadImageLandscape } from "@/app_modules/admin/_admin_global";
-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 AdminGlobal_ComponentBackButton from "@/app_modules/admin/_admin_global/back_button";
-import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user";
-import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah";
-import {
- MODEL_DONASI,
- MODEL_DONASI_INVOICE,
- MODEL_DONASI_PENCAIRAN_DANA,
-} from "@/app_modules/donasi/model/interface";
-import { MODEL_NEW_DEFAULT_MASTER } from "@/app_modules/model_global/interface";
-import mqtt_client from "@/util/mqtt_client";
-import {
- ActionIcon,
- Badge,
- Box,
- Button,
- Center,
- Grid,
- Group,
- Modal,
- Pagination,
- Paper,
- ScrollArea,
- Select,
- SimpleGrid,
- Spoiler,
- Stack,
- Table,
- Text,
- TextInput,
- Title,
-} from "@mantine/core";
-import { useDisclosure, useShallowEffect } from "@mantine/hooks";
-import { IconReload } from "@tabler/icons-react";
-import _, { toNumber } from "lodash";
-import moment from "moment";
-import { useParams, useRouter } from "next/navigation";
-import { useState } from "react";
-import { adminDonasi_getListDonatur } from "../../fun/get/get_list_donatur_by_id";
-import { AdminDonasi_getOneById } from "../../fun/get/get_one_by_id";
-import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total";
-import { ComponentAdminGlobal_TitlePage } from "@/app_modules/admin/_admin_global/_component";
-import { AccentColor, AdminColor } from "@/app_modules/_global/color/color_pallet";
-import CustomSkeletonAdmin from "@/app_modules/admin/_admin_global/_component/skeleton/customSkeletonAdmin";
-import { apiGetAdminDonasiById } from "../../lib/api_fetch_admin_donasi";
-import { clientLogger } from "@/util/clientLogger";
-import SkeletonAdminDetailDonasiReject from "../../component/skeleton_detail donasi_reject";
-import SkeletonAdminDetailDonasiPublish from "../../component/skeleton_detail_donasi_publish";
-
-export default function AdminDonasi_DetailPublish({
-
- listDonatur,
- countDonatur,
- listPencairan,
- listMasterStatus,
-}: {
-
- listDonatur: any[];
- countDonatur: number;
- listPencairan: MODEL_DONASI_PENCAIRAN_DANA[];
- listMasterStatus: MODEL_NEW_DEFAULT_MASTER[];
-}) {
- const params = useParams<{ id: string }>();
- const [data, setData] = useState(null);
- const [pencairan, setPencairan] = useState(listPencairan);
- const selectedData = _.omit(data, [
- "Author",
- "imageDonasi",
- "CeritaDonasi",
- "DonasiMaster_Ketegori",
- "DonasiMaster_Durasi",
- "DonasiMaster_Status",
- ]);
-
- useShallowEffect(() => {
- const loadInitialData = async () => {
- try {
- const response = await apiGetAdminDonasiById({
- id: params.id,
- })
-
- if (response?.success && response?.data) {
- setTimeout(() => {
- setData(response.data)
- }, 3000);
- } else {
- console.log("Invalid data format recieved:", response);
- setData(null)
- }
- } catch (error) {
- clientLogger.error("Invalid data format recieved:", error);
- setData(null);
- }
- }
- loadInitialData();
- })
- return (
- <>
- {/* {JSON.stringify(pencairan, null, 2)} */}
-
- {!data ?
- () : (
- <>
-
-
- {
- setData(val);
- }}
- />
-
- >
- )}
-
- >
- );
-}
-
-function TampilanDetailDonasi({
- donasi,
- countDonatur,
-}: {
- donasi: MODEL_DONASI;
- countDonatur: number;
-}) {
- const [opened, { open, close }] = useDisclosure(false);
- const router = useRouter();
- const [isLoadingPencairanDana, setIsLoadingPencairanDana] = useState(false);
-
- return (
- <>
-
-
-
-
-
-
- Gambar Donasi
-
-
-
-
-
-
-
- Detail Donasi
-
-
- Judul
-
- :
-
-
- {donasi?.title}
-
-
-
-
-
-
- Penggalang Dana
-
- :
-
-
- {donasi?.Author.username}
-
-
-
-
-
-
- Durasi
-
- :
-
-
- {donasi?.DonasiMaster_Durasi.name} hari
-
-
-
-
-
-
- Dana dibutuhkan
-
- :
-
-
-
-
-
-
-
- Kategori
-
- :
-
-
- {donasi?.DonasiMaster_Ketegori?.name}
-
-
-
-
-
-
- Total donatur
-
- :
-
-
- {countDonatur}
-
-
-
-
-
-
- Progres
-
- :
-
-
- {toNumber(donasi.progres).toFixed(2)} %
-
-
-
-
-
-
- Dana terkumpul
-
- :
-
-
-
-
-
-
-
- {/* Pencairan Dana */}
-
-
-
- Pencairan Dana
-
-
-
-
- Total Dana Dicairkan
-
-
-
-
-
- Bank Tujuan
-
- {donasi?.namaBank}
-
-
-
-
-
-
-
- Akumulasi Pencairan
-
- {donasi?.akumulasiPencairan} Kali
-
-
-
-
-
- Nomor Rekening
-
- {donasi?.rekening}
-
-
-
-
-
-
- Sisa Dana
-
-
-
-
-
-
-
-
-
-
-
-
- >
- );
-}
-
-function PencairanDana() {
- return (
- <>
-
-
-
- >
- );
-}
-
-//######################## LIST DONATUR #####################//
-function TampilanListDonatur({
- donatur,
- listMasterStatus,
- dataDonasi,
- onSuccessDonasi,
-}: {
- donatur: any;
- listMasterStatus: MODEL_NEW_DEFAULT_MASTER[];
- dataDonasi: MODEL_DONASI;
- onSuccessDonasi: (val: any) => void;
-}) {
- const router = useRouter();
- const [isLoadingCek, setLoadingCek] = useState(false);
- const [idData, setIdData] = useState("");
- const [lisDonatur, setListDonatur] = useState(
- donatur.data
- );
- const [isNPage, setNPage] = useState(donatur.nPage);
- const [isActivePage, setActivePage] = useState(1);
- const [isSelect, setSelect] = useState("");
-
- async function onRelaod() {
- const loadData = await adminDonasi_getListDonatur({
- donasiId: dataDonasi?.id,
- page: 1,
- });
- setSelect("");
- setListDonatur(loadData.data as any);
- setNPage(loadData.nPage);
- }
-
- async function onSelect(s: any) {
- setSelect(s);
- const loadData = await adminDonasi_getListDonatur({
- donasiId: dataDonasi?.id,
- page: 1,
- selectStatusId: s,
- });
- setListDonatur(loadData.data as any);
- setNPage(loadData.nPage);
- setActivePage(1);
- }
-
- async function onPageClick(p: any) {
- setActivePage(p);
- const loadData = await adminDonasi_getListDonatur({
- donasiId: dataDonasi?.id,
- page: p,
- selectStatusId: isSelect,
- });
- setListDonatur(loadData.data as any);
- setNPage(loadData.nPage);
- }
-
- const tableRows = lisDonatur.map((e, i) => (
-
- |
- {e?.Author.username}
- |
-
- {e?.DonasiMaster_Bank?.name}
- |
-
-
-
-
- |
-
-
- {new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format(
- e?.createdAt
- )}
-
- |
-
-
-
- {e?.DonasiMaster_StatusInvoice?.name}
-
-
- |
-
-
- {e?.donasiMaster_StatusInvoiceId === "1" ||
- e?.donasiMaster_StatusInvoiceId === "2" ? (
-
- ) : (
- "-"
- )}
-
- |
-
-
- {e?.donasiMaster_StatusInvoiceId === "1" ? (
-
- ) : e?.DonasiMaster_StatusInvoice?.id === "2" ? (
- {
- onSuccessDonasi(val);
- }}
- onSuccessDonatur={(val) => {
- setListDonatur(val.data);
- setNPage(val.nPage);
- }}
- />
- ) : (
- -
- )}
-
- |
-
- ));
-
- return (
- <>
-
- {/* {JSON.stringify(dataDonasi, null, 2)} */}
-
- {
- onRelaod();
- }}
- >
-
-
-
- >
- );
-}
-
-function ButtonAccept({
- invoiceId,
- donasiId,
- nominal,
- danaTerkumpul,
- target,
- onSuccessDonasi,
- onSuccessDonatur,
-}: {
- invoiceId: string;
- donasiId: string;
- nominal: number;
- danaTerkumpul: number;
- target: number;
- onSuccessDonasi: (val: any) => void;
- onSuccessDonatur: (val: any) => void;
-}) {
- const [opened, { open, close }] = useDisclosure(false);
- const [isLoading, setIsLoading] = useState(false);
-
- async function onAccept() {
- let nominalDonasi = nominal;
- let jumlahTerkumpul = danaTerkumpul;
-
- const updateStatus = await adminDonasi_funUpdateStatusDanTotal({
- invoiceId: invoiceId,
- donasiId: donasiId,
- jumlahTerkumpul: jumlahTerkumpul,
- nominal: nominalDonasi,
- statusInvoiceId: "1",
- target: target,
- });
- if (updateStatus.status == 200) {
- setIsLoading(true);
- 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({
- donasiId: donasiId,
- page: 1,
- });
- onSuccessDonatur(updatelistDonatur);
- ComponentAdminGlobal_NotifikasiBerhasil(updateStatus.message);
- setIsLoading(false);
- } else {
- ComponentAdminGlobal_NotifikasiGagal(updateStatus.message);
- setIsLoading(false);
- }
- close();
- }
-
- return (
- <>
-
-
-
-
-
- {`${"Anda sudah melihat bukti transfer dan yakin menerima donasi ini ?"}`}
-
-
-
-
-
-
-
- >
- );
-}
-
-//######################## LIST PENCAIRAN #####################//
-function TampilanListPencairan({
- pencairan,
-}: {
- pencairan: MODEL_DONASI_PENCAIRAN_DANA[];
-}) {
- const router = useRouter();
- const [data, setData] = useState(pencairan);
- const [opened, { open, close }] = useDisclosure(false);
- const [gambarId, setGambarId] = useState("");
-
- const rowTable = data.map((e) => (
-
- |
-
-
-
- |
-
- {moment(e.createdAt).format("ll")}
- |
-
-
- {e.title}
-
- |
-
-
-
- {e.deskripsi}
-
-
- |
-
-
-
-
-
-
- |
-
- ));
-
- return (
- <>
- {/*
-
-
-
- */}
-
- {/* {JSON.stringify(data, null, 2)} */}
-
-
-
- {
- // onRelaod();
- }}
- >
-
-
- {/*
-
- {/*
- Rincian Pencairan Dana
- {_.isEmpty(pencairan) ? (
-
- BELUM ADA PENCAIRAN DANA
-
- ) : (
-
-
-
-
- | Nominal |
- Tanggal |
- Judul |
-
- Deskripsi
- |
-
- Bukti Transfer
- |
-
-
- {rowTable}
-
-
- )}
- */}
- >
- );
-}
diff --git a/src/app_modules/admin/donasi/detail/publish/detail_publish_backup2.txt b/src/app_modules/admin/donasi/detail/publish/detail_publish_backup2.txt
deleted file mode 100644
index 36ac2f11..00000000
--- a/src/app_modules/admin/donasi/detail/publish/detail_publish_backup2.txt
+++ /dev/null
@@ -1,871 +0,0 @@
-"use client";
-
-import { AccentColor, AdminColor } from "@/app_modules/_global/color/color_pallet";
-import { ComponentGlobal_TampilanRupiah } from "@/app_modules/_global/component";
-import { apiGetMasterStatusTransaksi } from "@/app_modules/_global/lib/api_fetch_master";
-import { globalStatusTransaksi } from "@/app_modules/_global/lib/master_list_app";
-import { Admin_ComponentLoadImageLandscape } from "@/app_modules/admin/_admin_global";
-import { ComponentAdminGlobal_TitlePage } from "@/app_modules/admin/_admin_global/_component";
-import CustomSkeletonAdmin from "@/app_modules/admin/_admin_global/_component/skeleton/customSkeletonAdmin";
-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 AdminGlobal_ComponentBackButton from "@/app_modules/admin/_admin_global/back_button";
-import adminNotifikasi_funCreateToUser from "@/app_modules/admin/notifikasi/fun/create/fun_create_notif_user";
-import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah";
-import {
- MODEL_DONASI,
- MODEL_DONASI_PENCAIRAN_DANA
-} from "@/app_modules/donasi/model/interface";
-import { MODEL_NEW_DEFAULT_MASTER } from "@/app_modules/model_global/interface";
-import { RouterAdminGlobal } from "@/lib";
-import { RouterAdminDonasi } from "@/lib/router_admin/router_admin_donasi";
-import { RouterAdminDonasi_OLD } from "@/lib/router_hipmi/router_admin";
-import { clientLogger } from "@/util/clientLogger";
-import mqtt_client from "@/util/mqtt_client";
-import {
- ActionIcon,
- Badge,
- Box,
- Button,
- Center,
- Grid,
- Group,
- Modal,
- Pagination,
- Paper,
- ScrollArea,
- Select,
- SimpleGrid,
- Spoiler,
- Stack,
- Table,
- Text,
- TextInput,
- Title,
-} from "@mantine/core";
-import { useDisclosure, useShallowEffect } from "@mantine/hooks";
-import { IconReload } from "@tabler/icons-react";
-import _, { toNumber } from "lodash";
-import moment from "moment";
-import { useParams, useRouter } from "next/navigation";
-import { useState } from "react";
-import SkeletonAdminDetailDonasiPublish from "../../component/skeleton_detail_donasi_publish";
-import { AdminDonasi_getOneById } from "../../fun/get/get_one_by_id";
-import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total";
-import { apiGetAdminAllDaftarDonatur, apiGetAdminDonasiById } from "../../lib/api_fetch_admin_donasi";
-
-export default function AdminDonasi_DetailPublish({
- countDonatur,
- listPencairan,
-}: {
- countDonatur: number;
- listPencairan: MODEL_DONASI_PENCAIRAN_DANA[];
-}) {
- const [pencairan, setPencairan] = useState(listPencairan);
- // const [isReload, setReload] = useState(false);
-
- return (
- <>
- {/* {JSON.stringify(pencairan, null, 2)} */}
-
- <>
-
-
-
-
- >
-
- >
- );
-}
-
-function TampilanDetailDonasi({
- countDonatur,
-}: {
- countDonatur: number;
-}) {
- const params = useParams<{ id: string }>();
- const [data, setData] = useState(null);
- const [isReload, setReload] = useState(false);
-
-
- useShallowEffect(() => {
-
- loadInitialData();
- }, [isReload])
- const loadInitialData = async () => {
- try {
- const response = await apiGetAdminDonasiById({
- id: params.id,
- })
-
- if (response?.success && response?.data) {
- setTimeout(() => {
- setData(response.data)
- }, 3000);
- } else {
- console.log("Invalid data format recieved:", response);
- setData(null)
- }
- } catch (error) {
- clientLogger.error("Invalid data format recieved:", error);
- setData(null);
- }
- }
- const [opened, { open, close }] = useDisclosure(false);
- const router = useRouter();
- const [isLoadingPencairanDana, setIsLoadingPencairanDana] = useState(false);
-
-
- return (
- <>
- {!data ? () : (
-
-
-
-
-
-
- Gambar Donasi
-
-
-
-
-
-
-
- Detail Donasi
-
-
- Judul
-
- :
-
-
- {data?.title}
-
-
-
-
-
-
- Penggalang Dana
-
- :
-
-
- {data?.Author.username}
-
-
-
-
-
-
- Durasi
-
- :
-
-
- {data?.DonasiMaster_Durasi.name} hari
-
-
-
-
-
-
- Dana dibutuhkan
-
- :
-
-
-
-
-
-
-
- Kategori
-
- :
-
-
- {data?.DonasiMaster_Ketegori?.name}
-
-
-
-
-
-
- Total donatur
-
- :
-
-
- {countDonatur}
-
-
-
-
-
-
- Progres
-
- :
-
-
- {toNumber(data.progres).toFixed(2)} %
-
-
-
-
-
-
- Dana terkumpul
-
- :
-
-
-
-
-
-
-
- {/* Pencairan Dana */}
-
-
-
- Pencairan Dana
-
-
-
-
- Total Dana Dicairkan
-
-
-
-
-
- Bank Tujuan
-
- {data?.namaBank}
-
-
-
-
-
-
-
- Akumulasi Pencairan
-
- {data?.akumulasiPencairan} Kali
-
-
-
-
-
- Nomor Rekening
-
- {data?.rekening}
-
-
-
-
-
-
- Sisa Dana
-
-
-
-
-
-
-
-
-
- )}
-
-
-
- >
- );
-}
-
-function PencairanDana() {
- return (
- <>
-
-
-
- >
- );
-}
-
-//######################## LIST DONATUR #####################//
-function TampilanListDonatur() {
- const router = useRouter();
- const params = useParams<{ id: string }>();
- const donasiId = params.id;
- const [isLoadingCek, setLoadingCek] = useState(false);
- const [idData, setIdData] = useState("");
- const [lisDonatur, setListDonatur] = useState(null);
- const [listStatus, setListStatus] = useState(null);
- const [isNPage, setNPage] = useState(1);
- const [isActivePage, setActivePage] = useState(1);
-
- const [selectStatus, setSelectStatus] = useState("");
-
-
- useShallowEffect(() => {
- handleLoadData();
- }, [isActivePage, selectStatus]);
-
- useShallowEffect(() => {
- handleLoadStatus();
- }, [])
-
- const handleLoadData = async () => {
- try {
- const cek = globalStatusTransaksi.find((e) => e.id === selectStatus);
- const response = await apiGetAdminAllDaftarDonatur({
- id: donasiId,
- page: `${isActivePage}`,
- status: cek?.name,
- });
-
- if (response?.success && response?.data?.data) {
- setListDonatur(response.data.data);
- setNPage(response.data.nPage || 1);
- } else {
- console.error("Invalid data format received:", response);
- setListDonatur([]);
- }
- } catch (error) {
- clientLogger.error("Error get data daftar donatur", error);
- setListDonatur([]);
- }
- }
-
- const handleLoadStatus = async () => {
- try {
- const response = await apiGetMasterStatusTransaksi();
-
-
- if (response?.success && response?.data) {
- setListStatus(response.data);
- } else {
- console.error("Invalid data format received:", response);
- setListStatus(null);
- }
- } catch (error) {
- clientLogger.error("Error get status donatur", error);
- setListStatus(null);
- }
- }
- const onPageClick = async (page: number) => {
- setActivePage(page);
- }
- async function onSelect(selectStatus: any) {
- setSelectStatus(selectStatus);
- }
- async function onReload() {
- setSelectStatus("");
- handleLoadData();
- }
-
-
-
- const renderTableBody = () => {
- if (!Array.isArray(lisDonatur) || lisDonatur.length === 0) {
- return (
-
- |
-
- Tidak ada data
-
- |
-
- );
- }
- return lisDonatur?.map((e, i) => (
-
- |
- {e?.Author.username}
- |
-
- {e?.DonasiMaster_Bank?.name}
- |
-
-
-
-
- |
-
-
- {new Intl.DateTimeFormat("id-ID", { dateStyle: "full" }).format(
- new Date(e?.createdAt)
- )}
-
- |
-
-
-
- {e?.DonasiMaster_StatusInvoice?.name}
-
-
- |
-
-
- {e?.donasiMaster_StatusInvoiceId === "1" ||
- e?.donasiMaster_StatusInvoiceId === "2" ? (
-
- ) : (
- "-"
- )}
-
- |
-
-
- {e?.donasiMaster_StatusInvoiceId === "1" ? (
-
- ) : e?.DonasiMaster_StatusInvoice?.id === "2" ? (
- {
- onReload();
- }}
- onSuccessDonatur={(val) => {
- setListDonatur(val.data);
- setNPage(val.nPage);
- }}
- />
- ) : (
- -
- )}
-
- |
-
- ));
- }
-
- if (!lisDonatur && !listStatus) return
-
- return (
- <>
-
- {/* {JSON.stringify(dataDonasi, null, 2)} */}
-
- {
- onReload();
- }}
- >
-
-
-
- >
- );
-}
-
-function ButtonAccept({
- invoiceId,
- donasiId,
- nominal,
- danaTerkumpul,
- target,
- onSetDonasi: onSuccessDonasi,
- onSuccessDonatur,
-}: {
- invoiceId: string;
- donasiId: string;
- nominal: number;
- danaTerkumpul: number;
- target: number;
- onSetDonasi: (val: boolean) => void;
- onSuccessDonatur: (val: any) => void;
-}) {
- const [opened, { open, close }] = useDisclosure(false);
- const [isLoading, setIsLoading] = useState(false);
-
- async function onAccept() {
- let nominalDonasi = nominal;
- let jumlahTerkumpul = danaTerkumpul;
-
- const updateStatus = await adminDonasi_funUpdateStatusDanTotal({
- invoiceId: invoiceId,
- donasiId: donasiId,
- jumlahTerkumpul: jumlahTerkumpul,
- nominal: nominalDonasi,
- statusInvoiceId: "1",
- target: target,
- });
- if (updateStatus.status == 200) {
- setIsLoading(true);
- 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({
- // donasiId: donasiId,
- // page: 1,
- // });
- onSuccessDonatur(true);
-
- ComponentAdminGlobal_NotifikasiBerhasil(updateStatus.message);
- setIsLoading(false);
- } else {
- ComponentAdminGlobal_NotifikasiGagal(updateStatus.message);
- setIsLoading(false);
- }
- close();
- }
-
- return (
- <>
-
-
-
-
-
- {`${"Anda sudah melihat bukti transfer dan yakin menerima donasi ini ?"}`}
-
-
-
-
-
-
-
- >
- );
-}
-
-//######################## LIST PENCAIRAN #####################//
-function TampilanListPencairan({
- pencairan,
-}: {
- pencairan: MODEL_DONASI_PENCAIRAN_DANA[];
-}) {
- const router = useRouter();
- const [data, setData] = useState(pencairan);
- const [opened, { open, close }] = useDisclosure(false);
- const [gambarId, setGambarId] = useState("");
-
- const rowTable = data.map((e) => (
-
- |
-
-
-
- |
-
- {moment(e.createdAt).format("ll")}
- |
-
-
- {e.title}
-
- |
-
-
-
- {e.deskripsi}
-
-
- |
-
-
-
-
-
-
- |
-
- ));
-
- return (
- <>
-
-
-
- {
- // onRelaod();
- }}
- >
-
-
- {/*
-
-
- >
- );
-}
diff --git a/src/app_modules/admin/donasi/detail/publish/pencairan_dana.tsx b/src/app_modules/admin/donasi/detail/publish/pencairan_dana.tsx
index cb058d01..fbcddaee 100644
--- a/src/app_modules/admin/donasi/detail/publish/pencairan_dana.tsx
+++ b/src/app_modules/admin/donasi/detail/publish/pencairan_dana.tsx
@@ -24,7 +24,7 @@ import {
import { IconCamera } from "@tabler/icons-react";
import _, { toNumber } from "lodash";
import { AppRouterInstance } from "next/dist/shared/lib/app-router-context.shared-runtime";
-import { useRouter } from "next/navigation";
+import { useParams, useRouter } from "next/navigation";
import { useState } from "react";
import ComponentAdminDonasi_TombolKembali from "../../component/tombol_kembali";
import { AdminDonasi_funCreatePencairanDana } from "../../fun/create/fun_create_pencairan_dana";
@@ -33,34 +33,69 @@ import { AdminDonasi_AkumulasiPencairanById } from "../../fun/update/fun_update_
import { ComponentGlobal_InputCountDown } from "@/app_modules/_global/component";
import { DIRECTORY_ID } from "@/lib";
import { funGlobal_UploadToStorage } from "@/app_modules/_global/fun";
+import { AdminColor } from "@/app_modules/_global/color/color_pallet";
+import { apiGetAdminDonasiById } from "../../lib/api_fetch_admin_donasi";
+import { MODEL_DONASI } from "@/app_modules/donasi/model/interface";
+import { clientLogger } from "@/util/clientLogger";
+import { useShallowEffect } from "@mantine/hooks";
+import CustomSkeletonAdmin from "@/app_modules/admin/_admin_global/_component/skeleton/customSkeletonAdmin";
-export default function AdminDonasi_PencairanDana({
- donasiId,
- danaTerkumpul,
- totalPencairan,
-}: {
- donasiId: string;
- danaTerkumpul: string;
- totalPencairan: number;
-}) {
- const [terkumpul, setTerkumpul] = useState(danaTerkumpul);
- const [total, setTotal] = useState(totalPencairan);
+export default function AdminDonasi_PencairanDana() {
+ const params = useParams<{ id: string }>();
+ const donasiId = params.id;
+ const [data, setData] = useState(null);
+ // const [terkumpul, setTerkumpul] = useState(data?.terkumpul);
+ // const [total, setTotal] = useState(data?.totalPencairan);
+
+ useShallowEffect(() => {
+ loadInitialData();
+ }, [])
+ const loadInitialData = async () => {
+ try {
+ const response = await apiGetAdminDonasiById({
+ id: donasiId,
+ })
+
+ if (response?.success && response?.data) {
+ setData(response.data)
+ console.log("ini respone data", response.data)
+ // setTerkumpul(response.data.terkumpul)
+ // setTotal(response.data.totalPencairan)
+ } else {
+ setData(null)
+ // setTerkumpul("")
+ // setTotal(0)
+ }
+ } catch (error) {
+ clientLogger.error("Invalid data format recieved:", error);
+ setData(null);
+ // setTerkumpul("");
+ // setTotal(0);
+ }
+ }
return (
<>
-
- {
- setTerkumpul(val.terkumpul);
- setTotal(val.totalPencairan);
- }}
- />
-
+ {!data ?
+ (
+ )
+ : (
+ <>
+
+ {
+ // setTerkumpul(val.terkumpul);
+ // setTotal(val.totalPencairan);
+ }}
+ />
+ >
+ )}
+
>
);
}
@@ -74,6 +109,8 @@ function TotalDanaView({
}) {
const terkumpul = toNumber(danaTerkumpul);
const sisaDana = terkumpul - totalPencairan;
+ console.log("Sisa dana", sisaDana);
+ console.log("Terkumpul", terkumpul);
return (
<>
@@ -81,11 +118,10 @@ function TotalDanaView({
- Dana Tersisa
+ Dana Tersisa
{
void;
-}) {
+ }) {
+
+
const router = useRouter();
const [file, setFile] = useState(null);
const [images, setImages] = useState();
@@ -158,18 +196,21 @@ function FormView({
body.nominalCair as any
);
if (res2.status === 200) {
- const loadData = await AdminDonasi_getOneById(donasiId);
+ const loadData = await apiGetAdminDonasiById({id: donasiId});
onSuccess(loadData);
+ console.log("load Data", loadData);
const dataNotif = {
- appId: loadData?.id,
- userId: loadData?.authorId,
- pesan: loadData?.title as any,
+ appId: loadData?.data?.id,
+ userId: loadData?.data?.authorId,
+ pesan: loadData?.data?.title as any,
status: "Pencairan Dana",
kategoriApp: "DONASI",
title: "Dana donasi berhasil dicairkan",
};
+ console.log("Data Notif", dataNotif);
+
const notif = await adminNotifikasi_funCreateToUser({
data: dataNotif as any,
});
@@ -197,13 +238,14 @@ function FormView({
return (
<>
-
+
- Form Pencairan Dana
+ Form Pencairan Dana
Rp.}
+ styles={{ label: { color: AdminColor.white } }}
withAsterisk
placeholder="0"
label="Nominal"
@@ -245,6 +287,7 @@ function FormView({
}}
/>
|