# Rencana Implementasi: Modul CRUD Jenis Transaksi Keuangan

Modul ini akan memungkinkan Administrator untuk mengelola referensi jenis transaksi (kategori penerimaan/pendapatan dan pengeluaran) secara mandiri.

## Proposed Changes

### 1. Keamanan & Hak Akses

#### [NEW] `scratch/add_finance_types_permission.php`
- Menambahkan permission `FINANCE_MANAGE_TYPES` ke tabel `permissions` agar fitur ini dapat diakses secara spesifik oleh admin.
- Memberikan akses permission tersebut secara otomatis ke role `admin`.

### 2. Database Model

#### [NEW] [FinancialTrxType.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/models/FinancialTrxType.php)
- Method `getAll()`: Mengambil semua jenis transaksi dari `ref_financial_trx_types`.
- Method `getById($id)`: Mengambil satu detail jenis transaksi.
- Method `store($data)`: Menyimpan jenis transaksi baru.
- Method `update($id, $data)`: Memperbarui data yang ada.
- Method `delete($id)`: Menghapus (atau menonaktifkan) jenis transaksi.

### 3. Controller

#### [NEW] [FinancialTrxTypeController.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/controllers/web/FinancialTrxTypeController.php)
- Method `index()`: Menampilkan daftar jenis transaksi.
- Method `getJson($id)`: Mengembalikan data JSON untuk modal edit.
- Method `create()`: Menangani simpan data baru.
- Method `update()`: Menangani pembaruan data.
- Method `delete($id)`: Menangani penghapusan data.

### 4. Routing

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

### 5. Antarmuka (UI)

#### [MODIFY] [admin.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/layouts/admin.php)
- Menambahkan menu **Kategori Transaksi** di bawah grup menu **Manajemen Keuangan**.

#### [NEW] [admin/finance/trx_types.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/finance/trx_types.php)
- Tabel daftar jenis transaksi dengan kolom: Kode, Label, Arah Kas (Masuk/Keluar), Deskripsi, dan Status.
- Modal Tambah & Edit dengan validasi input.
- Script JavaScript untuk handle AJAX data untuk pengisian modal edit.

## Verification Plan

### Manual Verification
1.  **Tambah**: Klik "Tambah Jenis Baru", masukkan data, simpan. Pastikan muncul di tabel dan bisa digunakan saat "Catat Transaksi Manual".
2.  **Edit**: Ubah Label atau Deskripsi, pastikan tersimpan.
3.  **Hapus**: Hapus salah satu jenis (yang tidak sedang digunakan jika memungkinkan) dan pastikan hilang dari daftar.
4.  **Akses**: Pastikan hanya user dengan permission `FINANCE_MANAGE_TYPES` yang melihat menu ini.
