# Walkthrough: Perbaikan & Fitur Panen Multi-Batch

Perbaikan ini menjawab kebutuhan operasional untuk melakukan pemanenan dari beberapa batch sekaligus dalam satu transaksi, serta memastikan data populasi dan status kandang terupdate secara akurat.

## Perubahan dan Fitur Baru

### 1. Seleksi Multi-Batch (Checkbox)
- Pada menu **Panen Ayam**, Anda sekarang dapat memilih beberapa batch sekaligus menggunakan **Checkbox**.
- Tombol **"Panen Terpilih"** akan aktif hanya setelah Anda memilih minimal satu batch. Ini memudahkan jika Anda menjual ayam dari beberapa kandang sekaligus ke satu pembeli.

### 2. Form Panen Kolektif (Dynamic Modal)
- Saat mengklik "Panen Terpilih", modal akan menampilkan seluruh batch yang Anda pilih dalam satu tabel.
- Anda dapat menentukan jumlah ekor, berat total, dan harga jual yang berbeda untuk setiap batch di dalam satu form yang sama.
- Sistem akan menghitung **Estimasi Total Pendapatan** secara otomatis di bagian bawah form.

### 3. Akurasi Data Populasi Kandang
- **Sinkronisasi Otomatis**: Sekarang, setiap kali panen dicatat, sistem tidak hanya mengurangi populasi pada level batch, tapi juga mengurangi populasi pada level **Kandang** (`capacity_current`).
- Anda dapat melihat data populasi kandang yang aktual di Dashboard atau Daftar Kandang.

### 4. Otomatisasi Status Kandang (MAINTENANCE)
- Sistem akan memonitor populasi total di setiap kandang.
- Jika setelah transaksi panen suatu kandang menjadi **kosong (0 ekor)**, sistem akan secara otomatis mengubah status kandang tersebut menjadi **'MAINTENANCE'** (Pemeliharaan). Ini menandakan kandang siap untuk dibersihkan/disanitasi sebelum diisi batch baru.

## Cara Penggunaan
1. Buka menu **Pemanenan & Produksi > Panen Ayam**.
2. Centang satu atau beberapa batch yang ingin dipanen.
3. Klik tombol hijau **"Panen Terpilih"**.
4. Isi detail pamanenan untuk masing-masing batch di dalam modal.
5. Klik **"Simpan Seluruh Data Panen"**.

## Verifikasi Teknis
- Telah dilakukan sinkronisasi data awal untuk memastikan angka populasi kandang saat ini sesuai dengan total batch aktif di dalamnya.
- Logika transaksi database memastikan jika satu baris data gagal, maka seluruh transaksi panen kolektif akan dibatalkan (mencegah data gantung).
