import { Head, Link } from '@inertiajs/react'; import { XCircle } from 'lucide-react'; import { DataTable } from '@/components/data-table'; import { PageHeader } from '@/components/page-header'; import { Button } from '@/components/ui/button'; import { Card, CardContent } from '@/components/ui/card'; import { formatRupiah } from '@/lib/currency'; import { create } from '@/routes/student/course-registrations'; import type { AcademicTerm } from '@/types/academic-term'; import type { RegistrationStatus } from '@/types/course-registration'; import type { SubmissionSummary } from './columns'; import { submissionColumns } from './columns'; type PaymentStatus = { has_invoice: boolean; is_paid: boolean; amount_due: number | null; paid_total: number | null; }; type ActiveSubmission = { status: RegistrationStatus; rejection_reason: string | null; }; type Props = { academicTerm: AcademicTerm | null; payment: PaymentStatus | null; canSubmit: boolean; activeSubmission: ActiveSubmission | null; submissions: SubmissionSummary[]; }; export default function CourseRegistrationIndex({ academicTerm, payment, canSubmit, activeSubmission, submissions, }: Props) { return ( <>
Periode aktif: {academicTerm.name} ( {academicTerm.semester === 'odd' ? 'Ganjil' : 'Genap'} )

) } /> {!academicTerm && ( Belum ada periode akademik yang aktif. Silakan hubungi admin. )} {academicTerm && payment && !payment.is_paid && (

Anda belum bisa mengisi KRS periode ini.

{payment.has_invoice ? `Tagihan periode ini belum lunas (terbayar ${formatRupiah(payment.paid_total ?? 0)} dari ${formatRupiah(payment.amount_due ?? 0)}).` : 'Tagihan untuk periode ini belum diterbitkan. Silakan hubungi staf keuangan.'}

)} {academicTerm && payment?.is_paid && canSubmit && (
{activeSubmission?.status === 'rejected' ? ( <>

KRS Anda untuk periode ini ditolak

{activeSubmission.rejection_reason ?? 'Tidak ada alasan yang diberikan.'}{' '} Silakan perbaiki dan ajukan kembali.

) : (

Anda belum mengisi KRS untuk periode aktif ini.

)}
)}
); }