/** * Toggle status jenis surat sehingga hanya yg aktif saja yang akan ditampilkan dalam * dalam form input surat keluar. Untuk form edit surat keluar tetap ditampilkan, tetapi * tidak dapat diedit. Untuk form search surat keluar, ditampilkan dan dapat digunakan. */ public static function toggle_jenissurat($id) { $current_aktif = Jenissurat::find($id)->aktif; $jumlah_aktif = Jenissurat::where('aktif', '=', 1)->count(); if ($jumlah_aktif <= 1 && $current_aktif == 1) { $warning = 'Daftar jenis surat minimum 1 (satu) entry. Perubahan tidak dapat dilakukan.'; $msg = array(); $msg['msg_type'] = 'warning'; $msg['message'] = $warning; } else { if ($current_aktif == 1) { $aktif_status = 0; Jenissurat::update($id, array('aktif' => $aktif_status)); } else { $aktif_status = 1; Jenissurat::update($id, array('aktif' => $aktif_status)); } $current_jenis_surat = Jenissurat::find($id)->jenis_surat; $message = 'Jenis surat: ' . $current_jenis_surat . ' berhasil diupdate.'; $msg = array(); $msg['msg_type'] = 'message'; $msg['message'] = $message; } 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_jenissurat_toggle($id) { if (is_object(Jenissurat::find($id))) { $toggle = Jenissurat::toggle_jenissurat($id); return Redirect::to_route('settings_jenissurat')->with($toggle['msg_type'], $toggle['message']); } else { // return error 404 apabila mengakses ID surat yg tidak ada di database return View::make('error.404'); } }
<div class="row morevspace"> <hr> <table class='displaytable'> <thead> <tr> <th class="span4">Nomor Surat</th> <th class="span1">Tanggal</th> <th class="span3">Tujuan</th> <th>Hal</th> <th>Pengirim</th> </tr> </thead> <tbody> <?php $nomor_surat = Jenissurat::find($input['jenis'])->jenis_surat . 'XXX' . Konfigurasi::find(3)->config_value . Konfigurasi::find(4)->config_value; ?> @foreach($csv_rows as $suratkeluar) <tr> <td>{{ $nomor_surat }}</td> <td>{{ $input['tanggal'] }}</td> <td>{{ e($suratkeluar[0]) }}</td> <td>{{ $input['hal'] }}</td> <td>{{ Disposisi::find($input['pengirim'])->nama }}</td> </tr> @endforeach @if (empty($csv_rows)) <tr> <td colspan="5"><em>Warning: file kosong....</em><td> </tr>