100
DAFTAR PUSTAKA
Abror, Muhamad. 2017. Pengertian CSS (Tujuan CSS, Fungsi CSS dan Cara
Kerja CSS). http://www.ayoksinau.com Diakses pada tanggal 9 Juli 2018
AirPutih, Tim. “Panduan Laravel PHP Framework”. 2014.
Aji, Sapto, Migunani, Fitro Nur Hakim. 2014. Rancang Bangun Sistem Informasi
Disposisi Surat Berbasis Web. Indonesian Jurnal on Networking and
Security(3), 29.
Anonim. 2018. Pengertian MYSQL beserta kekurangan dan kelebihannya. https://
http://www.teorikomputer.com . Diakses pada tanggal 20 Maret 2018
Anonim.
2014.
Pengertian
dan
Fungsi
PHP
dalam
Pemrograman
Web.https://www.duniailkom.com. Diakses pada tanggal 18 Maret 2018.
Anonim. 2013. Pengertian Database. www.termasmedia.com. Diakses pada
tanggal 20 Maret 2018.
Anonim. 2018. Website adalah…. http://www.proweb.co.id. Diakses pada tanggal
20 Maret 2018
Anonim. 2014. Standar Operasional Prosedur Pengelolaan Naskah Dinas (Surat
Masuk dan Surat Keluar). http://diskominfo.sumutprov.go.id . Diakses
pada tanggal 2 April 2018.
Anonim. 2015. E-office. http://www.integraindonesia.co.id. Diakses pada tanggal
18 Maret 2018
Dharwiyanti, Sri, and Romi Satria Wahono. "Pengantar Unified Modeling
Language (UML)." Ilmu Komputer (2003): 1-13.
Dwi, Hendraswati Enggar. 2016. Balsamiq Mockup. http://enggar.net. Diakses
pada tanggal 29 Juni 2018.
Dzacko, Haidar. “Basis Data (Database)”. 2007.
Enterprise, Jubilee. “Mengenal PHP Menggunakan Framework Laravel”. 2015.
Fauzi, Bangtar. 2016. Simbol-Simbol Flowchart. http://www.cheersupgarut.
blogspot.com. Diakses pada tanggal 24 Juni 2018.
Gunadarma, Universitas. “Analisis & Perancangan Sistem Informasi”. 2005.
Ismanto, Hadi, Mohammad Yani. “Kuliah Rekayasa Perangkat Lunak TESTING
101
Maniyeni, Peter R. 2017. Peracncangan Sistem Informasi Pengolahan Surat
Masuk dan Surat Keluar Berbasis Web dengan CodeInteger. Salatiga :
Program Diploma Universitas Kristen Satya Wacana
Mesran. 2013. Simbol-simbol Use Case. http://www.mesran.blogspot.com.
Diakses pada tanggal 29 Juni 2018.
Nugraha, Teten. "Tutorial Dasar Laravel." (2014).
Otwell,
T.
Laravel.
"Dokumentation." EUU,
2014
Disponible
en:
http://laravel.com/docs 5 (3).
Po’oe, Wandy Pratama. 2015. Sistem Informasi Disposisi Surat Berbasis Web
(Studi Kasus UPTD Pelaksana Teknik Dinas Pengembangan Sistem
Informasi dan Telematika Provinsi Sulawesi
Utara).
Manado
:
Program Diploma IV Politeknik Negeri Manado.
Raharjo, Budi. 2016. Modul Pemrograman WEB (HTML, PHP, & MYSQL) edisi
ketiga. Bandung : Modula.
Saputro, Haris. “MODUL PEMBELAJARAN PRAKTEK BASIS DATA
(MySQL)”. 2012.
Sofwan, Akhmad. "Belajar MySQL dengan Phpmyadmin." (2006).
Suhesti, Tyan. “WEB SERVER DAN JENISNYA”. 2014
Suparjati, D. 2000. Tata Usaha dan Kearsipan (vol. 1). Yogyakarta: Kanisius.
Zulkarnaen dan Beni Ahmad Saebani, 2012. Hukum Konstitusi. Bandung :
102
1. Surat Masuk Controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; use File; use Auth; use View; use Validator; use App\Model\Surat; use App\Model\SuratFile; use App\Model\UserDevice; use App\Commands\SendGcm; use App\Commands\SuratFileRecognizer;class SuratMasukController extends Controller { public function __construct()
{
$this->middleware('auth'); createSidebar();
}
public function index() {
$surats = Surat::where('jenis_surat',JENIS_SURAT_MASUK)->where(queryMySurat())->orderBy('id','desc')->get();
return view('surat_masuk.index',compact('surats')); }
public function form() {
return view('surat_masuk.form'); }
public function edit($id) {
$model = Surat::find($id); View::share('model', $model ); if (!$model->canEdit())
return redirect()->back()->with('message','Anda tidak memiliki otorisasi untuk mengedit surat
ini')->with('message_title','Otorisasi Gagal')->with('message_type','error'); return view('surat_masuk.form');
}
{
$validator = Validator::make($request->all(),Surat::$rules_surat_masuk);
if ($validator->fails()) { $msg = "";
foreach ($validator->messages()->all() as $message) { $msg .= $message ." "; } return redirect()->back()->with('message',$msg)->with('message_title','Penyimpanan Gagal')->with('message_type','error'); } $model = Surat::find($id); if (!$model->canEdit()) return redirect()->back()->with('message','Anda tidak memiliki otorisasi untuk mengedit surat
ini')->with('message_title','Otorisasi Gagal')->with('message_type','error'); $model->fill($request->except('_token','files','tanggal_disposisi','perihal_disposisi')); if (>get('waktu_kegiatan') == "" || $request->get('kegiatan') == "") { $model->is_kegiatan = 0; } else { $model->is_kegiatan = 1; } // $model->surat_flow_id = $model->surat_masuk()->first()->surat_flow_id; // $model->surat_status_id = $model->surat_masuk()->first()->surat_flow()->first()->default_status_id; if ($model->isDirty('kepada')) { $kepada = json_decode($model->kepada); if (!$kepada) $kepada = []; $tokens = UserDevice::getUsersToken($kepada); if (count($tokens['gcm'])) { $name = $model->nama_sender; $perihal = $model->perihal; $t = $tokens['gcm']; $m = "Perihal \"$perihal\""; $p = [
'title' => "Dari: $name", 'id' => $model->id,
'jenis' => 'kepada', ]; $this->dispatch(new SendGcm($t,$m,$p)); } } $model->save(); $files = $model->files()->get(); foreach ($files as $file) {
$file->surat_id = 0; $file->save(); }
$files = json_decode($request->get('files')); foreach ($files as $file) {
$surat_file = SuratFile::find($file); if ($surat_file) { $surat_file->surat_id = $model->id; $surat_file->save(); } } return redirect('surat/masuk')->with('message','Surat berhasil diubah'); }
public function detail($id) {
$model = Surat::find($id); // dd($model);
if (!$model)
return redirect()->back()->with('message','Surat tidak tersedia di sistem')->with('message_type','error');
if (!$model->canSee())
return redirect()->back()->with('message','Anda tidak memiliki otorisasi untuk melihat surat
ini')->with('message_title','Otorisasi Gagal')->with('message_type','error'); return view('surat_masuk.detail',compact('model'));
}
public function save(Request $request) { $validator = Validator::make($request->all(),Surat::$rules_surat_masuk);
if ($validator->fails()) { $msg = "";
{ $msg .= $message ." "; } return redirect()->back()->with('message',$msg)->with('message_title','Penyimpanan Gagal')->with('message_type','error'); }
$model = new Surat; $model->fill($request->except('_token','files','tanggal_disposisi','perihal_disposisi')); if (>get('waktu_kegiatan') == "" || $request->get('kegiatan') == "") { $model->is_kegiatan = 0; } else { $model->is_kegiatan = 1; } $model->jenis_surat = JENIS_SURAT_MASUK; $model->uploader_id = Auth::user()->id; //$model->surat_flow_id = $model->surat_masuk()->first()->surat_flow_id; $model->surat_status_id = $model->surat_masuk()->first()->surat_flow()->first()->default_status_id; $model->uploader_id = Auth::user()->id; $model->satuan_kerja_id = Auth::user()->satuan_kerja_id; $model->save(); $kepada = json_decode($model->kepada); if (!$kepada) $kepada = []; $tokens = UserDevice::getUsersToken($kepada); if (count($tokens['gcm'])) { $name = $model->nama_sender; $perihal = $model->perihal; $t = $tokens['gcm']; $m = "Perihal \"$perihal\""; $p = [
'title' => "Dari: $name", 'id' => $model->id, 'jenis' => 'kepada', ]; $this->dispatch(new SendGcm($t,$m,$p)); } $files = json_decode($request->get('files')); foreach ($files as $file) {
if ($surat_file) { $surat_file->surat_id = $model->id; $surat_file->save(); } } return redirect('surat/masuk/form')->with('message','Surat berhasil dimasukkan'); }
public function upload(Request $request) { $extension = $request->file('file')->getClientOriginalExtension();
if (isAllowedUpload($extension)) { //var_dump(); exit();
$model = new SuratFile;
$directory = public_path().'/upload/surat/'; $filename = $request->file('file')->getClientOriginalName(); $model->description = $filename; while (File::exists("upload/surat/$filename")) { $extension_pos = strrpos($filename, '.'); $filename = substr($filename, 0,
$extension_pos) . '-' . str_random(5) . substr($filename, $extension_pos); } $model->filename = $filename; $upload_success = $request->file('file')->move($directory, $filename); if( $upload_success ) { $model->save(); //$this->dispatch(new SuratFileRecognizer($model)); echo $model->id; } else { echo "ERROR-UPLOAD"; }
} else echo "ERROR-EXTENSION"; }
public function deleteUpload(Request $request) { }
2. Surat Keluar Controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use DB; use File; use Auth; use View; use Validator; use App\Model\Surat; use App\Model\SuratFile; use App\Model\SuratStatus; use App\Model\UserDevice; use App\Commands\SendGcm; use App\Commands\SuratFileRecognizer;class SuratKeluarController extends Controller { public function __construct()
{
$this->middleware('auth');
createSidebar();
}
public function index() { $surats = Surat::where('jenis_surat',JENIS_SURAT_KELUAR)- >where('satuan_kerja_id',Auth::user()->satuan_kerja_id)->orderBy('id','desc')->get(); return view('surat_keluar.index',compact('surats')); }
public function me() { $surat_ids = DB::table('surat_action')- >where('activity','action')->where('user_id',Auth::user()->id)->select('surat_id')->distinct()->get(); $surat_ids = array_pluck($surat_ids,'surat_id'); $surats = Surat::where('jenis_surat',JENIS_SURAT_KELUAR)- >where('satuan_kerja_id',Auth::user()->satuan_kerja_id)->whereIn('id',$surat_ids)->orderBy('id','desc')->get();
return view('surat_keluar.me',compact('surats')); }
public function forMe() { $status = SuratStatus::where('surat_flow_id','surat_keluar')- >where('role_id_responsible',getRole())->select('id')->distinct()->get(); $status = array_pluck($status,'id'); $surats = Surat::where('jenis_surat',JENIS_SURAT_KELUAR)- >where('satuan_kerja_id',Auth::user()->satuan_kerja_id)->whereIn('surat_status_id',$status)->orderBy('id','desc')->get(); return view('surat_keluar.for_me',compact('surats')); }
public function selesai() { $surats = Surat::where('jenis_surat',JENIS_SURAT_KELUAR)- >where('satuan_kerja_id',Auth::user()->satuan_kerja_id)- >where('surat_status_id','surat_keluar_selesai')->orderBy('id','desc')->get(); return view('surat_keluar.selesai',compact('surats')); }
public function sudahDikirim() { $surats = Surat::where('jenis_surat',JENIS_SURAT_KELUAR)- >where('satuan_kerja_id',Auth::user()->satuan_kerja_id)- >where('surat_status_id','surat_keluar_sudah_dikirim')->orderBy('id','desc')->get(); return view('surat_keluar.sudah_dikirim',compact('surats')); }
public function form() {
return view('surat_keluar.form');
}
public function edit($id) {
$model = Surat::find($id);
View::share('model', $model );
return redirect()->back()->with('message','Anda tidak memiliki otorisasi untuk mengedit surat
ini')->with('message_title','Otorisasi Gagal')->with('message_type','error');
return view('surat_keluar.form');
}
public function editSave($id,Request $request) {
$validator =
Validator::make($request->all(),Surat::$rules_surat_keluar);
if ($validator->fails()) {
$msg = "";
foreach ($validator->messages()->all() as $message) {
$msg .= $message ." "; } return redirect()->back()->with('message',$msg)->with('message_title','Penyimpanan Gagal')->with('message_type','error'); } $model = Surat::find($id); if (!$model->canEdit())
return redirect()->back()->with('message','Anda tidak
memiliki otorisasi untuk mengedit surat
ini')->with('message_title','Otorisasi Gagal')->with('message_type','error'); $model->fill($request->except('_token','files','tanggal_disposisi','perihal_disposisi')); if (>get('waktu_kegiatan') == "" || $request->get('kegiatan') == "") { $model->is_kegiatan = 0; } else { $model->is_kegiatan = 1; } //$model->surat_flow_id = $model->surat_keluar()->first()->surat_flow_id; //$model->surat_status_id = $model->surat_keluar()->first()->surat_flow()->first()->default_status_id; if ($model->isDirty('kepada')) { $kepada = json_decode($model->kepada); if (!$kepada) $kepada = []; $tokens = UserDevice::getUsersToken($kepada); if (count($tokens['gcm'])) { $name = $model->nama_sender;
$perihal = $model->perihal;
$t = $tokens['gcm'];
$m = "Perihal \"$perihal\"";
$p = [
'title' => "Dari: $name",
'id' => $surat->id, 'jenis' => 'kepada', ]; $this->dispatch(new SendGcm($t,$m,$p)); } } $model->save(); $files = $model->files()->get();
foreach ($files as $file) {
$file->surat_id = 0;
$file->save();
}
$files = json_decode($request->get('files'));
foreach ($files as $file) {
$surat_file = SuratFile::find($file); if ($surat_file) { $surat_file->surat_id = $model->id; $surat_file->save(); } }
return redirect('surat/keluar')->with('message','Surat berhasil
diubah'); }
public function detail($id) {
$model = Surat::find($id);
if (!$model)
return redirect()->back()->with('message','Surat tidak
tersedia di sistem')->with('message_type','error');
if (!$model->canSee())
return redirect()->back()->with('message','Anda tidak
memiliki otorisasi untuk melihat surat
ini')->with('message_title','Otorisasi Gagal')->with('message_type','error');
return view('surat_keluar.detail',compact('model'));
}
$validator = Validator::make($request->all(),Surat::$rules_surat_keluar);
if ($validator->fails()) {
$msg = "";
foreach ($validator->messages()->all() as $message) {
$msg .= $message ." "; } return redirect()->back()->with('message',$msg)->with('message_title','Penyimpanan Gagal')->with('message_type','error'); }
$model = new Surat;
$model->fill($request->except('_token','files','tanggal_disposisi','perihal_disposisi')); if (>get('waktu_kegiatan') == "" || $request->get('kegiatan') == "") { $model->is_kegiatan = 0; } else { $model->is_kegiatan = 1; } $model->jenis_surat = JENIS_SURAT_KELUAR; $model->uploader_id = Auth::user()->id; //$model->surat_flow_id = $model->surat_keluar()->first()->surat_flow_id; $model->surat_status_id = $model->surat_keluar()->first()->surat_flow()->first()->default_status_id; $model->uploader_id = Auth::user()->id; $model->satuan_kerja_id = Auth::user()->satuan_kerja_id; $model->save(); $kepada = json_decode($model->kepada); if (!$kepada) $kepada = []; $tokens = UserDevice::getUsersToken($kepada); if (count($tokens['gcm'])) { $name = $model->nama_sender; $perihal = $model->perihal; $t = $tokens['gcm']; $m = "Perihal \"$perihal\""; $p = [
'title' => "Dari: $name",
'id' => $surat->id,
'jenis' => 'kepada',
];
}
$files = json_decode($request->get('files'));
foreach ($files as $file) {
$surat_file = SuratFile::find($file); if ($surat_file) { $surat_file->surat_id = $model->id; $surat_file->save(); } } return redirect('surat/keluar/form')->with('message','Surat berhasil dimasukkan'); }
public function upload(Request $request) {
$extension =
$request->file('file')->getClientOriginalExtension();
if (isAllowedUpload($extension)) {
//var_dump(); exit();
$model = new SuratFile;
$directory = public_path().'/upload/surat/'; $filename = $request->file('file')->getClientOriginalName(); $model->description = $filename; while (File::exists("upload/surat/$filename")) { $extension_pos = strrpos($filename, '.');
$filename = substr($filename, 0, $extension_pos) .
'-' . str_random(5) . substr($filename, $extension_pos);
} $model->filename = $filename; $upload_success = $request->file('file')->move($directory, $filename); if( $upload_success ) { $model->save(); //$this->dispatch(new SuratFileRecognizer($model)); echo $model->id; } else { echo "ERROR-UPLOAD"; }
} else echo "ERROR-EXTENSION"; }
public function deleteUpload(Request $request) { }