# Rencana Implementasi: Modul Khusus Pemberian Pakan

Rencana ini bertujuan untuk menyederhanakan proses pencatatan pakan harian. Alih-alih menggunakan menu mutasi umum, staf dapat menggunakan modul ini untuk langsung mencatat pakan yang keluar ke batch ayam tertentu.

## User Review Required

> [!IMPORTANT]
> **Otomasi Stok**: Setiap kali Bapak mencatat "Pemberian Pakan", sistem akan secara otomatis mengurangi stok pakan di gudang terpilih. Jika stok tidak mencukupi, sistem akan memberikan peringatan.

## Proposed Changes

### 1. Backend & Data (Models)

#### [MODIFY] [Inventory.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/models/Inventory.php)
- Tambahkan method `getFeedingMovements()`: Menampilkan daftar pemakaian barang khusus kategori 'Pakan'.
- Tambahkan method `getFeedItems()`: Mengambil daftar barang yang termasuk kategori 'Pakan'.

#### [MODIFY] [Batch.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/models/Batch.php)
- Tambahkan method `getActiveBatches()`: Mengambil daftar Batch ayam yang populasinya masih > 0 agar bisa dipilih saat pemberian pakan.

### 2. Logika Program (Controllers)

#### [NEW] [FeedingController.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/controllers/web/FeedingController.php)
- Method `index()`: Menampilkan dashboard pemakaian pakan terakhir.
- Method `store()`: Memproses data (menggunakan logika `recordMovement` yang sudah ada namun otomatis menset tipe ke 'OUT' dan kategori ke 'Pakan').

### 3. Registrasi Route (URL)

#### [MODIFY] [index.php](file:///c:/xampp/htdocs/myportal/poultrysystem/public/index.php)
- Daftarkan route:
    - `GET /admin/feeding` -> `FeedingController::index`
    - `POST /admin/feeding/store` -> `FeedingController::store`

### 4. Antarmuka (Views)

#### [MODIFY] [admin.php (Sidebar)](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/layouts/admin.php)
- Tambahkan menu baru **Pemberian Pakan** di bawah bagian "Operasional Kandang".

#### [NEW] [feeding/index.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/feeding/index.php)
- Halaman log pemberian pakan dengan tombol "Input Pemberian Pakan".
- Form Modal khusus yang hanya menampilkan:
    - Pilih Batch (Ayam mana yang diberi pakan?)
    - Pilih Jenis Pakan (Hanya muncul barang kategori Pakan)
    - Pilih Gudang Asal (Ambil pakan dari mana?)
    - Jumlah (kg/sak)
    - Catatan/Notes.

## Verification Plan

### Manual Verification
- Cek stok awal pakan di Gudang A.
- Buka menu **Pemberian Pakan**.
- Input pemberian pakan 50kg ke Batch B001 dari Gudang A.
- Cek kembali stok di Gudang A, pastikan berkurang 50kg.
- Cek menu **Riwayat Mutasi**, pastikan tercatat mutasi keluar otomatis dengan keterangan pakan.
