# Rencana Implementasi: Modul Cetak Laporan Kandang

Rencana ini bertujuan untuk menambahkan fitur pelaporan yang memungkinkan pengguna mencetak daftar kandang beserta status operasional dan detail populasi (batch aktif) yang ada di dalamnya.

## User Review Required

> [!IMPORTANT]
> **Data Batch Terakhir**: Sistem akan menampilkan detail dari **Batch Aktif terakhir** (populasi > 0) yang ada di tiap kandang. Jika kandang kosong, akan tertulis "Kosong/Maintenance".
> **Cetak Label**: Ditambahkan fitur cetak label kandang dengan format besar (2 label per lembar A4). Pengguna bisa memilih kandang mana saja yang ingin dicetak labelnya melalui checkbox.
> **Format Cetak**: Laporan dan Label akan dibuka di tab baru dengan layout minimalis agar bersih saat dicetak ke printer atau disimpan sebagai PDF.

## Proposed Changes

### 1. Backend & Data (Models)

#### [MODIFY] [Coop.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/models/Coop.php)
- Tambahkan method `getCoopOccupancyReport()`.
- Method ini akan melakukan `LEFT JOIN` ke tabel `batches` untuk mengambil batch terbaru yang masih memiliki populasi (`current_count > 0`).

### 2. Logika Program (Controllers)

#### [MODIFY] [CoopController.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/controllers/web/CoopController.php)
- Tambahkan method `printReport()`.
- Tambahkan method `printLabels()`. Method ini akan menerima array `ids` dari POST request untuk menentukan kandang mana yang akan dicetak labelnya.
- Method ini akan me-render view khusus tanpa layout admin standar.

### 3. Antarmuka (Views)

#### [NEW] `print.php` (file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/coop/print.php)
- Buat layout HTML khusus cetak.
- Fitur: Header laporan (Nama Perusahaan, Tanggal Cetak), Tabel Data (Kandang, Tipe, Status, Batch, Populasi, Kapasitas), dan Footer.
- Tambahkan `@media print` CSS untuk mengatur margin dan menyembunyikan elemen yang tidak perlu.

#### [NEW] `labels.php` (file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/coop/labels.php)
- Buat layout HTML khusus cetak label.
- Desain: Satu halaman dibagi 2 (horizontal). Font nama kandang dibuat sangat besar dan tebal.
- Tambahkan garis potong (dash border) sebagai panduan pemotongan kertas.

#### [MODIFY] [index.php](file:///c:/xampp/htdocs/myportal/poultrysystem/app/views/admin/coop/index.php)
- Tambahkan fitur seleksi checkbox di setiap baris tabel kandang.
- Tambahkan tombol **"Cetak Laporan"** dan tombol **"Cetak Label (Terpilih)"** di area toolbar.
- Gunakan Javascript untuk mengumpulkan ID kandang yang dicentang saat tombol cetak label diklik.

## Verification Plan

### Manual Verification
- Klik tombol "Cetak Laporan" dan pastikan daftar seluruh kandang tampil rapi.
- Centang beberapa kandang dalam tabel, lalu klik "Cetak Label".
- Pastikan tab baru terbuka menampilkan label besar (2 per halaman) hanya untuk kandang yang dipilih.
- Tekan `Ctrl + P` dan preview cetakan untuk memastikan layout label pas di kertas.
