/** * Toggle status aktif. */ public static function toggle_disposisi($id) { // get current status $status = Disposisi::find($id)->aktif; // revert status $status = !$status; // update record Disposisi::update($id, array('aktif' => $status)); // membuat message success $status_msg = $status ? 'AKTIF' : 'NONAKTIF'; $msg = Disposisi::find($id)->nama . ' telah diupdate menjadi: ' . $status_msg; return $msg; }
/** * Rekam file CSV yang terupload. */ public static function upload_create($file, $input) { $csv_rows = array(); // detect delimiter antara ',' atau ';' $allowed_header = array('tujuan'); $csv_uploded = file($file, FILE_IGNORE_NEW_LINES); $csv_header = str_getcsv($csv_uploded[0], ','); $csv_header2 = str_getcsv($csv_uploded[0], ';'); if ($csv_header == $allowed_header) { $csv_delimiter = ','; } else { if ($csv_header2 == $allowed_header) { $csv_delimiter = ';'; } else { echo 'wrong delimiter'; // FIXME throw error exit; } } // push data csv ke array if (isset($csv_delimiter)) { foreach ($csv_uploded as $line) { $csv_rows[] = str_getcsv($line, $csv_delimiter); } // remove header dari file csv unset($csv_rows[0]); $i = $input; $cfg_kode_surat = Konfigurasi::find(3)->config_value; $cfg_tahun_surat = Konfigurasi::find(4)->config_value; $jenis = Jenissurat::find($i['jenis']); $pengirim = Disposisi::find($i['pengirim']); $tanggal = $i['tanggal']; $hal = $i['hal']; // remove header dari file csv unset($csv_rows[0]); $jumlah = 0; foreach ($csv_rows as $tujuan) { $tujuan = trim($tujuan[0]); if (!empty($tujuan)) { // Menentukan urutan selanjutnya untuk jenis surat X, dengan cara // "mengambil nomor urut jenis surat X terakhir" untuk nanti diincrement saat direkam ke database // -Fluent query- // Rulesnya: apabila tahun surat terakhir masih sama dengan tahun konfigurasi // surat, maka nomor urut dilanjutkan. // Apabila berbeda tahun, maka direset menjadi 1. $last_number = DB::table('surat_keluar')->where('jenis_surat', '=', $jenis->jenis_surat)->order_by('id', 'desc')->only('nomor_urut'); $last_surat_tahun = DB::table('surat_keluar')->where('jenis_surat', '=', $jenis->jenis_surat)->order_by('id', 'desc')->only('tahun'); if ($last_surat_tahun == $cfg_tahun_surat) { $now_number = $last_number + 1; } else { $now_number = 1; } // -Eloquent query- Suratkeluar::create(array('jenis_surat' => $jenis->jenis_surat, 'nomor_urut' => $now_number, 'kode_surat' => $cfg_kode_surat, 'tahun' => $cfg_tahun_surat, 'tgl_surat' => $tanggal, 'pengirim' => $pengirim->nama, 'tujuan' => $tujuan, 'hal' => $hal, 'perekam' => Auth::user()->username, 'diupdate' => Auth::user()->username)); $jumlah++; } } $message = 'Surat Keluar Seksi sebanyak ' . $jumlah . ' surat berhasil direkam.'; $a['message'] = $message; return $a['message']; } }
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'); } }
/** * Function sama seperti clean_id_jenis, perbedaan hanya di database dan * field yg digunakan. */ public static function clean_id_pengirim($input) { $id = $input; $find = Disposisi::find($id); if (is_object($find)) { $keyword = $find->nama; return $keyword; } else { return '%'; } }