# Rencana Implementasi: Modul Laporan Keuangan

Rencana ini akan menambahkan modul pelaporan keuangan yang merangkum arus kas (pemasukan vs pengeluaran) berdasarkan periode waktu tertentu.

## User Review Required

> [!IMPORTANT]
> **Periode Laporan**: Secara default, laporan akan menampilkan data bulan berjalan. Bapak bisa mengganti tanggal awal dan akhir untuk melihat laporan mingguan, bulanan, atau tahunan.

## Proposed Changes

### 1. Backend & Data (Models)

#### [MODIFY] [Ledger.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/models/Ledger.php)
- Tambahkan method `getReport($startDate, $endDate)`: Mengambil daftar transaksi dengan filter tanggal.
- Tambahkan method `getSummary($startDate, $endDate)`: Menghitung total `amount` untuk `IN` (Pemasukan) dan `OUT` (Pengeluaran).

### 2. Logika Program (Controllers)

#### [MODIFY] [LedgerController.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/controllers/web/LedgerController.php)
- Tambahkan method `report()`:
    - Menangkap `start_date` dan `end_date` dari input user.
    - Jika kosong, otomatis menset ke tanggal 1 sampai akhir bulan ini.
    - Memanggil model untuk data ringkasan dan detail.

### 3. Registrasi Route (URL)

#### [MODIFY] [index.php](file:///c:/xampp/htdocs/myportal/poultrysystem/public/index.php)
- Tambahkan route: `GET /admin/finance/report` mengarah ke `LedgerController::report`.

### 4. Antarmuka (Views)

#### [MODIFY] [admin.php (Sidebar)](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/layouts/admin.php)
- Tambahkan link **Laporan Keuangan** di bawah menu Keuangan.

#### [NEW] [finance/report.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/finance/report.php)
- **Header Laporan**: Logo farm (opsional) dan judul periode.
- **Widget Ringkasan**:
    - Kartu Hijau: Total Pemasukan.
    - Kartu Merah: Total Pengeluaran.
    - Kartu Biru: Laba/Rugi Bersih (Saldo).
- **Filter**: Dropdown/Input tanggal untuk ganti periode.
- **Tabel Transaksi**: Daftar mendetail dari mana uang masuk (misal: Panen) dan untuk apa uang keluar (misal: Beli DOC/Pakan).
- **Tombol Cetak**: Untuk mencetak laporan ke printer atau PDF.

## Verification Plan

### Manual Verification
- Buka menu Laporan Keuangan.
- Pastikan angka Pemasukan dan Pengeluaran sesuai dengan data yang ada di Buku Besar.
- Ganti periode tanggal, pastikan data berubah sesuai rentang waktu yang dipilih.
- Coba klik tombol Cetak.
