<?php namespace App\Http\Controllers; use DB; use URL; use Auth; use Uuid; use Alert; use Crypt; use GuzzleHttp\Client; use App\Models\Reviewer; use Illuminate\Http\Request; class ReviewerController extends Controller { public function index() { return view('backend.reviewer.index')->withTitle('Reviewer Seleksi Internal'); } /* AJAX request */ public function getData(Request $request){ ## Read value $draw = $request->get('draw'); $start = $request->get("start"); $rowperpage = $request->get("length"); // Rows display per page $columnIndex_arr = $request->get('order'); $columnName_arr = $request->get('columns'); $order_arr = $request->get('order'); $search_arr = $request->get('search'); $columnIndex = $columnIndex_arr[0]['column']; // Column index $columnName = $columnName_arr[$columnIndex]['data']; // Column name $columnSortOrder = $order_arr[0]['dir']; // asc or desc $searchValue = strtoupper($search_arr['value']); // Search value // Total records $statementGlobal = " STATUS_HAPUS = '0' "; $totalRecords = Reviewer::select('count(1) as allcount')->whereRaw($statementGlobal)->count(); $statement = " AND (UPPER(NAMA) LIKE '%".$searchValue."%') "; $totalRecordswithFilter = Reviewer::select('count(1) as allcount') ->whereRaw($statementGlobal.$statement)->count(); // Fetch records $records = Reviewer::orderBy($columnName,$columnSortOrder) ->whereRaw($statementGlobal.$statement) ->select('reviewer.*') ->selectRaw("ambil_jumlah_reviewer_info_review(reviewer.reviewer_id, '0') jumlah_harus_review, ambil_jumlah_reviewer_info_review(reviewer.reviewer_id, '1') jumlah_sudah_review") ->skip($start) ->take($rowperpage) ->get(); $data_arr = array(); foreach($records as $record){ $reviewer_id = $record->reviewer_id; $nama = $record->nama; $nidn = $record->nidn; $fakultas = $record->fakultas; $jumlah_harus_review = $record->jumlah_harus_review; $jumlah_sudah_review = $record->jumlah_sudah_review; $delete = "confirmDelete('".Crypt::encrypt($reviewer_id)."')"; $data_arr[] = array( "reviewer_id" => $reviewer_id, "nama" => $nama, "nidn" => $nidn, "fakultas" => $fakultas, "jumlah_harus_review" => $jumlah_harus_review, "jumlah_sudah_review" => $jumlah_sudah_review, "aksi" => '<td class="table-action"> <a href="#!" class="btn btn-icon-sm btn-danger" onclick="'.$delete.'"><i class="fas fa-trash"></i></a> </td>' ); } $response = array( "draw" => intval($draw), "iTotalRecords" => $totalRecords, "iTotalDisplayRecords" => $totalRecordswithFilter, "aaData" => $data_arr ); echo json_encode($response); exit; } public function create() { return view('backend.reviewer.create')->withTitle('Tambah Reviewer'); } public function store(Request $request) { $reqPeriodeId = '9857a29d-521f-413a-b811-94cda7b45897'; $reqJenisMonevId = 'ba11c2b5-d65d-4360-9717-98e4fa9b9188'; $ada_data = Reviewer::where([ ['id_sdm', '=', $request->input('id_sdm')], ['periode_id', '=', $reqPeriodeId], ['jenis_monev_id', '=', $reqJenisMonevId], ['status_hapus', '=', '0'], ])->count(); if($ada_data > 0) { return response()->json([ 'status' => 'error', 'message' => 'Data reviewer sudah ada.', ]); } $uuid = Uuid::generate(); $data['reviewer_id'] = $uuid; $data['periode_id'] = $reqPeriodeId; $data['jenis_monev_id'] = $reqJenisMonevId; $data['id_sdm'] = $request->input('id_sdm'); $data['nama'] = $request->input('nama'); $data['nidn'] = $request->input('nidn'); $data['fakultas'] = $request->input('fakultas'); $data['prodi'] = $request->input('prodi'); // BACKUP NVN // $data['created_user'] = Auth::user()->name; if(Reviewer::create($data)) { return response()->json([ 'status' => 'success', 'message' => 'Data berhasil ditambahkan.', ]); } else { return response()->json([ 'status' => 'error', 'message' => 'Data gagal ditambahkan.', ]); } } public function edit($id) { } public function update(Request $request, $id) { } public function destroy($id) { try { $delete = Reviewer::where('reviewer_id', Crypt::decrypt($id))->update(['status_hapus'=>'1']); if ($delete == 1) { $info = 'Deleted!'; $status = 'success'; $message = "Reviewer berhasil dihapus."; } else{ $info = 'Error!'; $status = 'error'; $message = "Reviewer tidak ada."; } return response()->json([ 'info' => $info, 'status' => $status, 'message' => $message, ]); } catch (\Exception $id) { return response()->json([ 'status' => 'error', 'message' => "Data gagal dihapus.", ]); } } public function getDosen(Request $request) { $client = new Client(['base_uri' => 'https://siakadu.unesa.ac.id/']); $response = $client->request('POST', '/api/dashboard', ['form_params' => [ 'kondisi' => 'dosen_aktif' ], 'http_errors' => false]); return json_decode($response->getBody(), true); } }