Example #1
0
 /**
  * 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;
 }
Example #2
0
 /**
  * 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'];
     }
 }
Example #3
0
 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');
     }
 }
Example #4
0
 /**
  * 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 '%';
     }
 }