public function get_disposisi_toggle($id) { if (is_object(Disposisi::find($id))) { $current_status = Disposisi::find($id)->aktif; $can_change = Disposisi::check_if_can(); // oke jika belum mencapai jumlah maksimum aktif atau oke jika untuk toggle ke nonaktif if ($can_change || $current_status == 1) { $jumlah_aktif = Disposisi::where('aktif', '=', 1)->count(); if ($jumlah_aktif <= 1 && $current_status == 1) { $warning = "Daftar disposisi aktif minimal satu."; return Redirect::to_route('settings_disposisi')->with('warning', $warning); } else { $toggle = Disposisi::toggle_disposisi($id); return Redirect::to_route('settings_disposisi')->with('message', $toggle); } } else { $warning = "Daftar disposisi aktif sudah mencapai maksimum."; return Redirect::to_route('settings_disposisi')->with('warning', $warning); } } else { // return error 404 apabila mengakses ID surat yg tidak ada di database return View::make('error.404'); } }
/** * -HELPER- * Cek apakah masih dapat menambahkan daftar baru. */ public static function check_if_can() { $max_entries = 16; $available_entries = $max_entries - 1; $disposisi_entries_aktif = Disposisi::where('aktif', '=', 1)->count(); // tidak dapat menambah daftar baru jika jumlah yang aktif mencapai batas maksimum // atau toggle status aktif dari nonaktif ke aktif if ($disposisi_entries_aktif <= $available_entries) { return true; } else { return false; } }