Update Rating Fitur

This commit is contained in:
servdal
2025-08-24 20:50:04 +07:00
parent 2af18f0f68
commit c7ecb66ba1
5 changed files with 222 additions and 16 deletions
@@ -1510,23 +1510,56 @@ class FrontpageController extends Controller
if ($nofoto == 'noregister'){
$noregister = $request->input('noregister');
$tabel = '';
$periksa = Periksa::where('noregister', $noregister)->where('tgllahirpasien', $tgllahir)->get();
if (!empty($periksa)){
$lists = DB::table('periksa')
->select('periksa.*', 'organisms.satuan as satuanperspesimen', 'organisms.nilai as nilaiperspesimen')
->leftJoin('periksa', 'organisms.category', 'periksa.kd_spesimen')
->where('periksa.noregister', $noregister)
->where('periksa.tgllahirpasien', $tgllahir)
->get();
if (!empty($lists)){
$tabel = '<div class="timeline">';
$kanan = '';
foreach($periksa as $rows){
$status = $rows->status;
foreach($lists as $rows){
$status = $rows->status;
$id_periksa = $rows->id;
if ( !empty($rows->rating) ) {
$saved_rating = $rows->rating;
$bintang_html = '';
for ($i = 1; $i <= 5; $i++) {
if ( $i <= $saved_rating ) {
$bintang_html .= '<i class="fa fa-star" style="font-size:18px; color:orange;"></i>';
} else {
$bintang_html .= '<i class="fa fa-star-o" style="font-size:18px; color:orange;"></i>';
}
}
$ratingBintang = '
<div class="rating-stars" data-id="'.$id_periksa.'">
<small class="text-muted">Terimka kasih atas rating yang diberikan:</small><br>
'.$bintang_html.'
</div>';
} else {
$ratingBintang = '
<div class="rating-stars" data-id="'.$id_periksa.'">
<small class="text-muted">Beri Rating:</small><br>
<i class="fa fa-star-o" style="cursor:pointer; font-size:18px; color:orange;" onclick="btnisiRating('.$id_periksa.', 1)"></i>
<i class="fa fa-star-o" style="cursor:pointer; font-size:18px; color:orange;" onclick="btnisiRating('.$id_periksa.', 2)"></i>
<i class="fa fa-star-o" style="cursor:pointer; font-size:18px; color:orange;" onclick="btnisiRating('.$id_periksa.', 3)"></i>
<i class="fa fa-star-o" style="cursor:pointer; font-size:18px; color:orange;" onclick="btnisiRating('.$id_periksa.', 4)"></i>
<i class="fa fa-star-o" style="cursor:pointer; font-size:18px; color:orange;" onclick="btnisiRating('.$id_periksa.', 5)"></i>
</div>';
}
if ($status == 'Selesai'){
$tombolcetak = url('/').'/hasil/'.$rows->nofoto;
$tombolcetak = '<a href="'.$tombolcetak.'"><button type="button" class="btn btn-icon waves-effect waves-light btn-success"> <i class="fa fa-print"></i> </button></a>';
} else {
$tombolcetak = '';
$tombolcetak = 'Masih dalam proses dan perkiraan selesai adalah '.$rows->nilaiperspesimen.' '.$rows->satuanperspesimen.' dari sample diterima';
}
if ($kanan == ''){
$tabel = $tabel.'<article class="timeline-item"><div class="timeline-desk"><div class="panel"><div class="timeline-box"><span class="arrow"></span><span class="timeline-icon bg-custom"><i class="mdi mdi-adjust"></i></span><h4 class="text-custom">'.$rows->daftar.'</h4><p class="timeline-date text-muted"><small>'.$rows->reques.'</small></p><p>'.$rows->status.'</p><div class="btn btn-group">'.$tombolcetak.'</div></div></div></div></article>';
$tabel = $tabel.'<article class="timeline-item"><div class="timeline-desk"><div class="panel"><div class="timeline-box"><span class="arrow"></span><span class="timeline-icon bg-custom"><i class="mdi mdi-adjust"></i></span><h4 class="text-custom">'.$rows->daftar.'</h4><p class="timeline-date text-muted"><small>'.$rows->reques.'</small></p><p>'.$rows->status.'</p>'.$ratingBintang.'<div class="btn btn-group">'.$tombolcetak.'</div></div></div></div></article>';
$kanan = 'kanan';
} else {
$tabel = $tabel.'<article class="timeline-item alt"><div class="timeline-desk"><div class="panel"><div class="timeline-box"><span class="arrow-alt"></span><span class="timeline-icon bg-custom"><i class="mdi mdi-adjust"></i></span><h4 class="text-custom">'.$rows->daftar.'</h4><p class="timeline-date text-muted"><small>'.$rows->reques.'</small></p><p>'.$rows->status.'</p><div class="btn btn-group">'.$tombolcetak.'</div></div></div></div></article>';
$tabel = $tabel.'<article class="timeline-item alt"><div class="timeline-desk"><div class="panel"><div class="timeline-box"><span class="arrow-alt"></span><span class="timeline-icon bg-custom"><i class="mdi mdi-adjust"></i></span><h4 class="text-custom">'.$rows->daftar.'</h4><p class="timeline-date text-muted"><small>'.$rows->reques.'</small></p><p>'.$rows->status.'</p>'.$ratingBintang.'<div class="btn btn-group">'.$tombolcetak.'</div></div></div></div></article>';
$kanan = '';
}
}
@@ -1535,6 +1568,10 @@ class FrontpageController extends Controller
$tabel = 'Data Tidak ditemukan, Pastikan Kembali Apakah No. RM ('.$noregister.') dan tanggal lahir ('.$tgllahir.') sudah benar';
}
echo $tabel;
} else if ($nofoto == 'isirating'){
Periksa::where('id', $request->input('id'))->update([
'rating' => $request->input('rating')
]);
} else {
$periksa = Periksa::where('nofoto', $nofoto)->where('tgllahirpasien', $tgllahir)->first();
if (isset($periksa->id)){
@@ -275,6 +275,34 @@ class TemplateController extends Controller
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} else if ($tabel == 'Speciment'){
if ($id == 'new'){
$ceksudah = Organisms::where('name', $request->name)->where('category', $request->category)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = new Organisms;
$inputData = $request->except(['id', 'tabel', '_token']);
$data->fill($inputData);
$data->save();
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
} else {
$ceksudah = Organisms::where('id', '!=', $id)->where('name', $request->name)->where('category', $request->category)->where('kelompok', $request->kelompok)->count();
if ($ceksudah == 0){
$data = Organisms::find($id);
$inputData = $request->except(['id', 'tabel', '_token']);
$data->update($inputData);
} else {
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
}
}
if ($data){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
return back();
} else {
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
return back();
}
} else if ($tabel == 'Parameter'){
$getdatalama = Organisms::where('kelompok', $request->kelompok)->first();
$category = $getdatalama->category ?? $request->kelompok;
@@ -89,6 +89,7 @@ return new class extends Migration
$table->integer('bhp_antibiotiktambahan')->nullable();
$table->string('id_esbl', 5)->nullable();
$table->string('id_mrsa', 5)->nullable();
$table->integer('rating')->nullable();
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
});
+128 -9
View File
@@ -208,6 +208,57 @@
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<div id="ModalSpecimen" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Editor Data Specimen</h4>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="form-group m-b-25">
<div class="col-12">
<label>Name</label>
<input type="text" class="form-control" id="sp_name">
</div>
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Category Name</label>
<input type="text" class="form-control" id="sp_kategori">
</div>
</div>
<div class="form-group">
<label>Target Selesai</label>
<div class="form-group m-b-25">
<div class="col-6">
<label>Satuan</label>
<select class="form-control" id="sp_satuan" name="sp_satuan">
<option value="Jam">Jam</option>
<option value="Hari">Hari</option>
<option value="Minggu">Minggu</option>
<option value="Bulan">Bulan</option>
</select>
</div>
<div class="col-6">
<label>Nilai</label>
<input type="number" class="form-control" id="sp_nilai" placeholder="Hanya Angka">
</div>
</div>
</div>
<div class="form-group account-btn text-center m-t-10">
<div class="col-12">
<input type="hidden" class="form-control" id="sp_id">
<input type="hidden" class="form-control" id="sp_kelompok">
<button class="btn w-lg btn-custom waves-effect waves-light" id="btnAddSP" type="button">Save</button>
</div>
</div>
</form>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div>
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
<div style="overflow: hidden; display: none;">
<div class="form-group m-b-25">
@@ -500,6 +551,8 @@
{ name: 'name',type: 'text'},
{ name: 'category',type: 'text'},
{ name: 'kelompok',type: 'text'},
{ name: 'nilai',type: 'text'},
{ name: 'satuan',type: 'text'},
],
type: 'POST',
data: { val01:'listkodespesimen', _token: token },
@@ -524,15 +577,19 @@
editrowpoli = row;
var offset = $("#gridbakteri").offset();
var dataRecord = $("#gridbakteri").jqxGrid('getrowdata', editrowpoli);
$("#mb_id").val(dataRecord.id);
$("#mb_kelompok").val(dataRecord.kelompok);
$("#mb_kategori").val(dataRecord.category);
$("#mb_name").val(dataRecord.name);
$('#ModalMikroandBakteri').modal('show');
$("#sp_id").val(dataRecord.id);
$("#sp_kelompok").val(dataRecord.kelompok);
$("#sp_kategori").val(dataRecord.category);
$("#sp_name").val(dataRecord.name);
$("#sp_nilai").val(dataRecord.nilai);
$("#sp_satuan").val(dataRecord.satuan);
$('#ModalSpecimen').modal('show');
}
},
{ text: 'Name', datafield: 'name', width: '60%', cellsalign: 'left', align: 'center' },
{ text: 'Name', datafield: 'name', width: '40%', cellsalign: 'left', align: 'center' },
{ text: 'Category', datafield: 'category', width: '20%', cellsalign: 'left', align: 'center' },
{ text: 'Satuan', datafield: 'satuan', width: '10%', cellsalign: 'left', align: 'center' },
{ text: 'Nilai', datafield: 'nilai', width: '10%', cellsalign: 'center', align: 'center' },
{ text: 'Delete', editable: false, sortable: false, filterable: false, columntype: 'button', width: '10%', cellsrenderer: function () {
return "Delete";
}, buttonclick: function (row) {
@@ -730,9 +787,9 @@
]
});
$("#btnaddModalSpecimen").click(function() {
$("#mb_id").val('new');
$("#mb_kelompok").val('listkodespesimen');
$('#ModalMikroandBakteri').modal('show');
$("#sp_id").val('new');
$("#sp_kelompok").val('listkodespesimen');
$('#ModalSpecimen').modal('show');
});
$("#btnAddMB").click(function(){
var set01 = document.getElementById('mb_name').value;
@@ -791,6 +848,68 @@
});
}
});
$("#btnAddSP").click(function(){
var set01 = document.getElementById('sp_name').value;
var set02 = document.getElementById('sp_kategori').value;
var set03 = document.getElementById('sp_kelompok').value;
var set04 = document.getElementById('sp_id').value;
var set05 = document.getElementById('sp_satuan').value;
var set06 = document.getElementById('sp_nilai').value;
if (set01 == '' || set02 == '' || set03 == '' || set04 == '' || set05 == '' || set06 == ''){
swal({
title : 'Mohon diLengkapi',
text : 'Data Dasar Wajib di Isi',
type : 'warning',
});
} else {
$('#ModalSpecimen').modal('hide');
var form_data = new FormData();
form_data.append('name', set01);
form_data.append('category', set02);
form_data.append('kelompok', set03);
form_data.append('id', set04);
form_data.append('satuan', set05);
form_data.append('nilai', set06);
form_data.append('tabel', 'Speciment');
form_data.append('_token', '{{csrf_token()}}');
$.ajax({
url : '{{ route("exSIRAb") }}',
data : form_data,
type : 'POST',
contentType : false,
processData : false,
success : function (data) {
var status = data.status;
var message = data.message;
var icon = data.icon;
var warna = data.warna;
$("html, body").animate({ scrollTop: 0 }, "slow");
$.toast({
heading : status,
text : message,
position : 'top-right',
loaderBg : warna,
icon : icon,
hideAfter : 3000,
stack : 1
});
$("#gridbakteri").jqxGrid('updatebounddata', 'filter');
$("#gridmikroorganisme").jqxGrid('updatebounddata', 'filter');
return false;
},
error : function (xhr, status, error) {
var response = xhr.responseJSON || {};
var traceText = response.trace ? JSON.stringify(response.trace) : null;
swal({
title : response,
text : traceText,
type : 'error',
})
}
});
}
});
$("#btnAddPoli").click(function(){
var poli = document.getElementById('add_poli').value;
var subpoli = document.getElementById('add_subpoli').value;
+21
View File
@@ -100,6 +100,27 @@
@push('script')
<script type="text/javascript">
function btnisiRating(id_periksa, rating_value){
var rating_container = $('.rating-stars[data-id="' + id_periksa + '"]');
$.post('{{ route("exCekAksess") }}', { nofoto: 'isirating',id: id_periksa, rating: rating_value, _token: '{{ csrf_token() }}' }, function(data){
rating_container.html('<small class="text-success">Terima kasih atas penilaian Anda!</small>');
var stars_html = '';
for (var i = 1; i <= 5; i++) {
if (i <= rating_value) {
stars_html += '<i class="fa fa-star" style="font-size:18px; color:orange;"></i>';
} else {
stars_html += '<i class="fa fa-star-o" style="font-size:18px; color:orange;"></i>';
}
}
rating_container.html('<small class="text-muted">Rating Anda:</small><br>' + stars_html);
}).fail(function() {
swal({
title : 'Warning',
text : 'Gagal mengirim rating. Silakan coba lagi.',
type : 'error',
});
});
}
$(document).ready(function() {
$("#tgllahir").datepicker({
format: 'yyyy-mm-dd'