// Import wajib import React, { useState, useEffect } from 'react'; import { Head } from '@inertiajs/react'; import { useDispatch } from 'react-redux'; import { setPageTitle } from '@/Components/features/common/headerSlice'; import { CurrencyDollarIcon } from '@heroicons/react/24/outline'; import { Inertia } from '@inertiajs/inertia'; export default function Transaction({ transaction }) { const [searchTerm, setSearchTerm] = useState(''); const [filteredSantri, setFilteredSantri] = useState([]); const [selectedSantri, setSelectedSantri] = useState(null); const [isModalOpen, setIsModalOpen] = useState(false); const [selectedMonth, setSelectedMonth] = useState(new Date().getMonth() + 1); const [selectedYear, setSelectedYear] = useState(new Date().getFullYear()); const dispatch = useDispatch(); const bulanIndo = [ 'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember' ]; useEffect(() => { dispatch(setPageTitle("Data Transaksi Santri")); }, []); useEffect(() => { if (transaction?.data) { const filtered = transaction.data.filter(item => { const matchSearch = item.nama.toLowerCase().includes(searchTerm.toLowerCase()) || item.nis?.toString().includes(searchTerm); const hasPaymentThisMonthYear = item.payments?.some(payment => payment.detail_payments?.some(d => d.payment_month === selectedMonth && (selectedYear === 'all' || d.payment_year === selectedYear) ) ); return matchSearch && hasPaymentThisMonthYear; }); setFilteredSantri(filtered); } }, [searchTerm, selectedMonth, selectedYear, transaction]); const closeModal = () => { setIsModalOpen(false); setSelectedSantri(null); }; return (
Nama | Detail |
---|---|
{item.nama}
{item.level === 1 ? 'Admin' : 'Santri'}
|
|
Tidak ada data santri. |
Status | Jumlah | Jenis | Tipe | Denda | Total |
---|---|---|---|---|---|
{detail.status} | Rp {Number(detail.amount).toLocaleString()} | {payment.transaction_type === 'payment' ? 'Pembayaran' : 'Topup'} | {detail.payment_type?.payment_type || '-'} | Rp {Number(detail.penalty || 0).toLocaleString()} | Rp {(Number(detail.amount) + Number(detail.penalty || 0)).toLocaleString()} |