# Rencana Implementasi: CRUD Lengkap Transaksi Keuangan (Ledger)

User ingin melengkapi fitur "Catat Biaya/Pendapatan Manual" menjadi CRUD yang utuh (Tambah, Lihat, Ubah, Hapus) untuk memudahkan pengelolaan data transaksi manual.

## Proposed Changes

### 1. Database Model

#### [MODIFY] [Ledger.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/models/Ledger.php)
- Menambahkan method `getById($id)` untuk mengambil satu data transaksi.
- Menambahkan method `update($id, $data)` untuk memperbarui data transaksi yang sudah ada.
- Menambahkan method `delete($id)` untuk menghapus data transaksi.

### 2. Controller

#### [MODIFY] [LedgerController.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/controllers/web/LedgerController.php)
- Menambahkan method `getJson($id)`: Mengembalikan data transaksi dalam format JSON untuk kebutuhan modal edit.
- Menambahkan method `update()`: Menangani permintaan POST untuk memperbarui transaksi.
- Menambahkan method `delete($id)`: Menangani penghapusan data transaksi.

### 3. Routing

#### [MODIFY] [index.php](file:///c:/xampp/htdocs/myportal/poultrysystem/public/index.php)
- Mendaftarkan route baru:
    - `GET /admin/finance/ledger/json/{id}`
    - `POST /admin/finance/ledger/update`
    - `GET /admin/finance/ledger/delete/{id}`

### 4. User Interface (UI)

#### [MODIFY] [ledger.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/finance/ledger.php)
- Menambahkan kolom **Aksi** pada tabel transaksi.
- Menambahkan tombol **Edit** (ikon pensil) dan **Hapus** (ikon tempat sampah).
- Menambahkan modal **Edit Transaksi** yang fungsional.
- Menambahkan script JavaScript (Vanilla JS) untuk:
    - Mengambil data transaksi via AJAX saat tombol edit diklik.
    - Mengisi form modal edit dengan data yang diterima.
    - Memberikan konfirmasi (*alert*) sebelum menghapus data.

## Verification Plan

### Automated Tests
- Tidak ada (Manual Verification diutamakan karena bersifat UI/UX).

### Manual Verification
1.  **Create**: Tambah transaksi baru dan pastikan muncul di tabel.
2.  **Read (Edit Modal)**: Klik tombol edit, pastikan modal muncul dengan data yang benar (Tanggal, Kategori, Jumlah, dll).
3.  **Update**: Ubah keterangan atau nominal, simpan, dan pastikan data di tabel terupdate.
4.  **Delete**: Klik tombol hapus, muncul konfirmasi, pilih OK, dan pastikan data hilang dari tabel.
