/* eslint-disable @typescript-eslint/no-explicit-any */ import { Paper, Table, Title, Box, ScrollArea, Badge } from '@mantine/core' import { APBDes, APBDesItem } from '../types/apbdes' interface SectionProps { title: string data: APBDesItem[] badgeColor?: string } function Section({ title, data, badgeColor = 'blue' }: SectionProps) { if (!data || data.length === 0) return null return ( <> {title} {data.map((item, index) => ( {item.kode} {item.uraian} Rp {item.anggaran.toLocaleString('id-ID')} ))} ) } interface PaguTableProps { apbdesData: APBDes } export default function PaguTable({ apbdesData }: PaguTableProps) { const items = apbdesData.items || [] const title = apbdesData.tahun ? `PAGU APBDes Tahun ${apbdesData.tahun}` : 'PAGU APBDes' const pendapatan = items.filter((i: APBDesItem) => i.tipe === 'pendapatan') const belanja = items.filter((i: APBDesItem) => i.tipe === 'belanja') const pembiayaan = items.filter((i: APBDesItem) => i.tipe === 'pembiayaan') // Calculate totals const totalPendapatan = pendapatan.reduce((sum, i) => sum + i.anggaran, 0) const totalBelanja = belanja.reduce((sum, i) => sum + i.anggaran, 0) const totalPembiayaan = pembiayaan.reduce((sum, i) => sum + i.anggaran, 0) return ( {title} Uraian Anggaran (Rp)
{totalPendapatan > 0 && ( Total Pendapatan Rp {totalPendapatan.toLocaleString('id-ID')} )}
{totalBelanja > 0 && ( Total Belanja Rp {totalBelanja.toLocaleString('id-ID')} )}
{totalPembiayaan > 0 && ( Total Pembiayaan Rp {totalPembiayaan.toLocaleString('id-ID')} )}
) }