Fix folder list pencairan

This commit is contained in:
2025-02-28 11:00:18 +08:00
parent 9bb71e228f
commit 6344c484ac
7 changed files with 397 additions and 304 deletions

View File

@@ -12,8 +12,7 @@ import { clientLogger } from '@/util/clientLogger';
import { Center, Badge, Button, Stack, Group, ActionIcon, Select, Paper, ScrollArea, Table, Pagination, Text, Modal, Title } from '@mantine/core';
import { useDisclosure, useShallowEffect } from '@mantine/hooks';
import { IconReload } from '@tabler/icons-react';
import { useParams } from 'next/navigation';
import { useRouter } from 'next/router';
import { useParams, useRouter } from 'next/navigation'
import React, { useState } from 'react';
import { apiGetAdminAllDaftarDonatur } from '../../lib/api_fetch_admin_donasi';
import { ComponentAdminGlobal_NotifikasiBerhasil } from '@/app_modules/admin/_admin_global/admin_notifikasi/notifikasi_berhasil';
@@ -45,7 +44,7 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD
const handleLoadData = async () => {
try {
console.log("Ini active page", isActivePage);
const cek = globalStatusTransaksi.find((e) => e.id === selectStatus);
const response = await apiGetAdminAllDaftarDonatur({
id: donasiId,
@@ -54,7 +53,7 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD
});
if (response?.success && response?.data?.data) {
console.log("data lis", response.data);
setListDonatur(response.data.data);
setNPage(response.data.nPage || 1);
setIsLoadingReload(false)
@@ -88,7 +87,7 @@ function TampilanListDonatur({ setReloadDonasi, donasi, isReload }: { setReloadD
}
}
const onPageClick = async (page: number) => {
console.log("page", page);
setActivePage(page);
}
async function onSelect(selectStatus: any) {
@@ -327,14 +326,6 @@ function ButtonAccept({
setIsLoading(true);
isReload
console.log({
jumlahTerkumpul: jumlahTerkumpul,
nominal: nominalDonasi,
statusInvoiceId: "1",
target: target,
});
const updateStatus = await adminDonasi_funUpdateStatusDanTotal({
invoiceId: invoiceId,
donasiId: donasiId,

View File

@@ -0,0 +1,153 @@
import { AccentColor } from '@/app_modules/_global/color';
import { AdminColor } from '@/app_modules/_global/color/color_pallet';
import { ComponentAdminGlobal_TitlePage } from '@/app_modules/admin/_admin_global/_component';
import TampilanRupiahDonasi from '@/app_modules/donasi/component/tampilan_rupiah';
import { MODEL_DONASI_PENCAIRAN_DANA } from '@/app_modules/donasi/model/interface';
import { RouterAdminDonasi } from '@/lib/router_admin/router_admin_donasi';
import { Center, Box, Spoiler, Button, Stack, Group, ActionIcon, Paper, ScrollArea, Table, Text, TextInput } from '@mantine/core';
import { useDisclosure } from '@mantine/hooks';
import { IconReload } from '@tabler/icons-react';
import moment from 'moment';
import { useRouter } from 'next/navigation';
import React, { useState } from 'react';
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) => (
<tr key={e.id}>
<td>
<Center c={AdminColor.white}>
<TampilanRupiahDonasi nominal={e.nominalCair} />
</Center>
</td>
<td>
<Center c={AdminColor.white}>{moment(e.createdAt).format("ll")}</Center>
</td>
<td>
<Center c={AdminColor.white}>
<Text>{e.title}</Text>
</Center>
</td>
<td width={500}>
<Box w={"100%"}>
<Spoiler hideLabel="Sembunyikan" maxHeight={70} showLabel="Lihat">
{e.deskripsi}
</Spoiler>
</Box>
</td>
<td>
<Box>
<Center>
<Button
radius={"xl"}
bg={"green"}
color="green"
onClick={() => {
// open();
// setGambarId(e.imagesId);
router.push(
RouterAdminDonasi.transfer_invoice_reimbursement + e?.imagesId
);
}}
>
Cek
</Button>
</Center>
</Box>
</td>
</tr>
));
return (
<>
<Stack spacing={"xs"} h={"100%"}>
<ComponentAdminGlobal_TitlePage
name="Rincian Pencairan Dana"
color={AdminColor.softBlue}
component={
<Group>
<ActionIcon
size={"lg"}
radius={"xl"}
variant="light"
onClick={() => {
// onRelaod();
}}
>
<IconReload />
</ActionIcon>
{/* <Select
placeholder="Pilih status"
value={isSelect}
data={listMasterStatus.map((e) => ({
value: e.id,
label: e.name,
}))}
onChange={(val) => {
onSelect(val);
}}
/> */}
</Group>
}
/>
<Paper p={"md"} bg={AdminColor.softBlue} shadow="lg" h={"80vh"}>
<ScrollArea w={"100%"} h={"90%"}>
<Table
verticalSpacing={"xl"}
horizontalSpacing={"md"}
p={"md"}
w={1500}
>
<thead>
<tr>
<th>
<Center c={AccentColor.white}>Nominal</Center>
</th>
<th>
<Center c={AccentColor.white}>Tanggal</Center>
</th>
<th>
<Center c={AccentColor.white}>Judul</Center>
</th>
<th style={{ color: AccentColor.white }}>Deskripsi</th>
<th>
<Center c={AccentColor.white}>Bukti Transfer</Center>
</th>
</tr>
</thead>
<tbody>{rowTable}</tbody>
</Table>
</ScrollArea>
{/* <Center mt={"xl"}>
<Pagination
value={isActivePage}
total={isNPage}
onChange={(val) => {
onPageClick(val);
}}
/>
</Center> */}
</Paper>
</Stack>
</>
);
}
export default TampilanListPencairan;

View File

@@ -52,6 +52,7 @@ import { useState } from "react";
import adminDonasi_funUpdateStatusDanTotal from "../../fun/update/fun_update_status_dan_total";
import { apiGetAdminAllDaftarDonatur, apiGetAdminDonasiById } from "../../lib/api_fetch_admin_donasi";
import TampilanListDonatur from "./detail_list_donatur";
import TampilanListPencairan from "./detail_list_pencairan";
export default function AdminDonasi_DetailPublish({
countDonatur,
@@ -77,12 +78,10 @@ export default function AdminDonasi_DetailPublish({
})
if (response?.success && response?.data) {
console.log("data", response.data);
setData(response.data)
setReload(false)
} else {
console.log("Invalid data format recieved:", response);
setData(null)
}
} catch (error) {
@@ -339,7 +338,6 @@ function TampilanDetailDonasi({
</>
);
}
function PencairanDana() {
return (
<>
@@ -350,139 +348,5 @@ function PencairanDana() {
);
}
//######################## 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) => (
<tr key={e.id}>
<td>
<Center c={AdminColor.white}>
<TampilanRupiahDonasi nominal={e.nominalCair} />
</Center>
</td>
<td>
<Center c={AdminColor.white}>{moment(e.createdAt).format("ll")}</Center>
</td>
<td>
<Center c={AdminColor.white}>
<Text>{e.title}</Text>
</Center>
</td>
<td width={500}>
<Box w={"100%"}>
<Spoiler hideLabel="Sembunyikan" maxHeight={70} showLabel="Lihat">
{e.deskripsi}
</Spoiler>
</Box>
</td>
<td>
<Box>
<Center>
<Button
radius={"xl"}
bg={"green"}
color="green"
onClick={() => {
// open();
// setGambarId(e.imagesId);
router.push(
RouterAdminDonasi.transfer_invoice_reimbursement + e?.imagesId
);
}}
>
Cek
</Button>
</Center>
</Box>
</td>
</tr>
));
return (
<>
<Stack spacing={"xs"} h={"100%"}>
<ComponentAdminGlobal_TitlePage
name="Rincian Pencairan Dana"
color={AdminColor.softBlue}
component={
<Group>
<ActionIcon
size={"lg"}
radius={"xl"}
variant="light"
onClick={() => {
// onRelaod();
}}
>
<IconReload />
</ActionIcon>
{/* <Select
placeholder="Pilih status"
value={isSelect}
data={listMasterStatus.map((e) => ({
value: e.id,
label: e.name,
}))}
onChange={(val) => {
onSelect(val);
}}
/> */}
</Group>
}
/>
<Paper p={"md"} bg={AdminColor.softBlue} shadow="lg" h={"80vh"}>
<ScrollArea w={"100%"} h={"90%"}>
<Table
verticalSpacing={"xl"}
horizontalSpacing={"md"}
p={"md"}
w={1500}
>
<thead>
<tr>
<th>
<Center c={AccentColor.white}>Nominal</Center>
</th>
<th>
<Center c={AccentColor.white}>Tanggal</Center>
</th>
<th>
<Center c={AccentColor.white}>Judul</Center>
</th>
<th style={{ color: AccentColor.white }}>Deskripsi</th>
<th>
<Center c={AccentColor.white}>Bukti Transfer</Center>
</th>
</tr>
</thead>
<tbody>{rowTable}</tbody>
</Table>
</ScrollArea>
{/* <Center mt={"xl"}>
<Pagination
value={isActivePage}
total={isNPage}
onChange={(val) => {
onPageClick(val);
}}
/>
</Center> */}
</Paper>
</Stack>
</>
);
}

View File

@@ -117,7 +117,6 @@ const apiGetAdminAllDaftarDonatur = async ({
}
const isStatus = status ? `&status=${status}` : "";
console.log("Ini status",isStatus);
const isPage = page ? `?page=${page}` : "";
const response = await fetch(
`/api/admin/donasi/${id}/donatur${isPage}${isStatus}`,