"use client"; import { ActionIcon, AspectRatio, Badge, Box, Button, Center, Divider, Grid, Group, Image, Modal, Pagination, Paper, Progress, ScrollArea, Select, SimpleGrid, Spoiler, Stack, Table, Text, TextInput, Title, } from "@mantine/core"; import ComponentAdminDonasi_TombolKembali from "../../component/tombol_kembali"; import { RouterDonasi } from "@/app/lib/router_hipmi/router_donasi"; import { IconClover, IconMessageChatbot, IconMoneybag, IconReload, } from "@tabler/icons-react"; import router from "next/router"; import moment from "moment"; import { MODEL_DONASI, MODEL_DONASI_INVOICE, MODEL_DONASI_PENCAIRAN_DANA, } from "@/app_modules/donasi/model/interface"; import { useState } from "react"; import { RouterAdminDonasi_OLD } from "@/app/lib/router_hipmi/router_admin"; import TampilanRupiahDonasi from "@/app_modules/donasi/component/tampilan_rupiah"; import _ from "lodash"; import { useRouter } from "next/navigation"; import { useDisclosure, useInterval, useShallowEffect } from "@mantine/hooks"; import { Donasi_getOneById } from "@/app_modules/donasi/fun/get/get_one_donasi_by_id"; import { AdminDonasi_getOneById } from "../../fun/get/get_one_by_id"; import ComponentGlobalAdmin_BackButton from "@/app_modules/admin/component/back_button"; import { MODEL_NEW_DEFAULT_MASTER } from "@/app_modules/model_global/interface"; import { adminDonasi_getListDonatur } from "../../fun/get/get_list_donatur_by_id"; import { RouterAdminDonasi } from "@/app/lib/router_admin/router_admin_donasi"; import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total"; import { ComponentGlobalAdmin_NotifikasiBerhasil } from "@/app_modules/admin/component/admin_notifikasi/notifikasi_berhasil"; import { ComponentGlobalAdmin_NotifikasiGagal } from "@/app_modules/admin/component/admin_notifikasi/notifikasi_gagal"; export default function AdminDonasi_DetailPublish({ dataPublish, listDonatur, countDonatur, listPencairan, listMasterStatus, }: { dataPublish: MODEL_DONASI; listDonatur: any[]; countDonatur: number; listPencairan: MODEL_DONASI_PENCAIRAN_DANA[]; listMasterStatus: MODEL_NEW_DEFAULT_MASTER[]; }) { const [dataDonasi, setDataDonasi] = useState(dataPublish); const [pencairan, setPencairan] = useState(listPencairan); const selectedData = _.omit(dataDonasi, [ "Author", "imageDonasi", "CeritaDonasi", "DonasiMaster_Ketegori", "DonasiMaster_Durasi", "DonasiMaster_Status", ]); // fungsi manggil serveraction return ( <> {/*
{JSON.stringify(pencairan, null, 2)}
*/} { setDataDonasi(val); }} /> ); } function TampilanDetailDonasi({ donasi, countDonatur, }: { donasi: MODEL_DONASI; countDonatur: number; }) { const [opened, { open, close }] = useDisclosure(false); const router = useRouter(); return ( <> Foto {donasi.title} Penggalang Dana {donasi.Author.username} Durasi {donasi.DonasiMaster_Durasi.name} hari Dana dibutuhkan <TampilanRupiahDonasi nominal={+donasi.target} /> Kategori {donasi.DonasiMaster_Ketegori.name} Total donatur {countDonatur} Progres {donasi.progres} % Dana terkumpul <TampilanRupiahDonasi nominal={+donasi.terkumpul} /> {/* */}
Pencairan Dana
Total Dana Dicairkan <TampilanRupiahDonasi nominal={donasi.totalPencairan} fontSize={14} /> Bank Tujuan {donasi.namaBank} Akumulasi Pencairan {donasi.akumulasiPencairan} Kali Nomor Rekening {donasi.rekening}
); } 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 [isLoading, setLoading] = 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)}
*/} Daftar Donatur { onRelaod(); }} >