Commit bb453243 by Farendi Giotivano R.P

mau pull malah suruh merge fix

parents bf6f15ff ee952692
......@@ -67,7 +67,6 @@ class DaftarProposalController extends Controller
$data_arr = array();
foreach($records as $record){
$proposal_id = $record->proposal_id;
$reviewer_proposal_id = $record->reviewer_proposal_id;
$jenis_id = $record->jenis_id;
$kode = $record->kode;
$jenis_pkm = $record->jenis_pkm;
......@@ -110,12 +109,12 @@ class DaftarProposalController extends Controller
$disable_1 = $disable_2 = '';
if($nilai_1 > '0')
if($nilai_1 > '0' || $status_administrasi_1 == '2')
{
$disable_1 = "disabled='true'";
}
if($nilai_2 > '0')
if($nilai_2 > '0' || $status_administrasi_2 == '2')
{
$disable_2 = "disabled='true'";
}
......@@ -149,7 +148,7 @@ class DaftarProposalController extends Controller
}
$data_arr[] = array(
"reviewer_proposal_id" => $reviewer_proposal_id,
"proposal_id" => $proposal_id,
"kode" => $kode,
"jenis_pkm" => $jenis_pkm,
"judul" => $judul,
......@@ -226,6 +225,15 @@ class DaftarProposalController extends Controller
$lolos = "confirmFinal('".Crypt::encrypt($seleksi_belmawa_id)."', '1')";
$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')
{
$aksi = '<span class="badge bg-success">Lolos</span>';
......@@ -236,11 +244,18 @@ class DaftarProposalController extends Controller
}
else
{
if($upload_dokumen == '' || $upload_dokumen == null)
{
$aksi = '<span class="badge bg-warning">Dokumen belum diunggah.</span>';
}
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(
"seleksi_belmawa_id" => $seleksi_belmawa_id,
......@@ -248,7 +263,7 @@ class DaftarProposalController extends Controller
"jenis_pkm" => $jenis_pkm,
"judul" => $judul,
"nama_dosen" => $nama_dosen,
"upload_dokumen" => $upload_dokumen,
"upload_dokumen" => $proposal,
"aksi" => $aksi
);
}
......@@ -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)
{
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
if($value->reviewer_id == $reviewer_id_2)
$selected2 = 'selected';
$opt1 .= '<option value="'.Crypt::encrypt($proposal_id.'###'.$value->reviewer_id).'" '.$selected1.'>'.$value->nama.'</option>';
$opt2 .= '<option value="'.Crypt::encrypt($proposal_id.'###'.$value->reviewer_id).'" '.$selected2.'>'.$value->nama.'</option>';
$opt1 .= '<option value="'.Crypt::encrypt($monev_internal_id.'###'.$value->reviewer_id).'" '.$selected1.'>'.$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')";
$tidak_lolos = "confirmFinal('".Crypt::encrypt($proposal_id)."', '2')";
$lolos = "confirmFinal('".Crypt::encrypt($monev_internal_id)."', '1')";
$tidak_lolos = "confirmFinal('".Crypt::encrypt($monev_internal_id)."', '2')";
$disable_1 = $disable_2 = '';
......@@ -190,10 +190,9 @@ class MonevProposalController extends Controller
$uuid = Uuid::generate();
$reqUrut = $request->input('urut');
$isi = Crypt::decrypt($request->input('data'));
$reqJenisMonevId = Crypt::decrypt($request->input('jenisMonevId'));
$arrData = explode('###', $isi);
$reqProposalId = $arrData[0]?:'';
$reqMonevInternalId = $arrData[0]?:'';
$reqReviewerId = $arrData[1]?:'';
......@@ -211,8 +210,7 @@ class MonevProposalController extends Controller
if ($delete == 1) {
// ketika sudah di delete kemudian data yang baru di insert
$data['reviewer_monev_id'] = $uuid;
$data['jenis_monev_id'] = $reqJenisMonevId;
$data['proposal_id'] = $reqProposalId;
$data['monev_internal_id'] = $reqMonevInternalId;
$data['reviewer_id'] = $reqReviewerId;
$data['urut'] = $reqUrut;
// BACKUP NVN
......@@ -237,8 +235,7 @@ class MonevProposalController extends Controller
$ada_data = ReviewerMonev::where([
['proposal_id', '=', $reqProposalId],
['jenis_monev_id', '=', $reqJenisMonevId],
['monev_internal_id', '=', $reqMonevInternalId],
['reviewer_id', '=', $reqReviewerId],
['urut', '!=', $reqUrut],
])->count();
......@@ -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([
['proposal_id', '=', $reqProposalId],
['jenis_monev_id', '=', $reqJenisMonevId],
['monev_internal_id', '=', $reqMonevInternalId],
['urut', '=', $reqUrut],
['status_hapus', '=', '0'],
])->first();
......@@ -269,16 +265,14 @@ class MonevProposalController extends Controller
$data['reviewer_monev_id'] = $uuid;
$data['proposal_id'] = $reqProposalId;
$data['jenis_monev_id'] = $reqJenisMonevId;
$data['monev_internal_id'] = $reqMonevInternalId;
$data['urut'] = $reqUrut;
$data['reviewer_id'] = $reqReviewerId;
// BACKUP NVN
// $data['created_user'] = Auth::user()->name;
$reviewer_monev = ReviewerMonev::updateOrCreate([
'jenis_monev_id' => $reqJenisMonevId,
'proposal_id' => $reqProposalId,
'monev_internal_id' => $reqMonevInternalId,
'urut' => $reqUrut
], $data);
......@@ -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)
{
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
$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")
->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)
->take($rowperpage)
->get();
......@@ -196,14 +196,45 @@ class ReviewerController extends Controller
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',
['form_params' => [
'kondisi' => 'dosen_aktif'
],
'http_errors' => false]);
$result = [];
$i = 0;
foreach ($data['data'] as $key => $value) {
$jenjang = substr($value['namasatker'],-2);
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
$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")
->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)
->take($rowperpage)
->get();
......@@ -204,14 +204,39 @@ class ReviewerMonevController extends Controller
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',
['form_params' => [
'kondisi' => 'dosen_aktif'
],
'http_errors' => false]);
$result = [];
$i = 0;
foreach ($data['data'] as $key => $value) {
$jenjang = substr($value['namasatker'],-2);
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 GuzzleHttp\Client;
use App\Models\Periode;
use App\Models\Reviewer;
use App\Models\JenisMonev;
use Illuminate\Http\Request;
use App\Models\ReviewerMonev;
use App\Models\JadwalKegiatan;
use Illuminate\Support\Carbon;
use App\Models\ReviewerProposal;
use App\Models\ReviewerMonevDetil;
use App\Models\DaftarProposalMonev;
use App\Models\JenisPenilaianMonev;
use App\Http\Controllers\Controller;
use App\Models\ReviewerProposalDetil;
class DaftarMonevController 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($id)
{
$jenis_monev = JenisMonev::select('nama')->where('jenis_monev_id', Crypt::decrypt($id))->first();
$jadwal = JadwalKegiatan::where('periode_id', DaftarMonevController::periode_id)->where('nama',$jenis_monev->nama)->first();
$data = [
'id'=> $id,
'jadwal'=> $jadwal,
];
return view('backend.reviewer.monev.index', compact('data'))->withTitle($jenis_monev->nama);
}
/* 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 = DaftarProposalMonev::select('count(1) as allcount')->whereRaw($statementGlobal)->count();
$statement = " AND (UPPER(JUDUL) LIKE '%".$searchValue."%') ";
$totalRecordswithFilter = DaftarProposalMonev::select('count(1) as allcount')
->whereRaw($statementGlobal.$statement)->count();
// Fetch records
$records = DaftarProposalMonev::orderBy($columnName,$columnSortOrder)
->whereRaw($statementGlobal.$statement)
->select('*')
->skip($start)
->take($rowperpage)
->get();
$data_arr = array();
foreach($records as $record){
$monev_internal_id = $record->monev_internal_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;
$identitas_ketua = str_replace('###', '<br>', $record->identitas_ketua);
$identitas_dospem = str_replace('###', '<br>', $record->identitas_dospem);
$logbook = '<a href="#" class="btn btn-primary btn-sm waves-effect waves-light" role="button">Review <i class="fas fa-search"></i></a>';
$laporan_kemajuan = '<a href="#" class="btn btn-primary btn-sm waves-effect waves-light" role="button">Review <i class="fas fa-search"></i></a>';
$laporan_luaran = '<a href="#" class="btn btn-primary btn-sm waves-effect waves-light" role="button">Review <i class="fas fa-search"></i></a>';
$url = "https://statik.unesa.ac.id/simpkm/proposal/".$record->periode."/".$record->upload_dokumen;
$urut = DB::select("select ambil_data_reviewer_monev('".$this->rBiodata->noidentitas."', '".$monev_internal_id."', '1')")[0]->ambil_data_reviewer_monev;
$status_nilai = DB::select("select ambil_data_reviewer_monev('".$this->rBiodata->noidentitas."', '".$monev_internal_id."', '2')")[0]->ambil_data_reviewer_monev;
$status_administrasi = DB::select("select ambil_data_reviewer_monev('".$this->rBiodata->noidentitas."', '".$monev_internal_id."', '3')")[0]->ambil_data_reviewer_monev;
$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($monev_internal_id)."', '1')";
$tidak_lolos = "confirmFinal('".Crypt::encrypt($monev_internal_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/monev-internal/".Crypt::encrypt($monev_internal_id)."/edit");
if($status_nilai > 0)
{
if($urut == '1')
$aksi = '<h4>'.$nilai_1.'</h4>';
elseif($urut == '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>';
}
$data_arr[] = array(
"monev_internal_id" => $monev_internal_id,
"kode" => $kode,
"identitas_ketua" => $identitas_ketua,
"identitas_dospem" => $identitas_dospem,
"jenis_pkm" => $jenis_pkm,
"judul" => $judul,
"status" => $status,
"logbook" => $logbook,
"laporan_kemajuan" => $laporan_kemajuan,
"laporan_luaran" => $laporan_luaran,
"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_monev_id');
$jenis_monev_id = $request->input('jenis_monev_id');
$data['komentar'] = $request->input('komentar');
$reviewer_monev = ReviewerMonev::findOrFail($id);
$reviewer_monev->update($data);
$delete = ReviewerMonevDetil::where('reviewer_monev_id', $id)->delete($id);
for($i=0; $i<count($request->jenis_penilaian_id); $i++)
{
$uuid = Uuid::generate();
$data['reviewer_monev_detil_id'] = $uuid;
$data['reviewer_monev_id'] = $id;
$data['jenis_penilaian_monev_id'] = $request->jenis_penilaian_id[$i];
$data['skor'] = $request->skor[$i];
ReviewerMonevDetil::create($data);
}
Alert::success('Data berhasil disimpan.')->persistent('Ok');
return redirect()->action([DaftarMonevController::class, 'index'], ['id' => Crypt::encrypt($jenis_monev_id)]);
}
public function show($id)
{
}
public function edit($id)
{
$urut = DB::select("select ambil_data_reviewer_monev('".$this->rBiodata->noidentitas."', '".decrypt($id)."', '1')")[0]->ambil_data_reviewer_monev;
$monev = DaftarProposalMonev::where('monev_internal_id', decrypt($id))->first();
$title = 'Penilaian '.$monev->jenis_monev_desc;
$reviewer_monev = ReviewerMonev::with('rReviewerDetil')->where('monev_internal_id', decrypt($id))->where('urut', $urut)->first();
$komponen = JenisPenilaianMonev::where('jenis_id', $monev->jenis_id)->get();
$detil = array();
foreach($reviewer_monev->rReviewerDetil as $res => $val)
{
$detil[$val->jenis_penilaian_monev_id] = $val->skor;
}
$data = [
'title' => $title,
'monev' => $monev,
'komponen' => $komponen,
'reviewer_monev' => $reviewer_monev,
'detil' => $detil
];
return view('backend.reviewer.monev.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.",
]);
}
}
}
<?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;
class DaftarProposal extends Model
{
protected $table = 'daftar_proposal';
protected $primaryKey = 'reviewer_proposal_id';
protected $primaryKey = 'proposal_id';
public $incrementing = false;
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
public $incrementing = false;
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
protected $keyType = 'string';
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
{
$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) {
$this->createRole($user->id);
return 'sudah ada';
} else {
return $this->getAddReviewer($nip);
......@@ -67,7 +54,44 @@ trait LoginTrait
$roles = $this->roleRepo->roles('reviewer');
$this->userDetailRepo->storeSso($user->id, $biodata);
$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';
}
}
......@@ -87,14 +87,16 @@
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 meloloskan data ini!",
text: "Anda akan "+desc+" data ini!",
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
......
......@@ -70,7 +70,7 @@
"url" : "{{route('operator.getDaftarProposal')}}"
},
columns: [
{ data: 'reviewer_proposal_id' },
{ data: 'proposal_id' },
{ data: 'kode' },
{ data: 'jenis_pkm' },
{ data: 'judul' },
......@@ -170,14 +170,16 @@
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 meloloskan data ini!",
text: "Anda akan "+desc+" data ini!",
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
......
......@@ -140,7 +140,6 @@
data:{
"_token": "{{ csrf_token() }}",
"reqId" : response.id,
"jenisMonevId" : "{{ $reqId }}",
"urut": urut,
"data": isi,
},
......@@ -180,14 +179,16 @@
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 meloloskan data ini!",
text: "Anda akan "+desc+" data ini!",
icon: "warning",
showCancelButton: !0,
confirmButtonText: "Ya, "+ kata,
......
......@@ -17,44 +17,21 @@
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Dosen</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</div>
<div class="col-md-4">
<div class="float-end d-none d-md-block">
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<form action="{{ route('dosen.kelompok.index') }}">
<div class="row">
<div class="col-md-8"></div>
<div class="col-md-4 text-right">
<div class="row">
<label class="col-sm-3 col-form-label"></label>
<label class="col-sm-3 col-form-label">Tahun : </label>
<div class="col-sm-6">
<select class="form-select" name="year" onchange="this.form.submit()">
@foreach($periode as $per)
<option value="{{ $per->nama }}" {{ $year == $per->nama ? 'selected' : '' }}>{{ $per->nama }}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
</form>
<br>
<table id="datatable" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<table id="example" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
......@@ -68,51 +45,23 @@
</tr>
</thead>
<tbody>
@foreach ($kelompok as $item)
@php $token = Str::random(30); @endphp
<tr id="row-{{ $token }}">
<td>{{ $loop->iteration }}</td>
<td>{{ $item->kode }}</td>
<td>{{ $item->rAnggota->where('status_ketua', 1)->count() > 0 ? $item->rAnggota->where('status_ketua', 1)[0]->nama : '' }}</td>
<td>{{ $item->rAnggota->where('status_ketua', 1)->count() > 0 ? $item->rAnggota->where('status_ketua', 1)[0]->nim : ''}}</td>
<td>{{ $item->nama_dosen }}</td>
<td>{{ $item->nidn_dosen }}</td>
<td>
@if(!is_null($item->kirim))
@if($item->status == 0)
<span class="badge bg-danger">Menunggu Persetujuan Dosen</span>
@else
<span class="badge bg-success">Sudah Disetujui Dosen</span>
@endif
@endif
</td>
<td>
<button data-bs-toggle="modal" data-bs-target="{{ '#lihat'.$item->kelompok_id }}" href="{{ URL::to('mahasiswa/kelompok-new', encrypt($item->kelompok_id)) }}" class="btn btn-info btn-sm"><i class="far fa-eye"></i> Lihat</button>
@if($item->status == 0)
<a onclick="setuju('{{ encrypt($item->kelompok_id) }}', 'row-{{ $token }}')" class="btn btn-success btn-sm"><i class="fas fa-check"></i> Setuju</a>
<a onclick="tolak('{{ encrypt($item->kelompok_id) }}', 'row-{{ $token }}')" class="btn btn-danger btn-sm"><i class="fas fa-times"></i> Tolak</a>
@endif
</tbody>
</table>
@if((auth()->user()->id == $item->created_user) && ($item->status == 0))
<a href="{{ URL::to('mahasiswa/kelompok-new', encrypt($item->kelompok_id)) }}" class="btn btn-warning btn-sm">Edit</a>
<a onclick="hapus('{{ encrypt($item->kelompok_id) }}', 'row-{{ $token }}')" class="btn btn-danger btn-sm">Hapus</a>
@endif
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
<div id="{{ 'lihat'.$item->kelompok_id }}" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="lihatLabel" aria-hidden="true">
<div class="modal fade" id="empModal">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="lihatLabel">Data Kelompok </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
<h4 class="modal-title">Data Kelompok</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<p>
<div class="table-responsive">
<table class="table table-striped mb-0">
<table class="w-100" id="tblempinfo">
<thead>
<tr>
<th>No</th>
......@@ -123,172 +72,74 @@
<th>Keterangan</th>
</tr>
</thead>
<tbody>
<tr>
@foreach ($item->rAnggota as $value)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $value->nama }}</td>
<td>{{ $value->nim }}</td>
<td>{{ $value->fakultas }}</td>
<td>{{ $value->prodi }}</td>
<td>
@if($value->status_ketua == 1)
Ketua
@else
Anggota {{ $loop->iteration-1 }}
@endif
</td>
</tr>
@endforeach
</tr>
</tbody>
<tbody></tbody>
</table>
</div>
</p>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div> <!-- end col -->
</div> <!-- end row -->
<div id="tmbhKel" class="modal fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form action="{{ route('mahasiswa.kelompok.store') }}" method="POST">
@csrf
<div class="modal-header">
<h5 class="modal-title" id="myModalLabel">Tambah Kelompok Baru</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="col-12">
<h5 class="font-size-16">Silahkan pilih dosen pembimbing : </h5>
<p>
<input type="hidden" name="periode" value="{{ $periode->where('status', 1)->first()->periode_id; }}" >
<select class="form-select" style="width: 100%" id="selectmodal" name="dosen">
<option selected>Pilih Dosen</option>
@foreach($dosen as $item)
<option value="{{ encrypt($item['id_sdm'].'_'.$item['nm_sdm'].'_'.$item['nidn']) }}">{{ $item['nm_sdm'].' - '.$item['prodi']}}</option>
@endforeach
</select>
</p>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary waves-effect waves-light">Save changes</button>
<button type="button" class="btn btn-danger" data-bs-dismiss="modal">Close</button>
</div>
</form>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@endsection
@section('js')
<script src="{{ asset('theme/js/pages/datatables.init.js') }}"></script>
<script>
$(document).ready(function() {
$("#selectmodal").select2({
dropdownParent: $("#tmbhKel")
});
$(document).ready(function(){
// DataTable
var oTable = $('#example').DataTable({
processing: true,
serverSide: true,
ajax: {
"url" : "{{route('operator.getKelompok')}}"
},
columns: [
{ data: 'kelompok_id' },
{ data: 'kode' },
{ data: 'nama_ketua' },
{ data: 'nim_ketua' },
{ data: 'nama_dosen' },
{ data: 'nidn_dosen' },
{ data: 'keterangan' },
{ data: 'aksi' },
],
columnDefs: [
{
"targets": [ 0 ],
"visible": false,
"searchable": false
}
]
});
function setuju(id, rowId){
Swal.fire({
title: 'Apakah anda yakin untuk menyetujui Kelompok ini?',
text: "Kelompok yang di setujui akan di teruskan untuk upload proposal",
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'OK',
}).then((result) => {
if (result.isConfirmed) {
var token = '{{ csrf_token() }}';
var request = $.ajax({
url: '{{ route('dosen.kelompok.terima') }}',
type: 'POST',
dataType: 'html',
data: {id:id, _token:token},
success: function(data){
Swal.fire({
position: 'top-center',
icon: 'success',
title: 'Kelompok berhasil di setujui',
showConfirmButton: false,
timer: 1500
});
location.reload();
$(document).ready(function(){
},
error: function(xhr, status, error){
Swal.fire({
position: 'top-end',
icon: 'error',
title: xhr.responseText,
showConfirmButton: false,
timer: 3500
});
}
});
}
})
}
$('#example').on('click','.viewdetails',function(){
var kelId = $(this).attr('data-id');
function tolak(id, rowId){
Swal.fire({
title: 'Apakah anda yakin untuk menolak kelompok ini?',
text: "Kelompok yang tidak di setujui tidak bisa untuk upload proposal",
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'OK',
}).then((result) => {
if (result.isConfirmed) {
var token = '{{ csrf_token() }}';
var request = $.ajax({
url: '{{ route('dosen.kelompok.tolak') }}',
type: 'POST',
dataType: 'html',
data: {id:id, _token:token},
success: function(data){
Swal.fire({
position: 'top-center',
icon: 'success',
title: 'Kelompok berhasil di tolak',
showConfirmButton: false,
timer: 1500
});
location.reload();
if(kelId != null || kelId != ''){
// Empty modal data
$('#tblempinfo tbody').empty();
$.ajax({
url: "{{route('operator.getDetilKelompok')}}",
data : {
"kelompok_id": kelId,
},
error: function(xhr, status, error){
Swal.fire({
position: 'top-end',
icon: 'error',
title: xhr.responseText,
showConfirmButton: false,
timer: 3500
});
dataType: 'json',
success: function(response){
// Add user details
$('#tblempinfo tbody').html(response.html);
// Display Modal
$('#empModal').modal('show');
}
});
}
})
}
});
});
</script>
@endsection
......@@ -17,43 +17,21 @@
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Mahasiswa</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</div>
<div class="col-md-4">
<div class="float-end d-none d-md-block">
</div>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<form action="{{ route('dosen.proposal.index') }}">
<div class="row">
<div class="col-md-8"></div>
<div class="col-md-4 text-right">
<div class="row">
<label class="col-sm-3 col-form-label"></label>
<label class="col-sm-3 col-form-label">Tahun : </label>
<div class="col-sm-6">
<select class="form-select" name="year" onchange="this.form.submit()">
@foreach($periode as $per)
<option value="{{ $per->nama }}" {{ $year == $per->nama ? 'selected' : '' }}>{{ $per->nama }}</option>
@endforeach
</select>
</div>
</div>
</div>
</div>
</form>
<br>
<table id="datatable" class="table table-bordered dt-responsive" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<table id="example" class="table table-bordered dt-responsive nowrap" style="border-collapse: collapse; border-spacing: 0; width: 100%;">
<thead>
<tr>
<th>No</th>
......@@ -67,96 +45,6 @@
</tr>
</thead>
<tbody>
@foreach ($proposal as $item)
@php $token = Str::random(30); @endphp
<tr id="row-{{ $token }}">
<td>{{ $loop->iteration }}</td>
<td>{{ $item->rKelompok->kode }}</td>
<td>{{ $item->rKelompok->rBiodata->name }} <br> {{ $item->rKelompok->rBiodata->noidentitas }} <br> {{ $item->rKelompok->rBiodata->fakultas }} <br> {{ $item->rKelompok->rBiodata->prodi }}</td>
<td>{{ $item->rKelompok->nama_dosen }} <br> {{ $item->rKelompok->nidn_dosen }}</td>
<td>{{ $item->rJenis->nama }}</td>
<td>{{ $item->judul }}</td>
<td>
@if(is_null($item->upload_dokumen))
<span class="badge bg-danger">Belum Upload Proposal</span> <br>
<strong> Keterangan : </strong> <br>
Upload proposal pada : -<br>
Disetujui proposal pada : -<br>
@else
@if($item->status == '2')
<span class="badge bg-success">Sudah Disetujui Dosen</span> <br>
<strong> Keterangan : </strong> <br>
Upload proposal pada : <h6 class="text-primary"> {{ $item->date_upload }} </h6>
Disetujui proposal pada : <h6 class="text-primary"> {{ $item->date_approval }} </h6>
@else
<span class="badge bg-warning">Menunggu Persetujuan Dosen</span> <br>
<strong> Keterangan : </strong> <br>
Upload proposal pada : <h6 class="text-primary"> {{ $item->date_upload }} </h6>
Disetujui proposal pada :
@endif
@endif
</td>
<td>
<button data-bs-toggle="modal" data-bs-target="{{ '#lihat'.$item->proposal_id }}" href="{{ URL::to('mahasiswa/kelompok-new', encrypt($item->proposal_id)) }}" class="btn btn-info btn-sm"><i class="far fa-eye"></i> Lihat</button>
@if($item->status == '0')
<a onclick="setuju('{{ encrypt($item->proposal_id) }}', 'row-{{ $token }}')" class="btn btn-success btn-sm"><i class="fas fa-check"></i> Setuju</a>
@endif
<div id="{{ 'lihat'.$item->proposal_id }}" class="modal fade" tabindex="-1" role="dialog"
aria-labelledby="lihatLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="lihatLabel">Detail Proposal </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p>
<div class="table-responsive">
<table class="table mb-0">
<tr>
<th>Judul Proposal</th>
<td>{{ $item->judul }}</td>
</tr>
<tr>
<th>Jenis PKM</th>
<td>{{ $item->rJenis->nama }}</td>
</tr>
<tr>
<th>Status</th>
<td>
@if(is_null($item->status))
<span class="badge bg-danger">Menunggu Persetujuan Dosen</span>
@else
<span class="badge bg-success">Sudah Disetujui Dosen</span>
@endif
</td>
</tr>
<tr>
<th>Proposal</th>
<td>
@if($item->upload_dokumen)
<iframe id="view-pdf" width="100%" height="400px" src="https://statik.unesa.ac.id/simpkm/proposal/{{ $item->rPeriode->nama }}/{{ $item->upload_dokumen }}" frameborder="0"></iframe>
@else
<div class="alert alert-danger alert-dismissible fade show mb-0" role="alert">
<strong>Informasi!</strong><br/> File tidak ditemukan.
</div>
@endif
</td>
</tr>
</table>
</div>
</p>
</div>
</div>
</div>
</div>
</div>
</td>
</tr>
@endforeach
</tbody>
</table>
......@@ -164,53 +52,65 @@
</div>
</div> <!-- end col -->
</div> <!-- end row -->
@endsection
@section('js')
<script src="{{ asset('theme/js/pages/datatables.init.js') }}"></script>
<script>
function setuju(id, rowId){
Swal.fire({
title: 'Apakah anda yakin untuk menyetujui Kelompok ini?',
text: "Kelompok yang di setujui akan di teruskan untuk upload proposal",
icon: 'warning',
showCancelButton: true,
confirmButtonText: 'OK',
}).then((result) => {
if (result.isConfirmed) {
var token = '{{ csrf_token() }}';
var request = $.ajax({
url: '{{ route('dosen.proposal.setuju') }}',
type: 'POST',
dataType: 'html',
data: {id:id, _token:token},
success: function(data){
Swal.fire({
position: 'top-center',
icon: 'success',
title: 'Kelompok berhasil di setujui',
showConfirmButton: false,
timer: 1500
$(document).ready(function(){
// DataTable
var oTable = $('#example').DataTable({
processing: true,
serverSide: true,
ajax: {
"url" : "{{route('operator.getProposal')}}"
},
columns: [
{ data: 'proposal_id' },
{ data: 'kode' },
{ data: 'identitas_ketua' },
{ data: 'identitas_dospem' },
{ data: 'jenis_pkm' },
{ data: 'judul' },
{ data: 'keterangan' },
{ data: 'aksi' },
],
columnDefs: [
{
"targets": [ 0 ],
"visible": false,
"searchable": false
}
]
});
});
location.reload();
$(document).ready(function(){
$('#example').on('click','.viewdetails',function(){
var kelId = $(this).attr('data-id');
if(kelId != null || kelId != ''){
// Empty modal data
$('#tblempinfo tbody').empty();
$.ajax({
url: "{{route('operator.getDetilKelompok')}}",
data : {
"kelompok_id": kelId,
},
error: function(xhr, status, error){
Swal.fire({
position: 'top-end',
icon: 'error',
title: xhr.responseText,
showConfirmButton: false,
timer: 3500
});
dataType: 'json',
success: function(response){
// Add user details
$('#tblempinfo tbody').html(response.html);
// Display Modal
$('#empModal').modal('show');
}
});
}
})
}
});
});
</script>
@endsection
......@@ -17,7 +17,6 @@
<div class="col-md-8">
<h6 class="page-title">{!! $title !!}</h6>
<ol class="breadcrumb m-0">
<li class="breadcrumb-item">Dosen</li>
<li class="breadcrumb-item">{!! $title !!}</li>
</ol>
</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 @@
<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/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/libs/sweetalert2/sweetalert2.min.js') }}"></script>
......
......@@ -161,14 +161,14 @@
<a href="{{ URL::to('/reviewer/seleksi-internal') }}" class="waves-effect"><i class="ti-check"></i><span>Seleksi Internal</span></a>
</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>
<span>Monev Internal</span>
</a>
<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/II') }}">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('07cda89b-94ca-42a3-a197-8fc1260ebcfb')) }}">Monev Internal I</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-internal/'.Crypt::encrypt('068aa53d-91a0-4704-b72c-54757799a286')) }}">Monev Internal III</a></li>
</ul>
</li>
@endif
......
......@@ -4,30 +4,34 @@ use Illuminate\Support\Facades\Route;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\Operator\JenisController;
use App\Http\Controllers\Operator\UserController;
use App\Http\Controllers\Operator\JenisController;
use App\Http\Controllers\Operator\SelectController;
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\Authentication\LoginController;
use App\Http\Controllers\Reviewer\DaftarMonevController;
use App\Http\Controllers\Operator\MonevProposalController;
use App\Http\Controllers\Operator\ReviewerMonevController;
use App\Http\Controllers\Mahasiswa\ProposalController as MahasiswaProposal;
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\Reviewer\DaftarSeleksiController;
use App\Http\Controllers\Operator\DaftarProposalController;
use App\Http\Controllers\Operator\JadwalKegiatanController;
use App\Http\Controllers\Dosen\MonevController as DosenMonev;
use App\Http\Controllers\Operator\JenisPenilaianMonevController;
use App\Http\Controllers\Dosen\BiodataController as DosenBiodata;
use App\Http\Controllers\Dosen\SeleksiController as DosenSeleksi;
use App\Http\Controllers\Dosen\KelompokController as DosenKelompok;
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\ProposalController as MahasiswaProposal;
/*
|--------------------------------------------------------------------------
......@@ -131,7 +135,15 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
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::get('getJenis', [JenisController::class, 'getData'])->name('getJenis');
......@@ -147,6 +159,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::get('getReviewer', [ReviewerController::class, 'getData'])->name('getReviewer');
Route::get('getDosen', [ReviewerController::class, 'getDosen'])->name('getDosen');
Route::resource('seleksi_internal_reviewer', ReviewerController::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('getDaftarProposal', [DaftarProposalController::class, 'getData'])->name('getDaftarProposal');
......@@ -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/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();
......
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