import { Head, Link } from '@inertiajs/react';
import { Button } from '@/components/ui/button';
import { Badge } from '@/components/ui/badge';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import {
Table,
TableBody,
TableCell,
TableHead,
TableHeader,
TableRow,
} from '@/components/ui/table';
import AppLayout from '@/layouts/app-layout';
import { PlusCircle, FileText } from 'lucide-react';
// ─── Types ───────────────────────────────────────────────────────────────────
interface Payroll {
id: number;
employee_name: string;
employee_nip: string;
period: string;
net_salary: number;
status: 'pending' | 'paid';
}
interface PageProps {
payrolls: Payroll[];
}
// ─── Helpers ─────────────────────────────────────────────────────────────────
function formatRupiah(value: number): string {
return new Intl.NumberFormat('id-ID', {
style: 'currency',
currency: 'IDR',
minimumFractionDigits: 0,
}).format(value);
}
/** Format "2026-04" → "April 2026" */
function formatPeriod(period: string): string {
const [year, month] = period.split('-');
const date = new Date(Number(year), Number(month) - 1, 1);
return date.toLocaleDateString('id-ID', { month: 'long', year: 'numeric' });
}
// ─── Component ───────────────────────────────────────────────────────────────
export default function Index({ payrolls }: PageProps) {
return (
Daftar seluruh payroll yang telah di-generate.
Belum ada data payroll.