Commit bb453243 by Farendi Giotivano R.P

mau pull malah suruh merge fix

parents bf6f15ff ee952692
...@@ -67,7 +67,6 @@ class DaftarProposalController extends Controller ...@@ -67,7 +67,6 @@ class DaftarProposalController extends Controller
$data_arr = array(); $data_arr = array();
foreach($records as $record){ foreach($records as $record){
$proposal_id = $record->proposal_id; $proposal_id = $record->proposal_id;
$reviewer_proposal_id = $record->reviewer_proposal_id;
$jenis_id = $record->jenis_id; $jenis_id = $record->jenis_id;
$kode = $record->kode; $kode = $record->kode;
$jenis_pkm = $record->jenis_pkm; $jenis_pkm = $record->jenis_pkm;
...@@ -110,12 +109,12 @@ class DaftarProposalController extends Controller ...@@ -110,12 +109,12 @@ class DaftarProposalController extends Controller
$disable_1 = $disable_2 = ''; $disable_1 = $disable_2 = '';
if($nilai_1 > '0') if($nilai_1 > '0' || $status_administrasi_1 == '2')
{ {
$disable_1 = "disabled='true'"; $disable_1 = "disabled='true'";
} }
if($nilai_2 > '0') if($nilai_2 > '0' || $status_administrasi_2 == '2')
{ {
$disable_2 = "disabled='true'"; $disable_2 = "disabled='true'";
} }
...@@ -149,7 +148,7 @@ class DaftarProposalController extends Controller ...@@ -149,7 +148,7 @@ class DaftarProposalController extends Controller
} }
$data_arr[] = array( $data_arr[] = array(
"reviewer_proposal_id" => $reviewer_proposal_id, "proposal_id" => $proposal_id,
"kode" => $kode, "kode" => $kode,
"jenis_pkm" => $jenis_pkm, "jenis_pkm" => $jenis_pkm,
"judul" => $judul, "judul" => $judul,
...@@ -226,6 +225,15 @@ class DaftarProposalController extends Controller ...@@ -226,6 +225,15 @@ class DaftarProposalController extends Controller
$lolos = "confirmFinal('".Crypt::encrypt($seleksi_belmawa_id)."', '1')"; $lolos = "confirmFinal('".Crypt::encrypt($seleksi_belmawa_id)."', '1')";
$tidak_lolos = "confirmFinal('".Crypt::encrypt($seleksi_belmawa_id)."', '2')"; $tidak_lolos = "confirmFinal('".Crypt::encrypt($seleksi_belmawa_id)."', '2')";
if($upload_dokumen == '' || $upload_dokumen == null)
$proposal = '<span class="badge bg-warning">Dokumen belum diunggah.</span>';
else
{
$url = "https://statik.unesa.ac.id/simpkm/proposal/revisi/".$record->periode."/".$record->upload_dokumen;
$proposal = '<a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"><i class="fas fa-search"></i></a>';
}
if($status == '1') if($status == '1')
{ {
$aksi = '<span class="badge bg-success">Lolos</span>'; $aksi = '<span class="badge bg-success">Lolos</span>';
...@@ -236,10 +244,17 @@ class DaftarProposalController extends Controller ...@@ -236,10 +244,17 @@ class DaftarProposalController extends Controller
} }
else else
{ {
$aksi = '<td class="table-action"> if($upload_dokumen == '' || $upload_dokumen == null)
<a href="#!" class="btn btn-icon-sm btn-success" onclick="'.$lolos.'"><i class="fas fa-check"></i></a> {
<a href="#!" class="btn btn-icon-sm btn-danger" onclick="'.$tidak_lolos.'"><i class="fas fa-ban"></i></a> $aksi = '<span class="badge bg-warning">Dokumen belum diunggah.</span>';
</td>'; }
else
{
$aksi = '<td class="table-action">
<a href="#!" class="btn btn-icon-sm btn-success" onclick="'.$lolos.'"><i class="fas fa-check"></i></a>
<a href="#!" class="btn btn-icon-sm btn-danger" onclick="'.$tidak_lolos.'"><i class="fas fa-ban"></i></a>
</td>';
}
} }
$data_arr[] = array( $data_arr[] = array(
...@@ -248,7 +263,7 @@ class DaftarProposalController extends Controller ...@@ -248,7 +263,7 @@ class DaftarProposalController extends Controller
"jenis_pkm" => $jenis_pkm, "jenis_pkm" => $jenis_pkm,
"judul" => $judul, "judul" => $judul,
"nama_dosen" => $nama_dosen, "nama_dosen" => $nama_dosen,
"upload_dokumen" => $upload_dokumen, "upload_dokumen" => $proposal,
"aksi" => $aksi "aksi" => $aksi
); );
} }
...@@ -390,19 +405,6 @@ class DaftarProposalController extends Controller ...@@ -390,19 +405,6 @@ class DaftarProposalController extends Controller
} }
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);
}
public function approval($id, $status) public function approval($id, $status)
{ {
try { try {
......
<?php
namespace App\Http\Controllers\Operator;
use DB;
use URL;
use Auth;
use Uuid;
use Alert;
use Crypt;
use App\Models\Kelompok;
use Illuminate\Http\Request;
use App\Models\KelompokDetail;
use App\Http\Controllers\Controller;
class KelompokController extends Controller
{
public function index()
{
return view('backend.operator.kelompok.index')->withTitle('Daftar Kelompok');
}
/* 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 = Kelompok::select('count(1) as allcount')->whereRaw($statementGlobal)->count();
$statement = " AND (UPPER(NAMA_DOSEN) LIKE '%".$searchValue."%') ";
$totalRecordswithFilter = Kelompok::select('count(1) as allcount')
->whereRaw($statementGlobal.$statement)->count();
// Fetch records
$records = Kelompok::orderBy($columnName,$columnSortOrder)
->whereRaw($statementGlobal.$statement)
->selectRaw('*, ambil_ketua_kelompok(kelompok.kelompok_id) ketua')
->skip($start)
->take($rowperpage)
->get();
$data_arr = array();
foreach($records as $record){
$kelompok_id = $record->kelompok_id;
$kode = $record->kode;
$ketua = $record->ketua;
$ketua = explode('###', $record->ketua);
$nama_ketua = $ketua[0];
$nim_ketua = $ketua[1];
$nama_dosen = $record->nama_dosen;
$nidn_dosen = $record->nidn_dosen;
$status = $record->status;
if($status == '1')
$keterangan = '<span class="badge bg-success">Disetujui</span>';
elseif($status == '2')
$keterangan = '<span class="badge bg-danger">Ditolak</span>';
else
$keterangan = '<span class="badge bg-warning">Menunngu Persetujuan</span>';
$data_arr[] = array(
"kelompok_id" => $kelompok_id,
"kode" => $kode,
"nama_ketua" => $nama_ketua,
"nim_ketua" => $nim_ketua,
"nama_dosen" => $nama_dosen,
"nidn_dosen" => $nidn_dosen,
"keterangan" => $keterangan,
"aksi" => '<a class="btn btn-primary btn-sm waves-effect waves-light viewdetails" role="button" data-id="'.Crypt::encrypt($kelompok_id).'"><i class="fas fa-eye"></i></a>'
);
}
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordswithFilter,
"aaData" => $data_arr
);
echo json_encode($response);
exit;
}
public function getDetil(Request $request)
{
$reqKelompokId = Crypt::decrypt($request->kelompok_id);
$kelompok_detil = KelompokDetail::where('kelompok_id', $reqKelompokId)->get();
$data = '';
$no = 1;
foreach ($kelompok_detil as $key => $value) {
if($value->status_ketua == 1)
$keterangan = "Ketua";
else
$keterangan = "Anggota ".$no-1;
$data .= "
<tr>
<td>".$no."</td>
<td>".$value->nama."</td>
<td>".$value->nim."</td>
<td>".$value->fakultas."</td>
<td>".$value->prodi."</td>
<td>".$keterangan."</td>
</tr>
";
$no++;
}
$response['html'] = $data;
echo json_encode($response);
}
public function create()
{
}
public function store(Request $request)
{
}
public function edit($id)
{
}
public function update(Request $request, $id)
{
}
public function destroy($id)
{
}
}
...@@ -109,12 +109,12 @@ class MonevProposalController extends Controller ...@@ -109,12 +109,12 @@ class MonevProposalController extends Controller
if($value->reviewer_id == $reviewer_id_2) if($value->reviewer_id == $reviewer_id_2)
$selected2 = 'selected'; $selected2 = 'selected';
$opt1 .= '<option value="'.Crypt::encrypt($proposal_id.'###'.$value->reviewer_id).'" '.$selected1.'>'.$value->nama.'</option>'; $opt1 .= '<option value="'.Crypt::encrypt($monev_internal_id.'###'.$value->reviewer_id).'" '.$selected1.'>'.$value->nama.'</option>';
$opt2 .= '<option value="'.Crypt::encrypt($proposal_id.'###'.$value->reviewer_id).'" '.$selected2.'>'.$value->nama.'</option>'; $opt2 .= '<option value="'.Crypt::encrypt($monev_internal_id.'###'.$value->reviewer_id).'" '.$selected2.'>'.$value->nama.'</option>';
} }
$lolos = "confirmFinal('".Crypt::encrypt($proposal_id)."', '1')"; $lolos = "confirmFinal('".Crypt::encrypt($monev_internal_id)."', '1')";
$tidak_lolos = "confirmFinal('".Crypt::encrypt($proposal_id)."', '2')"; $tidak_lolos = "confirmFinal('".Crypt::encrypt($monev_internal_id)."', '2')";
$disable_1 = $disable_2 = ''; $disable_1 = $disable_2 = '';
...@@ -190,10 +190,9 @@ class MonevProposalController extends Controller ...@@ -190,10 +190,9 @@ class MonevProposalController extends Controller
$uuid = Uuid::generate(); $uuid = Uuid::generate();
$reqUrut = $request->input('urut'); $reqUrut = $request->input('urut');
$isi = Crypt::decrypt($request->input('data')); $isi = Crypt::decrypt($request->input('data'));
$reqJenisMonevId = Crypt::decrypt($request->input('jenisMonevId'));
$arrData = explode('###', $isi); $arrData = explode('###', $isi);
$reqProposalId = $arrData[0]?:''; $reqMonevInternalId = $arrData[0]?:'';
$reqReviewerId = $arrData[1]?:''; $reqReviewerId = $arrData[1]?:'';
...@@ -211,8 +210,7 @@ class MonevProposalController extends Controller ...@@ -211,8 +210,7 @@ class MonevProposalController extends Controller
if ($delete == 1) { if ($delete == 1) {
// ketika sudah di delete kemudian data yang baru di insert // ketika sudah di delete kemudian data yang baru di insert
$data['reviewer_monev_id'] = $uuid; $data['reviewer_monev_id'] = $uuid;
$data['jenis_monev_id'] = $reqJenisMonevId; $data['monev_internal_id'] = $reqMonevInternalId;
$data['proposal_id'] = $reqProposalId;
$data['reviewer_id'] = $reqReviewerId; $data['reviewer_id'] = $reqReviewerId;
$data['urut'] = $reqUrut; $data['urut'] = $reqUrut;
// BACKUP NVN // BACKUP NVN
...@@ -237,8 +235,7 @@ class MonevProposalController extends Controller ...@@ -237,8 +235,7 @@ class MonevProposalController extends Controller
$ada_data = ReviewerMonev::where([ $ada_data = ReviewerMonev::where([
['proposal_id', '=', $reqProposalId], ['monev_internal_id', '=', $reqMonevInternalId],
['jenis_monev_id', '=', $reqJenisMonevId],
['reviewer_id', '=', $reqReviewerId], ['reviewer_id', '=', $reqReviewerId],
['urut', '!=', $reqUrut], ['urut', '!=', $reqUrut],
])->count(); ])->count();
...@@ -252,8 +249,7 @@ class MonevProposalController extends Controller ...@@ -252,8 +249,7 @@ class MonevProposalController extends Controller
} }
$ada_data_detil = ReviewerMonev::join('reviewer_monev_detil as b', 'reviewer_monev.reviewer_monev_id', '=', 'b.reviewer_monev_id')->where([ $ada_data_detil = ReviewerMonev::join('reviewer_monev_detil as b', 'reviewer_monev.reviewer_monev_id', '=', 'b.reviewer_monev_id')->where([
['proposal_id', '=', $reqProposalId], ['monev_internal_id', '=', $reqMonevInternalId],
['jenis_monev_id', '=', $reqJenisMonevId],
['urut', '=', $reqUrut], ['urut', '=', $reqUrut],
['status_hapus', '=', '0'], ['status_hapus', '=', '0'],
])->first(); ])->first();
...@@ -269,16 +265,14 @@ class MonevProposalController extends Controller ...@@ -269,16 +265,14 @@ class MonevProposalController extends Controller
$data['reviewer_monev_id'] = $uuid; $data['reviewer_monev_id'] = $uuid;
$data['proposal_id'] = $reqProposalId; $data['monev_internal_id'] = $reqMonevInternalId;
$data['jenis_monev_id'] = $reqJenisMonevId;
$data['urut'] = $reqUrut; $data['urut'] = $reqUrut;
$data['reviewer_id'] = $reqReviewerId; $data['reviewer_id'] = $reqReviewerId;
// BACKUP NVN // BACKUP NVN
// $data['created_user'] = Auth::user()->name; // $data['created_user'] = Auth::user()->name;
$reviewer_monev = ReviewerMonev::updateOrCreate([ $reviewer_monev = ReviewerMonev::updateOrCreate([
'jenis_monev_id' => $reqJenisMonevId, 'monev_internal_id' => $reqMonevInternalId,
'proposal_id' => $reqProposalId,
'urut' => $reqUrut 'urut' => $reqUrut
], $data); ], $data);
...@@ -313,19 +307,6 @@ class MonevProposalController extends Controller ...@@ -313,19 +307,6 @@ class MonevProposalController extends Controller
} }
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);
}
public function approval($id, $status) public function approval($id, $status)
{ {
try { try {
......
<?php
namespace App\Http\Controllers\Operator;
use DB;
use URL;
use Auth;
use Uuid;
use Alert;
use Crypt;
use Carbon\Carbon;
use Illuminate\Http\Request;
use App\Models\DaftarProposal;
use App\Http\Controllers\Controller;
class ProposalController extends Controller
{
public function index()
{
return view('backend.operator.proposal.index')->withTitle('Daftar Proposal');
}
/* 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 = DaftarProposal::select('count(1) as allcount')->whereRaw($statementGlobal)->count();
$statement = " AND (UPPER(JUDUL) LIKE '%".$searchValue."%') ";
$totalRecordswithFilter = DaftarProposal::select('count(1) as allcount')
->whereRaw($statementGlobal.$statement)->count();
// Fetch records
$records = DaftarProposal::orderBy($columnName,$columnSortOrder)
->whereRaw($statementGlobal.$statement)
->selectRaw('*')
->skip($start)
->take($rowperpage)
->get();
$data_arr = array();
foreach($records as $record){
$proposal_id = $record->proposal_id;
$kode = $record->kode;
$identitas_ketua = str_replace('###', '<br>', $record->identitas_ketua);
$identitas_dospem = str_replace('###', '<br>', $record->identitas_dospem);
$jenis_pkm = $record->jenis_pkm;
$judul = $record->judul;
$status = $record->status;
$upload_dokumen = $record->upload_dokumen;
$date_upload = Carbon::parse($record->date_upload)->format('d-m-Y H:i')?:'';
$date_approval = Carbon::parse($record->date_approval)->format('d-m-Y H:i')?:'';
if($upload_dokumen == null || $upload_dokumen == '')
{
$keterangan = '<span class="badge bg-danger">Belum Upload Proposal</span>';
}
else
{
$url = "https://statik.unesa.ac.id/simpkm/proposal/".$record->periode."/".$record->upload_dokumen;
$proposal = '<a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"><i class="fas fa-search"></i></a>';
if($status == '1')
$keterangan = '<span class="badge bg-success">Disetujui Dosen</span>';
elseif($status == '2')
$keterangan = '<span class="badge bg-danger">Ditolak Dosen</span>';
else
$keterangan = '<span class="badge bg-warning">Menunngu Persetujuan Dosen</span>';
}
$keterangan .= "<br><span class='badge bg-info'>Upload Proposal Pada : ".$date_upload." WIB</span>";
$keterangan .= "<br><span class='badge bg-info'>Disetujui Dosen Pada : ".$date_approval." WIB</span>";
$data_arr[] = array(
"proposal_id" => $proposal_id,
"kode" => $kode,
"identitas_ketua" => $identitas_ketua,
"identitas_dospem" => $identitas_dospem,
"jenis_pkm" => $jenis_pkm,
"judul" => $judul,
"keterangan" => $keterangan,
"aksi" => $proposal
);
}
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordswithFilter,
"aaData" => $data_arr
);
echo json_encode($response);
exit;
}
public function getDetil(Request $request)
{
$reqKelompokId = Crypt::decrypt($request->kelompok_id);
$kelompok_detil = KelompokDetail::where('kelompok_id', $reqKelompokId)->get();
$data = '';
$no = 1;
foreach ($kelompok_detil as $key => $value) {
if($value->status_ketua == 1)
$keterangan = "Ketua";
else
$keterangan = "Anggota ".$no-1;
$data .= "
<tr>
<td>".$no."</td>
<td>".$value->nama."</td>
<td>".$value->nim."</td>
<td>".$value->fakultas."</td>
<td>".$value->prodi."</td>
<td>".$keterangan."</td>
</tr>
";
$no++;
}
$response['html'] = $data;
echo json_encode($response);
}
public function create()
{
}
public function store(Request $request)
{
}
public function edit($id)
{
}
public function update(Request $request, $id)
{
}
public function destroy($id)
{
}
}
...@@ -59,7 +59,7 @@ class ReviewerController extends Controller ...@@ -59,7 +59,7 @@ class ReviewerController extends Controller
$records = Reviewer::orderBy($columnName,$columnSortOrder) $records = Reviewer::orderBy($columnName,$columnSortOrder)
->whereRaw($statementGlobal.$statement) ->whereRaw($statementGlobal.$statement)
->select('reviewer.*') ->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") ->selectRaw("ambil_jumlah_reviewer_info_review(reviewer.reviewer_id, '1', '".$jenis_monev_id."', '0') jumlah_harus_review, ambil_jumlah_reviewer_info_review(reviewer.reviewer_id, '1', '".$jenis_monev_id."', '1') jumlah_sudah_review")
->skip($start) ->skip($start)
->take($rowperpage) ->take($rowperpage)
->get(); ->get();
...@@ -196,14 +196,45 @@ class ReviewerController extends Controller ...@@ -196,14 +196,45 @@ class ReviewerController extends Controller
public function getDosen(Request $request) public function getDosen(Request $request)
{ {
$client = new Client(['base_uri' => 'https://siakadu.unesa.ac.id/']); $client = new Client();
$response = $client->request('GET', 'https://i-sdm.unesa.ac.id/api/data-dosen');
$data = json_decode($response->getBody(), true);
$response = $client->request('POST', '/api/dashboard', $result = [];
['form_params' => [ $i = 0;
'kondisi' => 'dosen_aktif' foreach ($data['data'] as $key => $value) {
], $jenjang = substr($value['namasatker'],-2);
'http_errors' => false]);
return json_decode($response->getBody(), true); $x = array("D3", "D4", "S1", "S2", "S3");
if (in_array($jenjang, $x))
{
$xyz = $jenjang.' '.trim(substr($value['namasatker'],0,-2));
}
$result[$i]['nm_sdm'] = $value['namalengkap'];
$result[$i]['nidn'] = $value['nidn'];
$result[$i]['fakultas'] = $value['namaparentsatker'];
$result[$i]['prodi'] = $xyz;
$result[$i]['id_sdm'] = $value['nidn'];
$i++;
}
$hasil['kode'] = "200";
$hasil['pesan'] = "sukses";
$hasil['data'] = $result;
return $hasil;
// $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);
} }
} }
...@@ -67,7 +67,7 @@ class ReviewerMonevController extends Controller ...@@ -67,7 +67,7 @@ class ReviewerMonevController extends Controller
$records = Reviewer::orderBy($columnName,$columnSortOrder) $records = Reviewer::orderBy($columnName,$columnSortOrder)
->whereRaw($statementGlobal.$statement) ->whereRaw($statementGlobal.$statement)
->select('reviewer.*') ->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") ->selectRaw("ambil_jumlah_reviewer_info_review(reviewer.reviewer_id, '2', '".$jenis_monev_id."', '0') jumlah_harus_review, ambil_jumlah_reviewer_info_review(reviewer.reviewer_id, '2', '".$jenis_monev_id."', '1') jumlah_sudah_review")
->skip($start) ->skip($start)
->take($rowperpage) ->take($rowperpage)
->get(); ->get();
...@@ -204,14 +204,39 @@ class ReviewerMonevController extends Controller ...@@ -204,14 +204,39 @@ class ReviewerMonevController extends Controller
public function getDosen(Request $request) public function getDosen(Request $request)
{ {
$client = new Client(['base_uri' => 'https://siakadu.unesa.ac.id/']); $client = new Client();
$response = $client->request('GET', 'https://i-sdm.unesa.ac.id/api/data-dosen');
$data = json_decode($response->getBody(), true);
$response = $client->request('POST', '/api/dashboard', $result = [];
['form_params' => [ $i = 0;
'kondisi' => 'dosen_aktif' foreach ($data['data'] as $key => $value) {
], $jenjang = substr($value['namasatker'],-2);
'http_errors' => false]);
return json_decode($response->getBody(), true); $x = array("D3", "D4", "S1", "S2", "S3");
if (in_array($jenjang, $x))
{
$xyz = $jenjang.' '.trim(substr($value['namasatker'],0,-2));
}
$result[$i]['nm_sdm'] = $value['namalengkap'];
$result[$i]['nidn'] = $value['nidn'];
$result[$i]['fakultas'] = $value['namaparentsatker'];
$result[$i]['prodi'] = $xyz;
$result[$i]['id_sdm'] = $value['nidn'];
$i++;
}
// $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($result, true);
} }
} }
<?php
namespace App\Http\Controllers\Reviewer;
use DB;
use URL;
use Auth;
use Uuid;
use Alert;
use Crypt;
use App\Models\JenisPenilaianMonev;
use GuzzleHttp\Client;
use App\Models\Periode;
use App\Models\Reviewer;
use Illuminate\Http\Request;
use App\Models\DaftarProposal;
use App\Models\SeleksiBelmawa;
use Illuminate\Support\Carbon;
use App\Models\ReviewerProposal;
use App\Http\Controllers\Controller;
use App\Models\DaftarProposalBelmawa;
use App\Models\ReviewerProposalDetil;
class DaftarSeleksiController extends Controller
{
private const periode_id = '9857a29d-521f-413a-b811-94cda7b45897';
public function __construct()
{
$this->middleware('auth');
$this->middleware(function ($request, $next) {
$this->rBiodata = Auth::user()->rBiodata;
return $next($request);
});
}
public function index()
{
return view('backend.reviewer.seleksi.index')->withTitle('Daftar Proposal 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 = " 1=1 AND (NIDN_REVIEWER_ID_1 = '".$this->rBiodata->noidentitas."' OR NIDN_REVIEWER_ID_2 = '".$this->rBiodata->noidentitas."')";
$totalRecords = DaftarProposal::select('count(1) as allcount')->whereRaw($statementGlobal)->count();
$statement = " AND (UPPER(JUDUL) LIKE '%".$searchValue."%') ";
$totalRecordswithFilter = DaftarProposal::select('count(1) as allcount')
->whereRaw($statementGlobal.$statement)->count();
// Fetch records
$records = DaftarProposal::orderBy($columnName,$columnSortOrder)
->whereRaw($statementGlobal.$statement)
->select('daftar_proposal.*')
->skip($start)
->take($rowperpage)
->get();
$data_arr = array();
foreach($records as $record){
$proposal_id = $record->proposal_id;
$jenis_id = $record->jenis_id;
$kode = $record->kode;
$jenis_pkm = $record->jenis_pkm;
$judul = $record->judul;
$nilai_1= $record->nilai_1;
$nilai_2 = $record->nilai_2;
$url = "https://statik.unesa.ac.id/simpkm/proposal/".$record->periode."/".$record->upload_dokumen;
$urut = DB::select("select ambil_data_reviewer_proposal('".$this->rBiodata->noidentitas."', '".$proposal_id."', '1')")[0]->ambil_data_reviewer_proposal;
$status_nilai = DB::select("select ambil_data_reviewer_proposal('".$this->rBiodata->noidentitas."', '".$proposal_id."', '2')")[0]->ambil_data_reviewer_proposal;
$status_administrasi = DB::select("select ambil_data_reviewer_proposal('".$this->rBiodata->noidentitas."', '".$proposal_id."', '3')")[0]->ambil_data_reviewer_proposal;
$proposal = '<a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"><i class="fas fa-search"></i></a>';
if($status_nilai > 0 ||$status_administrasi == '2')
$status = '<span class="badge bg-success">Sudah dinilai</span>';
else
$status = '<span class="badge bg-danger">Belum dinilai</span>';
$aksi = '';
if($status_administrasi == '1')
$administrasi = '<span class="badge bg-success">Lolos</span>';
elseif($status_administrasi == '2')
$administrasi = '<span class="badge bg-danger">Tidak Lolos</span>';
else
{
$lolos = "confirmFinal('".Crypt::encrypt($proposal_id)."', '1')";
$tidak_lolos = "confirmFinal('".Crypt::encrypt($proposal_id)."', '2')";
$administrasi = '<td class="table-action">
<a href="#!" class="btn btn-icon-sm btn-success btn-sm" onclick="'.$lolos.'">Lolos ?</a>
<a href="#!" class="btn btn-icon-sm btn-danger btn-sm" onclick="'.$tidak_lolos.'">Tidak ?</a>
</td>';
}
$nilai = URL::to("reviewer/seleksi-internal/".Crypt::encrypt($proposal_id)."/edit");
if($status_administrasi != 0)
{
if($status_nilai > 0)
{
if($urut == '1')
$aksi = '<h4>'.$nilai_1.'</h4>';
elseif($urut == '2')
$aksi = '<h4>'.$nilai_2.'</h5>';
}
else
{
if($status_administrasi == '2')
$aksi = '<h4>'.$nilai_2.'</h5>';
else
$aksi = '<a href="'.$nilai.'" class="btn btn-icon-sm btn-warning btn-sm">Beri nilai<i class="fas fa-arrow-alt-circle-right"></i></a>';
}
}
else
$aksi = '<span class="badge bg-info">Administrasi belum dipilih</span>';
$data_arr[] = array(
"proposal_id" => $proposal_id,
"kode" => $kode,
"jenis_pkm" => $jenis_pkm,
"judul" => $judul,
"status" => $status,
"proposal" => $proposal,
"administrasi" => $administrasi,
"aksi" => $aksi
);
}
$response = array(
"draw" => intval($draw),
"iTotalRecords" => $totalRecords,
"iTotalDisplayRecords" => $totalRecordswithFilter,
"aaData" => $data_arr
);
echo json_encode($response);
exit;
}
public function create()
{
}
public function store(Request $request)
{
$id = $request->input('reviewer_proposal_id');
$data['komentar'] = $request->input('komentar');
$reviewer_proposal = ReviewerProposal::findOrFail($id);
$reviewer_proposal->update($data);
$delete = ReviewerProposalDetil::where('reviewer_proposal_id', $id)->delete($id);
for($i=0; $i<count($request->jenis_penilaian_id); $i++)
{
$uuid = Uuid::generate();
$data['reviewer_proposal_detil_id'] = $uuid;
$data['reviewer_proposal_id'] = $id;
$data['jenis_penilaian_monev_id'] = $request->jenis_penilaian_id[$i];
$data['skor'] = $request->skor[$i];
ReviewerProposalDetil::create($data);
}
Alert::success('Data berhasil disimpan.')->persistent('Ok');
return redirect()->route('reviewer.seleksi-internal.index');
}
public function show($id)
{
}
public function edit($id)
{
$urut = DB::select("select ambil_data_reviewer_proposal('".$this->rBiodata->noidentitas."', '".decrypt($id)."', '1')")[0]->ambil_data_reviewer_proposal;
$title = 'Penilaian Proposal Seleksi Internal';
$proposal = DaftarProposal::where('proposal_id', decrypt($id))->first();
$reviewer_proposal = ReviewerProposal::with('rReviewerProposalDetil')->where('proposal_id', decrypt($id))->where('urut', $urut)->first();
$komponen = JenisPenilaianMonev::where('jenis_id', $proposal->jenis_id)->get();
$detil = array();
foreach($reviewer_proposal->rReviewerProposalDetil as $res => $val)
{
$detil[$val->jenis_penilaian_monev_id] = $val->skor;
}
$data = [
'title' => $title,
'proposal' => $proposal,
'komponen' => $komponen,
'reviewer_proposal' => $reviewer_proposal,
'detil' => $detil
];
return view('backend.reviewer.seleksi.nilai', $data);
}
public function update(Request $request, $id)
{
}
public function destroy($id)
{
}
public function approval($id, $status)
{
try {
$urut = DB::select("select ambil_data_reviewer_proposal('".$this->rBiodata->noidentitas."', '".decrypt($id)."', '1')")[0]->ambil_data_reviewer_proposal;
$delete = ReviewerProposal::where('proposal_id', Crypt::decrypt($id))->where('urut', $urut)->update(['status_administrasi'=>$status]);
if ($delete) {
if($status == '1')
{
$status = 'success';
$message = "Proposal Seleksi Internal Lolos Administrasi.";
}
elseif($status == '2')
{
$status = 'success';
$message = "Proposal Seleksi Internal Tidak Lolos Administrasi.";
}
}
else{
$status = 'error';
$message = "Proposal Seleksi Internal tidak ada.";
}
return response()->json([
'status' => $status,
'message' => $message,
]);
} catch (\Exception $id) {
return response()->json([
'status' => 'error',
'message' => "Data gagal diproses.",
]);
}
}
}
...@@ -7,10 +7,10 @@ use Illuminate\Database\Eloquent\Model; ...@@ -7,10 +7,10 @@ use Illuminate\Database\Eloquent\Model;
class DaftarProposal extends Model class DaftarProposal extends Model
{ {
protected $table = 'daftar_proposal'; protected $table = 'daftar_proposal';
protected $primaryKey = 'reviewer_proposal_id'; protected $primaryKey = 'proposal_id';
public $incrementing = false; public $incrementing = false;
protected $fillable = [ protected $fillable = [
'proposal_id', 'reviewer_proposal_id', 'jenis_id', 'kode', 'jenis_pkm', 'judul', 'status', 'status_administrasi_1', 'status_administrasi_2', 'nilai_1', 'nilai_2', 'reviewer_id_1', 'reviewer_id_2', 'status_final' 'proposal_id', 'jenis_id', 'kode', 'jenis_pkm', 'judul', 'status', 'status_hapus', 'status_administrasi_1', 'status_administrasi_2', 'nilai_1', 'nilai_2', 'reviewer_id_1', 'reviewer_id_2', 'status_final', 'nidn_reviewer_id_1', 'nidn_reviewer_id_2', 'upload_dokumen', 'date_upload', 'date_approval', 'identitas_ketua', 'identitas_dospem', 'periode'
]; ];
} }
...@@ -11,6 +11,6 @@ class DaftarProposalBelmawa extends Model ...@@ -11,6 +11,6 @@ class DaftarProposalBelmawa extends Model
public $incrementing = false; public $incrementing = false;
protected $fillable = [ protected $fillable = [
'seleksi_belmawa_id', 'kode_kelompok', 'jenis_pkm', 'judul_proposal', 'nama_dosen', 'upload_dokumen', 'status', 'status_desc' 'seleksi_belmawa_id', 'kode_kelompok', 'jenis_pkm', 'judul_proposal', 'nama_dosen', 'upload_dokumen', 'status', 'status_desc', 'periode'
]; ];
} }
...@@ -12,11 +12,11 @@ class ReviewerMonev extends Model ...@@ -12,11 +12,11 @@ class ReviewerMonev extends Model
protected $keyType = 'string'; protected $keyType = 'string';
protected $fillable = [ protected $fillable = [
'reviewer_monev_id', 'jenis_monev_id', 'proposal_id', 'reviewer_id', 'status_administrasi', 'komentar', 'urut', 'created_user', 'updated_user' 'reviewer_monev_id', 'monev_internal_id', 'reviewer_id', 'status_administrasi', 'komentar', 'urut', 'created_user', 'updated_user'
]; ];
public function rReviewerProposalDetil() public function rReviewerDetil()
{ {
return $this->hasMany(\App\Models\ReviewerProposalDetil::class, 'reviewer_monev_id', 'reviewer_monev_id'); return $this->hasMany(\App\Models\ReviewerMonevDetil::class, 'reviewer_monev_id', 'reviewer_monev_id');
} }
} }
...@@ -32,21 +32,8 @@ trait LoginTrait ...@@ -32,21 +32,8 @@ trait LoginTrait
{ {
$user = $this->userRepo->find(null, $nip, null); $user = $this->userRepo->find(null, $nip, null);
$ada_data = ModelHasRoles::where([
['model_id', '=', $user->id]
])->count();
if ($ada_data == 0)
{
$data_role['role_id'] = '2619bc99-0027-4997-9510-d4736bd26862';
$data_role['model_type'] = 'App\Models\User';
$data_role['model_id'] = $user->id;
ModelHasRoles::create($data_role);
}
if ($user) { if ($user) {
$this->createRole($user->id);
return 'sudah ada'; return 'sudah ada';
} else { } else {
return $this->getAddReviewer($nip); return $this->getAddReviewer($nip);
...@@ -67,7 +54,44 @@ trait LoginTrait ...@@ -67,7 +54,44 @@ trait LoginTrait
$roles = $this->roleRepo->roles('reviewer'); $roles = $this->roleRepo->roles('reviewer');
$this->userDetailRepo->storeSso($user->id, $biodata); $this->userDetailRepo->storeSso($user->id, $biodata);
$this->roleRepo->store($user, $roles); $this->roleRepo->store($user, $roles);
$this->createRole($user->id);
return 'sukses';
}
private function createRole($reqId)
{
// CEK APAKAH ADA ROLE SEBAGAI REVIEWER
$ada_data = ModelHasRoles::where([
['model_id', '=', $reqId?:''],
['role_id', '=', '2619bc99-0027-4997-9510-d4736bd26862']
])->count();
if ($ada_data == 0)
{
$data_role['role_id'] = '2619bc99-0027-4997-9510-d4736bd26862';
$data_role['model_type'] = 'App\Models\User';
$data_role['model_id'] = $reqId;
ModelHasRoles::create($data_role);
}
// CEK APAKAH ADA ROLE SEBAGAI DOSEN
$ada_data_reviewer = ModelHasRoles::where([
['model_id', '=', $reqId],
['role_id', '=', 'a48826dd-ad41-406d-a1db-2a5e94a78bb8']
])->count();
if ($ada_data_reviewer == 0)
{
$data_role['role_id'] = 'a48826dd-ad41-406d-a1db-2a5e94a78bb8';
$data_role['model_type'] = 'App\Models\User';
$data_role['model_id'] = $reqId;
ModelHasRoles::create($data_role);
}
return 'sukses'; return 'sukses';
} }
} }
...@@ -87,14 +87,16 @@ ...@@ -87,14 +87,16 @@
if(reqStatus == '1') if(reqStatus == '1')
{ {
var kata = "Lolos seleksi!"; var kata = "Lolos seleksi!";
var desc = "meloloskan";
} }
else else
{ {
var kata = "Tidak Lolos seleksi!"; var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
} }
Swal.fire({ Swal.fire({
title: "Apakah Anda Yakin?", title: "Apakah Anda Yakin?",
text: "Anda akan meloloskan data ini!", text: "Anda akan "+desc+" data ini!",
icon: "warning", icon: "warning",
showCancelButton: !0, showCancelButton: !0,
confirmButtonText: "Ya, "+ kata, confirmButtonText: "Ya, "+ kata,
......
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
"url" : "{{route('operator.getDaftarProposal')}}" "url" : "{{route('operator.getDaftarProposal')}}"
}, },
columns: [ columns: [
{ data: 'reviewer_proposal_id' }, { data: 'proposal_id' },
{ data: 'kode' }, { data: 'kode' },
{ data: 'jenis_pkm' }, { data: 'jenis_pkm' },
{ data: 'judul' }, { data: 'judul' },
...@@ -170,14 +170,16 @@ ...@@ -170,14 +170,16 @@
if(reqStatus == '1') if(reqStatus == '1')
{ {
var kata = "Lolos seleksi!"; var kata = "Lolos seleksi!";
var desc = "meloloskan";
} }
else else
{ {
var kata = "Tidak Lolos seleksi!"; var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
} }
Swal.fire({ Swal.fire({
title: "Apakah Anda Yakin?", title: "Apakah Anda Yakin?",
text: "Anda akan meloloskan data ini!", text: "Anda akan "+desc+" data ini!",
icon: "warning", icon: "warning",
showCancelButton: !0, showCancelButton: !0,
confirmButtonText: "Ya, "+ kata, confirmButtonText: "Ya, "+ kata,
......
...@@ -140,7 +140,6 @@ ...@@ -140,7 +140,6 @@
data:{ data:{
"_token": "{{ csrf_token() }}", "_token": "{{ csrf_token() }}",
"reqId" : response.id, "reqId" : response.id,
"jenisMonevId" : "{{ $reqId }}",
"urut": urut, "urut": urut,
"data": isi, "data": isi,
}, },
...@@ -180,14 +179,16 @@ ...@@ -180,14 +179,16 @@
if(reqStatus == '1') if(reqStatus == '1')
{ {
var kata = "Lolos seleksi!"; var kata = "Lolos seleksi!";
var desc = "meloloskan";
} }
else else
{ {
var kata = "Tidak Lolos seleksi!"; var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
} }
Swal.fire({ Swal.fire({
title: "Apakah Anda Yakin?", title: "Apakah Anda Yakin?",
text: "Anda akan meloloskan data ini!", text: "Anda akan "+desc+" data ini!",
icon: "warning", icon: "warning",
showCancelButton: !0, showCancelButton: !0,
confirmButtonText: "Ya, "+ kata, confirmButtonText: "Ya, "+ kata,
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
<div class="col-md-8"> <div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6> <h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0"> <ol class="breadcrumb m-0">
<li class="breadcrumb-item">Dosen</li>
<li class="breadcrumb-item">{!! $title !!}</li> <li class="breadcrumb-item">{!! $title !!}</li>
</ol> </ol>
</div> </div>
......
@extends('layouts.master')
@section('title')
Dashboard
@endsection
@section('header')
<div class="page-title">
<h3>Dashboard</h3>
</div>
@endsection
@php
$jadwal = $data['jadwal'];
@endphp
@section('contents')
<!-- start page title -->
<div class="page-title-box">
<div class="row align-items-center">
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Monev Internal</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
@if((($jadwal->tanggal_mulai <= Carbon\Carbon::now()) && ($jadwal->tanggal_selesai >= Carbon\Carbon::now())) || $jadwal->tanggal_mulai <= Carbon\Carbon::now())
<table id="example" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>id</th>
<th>Kode Kelompok</th>
<th>Identitas Ketua</th>
<th>Identitas <br>Dosen Pembimbing</th>
<th>Jenis <br>PKM</th>
<th>Judul Proposal</th>
<th>Catatan Harian <br>(Logbook)</th>
<th>Laporan <br>Kemajuan</th>
<th>Laporan <br>Luaran</th>
<th>Nilai</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
@else
<div class="alert alert-success alert-dismissible fade show" role="alert">
<strong>Informasi!</strong> {!! $title !!} dilaksanakan pada : <strong>Tanggal {{ Carbon\Carbon::parse($jadwal->tanggal_mulai)->isoFormat('D MMMM Y HH:mm:ss'); }}</strong> sampai dengan <strong>Tanggal {{ Carbon\Carbon::parse($jadwal->tanggal_selesai)->isoFormat('D MMMM Y HH:mm:ss'); }}.</strong>
</div>
@endif
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script>
$(document).ready(function(){
// DataTable
var oTable = $('#example').DataTable({
processing: true,
serverSide: true,
ajax: {
"url" : "{{route('reviewer.getDaftarMonev')}}"
},
columns: [
{ data: 'monev_internal_id' },
{ data: 'kode' },
{ data: 'identitas_ketua' },
{ data: 'identitas_dospem' },
{ data: 'jenis_pkm' },
{ data: 'judul' },
{ data: 'logbook' },
{ data: 'laporan_kemajuan' },
{ data: 'laporan_luaran' },
{ data: 'aksi' },
],
columnDefs: [
{
"targets": [ 0 ],
"visible": false,
"searchable": false
}
]
});
});
function confirmFinal(reqId, reqStatus)
{
if(reqStatus == '1')
{
var kata = "Lolos seleksi!";
var desc = "meloloskan";
}
else
{
var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
}
Swal.fire({
title: "Apakah Anda Yakin?",
text: "Anda akan "+desc+" data ini!",
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
cancelButtonText: "Tidak, Kembali!",
confirmButtonClass: "btn btn-success mt-2",
cancelButtonClass: "btn btn-danger ms-2 mt-2",
buttonsStyling: !1,
allowOutsideClick: !1,
showLoaderOnConfirm: true
}).then((result) => {
if (result.value){
$.ajax({
url:'{{url("/reviewer/seleksi-internal-approval/")}}/' +reqId+'/'+reqStatus,
type:'GET',
data:{
"_token": "{{ csrf_token() }}",
},
dataType: "JSON",
})
.done(function(response){
swal.fire('Updated!', response.message, response.status).then(function(){
location.reload();
});
})
.fail(function(){
swal.fire('Oops...', 'Something went wrong with ajax !', 'error');
});
}
else
{
swal.fire('Batal!', 'Data batal diproses.', 'error');
}
})
}
</script>
@endsection
@extends('layouts.master')
@section('title')
Dashboard
@endsection
@section('header')
<div class="page-title">
<h3>Dashboard</h3>
</div>
@endsection
@section('contents')
<!-- start page title -->
<div class="page-title-box">
<div class="row align-items-center">
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Monev Internal</li>
<li class="breadcrumb-item">Daftar {{ $title }}</li>
<li class="breadcrumb-item">Penilaian {{ $title }}</li>
</ol>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
{{ Form::open(['url' => route('reviewer.monev-internal.store'), 'method' => 'post', 'id' => 'proposal', 'files' => 'true', 'enctype'=>'multipart/form-data']) }}
@csrf
<h4 class="card-title">{!! $title !!}</h4>
<p class="card-title-desc"></p>
<div class="row mb-3">
<label for="kode" class="col-sm-2 col-form-label">Judul</label>
<div class="col-sm-10">
<span>{{ $monev ? $monev->judul : '' }}</span>
</div>
</div>
<div class=" row mb-3">
<label class="col-sm-2 col-form-label">Jenis PKM</label>
<div class="col-sm-10">
<span>{{ $monev ? $monev->jenis_pkm : '' }}</span>
</div>
</div>
<div class="row mb-3">
<label for="kode" class="col-sm-2 col-form-label">Komponen Penilaian : </label>
<div class="col-sm-10">
<table class="table table-striped">
<thead>
<tr style="text-align: center">
<th style="width: 70%">Komponen</th>
<th style="width: 10%">Bobot</th>
<th style="width: 10%">Skor</th>
<th style="width: 10%">Nilai</th>
</tr>
</thead>
<tbody>
@php
$total = 0;
@endphp
@foreach ($komponen as $res => $val)
@php
if(count($detil) == 0)
$skor = '1';
else
$skor = $detil[$val->jenis_penilaian_monev_id]?:'1';
$nilai = $skor*$val->bobot?:$val->bobot;
@endphp
<tr class="table-light">
<td>
<input type="hidden" name="jenis_penilaian_id[]" value="{{ $val->jenis_penilaian_monev_id }}">
<span>{{ $val->nama }}</span>
</td>
<td><span id="varBobot-{{ $val->jenis_penilaian_monev_id }}">{{ $val->bobot }}</span></td>
<td>
<select name="skor[]" class="hitung_skor" data-id="{{ $val->jenis_penilaian_monev_id }}">
<option value="1" @if($skor == '1') selected="selected" @endif>1</option>
<option value="2" @if($skor == '2') selected="selected" @endif>2</option>
<option value="3" @if($skor == '3') selected="selected" @endif>3</option>
<option value="5" @if($skor == '5') selected="selected" @endif>5</option>
<option value="6" @if($skor == '6') selected="selected" @endif>6</option>
<option value="7" @if($skor == '7') selected="selected" @endif>7</option>
</select>
</td>
<td><span id='varNilai-{{ $val->jenis_penilaian_monev_id }}' class="clsNilai">{{ $nilai }}</span></td>
</tr>
@php
$total += $nilai;
@endphp
@endforeach
</tbody>
<tfoot>
<tr>
<td colspan="3"><b>TOTAL NILAI</b></td>
<td><span id='varTotalNilai'><b>{{ $total }}</b></span></td>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="row mb-3">
<label for="kode" class="col-sm-2 col-form-label">Komentar Reviewer : </label>
<div class="col-sm-10">
<textarea name="komentar" class="form-control" rows="3">{{ $reviewer_monev->komentar?:'' }}</textarea>
</div>
</div>
<div class="mb-0">
<div>
<input name="reviewer_monev_id" type="hidden" value="{{ $reviewer_monev->reviewer_monev_id?:'' }}">
<input name="jenis_monev_id" type="hidden" value="{{ $monev->jenis_monev_id?:'' }}">
<button type="submit" class="btn btn-primary waves-effect waves-light me-1"> Submit </button>
<button type="reset" class="btn btn-secondary waves-effect"> Cancel </button>
</div>
</div>
{{ Form::close() }}
<br>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script>
$(function(){
$('#input-file').change(function(){
var input = this;
var url = window.URL.createObjectURL(this.files[0]);
$('#view-pdf').attr('src',url);
$('#view-pdf').attr('height','500px');
});
$('.hitung_skor').on('change', function() {
var id = $(this).attr("data-id");
var val = $(this).find(":checked").val();
var bobot = $('#varBobot-'+id).text();
var nilai = val * bobot;
$('#varNilai-'+id).text(nilai);
sum();
});
});
function sum(){
var sum = 0;
$('.clsNilai').each(function () {
sum += Number($(this).text());
});
$('#varTotalNilai').text(sum);
}
</script>
@endsection
@extends('layouts.master')
@section('title')
Dashboard
@endsection
@section('header')
<div class="page-title">
<h3>Dashboard</h3>
</div>
@endsection
@section('contents')
<!-- start page title -->
<div class="page-title-box">
<div class="row align-items-center">
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Seleksi Internal</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<table id="example" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>id</th>
<th>Kode Kelompok</th>
<th>Jenis PKM</th>
<th>Judul Proposal</th>
<th>Status</th>
<th>Proposal</th>
<th>Administrasi</th>
<th>Nilai Subtansi Proposal</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script>
$(document).ready(function(){
// DataTable
var oTable = $('#example').DataTable({
processing: true,
serverSide: true,
ajax: {
"url" : "{{route('reviewer.getDaftarSeleksi')}}"
},
columns: [
{ data: 'proposal_id' },
{ data: 'kode' },
{ data: 'jenis_pkm' },
{ data: 'judul' },
{ data: 'status' },
{ data: 'proposal' },
{ data: 'administrasi' },
{ data: 'aksi' },
],
columnDefs: [
{
"targets": [ 0 ],
"visible": false,
"searchable": false
}
]
});
});
function confirmFinal(reqId, reqStatus)
{
if(reqStatus == '1')
{
var kata = "Lolos seleksi!";
var desc = "meloloskan";
}
else
{
var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
}
Swal.fire({
title: "Apakah Anda Yakin?",
text: "Anda akan "+desc+" data ini!",
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
cancelButtonText: "Tidak, Kembali!",
confirmButtonClass: "btn btn-success mt-2",
cancelButtonClass: "btn btn-danger ms-2 mt-2",
buttonsStyling: !1,
allowOutsideClick: !1,
showLoaderOnConfirm: true
}).then((result) => {
if (result.value){
$.ajax({
url:'{{url("/reviewer/seleksi-internal-approval/")}}/' +reqId+'/'+reqStatus,
type:'GET',
data:{
"_token": "{{ csrf_token() }}",
},
dataType: "JSON",
})
.done(function(response){
swal.fire('Updated!', response.message, response.status).then(function(){
location.reload();
});
})
.fail(function(){
swal.fire('Oops...', 'Something went wrong with ajax !', 'error');
});
}
else
{
swal.fire('Batal!', 'Data batal diproses.', 'error');
}
})
}
</script>
@endsection
@extends('layouts.master')
@section('title')
Dashboard
@endsection
@section('header')
<div class="page-title">
<h3>Dashboard</h3>
</div>
@endsection
@section('contents')
<!-- start page title -->
<div class="page-title-box">
<div class="row align-items-center">
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Seleksi Internal</li>
<li class="breadcrumb-item">Daftar Proposal Seleksi Internal</li>
<li class="breadcrumb-item">Penilaian Proposal Seleksi Internal</li>
</ol>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
{{ Form::open(['url' => route('reviewer.seleksi-internal.store'), 'method' => 'post', 'id' => 'proposal', 'files' => 'true', 'enctype'=>'multipart/form-data']) }}
@csrf
<h4 class="card-title">{!! $title !!}</h4>
<p class="card-title-desc"></p>
<div class="row mb-3">
<label for="kode" class="col-sm-2 col-form-label">Judul</label>
<div class="col-sm-10">
<span>{{ $proposal ? $proposal->judul : '' }}</span>
</div>
</div>
<div class=" row mb-3">
<label class="col-sm-2 col-form-label">Jenis PKM</label>
<div class="col-sm-10">
<span>{{ $proposal ? $proposal->jenis_pkm : '' }}</span>
</div>
</div>
<div class="row mb-3" class="dropzone">
<label for="kode" class="col-sm-2 col-form-label">Proposal</label>
<div class="col-sm-10">
@if($proposal->upload_dokumen)
<iframe id="view-pdf" width="100%" height="400px" src="https://statik.unesa.ac.id/simpkm/proposal/{{ $proposal->periode }}/{{ $proposal->upload_dokumen }}" frameborder="0"></iframe>
@else
<div class="alert alert-danger alert-dismissible fade show mb-0" role="alert">
<strong>Informasi!</strong> File tidak ditemukan.
</div>
@endif
</div>
</div>
<div class="row mb-3">
<label for="kode" class="col-sm-2 col-form-label">Komponen Penilaian : </label>
<div class="col-sm-10">
<table class="table table-striped">
<thead>
<tr style="text-align: center">
<th style="width: 70%">Komponen</th>
<th style="width: 10%">Bobot</th>
<th style="width: 10%">Skor</th>
<th style="width: 10%">Nilai</th>
</tr>
</thead>
<tbody>
@php
$total = 0;
@endphp
@foreach ($komponen as $res => $val)
@php
if(count($detil) == 0)
$skor = '1';
else
$skor = $detil[$val->jenis_penilaian_monev_id]?:'1';
$nilai = $skor*$val->bobot?:$val->bobot;
@endphp
<tr class="table-light">
<td>
<input type="hidden" name="jenis_penilaian_id[]" value="{{ $val->jenis_penilaian_monev_id }}">
<span>{{ $val->nama }}</span>
</td>
<td><span id="varBobot-{{ $val->jenis_penilaian_monev_id }}">{{ $val->bobot }}</span></td>
<td>
<select name="skor[]" class="hitung_skor" data-id="{{ $val->jenis_penilaian_monev_id }}">
<option value="1" @if($skor == '1') selected="selected" @endif>1</option>
<option value="2" @if($skor == '2') selected="selected" @endif>2</option>
<option value="3" @if($skor == '3') selected="selected" @endif>3</option>
<option value="5" @if($skor == '5') selected="selected" @endif>5</option>
<option value="6" @if($skor == '6') selected="selected" @endif>6</option>
<option value="7" @if($skor == '7') selected="selected" @endif>7</option>
</select>
</td>
<td><span id='varNilai-{{ $val->jenis_penilaian_monev_id }}' class="clsNilai">{{ $nilai }}</span></td>
</tr>
@php
$total += $nilai;
@endphp
@endforeach
</tbody>
<tfoot>
<tr>
<td colspan="3"><b>TOTAL NILAI</b></td>
<td><span id='varTotalNilai'><b>{{ $total }}</b></span></td>
</tr>
</tfoot>
</table>
</div>
</div>
<div class="row mb-3">
<label for="kode" class="col-sm-2 col-form-label">Komentar Reviewer : </label>
<div class="col-sm-10">
<textarea name="komentar" class="form-control" rows="3">{{ $reviewer_proposal->komentar?:'' }}</textarea>
</div>
</div>
<div class="mb-0">
<div>
<input name="reviewer_proposal_id" type="hidden" value="{{ $reviewer_proposal->reviewer_proposal_id?:'' }}">
<button type="submit" class="btn btn-primary waves-effect waves-light me-1"> Submit </button>
<button type="reset" class="btn btn-secondary waves-effect"> Cancel </button>
</div>
</div>
{{ Form::close() }}
<br>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script>
$(function(){
$('#input-file').change(function(){
var input = this;
var url = window.URL.createObjectURL(this.files[0]);
$('#view-pdf').attr('src',url);
$('#view-pdf').attr('height','500px');
});
$('.hitung_skor').on('change', function() {
var id = $(this).attr("data-id");
var val = $(this).find(":checked").val();
var bobot = $('#varBobot-'+id).text();
var nilai = val * bobot;
$('#varNilai-'+id).text(nilai);
sum();
});
});
function sum(){
var sum = 0;
$('.clsNilai').each(function () {
sum += Number($(this).text());
});
$('#varTotalNilai').text(sum);
}
</script>
@endsection
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<script src="{{ asset('theme/libs/datatables.net-responsive/js/dataTables.responsive.min.js') }}"></script> <script src="{{ asset('theme/libs/datatables.net-responsive/js/dataTables.responsive.min.js') }}"></script>
<script src="{{ asset('theme/libs/datatables.net-responsive-bs4/js/responsive.bootstrap4.min.js') }}"></script> <script src="{{ asset('theme/libs/datatables.net-responsive-bs4/js/responsive.bootstrap4.min.js') }}"></script>
<script src="{{ asset('theme/js/pages/form-advanced.init.js') }}"></script> {{-- <script src="{{ asset('theme/js/pages/form-advanced.init.js') }}"></script> --}}
{{-- <script src="{{ asset('theme/js/sweetalert.min.js') }}"></script> --}} {{-- <script src="{{ asset('theme/js/sweetalert.min.js') }}"></script> --}}
<script src="{{ asset('theme/libs/sweetalert2/sweetalert2.min.js') }}"></script> <script src="{{ asset('theme/libs/sweetalert2/sweetalert2.min.js') }}"></script>
......
...@@ -161,14 +161,14 @@ ...@@ -161,14 +161,14 @@
<a href="{{ URL::to('/reviewer/seleksi-internal') }}" class="waves-effect"><i class="ti-check"></i><span>Seleksi Internal</span></a> <a href="{{ URL::to('/reviewer/seleksi-internal') }}" class="waves-effect"><i class="ti-check"></i><span>Seleksi Internal</span></a>
</li> </li>
<li> <li>
<a href="javascript: void(0);" class="has-arrow waves-effect"> <a href="javascript: void(0);" class="has-arrow waves-effect {{ (request()->is('reviewer/monev-internal*')) ? 'mm-active' : '' }}">
<i class="ti-layers-alt"></i> <i class="ti-layers-alt"></i>
<span>Monev Internal</span> <span>Monev Internal</span>
</a> </a>
<ul class="sub-menu" aria-expanded="false"> <ul class="sub-menu" aria-expanded="false">
<li><a href="{{ URL::to('/reviewer/monev/I') }}">Monev Internal I</a></li> <li><a href="{{ URL::to('/reviewer/monev-internal/'.Crypt::encrypt('07cda89b-94ca-42a3-a197-8fc1260ebcfb')) }}">Monev Internal I</a></li>
<li><a href="{{ URL::to('/reviewer/monev/II') }}">Monev Internal II</a></li> <li><a href="{{ URL::to('/reviewer/monev-internal/'.Crypt::encrypt('21a49a70-33bb-49f1-9fd9-ebe52fa4336c')) }}">Monev Internal II</a></li>
<li><a href="{{ URL::to('/reviewer/monev/III') }}">Monev Internal III</a></li> <li><a href="{{ URL::to('/reviewer/monev-internal/'.Crypt::encrypt('068aa53d-91a0-4704-b72c-54757799a286')) }}">Monev Internal III</a></li>
</ul> </ul>
</li> </li>
@endif @endif
......
...@@ -4,30 +4,34 @@ use Illuminate\Support\Facades\Route; ...@@ -4,30 +4,34 @@ use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DashboardController; use App\Http\Controllers\DashboardController;
use App\Http\Controllers\Operator\JenisController;
use App\Http\Controllers\Operator\UserController; use App\Http\Controllers\Operator\UserController;
use App\Http\Controllers\Operator\JenisController;
use App\Http\Controllers\Operator\SelectController; use App\Http\Controllers\Operator\SelectController;
use App\Http\Controllers\Mahasiswa\AnggotaController; use App\Http\Controllers\Mahasiswa\AnggotaController;
use App\Http\Controllers\Operator\KelompokController;
use App\Http\Controllers\Operator\ProposalController;
use App\Http\Controllers\Operator\ReviewerController; use App\Http\Controllers\Operator\ReviewerController;
use App\Http\Controllers\Authentication\LoginController; use App\Http\Controllers\Authentication\LoginController;
use App\Http\Controllers\Reviewer\DaftarMonevController;
use App\Http\Controllers\Operator\MonevProposalController; use App\Http\Controllers\Operator\MonevProposalController;
use App\Http\Controllers\Operator\ReviewerMonevController; use App\Http\Controllers\Operator\ReviewerMonevController;
use App\Http\Controllers\Mahasiswa\ProposalController as MahasiswaProposal; use App\Http\Controllers\Reviewer\DaftarSeleksiController;
use App\Http\Controllers\Mahasiswa\BiodataController as BiodataMahasiswa;
use App\Http\Controllers\Mahasiswa\SeleksiController as SeleksiMahasiswa;
use App\Http\Controllers\Mahasiswa\MonevController as MonevMahasiswa;
use App\Http\Controllers\Mahasiswa\LuaranController as LuaranMahasiswa;
use App\Http\Controllers\Operator\DaftarProposalController; use App\Http\Controllers\Operator\DaftarProposalController;
use App\Http\Controllers\Operator\JadwalKegiatanController; use App\Http\Controllers\Operator\JadwalKegiatanController;
use App\Http\Controllers\Dosen\MonevController as DosenMonev; use App\Http\Controllers\Dosen\MonevController as DosenMonev;
use App\Http\Controllers\Operator\JenisPenilaianMonevController; use App\Http\Controllers\Operator\JenisPenilaianMonevController;
use App\Http\Controllers\Dosen\BiodataController as DosenBiodata; use App\Http\Controllers\Dosen\BiodataController as DosenBiodata;
use App\Http\Controllers\Dosen\SeleksiController as DosenSeleksi; use App\Http\Controllers\Dosen\SeleksiController as DosenSeleksi;
use App\Http\Controllers\Dosen\KelompokController as DosenKelompok; use App\Http\Controllers\Dosen\KelompokController as DosenKelompok;
use App\Http\Controllers\Dosen\ProposalController as DosenProposal; use App\Http\Controllers\Dosen\ProposalController as DosenProposal;
use App\Http\Controllers\Mahasiswa\MonevController as MonevMahasiswa;
use App\Http\Controllers\Mahasiswa\LuaranController as LuaranMahasiswa;
use App\Http\Controllers\Mahasiswa\BiodataController as BiodataMahasiswa;
use App\Http\Controllers\Mahasiswa\SeleksiController as SeleksiMahasiswa;
use App\Http\Controllers\Mahasiswa\KelompokController as MahasiswaKelompok; use App\Http\Controllers\Mahasiswa\KelompokController as MahasiswaKelompok;
use App\Http\Controllers\Mahasiswa\ProposalController as MahasiswaProposal;
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
...@@ -131,7 +135,15 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () { ...@@ -131,7 +135,15 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('/luaran-dosen/{id}', [luaranMahasiswa::class, 'dosen'])->name('luaran-dosen'); Route::get('/luaran-dosen/{id}', [luaranMahasiswa::class, 'dosen'])->name('luaran-dosen');
}); });
Route::name('operator.')->prefix('operator')->middleware(['role:operator|dosen|tendik'])->group(function () { Route::name('operator.')->prefix('operator')->middleware(['role:operator'])->group(function () {
Route::resource('kelompok', KelompokController::class);
Route::get('getKelompok', [KelompokController::class, 'getData'])->name('getKelompok');
Route::get('getDetilKelompok', [KelompokController::class, 'getDetil'])->name('getDetilKelompok');
Route::resource('proposal', ProposalController::class);
Route::get('getProposal', [ProposalController::class, 'getData'])->name('getProposal');
Route::get('getDetilProposal', [ProposalController::class, 'getDetil'])->name('getDetilProposal');
Route::resource('jenis', JenisController::class); Route::resource('jenis', JenisController::class);
Route::get('getJenis', [JenisController::class, 'getData'])->name('getJenis'); Route::get('getJenis', [JenisController::class, 'getData'])->name('getJenis');
...@@ -147,6 +159,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () { ...@@ -147,6 +159,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('getReviewer', [ReviewerController::class, 'getData'])->name('getReviewer'); Route::get('getReviewer', [ReviewerController::class, 'getData'])->name('getReviewer');
Route::get('getDosen', [ReviewerController::class, 'getDosen'])->name('getDosen'); Route::get('getDosen', [ReviewerController::class, 'getDosen'])->name('getDosen');
Route::resource('seleksi_internal_reviewer', ReviewerController::class);
Route::resource('seleksi-internal-proposal', DaftarProposalController::class); Route::resource('seleksi-internal-proposal', DaftarProposalController::class);
Route::get('/seleksi-internal-reviewer-approval/{id}/{status}', [DaftarProposalController::class, 'approval'])->name('seleksi-internal.approval'); Route::get('/seleksi-internal-reviewer-approval/{id}/{status}', [DaftarProposalController::class, 'approval'])->name('seleksi-internal.approval');
Route::get('getDaftarProposal', [DaftarProposalController::class, 'getData'])->name('getDaftarProposal'); Route::get('getDaftarProposal', [DaftarProposalController::class, 'getData'])->name('getDaftarProposal');
...@@ -172,6 +185,16 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () { ...@@ -172,6 +185,16 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::post('/user/remove-role', [UserController::class, 'removeRole'])->name('remove-role'); Route::post('/user/remove-role', [UserController::class, 'removeRole'])->name('remove-role');
Route::post('/user/add-role', [UserController::class, 'addRole'])->name('add-role'); Route::post('/user/add-role', [UserController::class, 'addRole'])->name('add-role');
}); });
Route::name('reviewer.')->prefix('reviewer')->middleware(['role:reviewer|operator|dosen|tendik'])->group(function () {
Route::resource('seleksi-internal', DaftarSeleksiController::class);
Route::get('/seleksi-internal-approval/{id}/{status}', [DaftarSeleksiController::class, 'approval'])->name('seleksi-internal.approval');
Route::get('getDaftarSeleksi', [DaftarSeleksiController::class, 'getData'])->name('getDaftarSeleksi');
Route::get('monev-internal/{id}', [DaftarMonevController::class, 'index'])->name('monev-internal');
Route::resource('monev-internal', DaftarMonevController::class)->except(['index']);
Route::get('getDaftarMonev', [DaftarMonevController::class, 'getData'])->name('getDaftarMonev');
});
}); });
//Auth::routes(); //Auth::routes();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment