PROGRESS
@ -28,7 +28,7 @@ class CustomerController extends Controller
|
|||||||
public function dataOrder(){
|
public function dataOrder(){
|
||||||
$search = request('search');
|
$search = request('search');
|
||||||
$jenis_menu = request('jenis_menu');
|
$jenis_menu = request('jenis_menu');
|
||||||
$perPage = request()->get('per_page', 12);
|
$perPage = request()->get('per_page', 50);
|
||||||
$tanggal_awal = (int) request('tanggal_awal');
|
$tanggal_awal = (int) request('tanggal_awal');
|
||||||
$tanggal_akhir = (int) request('tanggal_akhir');
|
$tanggal_akhir = (int) request('tanggal_akhir');
|
||||||
|
|
||||||
@ -57,8 +57,7 @@ class CustomerController extends Controller
|
|||||||
// Step 2: Query menu
|
// Step 2: Query menu
|
||||||
$menuQuery = DB::connection('dbOrderGizi')
|
$menuQuery = DB::connection('dbOrderGizi')
|
||||||
->table('public.master_menu as mn')
|
->table('public.master_menu as mn')
|
||||||
->where('mn.statusenabled', true);
|
->where(['mn.statusenabled' => true, 'mn.status' => true]);
|
||||||
|
|
||||||
if (!empty($jenis_menu)) {
|
if (!empty($jenis_menu)) {
|
||||||
$menuQuery->where('mn.jenis_menu', 'ILIKE', '%' . $jenis_menu . '%');
|
$menuQuery->where('mn.jenis_menu', 'ILIKE', '%' . $jenis_menu . '%');
|
||||||
}
|
}
|
||||||
@ -96,7 +95,6 @@ class CustomerController extends Controller
|
|||||||
)->get();
|
)->get();
|
||||||
|
|
||||||
$menuIds = $menuItems->pluck('master_menu_id')->toArray();
|
$menuIds = $menuItems->pluck('master_menu_id')->toArray();
|
||||||
|
|
||||||
if (empty($menuIds)) {
|
if (empty($menuIds)) {
|
||||||
return self::emptyMenuResponse($perPage);
|
return self::emptyMenuResponse($perPage);
|
||||||
}
|
}
|
||||||
@ -127,21 +125,17 @@ class CustomerController extends Controller
|
|||||||
if($isSomeday) return 'Menu Sameday';
|
if($isSomeday) return 'Menu Sameday';
|
||||||
|
|
||||||
if(empty($tglList)) return '-';
|
if(empty($tglList)) return '-';
|
||||||
$days = collect($tglList)->map(fn($t) => substr($t, -2))
|
|
||||||
|
$days = collect($tglList)
|
||||||
|
->map(fn($t) => substr($t, -2))
|
||||||
->unique()
|
->unique()
|
||||||
->sort()
|
->sort()
|
||||||
->values();
|
->values();
|
||||||
$groups = [];
|
|
||||||
foreach ($days as $d) {
|
// Jika semua tanggal memiliki digit terakhir yang sama, gabungkan
|
||||||
$lastDigit = substr($d, -1);
|
$tanggal = implode(',', $days->toArray());
|
||||||
$groups[$lastDigit][] = $d;
|
|
||||||
}
|
return 'Menu Normal Tersedia Tanggal ' . $tanggal;
|
||||||
// buat label
|
|
||||||
$labels = [];
|
|
||||||
foreach ($groups as $list) {
|
|
||||||
$labels[] = 'Menu Normal Tersedia Tanggal ' . implode(',', $list);
|
|
||||||
}
|
|
||||||
return implode(' & ', $labels);
|
|
||||||
}
|
}
|
||||||
// Step 4: Transform response
|
// Step 4: Transform response
|
||||||
$enriched = $menuItems->map(function ($menu) use ($klasifikasi, $dmph, $kkal) {
|
$enriched = $menuItems->map(function ($menu) use ($klasifikasi, $dmph, $kkal) {
|
||||||
|
|||||||
@ -58,7 +58,7 @@ class MenuController extends Controller
|
|||||||
'status' => true,
|
'status' => true,
|
||||||
'apakah_someday' => $data['kategori_menu'] === "Menu Normal" ? false : true,
|
'apakah_someday' => $data['kategori_menu'] === "Menu Normal" ? false : true,
|
||||||
'apakah_menu_siang' => (isset($data['apakah_menu_siang']) && $data['apakah_menu_siang'] === "iya") ? true : false,
|
'apakah_menu_siang' => (isset($data['apakah_menu_siang']) && $data['apakah_menu_siang'] === "iya") ? true : false,
|
||||||
'apakah_menu_sore' => (isset($data['apakah_menu_sore']) && $data['apakah_menu_sore'] === "iya") ? true : false,
|
'apakah_menu_sore' => (isset($data['apakah_menu_sore']) && $data['apakah_menu_sore'] === "iya") ? true : false
|
||||||
];
|
];
|
||||||
|
|
||||||
if($data['foto']){
|
if($data['foto']){
|
||||||
@ -115,7 +115,6 @@ class MenuController extends Controller
|
|||||||
]);
|
]);
|
||||||
} catch (\Throwable $th) {
|
} catch (\Throwable $th) {
|
||||||
DB::connection('dbOrderGizi')->rollBack();
|
DB::connection('dbOrderGizi')->rollBack();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
'status' => false,
|
'status' => false,
|
||||||
'message' => 'Menu gagal ditambahkan!',
|
'message' => 'Menu gagal ditambahkan!',
|
||||||
@ -169,7 +168,7 @@ class MenuController extends Controller
|
|||||||
'status' => true,
|
'status' => true,
|
||||||
'apakah_someday' => request('kategori_menu') === "Menu Normal" ? false : true,
|
'apakah_someday' => request('kategori_menu') === "Menu Normal" ? false : true,
|
||||||
'apakah_menu_siang' => (request('apakah_menu_siang') && request('apakah_menu_siang') === "iya") ? true : false,
|
'apakah_menu_siang' => (request('apakah_menu_siang') && request('apakah_menu_siang') === "iya") ? true : false,
|
||||||
'apakah_menu_sore' => (request('apakah_menu_sore') && request('apakah_menu_sore') === "iya") ? true : false,
|
'apakah_menu_sore' => (request('apakah_menu_sore') && request('apakah_menu_sore') === "iya") ? true : false
|
||||||
];
|
];
|
||||||
if(request()->hasFile('foto')){
|
if(request()->hasFile('foto')){
|
||||||
$imageName = Str::random(15) . '.' . request('foto')->getClientOriginalExtension();
|
$imageName = Str::random(15) . '.' . request('foto')->getClientOriginalExtension();
|
||||||
@ -342,4 +341,18 @@ class MenuController extends Controller
|
|||||||
'message' => 'berhasil mendapatkan data'
|
'message' => 'berhasil mendapatkan data'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function switchMenu(string $id, $status){
|
||||||
|
$data = Menu::where('master_menu_id', $id)->first();
|
||||||
|
$statusResult = $status === "true" ? true : false;
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'status' => $statusResult
|
||||||
|
]);
|
||||||
|
return response()->json([
|
||||||
|
'status' => true,
|
||||||
|
'message' => 'berhasil memperbarui data'
|
||||||
|
], 200);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -268,6 +268,7 @@ class PesananController extends Controller
|
|||||||
$q->where('status_order', 'Lunas');
|
$q->where('status_order', 'Lunas');
|
||||||
});
|
});
|
||||||
$tanggal = request('tanggal');
|
$tanggal = request('tanggal');
|
||||||
|
$status = request('status');
|
||||||
if(!empty($tanggal)){
|
if(!empty($tanggal)){
|
||||||
$flattened = is_array($tanggal[0]) ? Arr::flatten($tanggal) : $tanggal;
|
$flattened = is_array($tanggal[0]) ? Arr::flatten($tanggal) : $tanggal;
|
||||||
$data->whereIn('tgl_antar', $flattened);
|
$data->whereIn('tgl_antar', $flattened);
|
||||||
@ -275,6 +276,9 @@ class PesananController extends Controller
|
|||||||
$now = Carbon::now()->format('Y-m-d');
|
$now = Carbon::now()->format('Y-m-d');
|
||||||
$data->where('tgl_antar', $now);
|
$data->where('tgl_antar', $now);
|
||||||
}
|
}
|
||||||
|
// if($status !== "all"){
|
||||||
|
// $data->where('status_order', $status);
|
||||||
|
// }
|
||||||
$data = $data->get();
|
$data = $data->get();
|
||||||
|
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
|||||||
@ -28,7 +28,7 @@ class Menu extends Model
|
|||||||
'status',
|
'status',
|
||||||
'apakah_someday',
|
'apakah_someday',
|
||||||
'apakah_menu_siang',
|
'apakah_menu_siang',
|
||||||
'apakah_menu_sore'
|
'apakah_menu_sore',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function klasifikasiMenuKalori(){
|
public function klasifikasiMenuKalori(){
|
||||||
|
|||||||
@ -130,3 +130,11 @@
|
|||||||
.tagify__dropdown {
|
.tagify__dropdown {
|
||||||
z-index: 99999 !important;
|
z-index: 99999 !important;
|
||||||
}
|
}
|
||||||
|
.row-disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Kunci interaksi di semua kolom kecuali Action */
|
||||||
|
.row-disabled td:not(:first-child) {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|||||||
BIN
public/gambar/3XWTtco35MMnkOm.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
public/gambar/FkUlOiP2ayCcmLN.png
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
public/gambar/JYsT1u3OO6nh65P.jpg
Normal file
|
After Width: | Height: | Size: 576 KiB |
BIN
public/gambar/PFIxh3Ip7dHHnGV.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
public/gambar/REZDDmhE7ldVSfH.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/gambar/ZzpfD5sC5NSJ8mF.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
public/gambar/iTTNxFmBk06B5aE.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
public/gambar/odUYjkIt3BueoMr.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
public/gambar/p2jZoa7Uo1U1gpz.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
public/gambar/r2Hx6t7TtfFpwRl.png
Normal file
|
After Width: | Height: | Size: 155 KiB |
BIN
public/gambar/tLwK04DBgwSFXc2.jpg
Normal file
|
After Width: | Height: | Size: 122 KiB |
@ -387,8 +387,12 @@ function editMasterMenu(e) {
|
|||||||
$("#harga_karyawan_edit").val(dataOld.harga_karyawan);
|
$("#harga_karyawan_edit").val(dataOld.harga_karyawan);
|
||||||
$("#jenis_makanan_edit").val(dataOld.jenis_menu);
|
$("#jenis_makanan_edit").val(dataOld.jenis_menu);
|
||||||
$("#deskripsi_edit").val(dataOld.deskripsi);
|
$("#deskripsi_edit").val(dataOld.deskripsi);
|
||||||
|
let kategoriValue = 'Menu Normal';
|
||||||
|
if (dataOld?.apakah_someday) {
|
||||||
|
kategoriValue = 'Sameday';
|
||||||
|
}
|
||||||
|
|
||||||
$(`input[name="kategori_menu"][value="${dataOld.apakah_someday ? 'Sameday' : 'Menu Normal'}"]`).prop('checked', true);
|
$(`input[name="kategori_menu"][value="${kategoriValue}"]`).prop('checked', true);
|
||||||
$(`input[name="apakah_menu_siang"][value="${dataOld.apakah_menu_siang ? 'iya' : ''}"]`).prop('checked', true);
|
$(`input[name="apakah_menu_siang"][value="${dataOld.apakah_menu_siang ? 'iya' : ''}"]`).prop('checked', true);
|
||||||
$(`input[name="apakah_menu_sore"][value="${dataOld.apakah_menu_sore ? 'iya' : ''}"]`).prop('checked', true);
|
$(`input[name="apakah_menu_sore"][value="${dataOld.apakah_menu_sore ? 'iya' : ''}"]`).prop('checked', true);
|
||||||
|
|
||||||
@ -601,9 +605,10 @@ function detailMasterMenu(e){
|
|||||||
const sore = el.data('apakah_menu_sore');
|
const sore = el.data('apakah_menu_sore');
|
||||||
|
|
||||||
const kalori = JSON.parse(decodeURIComponent(el.data('kalori')))
|
const kalori = JSON.parse(decodeURIComponent(el.data('kalori')))
|
||||||
const kaloriMenu = kalori.map(kal => `
|
|
||||||
|
const kaloriMenu = kalori.length > 0 && kalori.every(item => item.kalori_id !== null) ? kalori.map(kal => `
|
||||||
<span class="badge bg-secondary me-1 mb-1">${kal.nilai_kalori} (kkal)</span>
|
<span class="badge bg-secondary me-1 mb-1">${kal.nilai_kalori} (kkal)</span>
|
||||||
`).join('');
|
`).join('') :'-';
|
||||||
|
|
||||||
const tags = JSON.parse(decodeURIComponent(el.data('klasifikasi_menu')));
|
const tags = JSON.parse(decodeURIComponent(el.data('klasifikasi_menu')));
|
||||||
const klasifikasiMenu = tags.map(tag => `
|
const klasifikasiMenu = tags.map(tag => `
|
||||||
@ -645,10 +650,11 @@ function detailMasterMenu(e){
|
|||||||
${klasifikasiMenu || '<span class="text-muted">Tidak ada klasifikasi</span>'}
|
${klasifikasiMenu || '<span class="text-muted">Tidak ada klasifikasi</span>'}
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
|
|
||||||
$('#kalori_menu').html(`
|
$('#kalori_menu').html(`
|
||||||
<div class="mb-2">
|
<div class="mb-2">
|
||||||
<p class="mb-1 fw-semibold">Kalori:</p>
|
<p class="mb-1 fw-semibold">Kalori:</p>
|
||||||
${kaloriMenu || '<span class="text-muted">-</span>'}
|
${kaloriMenu}
|
||||||
</div>
|
</div>
|
||||||
`);
|
`);
|
||||||
|
|
||||||
|
|||||||
@ -9,11 +9,10 @@
|
|||||||
searchOnEnterKey: false,
|
searchOnEnterKey: false,
|
||||||
searchHighlight: true,
|
searchHighlight: true,
|
||||||
pagination: true,
|
pagination: true,
|
||||||
serverSide:true,
|
serverSide: true,
|
||||||
pageSize: 10,
|
pageSize: 10,
|
||||||
pageList: [10, 20, 30, 40, 50, 100, 200],
|
pageList: [10, 20, 30, 40, 50, 100, 200],
|
||||||
cookie: true,
|
cookie: true,
|
||||||
cookieIdTable: "datatableMasterMenu",
|
|
||||||
icons: {
|
icons: {
|
||||||
refresh: "fas fa-sync-alt", // atau ganti ke icon lain
|
refresh: "fas fa-sync-alt", // atau ganti ke icon lain
|
||||||
columns: "fas fa-th-large"
|
columns: "fas fa-th-large"
|
||||||
@ -24,6 +23,10 @@
|
|||||||
title: "Action",
|
title: "Action",
|
||||||
field: 'master_menu_id',
|
field: 'master_menu_id',
|
||||||
formatter: function(value, row) {
|
formatter: function(value, row) {
|
||||||
|
let statusLabel = '';
|
||||||
|
if (!row.status) {
|
||||||
|
statusLabel = `<div class="text-danger small mb-1"><strong>Tidak Aktif</strong></div>`;
|
||||||
|
}
|
||||||
|
|
||||||
let buttons = ''
|
let buttons = ''
|
||||||
buttons += `
|
buttons += `
|
||||||
@ -72,7 +75,13 @@
|
|||||||
<i class="fa-solid fa-circle-info"></i>
|
<i class="fa-solid fa-circle-info"></i>
|
||||||
</button>
|
</button>
|
||||||
`
|
`
|
||||||
|
buttons +=`
|
||||||
|
<div class="form-check form-switch" data-master_menu_id="${row.master_menu_id}">
|
||||||
|
<input class="form-check-input" type="checkbox" role="switch" id="switchActiveMenu" ${row?.status ? 'checked' : ''}>
|
||||||
|
</div>
|
||||||
|
`
|
||||||
return `
|
return `
|
||||||
|
${statusLabel}
|
||||||
<div class="d-flex space-x">
|
<div class="d-flex space-x">
|
||||||
${buttons}
|
${buttons}
|
||||||
</div>
|
</div>
|
||||||
@ -114,7 +123,6 @@
|
|||||||
title: "Waktu Makan",
|
title: "Waktu Makan",
|
||||||
field: "master_menu_id",
|
field: "master_menu_id",
|
||||||
formatter: function (value, row) {
|
formatter: function (value, row) {
|
||||||
|
|
||||||
if (row?.apakah_menu_siang && row?.apakah_menu_sore) {
|
if (row?.apakah_menu_siang && row?.apakah_menu_sore) {
|
||||||
return `Makan Siang & Sore`;
|
return `Makan Siang & Sore`;
|
||||||
} else if (row?.apakah_menu_siang) {
|
} else if (row?.apakah_menu_siang) {
|
||||||
@ -139,4 +147,55 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
],
|
],
|
||||||
|
rowStyle: function(row, index) {
|
||||||
|
if (!row.status) {
|
||||||
|
return {
|
||||||
|
classes: 'row-disabled'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return {};
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Tambahkan event listener pada elemen induk (misalnya, body)
|
||||||
|
document.body.addEventListener('click', function(event) {
|
||||||
|
if (event.target.type === 'checkbox' && event.target.id === 'switchActiveMenu') {
|
||||||
|
const isChecked = event.target.checked;
|
||||||
|
const masterMenuId = event.target.closest('.form-check').getAttribute('data-master_menu_id');
|
||||||
|
toggleActiveMenu(masterMenuId, isChecked);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Fungsi untuk menangani aktivasi atau deaktivasi menu
|
||||||
|
function toggleActiveMenu(masterMenuId, isChecked) {
|
||||||
|
fetch(`/dashboard/menu/switch/${masterMenuId}/${isChecked}`, {
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': document.querySelector('input[name="_token"]').value,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(response => {
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error('Network response was not ok');
|
||||||
|
}
|
||||||
|
return response.json();
|
||||||
|
})
|
||||||
|
.then(data => {
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'success',
|
||||||
|
title: 'Berhasil',
|
||||||
|
text: 'Status Menu diperbarui',
|
||||||
|
timer: 1500,
|
||||||
|
showConfirmButton: false,
|
||||||
|
backdrop: true,
|
||||||
|
});
|
||||||
|
datatableMasterMenu.bootstrapTable('refresh');
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error('Error:', err);
|
||||||
|
Swal.fire({
|
||||||
|
icon: 'error',
|
||||||
|
title: 'Gagal',
|
||||||
|
text: err.message || 'Terjadi kesalahan pada server.',
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|||||||
@ -4,7 +4,7 @@ $(document).ready(function(){
|
|||||||
filterState ={
|
filterState ={
|
||||||
jenis_menu: jenisMenuAwal,
|
jenis_menu: jenisMenuAwal,
|
||||||
search:'',
|
search:'',
|
||||||
per_page: 12,
|
per_page: 50,
|
||||||
}
|
}
|
||||||
|
|
||||||
fetchMenu(filterState)
|
fetchMenu(filterState)
|
||||||
|
|||||||
@ -59,7 +59,7 @@
|
|||||||
|
|
||||||
let params = new URLSearchParams({
|
let params = new URLSearchParams({
|
||||||
page: filter.page || 1,
|
page: filter.page || 1,
|
||||||
per_page: filter.per_page || 12,
|
per_page: filter.per_page || 50,
|
||||||
search: filter.search || '',
|
search: filter.search || '',
|
||||||
jenis_menu: filter.jenis_menu || '',
|
jenis_menu: filter.jenis_menu || '',
|
||||||
tanggal_awal: filter.tanggal_awal || '',
|
tanggal_awal: filter.tanggal_awal || '',
|
||||||
@ -119,8 +119,8 @@
|
|||||||
scheduleInfo = `<div style="font-size:.80rem">Dipesan maksimal <strong>H-1</strong> sebelum pukul <strong>13.00 WIB</strong></div>`;
|
scheduleInfo = `<div style="font-size:.80rem">Dipesan maksimal <strong>H-1</strong> sebelum pukul <strong>13.00 WIB</strong></div>`;
|
||||||
}
|
}
|
||||||
html += `
|
html += `
|
||||||
<div class="col-12 mb-2 col-12 col-xs-12 col-sm-12 col-md-12 col-lg-12 mb-2 mb-2">
|
<div class="col-12 mb-2 col-12 col-xs-12 col-sm-12 col-md-12 col-lg-12">
|
||||||
<div class="text-white text-center rounded-pill py-1 px-2" style="font-size:.95rem; background-color: #2d996cff;">
|
<div class="text-white text-center rounded-5 py-1 px-2" style="font-size:.95rem; background-color: #2d996cff;">
|
||||||
<strong>${label}</strong>
|
<strong>${label}</strong>
|
||||||
<div class="mt-1 text-center" style="font-size:.80rem;">
|
<div class="mt-1 text-center" style="font-size:.80rem;">
|
||||||
${scheduleInfo}
|
${scheduleInfo}
|
||||||
@ -250,16 +250,17 @@
|
|||||||
|
|
||||||
html += `<div class="col-md-12 d-flex justify-content-between align-items-center mt-3">`;
|
html += `<div class="col-md-12 d-flex justify-content-between align-items-center mt-3">`;
|
||||||
|
|
||||||
if(res.data.total > 12){
|
if(res.data.total > 50){
|
||||||
html +=`<div>
|
html +=`<div>
|
||||||
<label for="perPageSelect" class="me-2">Tampilkan:</label>
|
<label for="perPageSelect" class="me-2">Tampilkan:</label>
|
||||||
<select id="perPageSelect" class="form-select form-select-sm d-inline-block w-auto" onchange="changePerPage(this)">
|
<select id="perPageSelect" class="form-select form-select-sm d-inline-block w-auto" onchange="changePerPage(this)">
|
||||||
<option value="12" ${filter.per_page == 12 ? 'selected' : ''}>12</option>
|
|
||||||
<option value="24" ${filter.per_page == 24 ? 'selected' : ''}>24</option>
|
|
||||||
<option value="50" ${filter.per_page == 50 ? 'selected' : ''}>50</option>
|
<option value="50" ${filter.per_page == 50 ? 'selected' : ''}>50</option>
|
||||||
|
<option value="65" ${filter.per_page == 65 ? 'selected' : ''}>65</option>
|
||||||
|
<option value="70" ${filter.per_page == 70 ? 'selected' : ''}>70</option>
|
||||||
</select>
|
</select>
|
||||||
</div>`
|
</div>`
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pagination buttons
|
// Pagination buttons
|
||||||
if (res.data.last_page > 1) {
|
if (res.data.last_page > 1) {
|
||||||
html += `
|
html += `
|
||||||
|
|||||||
@ -122,6 +122,7 @@ document.getElementById('formActionApproveBillingOrder').addEventListener('submi
|
|||||||
});
|
});
|
||||||
getReminderKonfirmasiPesanan()
|
getReminderKonfirmasiPesanan()
|
||||||
getReminderVerifikasiMakanan()
|
getReminderVerifikasiMakanan()
|
||||||
|
getReminderVerifikasiMakananOffCanvas()
|
||||||
datatablePending.bootstrapTable('refresh');
|
datatablePending.bootstrapTable('refresh');
|
||||||
modalActionApproveBillingnOrder.removeEventListener('hidden.bs.modal', handler); // ✅ pakai DOM
|
modalActionApproveBillingnOrder.removeEventListener('hidden.bs.modal', handler); // ✅ pakai DOM
|
||||||
};
|
};
|
||||||
|
|||||||
@ -63,7 +63,11 @@ function initPekerjaanDt(selectDate = []) {
|
|||||||
datatableOfPekerjaan.bootstrapTable('destroy').bootstrapTable({
|
datatableOfPekerjaan.bootstrapTable('destroy').bootstrapTable({
|
||||||
url: "/dashboard/datatable/pekerjaan",
|
url: "/dashboard/datatable/pekerjaan",
|
||||||
method: 'get',
|
method: 'get',
|
||||||
queryParams: params => ({ ...params, tanggal: selectDate }),
|
queryParams: params => ({
|
||||||
|
...params,
|
||||||
|
tanggal: selectDate,
|
||||||
|
// status: $('#filterStatus').val()
|
||||||
|
}),
|
||||||
showColumns: true,
|
showColumns: true,
|
||||||
showColumnsToggleAll: true,
|
showColumnsToggleAll: true,
|
||||||
showRefresh: true,
|
showRefresh: true,
|
||||||
@ -80,6 +84,9 @@ function initPekerjaanDt(selectDate = []) {
|
|||||||
icons: { refresh: "fas fa-sync-alt", columns: "fas fa-th-large" },
|
icons: { refresh: "fas fa-sync-alt", columns: "fas fa-th-large" },
|
||||||
columns: getTableColumns(),
|
columns: getTableColumns(),
|
||||||
});
|
});
|
||||||
|
$('#filterStatus').on('change', function () {
|
||||||
|
datatableOfPekerjaan.bootstrapTable('refresh');
|
||||||
|
});
|
||||||
|
|
||||||
// Checkbox Handling
|
// Checkbox Handling
|
||||||
$(document).off('click', '#selectAll').on('click', '#selectAll', function () {
|
$(document).off('click', '#selectAll').on('click', '#selectAll', function () {
|
||||||
|
|||||||
@ -101,12 +101,6 @@
|
|||||||
Menu Normal
|
Menu Normal
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="radio" name="data[0][kategori_menu]" id="" value="Menu MCU" required>
|
|
||||||
<label class="form-check-label" for="">
|
|
||||||
Menu MCU
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label for="exampleInputEmail1" class="form-label">Waktu Menu Tersedia</label>
|
<label for="exampleInputEmail1" class="form-label">Waktu Menu Tersedia</label>
|
||||||
|
|||||||
@ -96,12 +96,6 @@
|
|||||||
Menu Normal
|
Menu Normal
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-check">
|
|
||||||
<input class="form-check-input" type="radio" name="data[0][kategori_menu]" id="" value="Menu MCU" required>
|
|
||||||
<label class="form-check-label" for="">
|
|
||||||
Menu MCU
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<label for="exampleInputEmail1" class="form-label">Waktu Menu Tersedia</label>
|
<label for="exampleInputEmail1" class="form-label">Waktu Menu Tersedia</label>
|
||||||
|
|||||||
@ -65,8 +65,7 @@
|
|||||||
<li class="menu-item {{ Request::is('dashboard/pending') ? 'active' : '' }}">
|
<li class="menu-item {{ Request::is('dashboard/pending') ? 'active' : '' }}">
|
||||||
<a href="/dashboard/pending" class="menu-link">
|
<a href="/dashboard/pending" class="menu-link">
|
||||||
<i class="menu-icon tf-icons bx bx-collection"></i>
|
<i class="menu-icon tf-icons bx bx-collection"></i>
|
||||||
<div data-i18n="Basic">Konfirmasi Pesanan
|
<div data-i18n="Basic">Konfirmasi Pesanan<span class="badge badge-canter rounded-circle bg-danger ms-1 mb-1 fs-6" id="konfirmasi_pesanan"></span>
|
||||||
<span class="badge badge-canter rounded-circle bg-danger ms-2 mb-1" id="konfirmasi_pesanan"></span>
|
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@ -33,9 +33,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<!-- Table -->
|
<!-- Table -->
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-hover" id="datatableVerifikasiMakananOffcanvas"></table>
|
{{-- <div id="toolbarPekerjaan" class="d-flex align-items-center gap-2 d-none">
|
||||||
|
<label for="filterStatus" class="mb-0 fw-semibold">Status:</label>
|
||||||
|
<select class="form-select form-select-sm " id="filterStatus" style="width: 200px; margin-bottom:-50px;">
|
||||||
|
<option value="all">Pilih Status</option>
|
||||||
|
<option value="Semua">Semua</option>
|
||||||
|
<option value="Pending">Pending</option>
|
||||||
|
<option value="Selesai">Selesai</option>
|
||||||
|
</select>
|
||||||
|
</div> --}}
|
||||||
|
|
||||||
|
|
||||||
|
<table id="datatableVerifikasiMakananOffcanvas"></table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -17,7 +17,7 @@ use Illuminate\Support\Facades\Route;
|
|||||||
// Route::get('/blank', function () {
|
// Route::get('/blank', function () {
|
||||||
// return view('layouts.blank');
|
// return view('layouts.blank');
|
||||||
// });
|
// });
|
||||||
Route::get('/login', [AuthController::class, 'index'])->name('login');
|
Route::get('/login', [AuthController::class, 'index'])->name('login')->middleware('guest');
|
||||||
Route::post('/login', [AuthController::class, 'authanticate']);
|
Route::post('/login', [AuthController::class, 'authanticate']);
|
||||||
|
|
||||||
|
|
||||||
@ -40,6 +40,7 @@ Route::group(['middleware' => ['auth']], function(){
|
|||||||
Route::get('/option/kalori', [KaloriController::class, 'option']);
|
Route::get('/option/kalori', [KaloriController::class, 'option']);
|
||||||
|
|
||||||
Route::resource('/menu', MenuController::class);
|
Route::resource('/menu', MenuController::class);
|
||||||
|
Route::get('/menu/switch/{id}/{status}', [MenuController::class, 'switchMenu']);
|
||||||
Route::get('/menu/{id}/detail', [MenuController::class, 'getDataDetail']);
|
Route::get('/menu/{id}/detail', [MenuController::class, 'getDataDetail']);
|
||||||
Route::get('/datatable/menu', [MenuController::class, 'datatable']);
|
Route::get('/datatable/menu', [MenuController::class, 'datatable']);
|
||||||
|
|
||||||
|
|||||||