Commit 3b9310b8 by Farendi Giotivano R.P

Merge branch 'master' of http://git.unesa.ac.id/farendi/simpkm

parents c69be37f 178ae738
...@@ -42,7 +42,9 @@ class ProposalExport implements FromView,ShouldAutoSize ...@@ -42,7 +42,9 @@ class ProposalExport implements FromView,ShouldAutoSize
$statement .= " AND PERIODE = '".$this->tahun."'"; $statement .= " AND PERIODE = '".$this->tahun."'";
} }
$data = DaftarProposal::with('rKelompokDetil')->whereRaw($statement)->get(); $data = DaftarProposal::with(['rKelompokDetil' => function ($query) {
$query->orderBy('status_ketua', 'ASC'); // Ganti 'kolom_yang_ingin_diurutkan' sesuai dengan nama kolom
}])->whereRaw($statement)->orderBy('fakultas_ketua', 'ASC')->get();
$result = []; $result = [];
$no = 0; $no = 0;
......
...@@ -90,7 +90,7 @@ class DaftarProposalController extends Controller ...@@ -90,7 +90,7 @@ class DaftarProposalController extends Controller
// $totalRecords = DaftarProposal::select('count(1) as allcount')->whereRaw($statementGlobal)->count(); // $totalRecords = DaftarProposal::select('count(1) as allcount')->whereRaw($statementGlobal)->count();
$totalRecords = collect(DB::select("select 1 as allcount from vw_daftar_proposal('".$statementGlobal."') "))->count(); $totalRecords = collect(DB::select("select 1 as allcount from vw_daftar_proposal('".$statementGlobal."') "))->count();
$statement = " AND (UPPER(JUDUL) LIKE ''%".$searchValue."%'' OR UPPER(IDENTITAS_DOSPEM) LIKE ''%".$searchValue."%'') "; $statement = " AND STATUS != ''2'' AND (UPPER(JUDUL) LIKE ''%".$searchValue."%'' OR UPPER(IDENTITAS_DOSPEM) LIKE ''%".$searchValue."%'') ";
// $totalRecordswithFilter = DaftarProposal::select('count(1) as allcount')->whereRaw($statementGlobal.$statement)->count(); // $totalRecordswithFilter = DaftarProposal::select('count(1) as allcount')->whereRaw($statementGlobal.$statement)->count();
$totalRecordswithFilter = collect(DB::select("select 1 as allcount from vw_daftar_proposal('".$statementGlobal.$statement."') "))->count(); $totalRecordswithFilter = collect(DB::select("select 1 as allcount from vw_daftar_proposal('".$statementGlobal.$statement."') "))->count();
...@@ -112,6 +112,8 @@ class DaftarProposalController extends Controller ...@@ -112,6 +112,8 @@ class DaftarProposalController extends Controller
$data_arr = array(); $data_arr = array();
foreach($records as $record){ foreach($records as $record){
$reviewer_proposal_id_1 = $record->reviewer_proposal_id_1;
$reviewer_proposal_id_2 = $record->reviewer_proposal_id_2;
$proposal_id = $record->proposal_id; $proposal_id = $record->proposal_id;
$jenis_id = $record->jenis_id; $jenis_id = $record->jenis_id;
$kode = $record->kode; $kode = $record->kode;
...@@ -127,6 +129,21 @@ class DaftarProposalController extends Controller ...@@ -127,6 +129,21 @@ class DaftarProposalController extends Controller
$nilai_2 = $record->nilai_2; $nilai_2 = $record->nilai_2;
$rata = $record->rata; $rata = $record->rata;
$ketua = explode('###', $record->identitas_ketua);
$tombol_nilai_1 = $tombol_nilai_2 = '';
if($status_administrasi_1 != '0')
{
$fungsi_nilai_1 = "cancelNilai('".Crypt::encrypt($reviewer_proposal_id_1)."')";
$tombol_nilai_1 = '<a href="#!" class="btn btn-icon-sm btn-danger" onclick="'.$fungsi_nilai_1.'" title="Batalkan Penilaian?"><i class="fas fa-undo-alt"></i></a>';
}
if($status_administrasi_2 != '0')
{
$fungsi_nilai_2 = "cancelNilai('".Crypt::encrypt($reviewer_proposal_id_2)."')";
$tombol_nilai_2 = '<a href="#!" class="btn btn-icon-sm btn-danger" onclick="'.$fungsi_nilai_2.'" title="Batalkan Penilaian?"><i class="fas fa-undo-alt"></i></a>';
}
// $nilai_1= DB::select("select ambil_jumlah_penilaian_seleksi('".$reviewer_proposal_id_1."', '".$record->jenis_id."')")[0]->ambil_jumlah_penilaian_seleksi; // $nilai_1= DB::select("select ambil_jumlah_penilaian_seleksi('".$reviewer_proposal_id_1."', '".$record->jenis_id."')")[0]->ambil_jumlah_penilaian_seleksi;
// $nilai_2= DB::select("select ambil_jumlah_penilaian_seleksi('".$reviewer_proposal_id_2."', '".$record->jenis_id."')")[0]->ambil_jumlah_penilaian_seleksi; // $nilai_2= DB::select("select ambil_jumlah_penilaian_seleksi('".$reviewer_proposal_id_2."', '".$record->jenis_id."')")[0]->ambil_jumlah_penilaian_seleksi;
...@@ -219,14 +236,14 @@ class DaftarProposalController extends Controller ...@@ -219,14 +236,14 @@ class DaftarProposalController extends Controller
$data_arr[] = array( $data_arr[] = array(
"proposal_id" => $proposal_id, "proposal_id" => $proposal_id,
"kode" => $kode, "kode" => $kode.'<br>'.$ketua[2]??'',
"jenis_pkm" => $pil_jenis_pkm, "jenis_pkm" => $pil_jenis_pkm,
"judul" => $judul, "judul" => $judul,
"dospem" => $dospem, "dospem" => $dospem,
"reviewer_1" => $pilihan_1, "reviewer_1" => $pilihan_1,
"reviewer_2" => $pilihan_2, "reviewer_2" => $pilihan_2,
"nilai_1" => $nilai_1, "nilai_1" => $nilai_1.'<br>'.$tombol_nilai_1,
"nilai_2" => $nilai_2, "nilai_2" => $nilai_2.'<br>'.$tombol_nilai_2,
"rata" => $rata, "rata" => $rata,
"aksi" => $aksi "aksi" => $aksi
); );
...@@ -537,6 +554,33 @@ class DaftarProposalController extends Controller ...@@ -537,6 +554,33 @@ class DaftarProposalController extends Controller
} }
} }
public function cancel($id)
{
try {
$delete = ReviewerProposal::where('reviewer_proposal_id', Crypt::decrypt($id))->update(['cancel_penilaian'=>'1', 'tanggal_cancel_penilaian'=>Carbon::now()]);
if ($delete) {
$status = 'success';
$message = "Penilaian Reviewer Internal Telah dibatalkan, Reviewer silahkan melakukan seleksi administrasi dan penilaian kembali.";
}
else{
$status = 'error';
$message = "Penilaian Reviewer Internal tidak ada.";
}
return response()->json([
'status' => $status,
'message' => $message,
]);
} catch (\Exception $id) {
return response()->json([
'status' => 'error',
'message' => "Data gagal diproses.",
]);
}
}
public function approval_belmawa($id, $status) public function approval_belmawa($id, $status)
{ {
try { try {
......
...@@ -131,7 +131,7 @@ class ProposalController extends Controller ...@@ -131,7 +131,7 @@ class ProposalController extends Controller
$aksi .= ' <a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"><i class="fas fa-search"></i></a>'; $aksi .= ' <a href="'.$url.'" target="_blank" class="btn btn-primary btn-sm waves-effect waves-light" role="button"><i class="fas fa-search"></i></a>';
$keterangan .= "<br><span class='badge bg-info'>Upload Proposal Pada : ".$date_upload." WIB</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>"; $keterangan .= "<br><span class='badge bg-info'>Diverifikasi Dosen Pada : ".$date_approval." WIB</span>";
$data_arr[] = array( $data_arr[] = array(
......
...@@ -120,10 +120,12 @@ class DaftarSeleksiController extends Controller ...@@ -120,10 +120,12 @@ class DaftarSeleksiController extends Controller
$kode = $record->kode; $kode = $record->kode;
$jenis_pkm = $record->jenis_pkm; $jenis_pkm = $record->jenis_pkm;
$judul = $record->judul; $judul = $record->judul;
$reviewer_proposal_id_1 = $record->reviewer_proposal_id_1??"00000000-0000-0000-0000-000000000000";
$reviewer_proposal_id_2 = $record->reviewer_proposal_id_2??"00000000-0000-0000-0000-000000000000";
$nilai_1= DB::select("select ambil_jumlah_penilaian_seleksi('".$record->reviewer_proposal_id_1."')")[0]->ambil_jumlah_penilaian_seleksi; $nilai_1= DB::select("select ambil_jumlah_penilaian_seleksi('".$reviewer_proposal_id_1."')")[0]->ambil_jumlah_penilaian_seleksi;
$nilai_2= DB::select("select ambil_jumlah_penilaian_seleksi('".$record->reviewer_proposal_id_2."')")[0]->ambil_jumlah_penilaian_seleksi; $nilai_2= DB::select("select ambil_jumlah_penilaian_seleksi('".$reviewer_proposal_id_2."')")[0]->ambil_jumlah_penilaian_seleksi;
$url = "https://statik.unesa.ac.id/simpkm/proposal/".$record->periode."/".$record->upload_dokumen; $url = "https://statik.unesa.ac.id/simpkm/proposal/".$record->periode."/".$record->upload_dokumen;
...@@ -170,6 +172,7 @@ class DaftarSeleksiController extends Controller ...@@ -170,6 +172,7 @@ class DaftarSeleksiController extends Controller
if($status_administrasi == '2') if($status_administrasi == '2')
$aksi = '<h4>0</h4>'; $aksi = '<h4>0</h4>';
else else
// $aksi = '<a data-id="'.Crypt::encrypt($proposal_id).'" data-row="'.$hitung.'" class="btn btn-icon-sm btn-warning btn-sm btnNilai">Beri nilai<i class="fas fa-arrow-alt-circle-right"></i></a>';
$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>'; $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>';
} }
} }
...@@ -260,6 +263,7 @@ class DaftarSeleksiController extends Controller ...@@ -260,6 +263,7 @@ class DaftarSeleksiController extends Controller
]; ];
return view('backend.reviewer.seleksi.nilai', $data); return view('backend.reviewer.seleksi.nilai', $data);
// return view('backend.reviewer.seleksi.child_nilai', $data);
} }
public function update(Request $request, $id) public function update(Request $request, $id)
...@@ -272,12 +276,15 @@ class DaftarSeleksiController extends Controller ...@@ -272,12 +276,15 @@ class DaftarSeleksiController extends Controller
} }
public function approval($id, $status) public function approval($id, $status, $alasan = '000')
{ {
try { try {
$urut = DB::select("select ambil_data_reviewer_proposal('".$this->rBiodata->noidentitas."', '".decrypt($id)."', '1')")[0]->ambil_data_reviewer_proposal; $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($alasan == '000')
$alasan = null;
$delete = ReviewerProposal::where('proposal_id', Crypt::decrypt($id))->where('urut', $urut)->update(['status_administrasi'=>$status, 'alasan_tolak_administrasi'=>$alasan, 'cancel_penilaian' => '0', 'tanggal_cancel_penilaian' => null]);
if ($delete) { if ($delete) {
if($status == '1') if($status == '1')
......
...@@ -12,7 +12,7 @@ class ReviewerProposal extends Model ...@@ -12,7 +12,7 @@ class ReviewerProposal extends Model
protected $keyType = 'string'; protected $keyType = 'string';
protected $fillable = [ protected $fillable = [
'reviewer_proposal_id', 'proposal_id', 'reviewer_id', 'status_administrasi', 'komentar', 'urut', 'created_user', 'updated_user' 'reviewer_proposal_id', 'proposal_id', 'reviewer_id', 'status_administrasi', 'komentar', 'urut', 'created_user', 'updated_user', 'alasan_tolak_administrasi'
]; ];
public function rReviewerProposalDetil() public function rReviewerProposalDetil()
......
...@@ -120,6 +120,7 @@ ...@@ -120,6 +120,7 @@
$(document).ready(function(){ $(document).ready(function(){
// DataTable // DataTable
var oTable = $('#example').DataTable({ var oTable = $('#example').DataTable({
pageLength: 100,
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: { ajax: {
...@@ -323,6 +324,51 @@ ...@@ -323,6 +324,51 @@
}) })
} }
function cancelNilai(reqId)
{
var kata = "Batalkan Penilaian";
var desc = "membatalkan penilaian proposal";
Swal.fire({
title: "Apakah Anda Yakin?",
text: "Anda akan "+desc+" 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("/operator/seleksi-internal-reviewer-cancel/")}}/' +reqId,
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');
}
})
}
function cetak() { function cetak() {
var _token = $('input[name="_token"]').val(); var _token = $('input[name="_token"]').val();
var jenis = $("#reqJenisPkm").val(); var jenis = $("#reqJenisPkm").val();
......
...@@ -102,6 +102,7 @@ ...@@ -102,6 +102,7 @@
$(document).ready(function(){ $(document).ready(function(){
// DataTable // DataTable
var oTable = $('#example').DataTable({ var oTable = $('#example').DataTable({
pageLength: 100,
processing: true, processing: true,
serverSide: true, serverSide: true,
ajax: { ajax: {
...@@ -149,29 +150,24 @@ ...@@ -149,29 +150,24 @@
{ {
var kata = "Lolos seleksi!"; var kata = "Lolos seleksi!";
var desc = "meloloskan"; var desc = "meloloskan";
} var reqText = "000";
else
{
var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
}
Swal.fire({ Swal.fire({
title: "Apakah Anda Yakin?", title: "Apakah Anda Yakin?",
text: "Anda akan "+desc+" data ini!", text: "Anda akan "+desc+" data ini!",
icon: "warning", icon: "warning",
showCancelButton: !0, showCancelButton: !0,
confirmButtonText: "Ya, "+ kata, confirmButtonText: "Ya, "+ kata,
cancelButtonText: "Tidak, Kembali!", cancelButtonText: "Tidak, Kembali!",
confirmButtonClass: "btn btn-success mt-2", confirmButtonClass: "btn btn-success mt-2",
cancelButtonClass: "btn btn-danger ms-2 mt-2", cancelButtonClass: "btn btn-danger ms-2 mt-2",
buttonsStyling: !1, buttonsStyling: !1,
allowOutsideClick: !1, allowOutsideClick: !1,
showLoaderOnConfirm: true showLoaderOnConfirm: true
}).then((result) => { }).then((result) => {
if (result.value){ if (result.value){
$.ajax({ $.ajax({
url:'{{url("/reviewer/seleksi-internal-approval/")}}/' +reqId+'/'+reqStatus, url:'{{url("/reviewer/seleksi-internal-approval/")}}/'+reqId+'/'+reqStatus+'/'+reqText,
type:'GET', type:'GET',
data:{ data:{
"_token": "{{ csrf_token() }}", "_token": "{{ csrf_token() }}",
...@@ -215,8 +211,95 @@ ...@@ -215,8 +211,95 @@
{ {
swal.fire('Batal!', 'Data batal diproses.', 'error'); swal.fire('Batal!', 'Data batal diproses.', 'error');
} }
}) })
}
else
{
var kata = "Tidak Lolos seleksi!";
var desc = "tidak meloloskan";
Swal.fire({
title: "Alasan Tolak Seleksi Administrasi",
input: "textarea",
inputPlaceholder: "Tulis Alasan Anda disini ...",
showCancelButton: true,
confirmButtonText: "Submit",
preConfirm: (reqText) => {
if (!reqText) {
Swal.showValidationMessage("Alasan tidak boleh kosong!");
}
return reqText;
}
}).then((result) => {
let alasan = result.value; // Store textarea value
if (result.isConfirmed) {
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+'/'+alasan,
type:'GET',
data:{
"_token": "{{ csrf_token() }}",
},
dataType: "JSON",
})
.done(function(response){
swal.fire('Updated!', response.message, response.status).then(function(){
if(reqStatus == '1')
{
$("#row_"+rowId+" td:nth-last-child(2)").empty()
var s= $('<span class="badge bg-success">Lolos</span>');
$("#row_"+rowId+" td:nth-last-child(2)").append(s);
$("#row_"+rowId+" td:last-child").empty();
var t= $('<a href="{{ URL::to("reviewer/seleksi-internal/") }}/'+reqId+'/edit" class="btn btn-icon-sm btn-warning btn-sm">Beri nilai<i class="fas fa-arrow-alt-circle-right"></i></a>');
$("#row_"+rowId+" td:last-child").append(t);
}
else
{
$("#row_"+rowId+" td:nth-last-child(4)").empty()
var r= $('<span class="badge bg-success">Sudah dinilai</span>');
$("#row_"+rowId+" td:nth-last-child(4)").append(r);
$("#row_"+rowId+" td:nth-last-child(2)").empty()
var s= $('<span class="badge bg-danger">Tidak Lolos</span>');
$("#row_"+rowId+" td:nth-last-child(2)").append(s);
$("#row_"+rowId+" td:last-child").empty();
var t= $('<h4>0</h4>');
$("#row_"+rowId+" td:last-child").append(t);
}
// location.reload();
});
})
.fail(function(){
swal.fire('Oops...', 'Something went wrong with ajax !', 'error');
});
}
else
{
swal.fire('Batal!', 'Data batal diproses.', 'error');
}
})
}
});
}
} }
......
...@@ -178,6 +178,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () { ...@@ -178,6 +178,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::resource('seleksi-internal-proposal', DaftarProposalController::class); Route::resource('seleksi-internal-proposal', DaftarProposalController::class);
Route::post('seleksi-internal-proposal-jenis', [DaftarProposalController::class, 'change_jenis'])->name('seleksi-internal-proposal-jenis'); Route::post('seleksi-internal-proposal-jenis', [DaftarProposalController::class, 'change_jenis'])->name('seleksi-internal-proposal-jenis');
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('/seleksi-internal-reviewer-cancel/{id}', [DaftarProposalController::class, 'cancel'])->name('seleksi-internal.cancel');
Route::get('getDaftarProposal', [DaftarProposalController::class, 'getData'])->name('getDaftarProposal'); Route::get('getDaftarProposal', [DaftarProposalController::class, 'getData'])->name('getDaftarProposal');
Route::get('cetak-daftar-proposal', [DaftarProposalController::class, 'cetak_daftar_proposal'])->name('cetak-daftar-proposal'); Route::get('cetak-daftar-proposal', [DaftarProposalController::class, 'cetak_daftar_proposal'])->name('cetak-daftar-proposal');
Route::get('cetak-daftar-proposal-new', [DaftarProposalController::class, 'cetak_daftar_proposal_new'])->name('cetak-daftar-proposal-new'); Route::get('cetak-daftar-proposal-new', [DaftarProposalController::class, 'cetak_daftar_proposal_new'])->name('cetak-daftar-proposal-new');
...@@ -218,7 +219,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () { ...@@ -218,7 +219,7 @@ Route::group(['middleware' => ['auth:sanctum', 'verified']], function () {
Route::name('reviewer.')->prefix('reviewer')->middleware(['role:reviewer|operator|dosen|tendik'])->group(function () { Route::name('reviewer.')->prefix('reviewer')->middleware(['role:reviewer|operator|dosen|tendik'])->group(function () {
Route::resource('seleksi-internal', DaftarSeleksiController::class); Route::resource('seleksi-internal', DaftarSeleksiController::class);
Route::get('/seleksi-internal-approval/{id}/{status}', [DaftarSeleksiController::class, 'approval'])->name('seleksi-internal.approval'); Route::get('/seleksi-internal-approval/{id}/{status}/{alasan?}', [DaftarSeleksiController::class, 'approval'])->name('seleksi-internal.approval');
Route::get('getDaftarSeleksi', [DaftarSeleksiController::class, 'getData'])->name('getDaftarSeleksi'); Route::get('getDaftarSeleksi', [DaftarSeleksiController::class, 'getData'])->name('getDaftarSeleksi');
Route::get('monev-internal/{id}', [DaftarMonevController::class, 'index'])->name('monev-internal'); Route::get('monev-internal/{id}', [DaftarMonevController::class, 'index'])->name('monev-internal');
......
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