progress di customer layout
This commit is contained in:
parent
9070e548a5
commit
d9b87b8672
@ -82,8 +82,15 @@ class CustomerController extends Controller
|
||||
->get()
|
||||
->groupBy('master_menu_id');
|
||||
|
||||
$kkal = DB::connection('dbOrderGizi')
|
||||
->table('public.klasifikasi_menu_kalori as kmk')
|
||||
->join('public.kalori as k', 'k.kalori_id', 'kmk.kalori_id')
|
||||
->whereIn('kmk.master_menu_id', $menuIds)
|
||||
->select('kmk.master_menu_id', 'k.kalori_id', 'k.nilai_kalori')
|
||||
->get()
|
||||
->groupBy('master_menu_id');
|
||||
// Step 3: Gabungkan data menu + klasifikasi
|
||||
$result = collect($paginated->items())->map(function ($menu) use ($klasifikasi, $dmph) {
|
||||
$result = collect($paginated->items())->map(function ($menu) use ($klasifikasi, $dmph, $kkal) {
|
||||
return [
|
||||
'master_menu_id' => $menu->master_menu_id,
|
||||
'nama' => $menu->nama_menu,
|
||||
@ -108,6 +115,11 @@ class CustomerController extends Controller
|
||||
'tgl_harian' => $item->tgl_harian,
|
||||
];
|
||||
})->values() : [],
|
||||
'kalori' => isset($kkal[$menu->master_menu_id]) ? $kkal[$menu->master_menu_id]->map(function ($item) {
|
||||
return [
|
||||
'nilai_kalori' => $item->nilai_kalori,
|
||||
];
|
||||
})->values() : [],
|
||||
];
|
||||
});
|
||||
|
||||
@ -192,7 +204,7 @@ class CustomerController extends Controller
|
||||
}
|
||||
|
||||
public function checkout(){
|
||||
$karbohidrat = Karbohidrat::where('statusenabled', true)->select('karbohidrat_id', 'nama_karbohidrat')->get();
|
||||
$karbohidrat = Karbohidrat::where('statusenabled', true)->select('karbohidrat_id', 'nama_karbohidrat', 'nilai_kalori')->get();
|
||||
$payload = [
|
||||
'title' => 'Checkout ',
|
||||
'karbohidrat' => $karbohidrat
|
||||
|
||||
@ -43,7 +43,8 @@ class KarbohidratController extends Controller
|
||||
$payload = [
|
||||
'pegawai_id_entry' => auth()->user()->id,
|
||||
'pegawai_nama_entry' => auth()->user()->full_name,
|
||||
'nama_karbohidrat' => $data['nama_karbohidrat']
|
||||
'nama_karbohidrat' => $data['nama_karbohidrat'],
|
||||
'nilai_kalori' => $data['nilai_kalori'],
|
||||
];
|
||||
Karbohidrat::create($payload);
|
||||
};
|
||||
@ -87,6 +88,7 @@ class KarbohidratController extends Controller
|
||||
$karbohidrat = Karbohidrat::where('karbohidrat_id', $id)->first();
|
||||
$payload = [
|
||||
'nama_karbohidrat' => $request->input('nama_karbohidrat'),
|
||||
'nilai_kalori' => $request->input('nilai_kalori'),
|
||||
'pegawai_id_modified' => auth()->user()->id,
|
||||
'pegawai_nama_modified' => auth()->user()->full_name,
|
||||
'modified_at' => Carbon::now()
|
||||
|
||||
@ -16,7 +16,8 @@ class RequestKarbohidrat extends FormRequest
|
||||
{
|
||||
return [
|
||||
'data' => 'required|array|min:1',
|
||||
'data.*.nama_karbohidrat' => 'required|string'
|
||||
'data.*.nama_karbohidrat' => 'required|string',
|
||||
'data.*.nilai_kalori' => 'nullable'
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -15,7 +15,8 @@ class RequestUpdateKarbohidrat extends FormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'nama_karbohidrat' => 'required|string'
|
||||
'nama_karbohidrat' => 'required|string',
|
||||
'nilai_kalori' => 'nullable'
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@ -18,6 +18,7 @@ class Karbohidrat extends Model
|
||||
'pegawai_id_modified',
|
||||
'pegawai_nama_modified',
|
||||
'statusenabled',
|
||||
'nama_karbohidrat'
|
||||
'nama_karbohidrat',
|
||||
'nilai_kalori'
|
||||
];
|
||||
}
|
||||
|
||||
@ -22,7 +22,8 @@ class OrderDetail extends Model
|
||||
'type',
|
||||
'order_id',
|
||||
'status_order',
|
||||
'karbohidrat_id'
|
||||
'karbohidrat_id',
|
||||
'catatan'
|
||||
];
|
||||
|
||||
|
||||
|
||||
BIN
public/gambar/1xHDepvnxnHK1iO.jpg
Normal file
BIN
public/gambar/1xHDepvnxnHK1iO.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
BIN
public/gambar/Ik8t7WIWCelQ9fC.jpg
Normal file
BIN
public/gambar/Ik8t7WIWCelQ9fC.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
BIN
public/gambar/dpdkhXNJGIDL3J3.jpg
Normal file
BIN
public/gambar/dpdkhXNJGIDL3J3.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 205 KiB |
BIN
public/gambar/mIv60AZog2pP2cs.jpg
Normal file
BIN
public/gambar/mIv60AZog2pP2cs.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
BIN
public/gambar/sWOv4WuflGFxHaW.jpg
Normal file
BIN
public/gambar/sWOv4WuflGFxHaW.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 140 KiB |
@ -213,159 +213,170 @@ function renderCartSummary() {
|
||||
const container = document.getElementById('checkout_cart_summary');
|
||||
container.innerHTML = '';
|
||||
let totalKeseluruhan = 0;
|
||||
let carts = JSON.parse(sessionStorage.getItem('cart') || '[]');
|
||||
const carts = JSON.parse(sessionStorage.getItem('cart') || '[]');
|
||||
|
||||
carts.forEach((item) => {
|
||||
const pesananList = Array.isArray(item.pesanan) ? item.pesanan : [];
|
||||
let pesananHTML = '';
|
||||
let countDate = pesananList.length;
|
||||
|
||||
item?.pesanan.forEach((p, i) => {
|
||||
let selectedDate = new Date(p.tgl);
|
||||
|
||||
let now = new Date();
|
||||
let jam = now.getHours();
|
||||
let isToday = selectedDate.toDateString() === now.toDateString();
|
||||
|
||||
let disableSiang = isToday && jam >= 10;
|
||||
let disableSore = isToday && jam >= 13;
|
||||
pesananHTML += `
|
||||
<div class="row g-2 align-items-center mb-2" data-item-id="${item.id}" data-index="${i}">
|
||||
<div class="col-6 col-md-3">
|
||||
<input type="text"
|
||||
class="form-control form-control-sm tanggal-input"
|
||||
id="tanggal-${item.id}-${i}"
|
||||
readonly>
|
||||
|
||||
</div>
|
||||
<div class="col-6 col-md-3">
|
||||
<select class="form-select form-select-sm karbohidrat-input" onchange="onKarbohidratChange(${item.id}, ${i})">
|
||||
<option value="">Pilih Karbohidrat</option>
|
||||
${(karhohidrats || []).map(item =>
|
||||
`<option value="${item?.karbohidrat_id}" ${p.karbohidrat_id === item?.karbohidrat_id ? 'selected' : ''}>${item?.nama_karbohidrat}</option>`
|
||||
).join(' ')}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-12 col-md-3">
|
||||
<select class="form-select form-select-sm kategori-pemesanan-input"
|
||||
data-item-id="${item.id}"
|
||||
data-index="${i}"
|
||||
onchange="onKategoriChange(${item.id}, ${i}, ${isToday})"
|
||||
onfocus="this.dataset.previousValue = this.value"
|
||||
${item?.apakah_menu_siang || item?.apakah_menu_sore ? '' : 'disabled'}>
|
||||
|
||||
${item?.apakah_someday
|
||||
? (
|
||||
item?.apakah_menu_siang && item?.apakah_menu_sore
|
||||
? `
|
||||
<option value="Makan Siang" ${p?.kategoriPemesanan === 'Makan Siang' ? 'selected' : ''} ${disableSiang ? 'disabled' : ''}>Makan Siang</option>
|
||||
<option value="Makan Sore" ${p?.kategoriPemesanan === 'Makan Sore' ? 'selected' : ''} ${disableSore ? 'disabled' : ''}>Makan Sore</option>
|
||||
`
|
||||
: item?.apakah_menu_siang
|
||||
? `<option value="Makan Siang" selected ${disableSiang ? 'disabled' : ''}>Makan Siang</option>`
|
||||
: item?.apakah_menu_sore
|
||||
? `<option value="Makan Sore" selected ${disableSore ? 'disabled' : ''}>Makan Sore</option>`
|
||||
: `<option value="" disabled selected>Tidak tersedia</option>`
|
||||
)
|
||||
: (
|
||||
item?.apakah_menu_siang && item?.apakah_menu_sore
|
||||
? `
|
||||
<option value="Makan Siang" ${p?.kategoriPemesanan === 'Makan Siang' ? 'selected' : ''}>Makan Siang</option>
|
||||
<option value="Makan Sore" ${p?.kategoriPemesanan === 'Makan Sore' ? 'selected' : ''}>Makan Sore</option>
|
||||
`
|
||||
: item?.apakah_menu_siang
|
||||
? `<option value="Makan Siang" selected>Makan Siang</option>`
|
||||
: item?.apakah_menu_sore
|
||||
? `<option value="Makan Sore" selected>Makan Sore</option>`
|
||||
: `<option value="" disabled selected>Tidak tersedia</option>`
|
||||
)
|
||||
}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="col-6 col-md-2">
|
||||
<input type="number" class="form-control form-control-sm jumlah-input" value="${p.jumlah}"
|
||||
onchange="onJumlahChange(${item.id}, ${i})">
|
||||
</div>
|
||||
<div class="col-6 col-md-1 text-end">
|
||||
<button type="button" class="btn btn-sm btn-danger w-100 w-md-auto"
|
||||
onclick="removeOrderDate(${item.id}, ${i}, ${countDate})">
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>`;
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
const harga = checkout_biodata.jenis_customer === 'Karyawan RSAB Harapan Kita' ? item.harga_karyawan || 0 :
|
||||
item.harga_kp || 0;
|
||||
const harga = checkout_biodata.jenis_customer === 'Karyawan RSAB Harapan Kita'
|
||||
? item.harga_karyawan || 0
|
||||
: item.harga_public || 0;
|
||||
const itemTotal = pesananList.reduce((sum, p) => sum + (p.jumlah * harga), 0);
|
||||
totalKeseluruhan += itemTotal
|
||||
const itemHTML = `
|
||||
<div class="card mb-3 shadow-sm position-relative">
|
||||
<div class="row g-0">
|
||||
<div class="col-md-4 d-flex align-items-center justify-content-center p-2">
|
||||
<img src="gambar/${item.foto || 'default.jpg'}" alt="${item.nama_menu}" class="img-fluid rounded"
|
||||
style="max-height: 180px; width:auto; object-fit: cover;">
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<button type="button" class="btn btn-sm btn-outline-danger position-absolute top-0 end-0 m-2"
|
||||
onclick="removeCartItem(${item.id})">
|
||||
Hapus
|
||||
</button>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">${item.nama_menu}</h5>
|
||||
<div class="text-muted small">Rp ${parseInt(harga).toLocaleString('id-ID')}</div>
|
||||
<p class="card-text text-muted small mb-3">${item.deskripsi || ''}</p>
|
||||
totalKeseluruhan += itemTotal;
|
||||
|
||||
<div class="mb-2 small text-muted">
|
||||
<i class="fa fa-calendar-check me-1"></i>
|
||||
${
|
||||
item.apakah_someday
|
||||
? 'Tersedia setiap hari (Senin - Minggu) '
|
||||
: (item.tgl_tersedia
|
||||
? `Tersedia pada tanggal: ${item.tgl_tersedia}`
|
||||
: 'Tidak ada info tanggal tersedia'
|
||||
)
|
||||
}
|
||||
</div>
|
||||
<div class="mb-2 small text-muted">
|
||||
<i class="fa fa-utensils me-1"></i>
|
||||
Menu: <strong>${item.apakah_someday ? 'Someday' : 'Menu Normal'}</strong>
|
||||
</div>
|
||||
<div class="mb-2 small text-muted">
|
||||
<strong>Silakan isi tanggal pemesanan dan pilih karbohidrat yang diinginkan</strong>
|
||||
</div>
|
||||
${pesananHTML}
|
||||
<div class="mt-3 d-flex justify-content-between align-items-center">
|
||||
<button type="button" class="btn btn-sm btn-outline-success"
|
||||
onclick="addOrderDate(${item.id}, ${item?.apakah_menu_sore})">+ Tambah Tanggal</button>
|
||||
<div><strong>Total:</strong> <span class="text-success">Rp
|
||||
${itemTotal.toLocaleString('id-ID')}</span></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>`;
|
||||
container.insertAdjacentHTML('beforeend', itemHTML);
|
||||
pesananList.forEach((p, i) => {
|
||||
initFlatpickrTersedia(item, i);
|
||||
const selectedDate = new Date(p.tgl);
|
||||
const now = new Date();
|
||||
const isToday = selectedDate.toDateString() === now.toDateString();
|
||||
const jam = now.getHours();
|
||||
const disableSiang = isToday && jam >= 10;
|
||||
const disableSore = isToday && jam >= 13;
|
||||
const countDate = pesananList.length;
|
||||
console.log(item.apakah_someday);
|
||||
|
||||
pesananHTML += `
|
||||
<div class=" rounded p-2 mb-2" data-item-id="${item.id}" data-index="${i}">
|
||||
<div class="row g-2 align-items-center">
|
||||
|
||||
<!-- Tanggal -->
|
||||
<div class="col-12 col-md-3">
|
||||
<input type="text" class="form-control form-control-sm tanggal-input" id="tanggal-${item.id}-${i}" readonly>
|
||||
</div>
|
||||
|
||||
<!-- Karbohidrat -->
|
||||
${item.apakah_someday ? `` : `
|
||||
<div class="col-12 col-md-3">
|
||||
<select class="form-select form-select-sm karbohidrat-input" onchange="onKarbohidratChange(${item.id}, ${i})">
|
||||
<option value="">Pilih Karbohidrat</option>
|
||||
${(karhohidrats || []).map(k => `
|
||||
<option value="${k.karbohidrat_id}" ${p.karbohidrat_id === k.karbohidrat_id ? 'selected' : ''}>
|
||||
${k.nama_karbohidrat} (${k.nilai_kalori} kkal)
|
||||
</option>`).join('')}
|
||||
</select>
|
||||
</div>`}
|
||||
|
||||
<!-- Waktu Makan -->
|
||||
<div class="col-12 col-md-3">
|
||||
<select class="form-select form-select-sm kategori-pemesanan-input"
|
||||
data-item-id="${item.id}" data-index="${i}"
|
||||
onchange="onKategoriChange(${item.id}, ${i}, ${isToday})"
|
||||
onfocus="this.dataset.previousValue = this.value"
|
||||
${item.apakah_menu_siang || item.apakah_menu_sore ? '' : 'disabled'}>
|
||||
|
||||
${
|
||||
item.apakah_someday
|
||||
? (
|
||||
item.apakah_menu_siang && item.apakah_menu_sore
|
||||
? `
|
||||
<option value="Makan Siang" ${p.kategoriPemesanan === 'Makan Siang' ? 'selected' : ''} ${disableSiang ? 'disabled' : ''}>Makan Siang</option>
|
||||
<option value="Makan Sore" ${p.kategoriPemesanan === 'Makan Sore' ? 'selected' : ''} ${disableSore ? 'disabled' : ''}>Makan Sore</option>
|
||||
`
|
||||
: item.apakah_menu_siang
|
||||
? `<option value="Makan Siang" selected ${disableSiang ? 'disabled' : ''}>Makan Siang</option>`
|
||||
: item.apakah_menu_sore
|
||||
? `<option value="Makan Sore" selected ${disableSore ? 'disabled' : ''}>Makan Sore</option>`
|
||||
: `<option value="" disabled selected>Tidak tersedia</option>`
|
||||
)
|
||||
: (
|
||||
item.apakah_menu_siang && item.apakah_menu_sore
|
||||
? `
|
||||
<option value="Makan Siang" ${p.kategoriPemesanan === 'Makan Siang' ? 'selected' : ''}>Makan Siang</option>
|
||||
<option value="Makan Sore" ${p.kategoriPemesanan === 'Makan Sore' ? 'selected' : ''}>Makan Sore</option>
|
||||
`
|
||||
: item.apakah_menu_siang
|
||||
? `<option value="Makan Siang" selected>Makan Siang</option>`
|
||||
: item.apakah_menu_sore
|
||||
? `<option value="Makan Sore" selected>Makan Sore</option>`
|
||||
: `<option value="" disabled selected>Tidak tersedia</option>`
|
||||
)
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<!-- Jumlah -->
|
||||
<div class="col-6 col-md-2">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<button class="btn btn-sm btn-outline-success" onclick="decrement(${item.id}, ${i})">
|
||||
<i class="fa fa-minus"></i>
|
||||
</button>
|
||||
<input type="text" class="form-control form-control-sm text-center mx-2 jumlah-input"
|
||||
value="${p.jumlah}" readonly style="width: 70px;" id="jumlah-${item.id}-${i}">
|
||||
<button class="btn btn-sm btn-outline-success" onclick="increment(${item.id}, ${i})">
|
||||
<i class="fa fa-plus"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Hapus -->
|
||||
<div class="col-6 col-md-1 text-end">
|
||||
${countDate > 1
|
||||
? `<button class="btn btn-sm btn-danger" onclick="removeOrderDate(${item.id}, ${i}, ${countDate})">
|
||||
<i class="fa fa-trash"></i>
|
||||
</button>`
|
||||
: ''}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
});
|
||||
|
||||
const itemHTML = `
|
||||
<div class="card mb-3 shadow-sm position-relative">
|
||||
<div class="d-flex flex-column flex-md-row">
|
||||
<div class="p-2 d-flex justify-content-center align-items-center" style="flex: 0 0 300px;">
|
||||
<img src="gambar/${item.foto || 'default.jpg'}" alt="${item.nama_menu}"
|
||||
class="img-fluid rounded" style="max-height: 180px; width: 100%; object-fit: cover;">
|
||||
</div>
|
||||
|
||||
<div class="flex-grow-1 position-relative">
|
||||
<button type="button" class="btn btn-sm btn-outline-danger position-absolute top-0 end-0 m-2"
|
||||
onclick="removeCartItem(${item.id})">
|
||||
Hapus
|
||||
</button>
|
||||
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">${item.nama_menu}</h5>
|
||||
<div class="text-muted small mb-1">Rp ${parseInt(harga).toLocaleString('id-ID')}</div>
|
||||
${item.deskripsi ? `<p class="card-text text-muted small mb-2">${item.deskripsi}</p>` : ''}
|
||||
<div class="mb-2 small text-muted"><i class="fa fa-calendar-check me-1"></i>
|
||||
${item.apakah_someday
|
||||
? 'Tersedia setiap hari (Senin - Minggu)'
|
||||
: (item.tgl_tersedia ? `Tersedia pada tanggal: ${item.tgl_tersedia}` : 'Tidak ada info tanggal tersedia')}
|
||||
</div>
|
||||
<div class="mb-2 small text-muted"><i class="fa fa-utensils me-1"></i>
|
||||
Menu: <strong>${item.apakah_someday ? 'Someday' : 'Menu Normal'}</strong>
|
||||
</div>
|
||||
${item.kalori
|
||||
? `<div class="mb-2 small text-muted"><i class="fa-solid fa-bolt me-1"></i> Kalori: <strong>${item.kalori} kkal</strong></div>`
|
||||
: ''}
|
||||
<div class="mb-2 small text-muted"><strong>Silakan isi tanggal pemesanan dan pilih karbohidrat yang diinginkan</strong></div>
|
||||
${pesananHTML}
|
||||
<div class="mt-3 d-flex justify-content-between align-items-center flex-wrap gap-2">
|
||||
<button class="btn btn-sm btn-outline-success"
|
||||
onclick="addOrderDate(${item.id}, ${item.apakah_menu_sore})">
|
||||
+ Tambah Tanggal
|
||||
</button>
|
||||
<div><strong>Total:</strong> <span class="text-success">Rp ${itemTotal.toLocaleString('id-ID')}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
container.insertAdjacentHTML('beforeend', itemHTML);
|
||||
pesananList.forEach((p, i) => initFlatpickrTersedia(item, i));
|
||||
});
|
||||
|
||||
container.insertAdjacentHTML('beforeend', `
|
||||
<div class="text-end mt-4">
|
||||
<h5><strong>Total Keseluruhan:</strong> <span class="text-success">Rp ${totalKeseluruhan.toLocaleString('id-ID')}</span></h5>
|
||||
<hr>
|
||||
<h5><strong>Total Keseluruhan:</strong> <span class="text-success">Rp ${totalKeseluruhan.toLocaleString('id-ID')}</span></h5>
|
||||
</div>
|
||||
`);
|
||||
|
||||
document.getElementById('no_order_price').textContent = 'Rp ' + totalKeseluruhan.toLocaleString('id-ID')
|
||||
document.getElementById('no_order_price').textContent = 'Rp ' + totalKeseluruhan.toLocaleString('id-ID');
|
||||
}
|
||||
|
||||
// =======================
|
||||
@ -563,7 +574,7 @@ function hitungTotalHarga(){
|
||||
let total =0;
|
||||
|
||||
cart.forEach(item => {
|
||||
const harga = biodata.jenis_customer === "Karyawan RSAB Harapan Kita" ? item.harga_karyawan || 0 : item.harga_kp || 0
|
||||
const harga = biodata.jenis_customer === "Karyawan RSAB Harapan Kita" ? item.harga_karyawan || 0 : item.harga_public || 0
|
||||
const itemTotal = item.pesanan?.reduce((sum, p) => sum + (p.jumlah * harga), 0);
|
||||
total += itemTotal
|
||||
})
|
||||
@ -669,6 +680,25 @@ function initFlatpickrTersedia(item, i) {
|
||||
});
|
||||
}
|
||||
|
||||
function increment(itemId, index) {
|
||||
const input = document.getElementById(`jumlah-${itemId}-${index}`);
|
||||
input.value = parseInt(input.value || "0") + 1;
|
||||
onJumlahChange(itemId, index); // Tetap panggil function milikmu
|
||||
}
|
||||
|
||||
function decrement(itemId, index) {
|
||||
const input = document.getElementById(`jumlah-${itemId}-${index}`);
|
||||
let current = parseInt(input.value || "0");
|
||||
console.log(current);
|
||||
|
||||
if (current > 1) {
|
||||
input.value = current - 1;
|
||||
onJumlahChange(itemId, index);
|
||||
}else{
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function toggleBuktiPembayaran() {
|
||||
const metode = document.getElementById("cara_pembayaran").value;
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title:"Nilai Kalori",
|
||||
title:"Nilai Kalori (Kkal)",
|
||||
field:"nilai_kalori"
|
||||
}
|
||||
],
|
||||
|
||||
@ -8,7 +8,7 @@ function addForm(){
|
||||
<div class="col mt-2 d-flex align-items-start gap-2" id="col-${colCount}">
|
||||
<div class="form-floating flex-grow-1">
|
||||
<input type="text" class="form-control" name="data[${colCount}][nilai_kalori]" placeholder="exp : 1000" required>
|
||||
<label>Nilai Kalori</label>
|
||||
<label>Nilai Kalori (Kkal)</label>
|
||||
</div>
|
||||
<div class="invalid-feedback"></div>
|
||||
|
||||
|
||||
@ -130,6 +130,7 @@ function editKarbohidrat(e){
|
||||
new bootstrap.Modal(modalKarbohidratEdit).show();
|
||||
formKarbohidratEdit.attr('action', `/dashboard/karbohidrat/${data?.karbohidrat_id}`)
|
||||
$("#nama_karbohidrat").val(data.nama)
|
||||
$("#nilai_kalori").val(data.nilai_kalori)
|
||||
}
|
||||
|
||||
formKarbohidratEdit.on('submit', function(e){
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
formatter: function(value, row) {
|
||||
let buttons = ''
|
||||
buttons += `
|
||||
<button class="btn btn-sm btn-primary me-2" onclick="editKarbohidrat(this)" data-karbohidrat_id="${row.karbohidrat_id}" data-nama="${row?.nama_karbohidrat}">
|
||||
<button class="btn btn-sm btn-primary me-2" onclick="editKarbohidrat(this)" data-karbohidrat_id="${row.karbohidrat_id}" data-nama="${row?.nama_karbohidrat}" data-nilai_kalori="${row?.nilai_kalori}">
|
||||
<i class="fa-solid fa-pencil"></i>
|
||||
</button>
|
||||
`
|
||||
@ -46,6 +46,10 @@
|
||||
{
|
||||
title:"Nama Karbohidrat",
|
||||
field:"nama_karbohidrat"
|
||||
},
|
||||
{
|
||||
title:"Nilai Kalori (Kkal)",
|
||||
field:"nilai_kalori"
|
||||
}
|
||||
],
|
||||
});
|
||||
|
||||
@ -1,27 +1,34 @@
|
||||
let colCount = 1;
|
||||
function addForm(){
|
||||
let col = $("#col_add_karbohidrat")
|
||||
|
||||
let html = '';
|
||||
function addForm() {
|
||||
const col = $("#col_add_karbohidrat");
|
||||
|
||||
html += `
|
||||
<div class="col mt-2 d-flex align-items-start gap-2" id="col-${colCount}">
|
||||
<div class="form-floating flex-grow-1">
|
||||
<input type="text" class="form-control" name="data[${colCount}][nama_karbohidrat]" placeholder="exp : Nasi" required>
|
||||
<label>Nama Karbohidrat</label>
|
||||
</div>
|
||||
<div class="invalid-feedback"></div>
|
||||
const html = `
|
||||
<div class="row mt-2" id="col-${colCount}">
|
||||
<div class="col-6">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" name="data[${colCount}][nama_karbohidrat]" placeholder="exp : Nasi" required>
|
||||
<label>Nama Karbohidrat</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5">
|
||||
<div class="form-floating">
|
||||
<input type="number" class="form-control" name="data[${colCount}][nilai_kalori]" placeholder="exp : 120">
|
||||
<label>Nilai Kalori (Kkal)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-1 mt-2 d-flex align-items-start">
|
||||
<button type="button" class="btn btn-danger" onclick="removeCol(${colCount})">
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
<button type="button" class="btn btn-danger mt-2 me-2" onclick="removeCol(${colCount})"><i class="fa-solid fa-trash"></i></button>
|
||||
</div>
|
||||
`
|
||||
col.append(html)
|
||||
col.append(html);
|
||||
colCount++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
function removeCol(count){
|
||||
$(`#col-${count}`).remove()
|
||||
function removeCol(count) {
|
||||
$(`#col-${count}`).remove();
|
||||
}
|
||||
|
||||
|
||||
@ -5,4 +5,6 @@ const modalAddMenu = document.getElementById("modalMasterMenu")
|
||||
|
||||
|
||||
const modalEditMenu = document.getElementById('modalMasterMenuEdit');
|
||||
const formEditMenu = document.getElementById('formMasterMenuEdit')
|
||||
const formEditMenu = document.getElementById('formMasterMenuEdit');
|
||||
|
||||
const modalDetailMenu = document.getElementById('detailMenuModal')
|
||||
|
||||
@ -578,3 +578,71 @@ document.getElementById('formMasterMenuEdit').addEventListener('submit', functio
|
||||
});
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
function detailMasterMenu(e){
|
||||
const el = $(e);
|
||||
const modal = new bootstrap.Modal(modalDetailMenu);
|
||||
modal.show()
|
||||
const someday = el.data('apakah_someday');
|
||||
const siang = el.data('apakah_menu_siang');
|
||||
const sore = el.data('apakah_menu_sore');
|
||||
|
||||
const kalori = JSON.parse(decodeURIComponent(el.data('kalori')))
|
||||
const kaloriMenu = kalori.map(kal => `
|
||||
<span class="badge bg-secondary me-1 mb-1">${kal.nilai_kalori} (kkal)</span>
|
||||
`).join('');
|
||||
|
||||
const tags = JSON.parse(decodeURIComponent(el.data('klasifikasi_menu')));
|
||||
const klasifikasiMenu = tags.map(tag => `
|
||||
<span class="badge bg-secondary me-1 mb-1">${tag.nama_kategori_diet}</span>
|
||||
`).join('');
|
||||
|
||||
const tgl = JSON.parse(decodeURIComponent(el.data('tgl') || '[]'))
|
||||
const tglMenuTersedia = `
|
||||
<div class="mb-1 small text-muted">
|
||||
<i class="fa fa-calendar-check me-1"></i>
|
||||
${someday ? 'Tersedia setiap hari (Senin - Minggu)' :
|
||||
tgl.length ? `Tersedia pada tanggal: ${tgl.map(d => d.tgl_harian).join(', ')}` :
|
||||
'Tidak ada info tanggal tersedia'}
|
||||
</div>
|
||||
<div class="mb-1 small text-muted">
|
||||
<i class="fa fa-utensils me-1"></i> Menu: <strong>${someday ? 'Someday' : 'Menu Normal'}</strong>
|
||||
</div>
|
||||
<div class="mb-1 small text-muted">
|
||||
${
|
||||
siang && sore
|
||||
? '<i class="fa fa-clock me-1 text-success"></i> Tersedia untuk makan siang dan sore'
|
||||
: siang
|
||||
? '<i class="fa fa-sun me-1 text-warning"></i> Tersedia untuk makan siang'
|
||||
: sore
|
||||
? '<i class="fa fa-moon me-1 text-info"></i> Tersedia untuk makan sore'
|
||||
: '<i class="fa fa-ban me-1 text-danger"></i> Tidak tersedia untuk waktu makan apapun'
|
||||
}
|
||||
</div>
|
||||
`;
|
||||
|
||||
$('#cathering_order_photo').attr('src', `/gambar/${el.data('foto') || 'default.jpg'}`);
|
||||
$('#cathering_order_name').text(el.data('nama') || '-');
|
||||
$('#cathering_order_deskripsi').text(el.data('deskripsi') || '');
|
||||
$('#cathering_order_price_karyawan').text("Rp " + parseInt(el.data('harga_karyawan') || 0).toLocaleString('id-ID'));
|
||||
$('#cathering_order_price_public').text("Rp " + parseInt(el.data('harga_public') || 0).toLocaleString('id-ID'));
|
||||
$('#tag_klasifikasi_menu').html(`
|
||||
<div class="mb-2">
|
||||
<p class="mb-1 fw-semibold">Klasifikasi Menu:</p>
|
||||
${klasifikasiMenu || '<span class="text-muted">Tidak ada klasifikasi</span>'}
|
||||
</div>
|
||||
`);
|
||||
$('#kalori_menu').html(`
|
||||
<div class="mb-2">
|
||||
<p class="mb-1 fw-semibold">Kalori:</p>
|
||||
${kaloriMenu || '<span class="text-muted">-</span>'}
|
||||
</div>
|
||||
`);
|
||||
|
||||
$('#tgl_menu_tersedia').html(tglMenuTersedia);
|
||||
$('#apakah_someday').val(someday ? 1 : 0);
|
||||
$('#apakah_menu_siang').val(siang ? 1 : 0);
|
||||
$('#apakah_menu_sore').val(sore ? 1 : 0);
|
||||
$('#tgl_tersedia').val(el.data('tgl_tersedia'));
|
||||
}
|
||||
|
||||
@ -52,6 +52,25 @@
|
||||
<i class="fa-solid fa-trash"></i>
|
||||
</button>
|
||||
`
|
||||
buttons += `
|
||||
<button class="btn btn-sm btn-info me-2" onclick="detailMasterMenu(this)"
|
||||
data-master_menu_id="${row.master_menu_id}"
|
||||
data-nama="${row?.nama_menu}"
|
||||
data-foto="${row?.foto}"
|
||||
data-harga_public="${row?.harga_public}"
|
||||
data-harga_karyawan="${row?.harga_karyawan}"
|
||||
data-jenis_menu="${row?.jenis_menu}"
|
||||
data-apakah_someday="${row?.apakah_someday ? 1 : 0}"
|
||||
data-apakah_menu_siang="${row?.apakah_menu_siang ? 1 : 0}"
|
||||
data-apakah_menu_sore="${row?.apakah_menu_sore ? 1 : 0}"
|
||||
data-deskripsi="${row?.deskripsi}"
|
||||
data-tgl="${encodeURIComponent(JSON.stringify(row?.tgl || []))}"
|
||||
data-kalori="${encodeURIComponent(JSON.stringify(row?.kalori || []))}"
|
||||
data-klasifikasi_menu="${encodeURIComponent(JSON.stringify(row?.kategoriDiet || []))}"
|
||||
>
|
||||
<i class="fa-solid fa-circle-info"></i>
|
||||
</button>
|
||||
`
|
||||
return `
|
||||
<div class="d-flex space-x">
|
||||
${buttons}
|
||||
|
||||
@ -85,8 +85,9 @@
|
||||
}
|
||||
|
||||
|
||||
let html = '<div class="container"><div class="row row-cols-1 row-cols-md-2 g-4">';
|
||||
let html = '<div class="container"><div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 row-cols-lg-4 g-3">';
|
||||
menus.forEach(menu => {
|
||||
|
||||
html += `
|
||||
<div class="col-md-3 mb-4">
|
||||
<div class="card h-100 shadow-sm p-2 rounded-4">
|
||||
@ -135,25 +136,39 @@
|
||||
<div class="col-12 fw-semibold">Harga</div>
|
||||
<div class="col-6">Karyawan:</div>
|
||||
<div class="col-6 text-end fw-semibold">Rp ${parseInt(menu.harga_karyawan).toLocaleString('id-ID')}</div>
|
||||
<div class="col-6">Keluarga Pasien:</div>
|
||||
<div class="col-6 text-end fw-semibold">Rp ${parseInt(menu.harga_keluarga_pasien).toLocaleString('id-ID')}</div>
|
||||
<div class="col-6">Public:</div>
|
||||
<div class="col-6 text-end fw-semibold">Rp ${parseInt(menu.harga_public).toLocaleString('id-ID')}</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Kategori Diet (Badge) -->
|
||||
<div class="mb-3">
|
||||
<div class="mb-1">
|
||||
${(menu.klasifikasiMenu || [])
|
||||
.slice(0, 2)
|
||||
.map(tag => {
|
||||
const name = tag.nama_kategori_diet || '';
|
||||
const truncated = name.length > 12 ? name.substring(0, 12) + '...' : name;
|
||||
return `<span class="badge bg-secondary me-1 mb-1" title="${name}">${truncated}</span>`;
|
||||
return `<span class="badge bg-secondary me-1 mb-1" title="${name}">${truncated} </span>`;
|
||||
}).join('')}
|
||||
${(menu.klasifikasiMenu || []).length > 2
|
||||
? `<span class="badge bg-secondary">+${(menu.klasifikasiMenu.length - 2)} lainnya</span>`
|
||||
: ''}
|
||||
</div>
|
||||
|
||||
<!-- Kalori (Badge) -->
|
||||
<div class="mb-2">
|
||||
${(menu.kalori || [])
|
||||
.slice(0, 2)
|
||||
.map(kkal => {
|
||||
const name = kkal.nilai_kalori || '';
|
||||
const truncated = name.length > 12 ? name.substring(0, 12) + '...' : name;
|
||||
return `<span class="badge bg-success me-1 mb-1" title="${name}">${truncated} kkal</span>`;
|
||||
}).join('')}
|
||||
${(menu.kalori || []).length > 2
|
||||
? `<span class="badge bg-secondary">+${(menu.klasifikasiMenu.length - 2)} lainnya</span>`
|
||||
: ''}
|
||||
</div>
|
||||
|
||||
<!-- Tombol Order -->
|
||||
<div class="d-flex p-2 mt-auto">
|
||||
<button class="btn btn-outline-success w-50 me-2"
|
||||
@ -161,11 +176,12 @@
|
||||
data-id="${menu.master_menu_id || menu.master_paket_menu_id}"
|
||||
data-nama_menu="${menu.nama}"
|
||||
data-harga_karyawan="${menu.harga_karyawan}"
|
||||
data-harga_keluarga_pasien="${menu.harga_keluarga_pasien}"
|
||||
data-harga_public="${menu.harga_public}"
|
||||
data-jenis_menu="${menu.jenis_menu}"
|
||||
data-deskripsi="${menu.deskripsi}"
|
||||
data-klasifikasi_menu="${(menu.klasifikasiMenu || []).map(tag => tag.nama_kategori_diet).join(', ')}"
|
||||
data-tgl_tersedia="${(menu.dmph || []).map(tgl => tgl.tgl_harian).join(', ')}"
|
||||
data-kalori="${(menu.kalori || []).map(kkal => kkal.nilai_kalori).join(', ')}"
|
||||
data-foto="${menu.foto}"
|
||||
data-apakah_menu_sore="${menu.apakah_menu_sore}"
|
||||
data-apakah_menu_siang="${menu.apakah_menu_siang}"
|
||||
@ -178,11 +194,12 @@
|
||||
data-id="${menu.master_menu_id ?? menu.master_paket_menu_id}"
|
||||
data-nama_menu="${menu.nama}"
|
||||
data-harga_karyawan="${menu.harga_karyawan}"
|
||||
data-harga_keluarga_pasien="${menu.harga_keluarga_pasien}"
|
||||
data-harga_public="${menu.harga_public}"
|
||||
data-jenis_menu="${menu.jenis_menu}"
|
||||
data-deskripsi="${menu.deskripsi}"
|
||||
data-klasifikasi_menu="${(menu.klasifikasiMenu || []).map(tag => tag.nama_kategori_diet).join(', ')}"
|
||||
data-tgl_tersedia="${(menu.dmph || []).map(tgl => tgl.tgl_harian).join(', ')}"
|
||||
data-kalori="${(menu.kalori || []).map(kkal => kkal.nilai_kalori).join(', ')}"
|
||||
data-foto="${menu.foto}"
|
||||
data-apakah_menu_sore="${menu.apakah_menu_sore}"
|
||||
data-apakah_menu_siang="${menu.apakah_menu_siang}"
|
||||
@ -233,7 +250,18 @@
|
||||
const modalCheckout = $("#checkoutModal")
|
||||
function orderMenu(e) {
|
||||
const el = $(e);
|
||||
|
||||
$("#scroll-top").addClass('d-none');
|
||||
const tags = (el.data('klasifikasi_menu') || '').split(',').filter(Boolean).map(tag => tag.trim());
|
||||
const kaloriRaw = el.data('kalori');
|
||||
let kalori = [];
|
||||
if(Array.isArray(kaloriRaw)){
|
||||
kalori = kaloriRaw.map(k => String(k))
|
||||
}else if(typeof kaloriRaw === 'string'){
|
||||
kalori = kaloriRaw.split(',').map(k => k.trim())
|
||||
}else if(kaloriRaw !== undefined && kaloriRaw !== null){
|
||||
kalori = [String(kaloriRaw)]
|
||||
}
|
||||
const someday = el.data('apakah_someday');
|
||||
const siang = el.data('apakah_menu_siang');
|
||||
const sore = el.data('apakah_menu_sore');
|
||||
@ -242,6 +270,10 @@
|
||||
<span class="badge bg-secondary me-1 mb-1">${tag}</span>
|
||||
`).join('');
|
||||
|
||||
const resultKkal = kalori.length > 0
|
||||
? kalori.map(kkal => `<span class="badge bg-success me-1 mb-1">${kkal} Kkal</span>`).join('')
|
||||
: '<small class="text-muted">Tidak ada data kalori</small>';
|
||||
|
||||
const tglMenuTersedia = `
|
||||
<div class="mb-1 small text-muted">
|
||||
<i class="fa fa-calendar-check me-1"></i>
|
||||
@ -272,9 +304,10 @@
|
||||
$('#cathering_order_jenis_menu').val(el.data('jenis_menu'));
|
||||
$('#cathering_order_deskripsi').text(el.data('deskripsi') || '');
|
||||
$('#cathering_order_price_karyawan').text("Rp " + parseInt(el.data('harga_karyawan') || 0).toLocaleString('id-ID'));
|
||||
$('#cathering_order_price_keluarga_pasien').text("Rp " + parseInt(el.data('harga_keluarga_pasien') || 0).toLocaleString('id-ID'));
|
||||
$('#cathering_order_price_public').text("Rp " + parseInt(el.data('harga_public') || 0).toLocaleString('id-ID'));
|
||||
$('#tag_klasifikasi_menu').html(klasifikasiMenu);
|
||||
$('#tgl_menu_tersedia').html(tglMenuTersedia);
|
||||
$('#kalori_menu').html(resultKkal);
|
||||
$('#apakah_someday').val(someday ? 1 : 0);
|
||||
$('#apakah_menu_siang').val(siang ? 1 : 0);
|
||||
$('#apakah_menu_sore').val(sore ? 1 : 0);
|
||||
@ -351,6 +384,7 @@
|
||||
apakah_menu_sore: $('#apakah_menu_sore').val() === "1" ? true: false,
|
||||
apakah_someday: $('#apakah_someday').val() === "1" ? true: false,
|
||||
tgl_tersedia: $('#tgl_tersedia').val(),
|
||||
kalori: $('#kalori').text(),
|
||||
pesanan : orders
|
||||
}
|
||||
cart.push(orderItem)
|
||||
@ -387,7 +421,7 @@
|
||||
id_menu : idMenu,
|
||||
nama_menu : namaMenu,
|
||||
harga_karyawan : $(e).data('harga_karyawan'),
|
||||
harga_kp : $(e).data('harga_keluarga_pasien'),
|
||||
harga_public : $(e).data('harga_public'),
|
||||
foto: $(e).data('foto'),
|
||||
jenis_menu: $(e).data('jenis_menu'),
|
||||
deskripsi: $(e).data('deskripsi'),
|
||||
@ -395,6 +429,7 @@
|
||||
apakah_menu_sore: $(e).data('apakah_menu_sore'),
|
||||
apakah_someday: $(e).data('apakah_someday'),
|
||||
tgl_tersedia: $(e).data('tgl_tersedia'),
|
||||
kalori: $(e).data('kalori'),
|
||||
pesanan : orders
|
||||
}
|
||||
cart.push(orderItem)
|
||||
|
||||
@ -99,12 +99,18 @@
|
||||
{
|
||||
title: "Tgl Antar",
|
||||
field: 'tgl_antar',
|
||||
|
||||
},
|
||||
{
|
||||
title: "Waktu Pemesanan",
|
||||
field: 'type',
|
||||
sortable: true,
|
||||
},
|
||||
{
|
||||
title: "Catatan",
|
||||
field: 'catatan',
|
||||
sortable: true,
|
||||
},
|
||||
|
||||
],
|
||||
});
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<div class="col">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" name="data[0][nilai_kalori]" placeholder="exp : 1000" required>
|
||||
<label>Niali Kalori</label>
|
||||
<label>Nilai Kalori (Kkal)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div id="col_add_kalori"></div>
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<div class="col">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" name="nilai_kalori" id="nilai_kalori_edit" placeholder="Nasi" required>
|
||||
<label>Nilai Kalori</label>
|
||||
<label>Nilai Kalori (Kkal)</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -15,14 +15,20 @@
|
||||
<div class="modal-body">
|
||||
<div class="container" id="container_create">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="col-6">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" name="data[0][nama_karbohidrat]" placeholder="exp : Nasi" required>
|
||||
<label>Nama Karbohidrat</label>
|
||||
</div>
|
||||
</div>
|
||||
<div id="col_add_karbohidrat"></div>
|
||||
<div class="col-6">
|
||||
<div class="form-floating">
|
||||
<input type="number" class="form-control" name="data[0][nilai_kalori]" placeholder="exp : 3000" >
|
||||
<label>Nilai Kalori (Kkal)</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="col_add_karbohidrat"></div>
|
||||
<button type="button" class="btn btn-outline-primary btn-sm mt-2" onclick="addForm()">
|
||||
+ Tambah Karbohidrat
|
||||
</button>
|
||||
|
||||
@ -17,12 +17,18 @@
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<div class="col-6">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" name="nama_karbohidrat" id="nama_karbohidrat" placeholder="Nasi" required>
|
||||
<label>Nama Karbohidrat</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" name="nilai_kalori" id="nilai_kalori" placeholder="exp : 300" required>
|
||||
<label>Nilai Kalori (Kkal)</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
</div>
|
||||
@include('dashboard.master.menu.modal.add')
|
||||
@include('dashboard.master.menu.modal.edit')
|
||||
@include('dashboard.master.menu.modal.detail')
|
||||
<!-- JS scripts -->
|
||||
<script src="{{ ver('/js/menu/_init.js') }}"></script>
|
||||
<script src="{{ ver('/js/menu/dt.js') }}"></script>
|
||||
|
||||
41
resources/views/dashboard/master/menu/modal/detail.blade.php
Normal file
41
resources/views/dashboard/master/menu/modal/detail.blade.php
Normal file
@ -0,0 +1,41 @@
|
||||
<div class="modal fade" id="detailMenuModal" tabindex="-1" aria-labelledby="detailMenuModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg modal-dialog-centered">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title fw-bold" id="detailMenuModalLabel">Detail Catering RSAB Harapan Kita</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="row g-3">
|
||||
<div class="col-md-4 text-center">
|
||||
<input type="hidden" id="apakah_someday">
|
||||
<input type="hidden" id="apakah_menu_siang">
|
||||
<input type="hidden" id="apakah_menu_sore">
|
||||
<input type="hidden" id="tgl_tersedia">
|
||||
<img id="cathering_order_photo" class="img-fluid rounded shadow" style="max-height: 370px; width:270px;" alt="Foto Menu">
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<h5 id="cathering_order_name" class="mb-2 fw-bold"></h5>
|
||||
<div id="tgl_menu_tersedia" class="mb-2"></div>
|
||||
|
||||
<div class="row text-muted small mb-2">
|
||||
<div class="col-6">Harga Karyawan:</div>
|
||||
<div class="col-6 text-end"><span class="fw-semibold" id="cathering_order_price_karyawan"></span></div>
|
||||
<div class="col-6">Harga Public:</div>
|
||||
<div class="col-6 text-end"><span class="fw-semibold" id="cathering_order_price_public"></span></div>
|
||||
</div>
|
||||
|
||||
<p id="cathering_order_deskripsi" class="text-muted small mb-2"></p>
|
||||
<div id="tag_klasifikasi_menu" class="mb-2"></div>
|
||||
<div id="kalori_menu" class="mb-2"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Tutup</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -2,7 +2,7 @@
|
||||
<div class="row g-3 mb-4">
|
||||
<input type="hidden" name="cart_data" id="cart_data">
|
||||
<div class="col-md-6">
|
||||
<label for="exampleInputEmail1" class="form-label">Apakah Anda Seorang ?</label>
|
||||
<label for="exampleInputEmail1" class="form-label">Apakah Anda Seorang ? <span class="text-danger">*</span></label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="jenis_customer" id="radio_karyawan" value="Karyawan RSAB Harapan Kita" required>
|
||||
<label class="form-check-label" for="radio_karyawan" >
|
||||
@ -23,7 +23,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label for="exampleInputEmail1" class="form-label">Jenis Kelamin</label>
|
||||
<label for="exampleInputEmail1" class="form-label">Jenis Kelamin <span class="text-danger">*</span></label>
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="jenis_kelamin" value="Laki-laki" required>
|
||||
<label class="form-check-label">
|
||||
@ -38,15 +38,15 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Nama Pemesan</label>
|
||||
<label class="form-label">Nama Pemesan <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control" name="nama_pemesan" id="nama_pemesan" required>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">No. Whatsapp</label>
|
||||
<label class="form-label">No. Whatsapp <span class="text-danger">*</span></label>
|
||||
<input type="number" class="form-control" name="no_whatsapp" id="no_whatsapp" required>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<label class="form-label">Email</label>
|
||||
<label class="form-label">Email <span class="text-danger">*</span></label>
|
||||
<input type="email" class="form-control" name="email" id="email" required>
|
||||
</div>
|
||||
{{-- <div class="col-md-6">
|
||||
@ -65,11 +65,11 @@
|
||||
|
||||
{{-- Pasien --}}
|
||||
<div class="col-md-6 pasien">
|
||||
<label class="form-label">Nama Pasien</label>
|
||||
<label class="form-label">Nama Pasien <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control pasien-field" name="nama_pasien" id="nama_pasien">
|
||||
</div>
|
||||
<div class="col-md-6 pasien">
|
||||
<label class="form-label">Ruang Perawatan</label>
|
||||
<label class="form-label">Ruang Perawatan <span class="text-danger">*</span></label>
|
||||
<select class="form-select pasien-field" name="ruang_perawatan" id="ruang_perawatan">
|
||||
<option value="">Pilih...</option>
|
||||
<option value="Ruang Kenanga">Ruang Kenanga</option>
|
||||
@ -85,12 +85,12 @@
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 pasien">
|
||||
<label class="form-label">Nomor Kamar Perawatan</label>
|
||||
<label class="form-label">Nomor Kamar Perawatan <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control pasien-field" name="no_kamar" id="no_kamar">
|
||||
</div>
|
||||
|
||||
<div class="col-md-6 pasien">
|
||||
<label class="form-label">Kelas Perawatan </label>
|
||||
<label class="form-label">Kelas Perawatan <span class="text-danger">*</span></label>
|
||||
<select class="form-select pasien-field" name="kelas_perawatan" id="kelas_perawatan">
|
||||
<option value="">Pilih...</option>
|
||||
<option value="VIP A">VIP A</option>
|
||||
@ -103,7 +103,7 @@
|
||||
|
||||
{{-- Karyawan --}}
|
||||
<div class="col-md-6 karyawan">
|
||||
<label class="form-label">Bagian /Instalasi</label>
|
||||
<label class="form-label">Bagian /Instalasi <span class="text-danger">*</span></label>
|
||||
<input type="text" class="form-control karyawan-field" name="bagian_instalasi" id="bagian_instalasi">
|
||||
</div>
|
||||
<div class="col-md-6 karyawan">
|
||||
@ -116,7 +116,7 @@
|
||||
{{-- Umum --}}
|
||||
|
||||
<div class="col-md-12 umum">
|
||||
<label class="form-label">Alamat</label>
|
||||
<label class="form-label">Alamat <span class="text-danger">*</span></label>
|
||||
<textarea class="form-control umum-field" name="alamat" id="alamat"></textarea>
|
||||
</div>
|
||||
{{-- End Umum --}}
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
<input type="hidden" id="apakah_menu_siang">
|
||||
<input type="hidden" id="apakah_menu_sore">
|
||||
<input type="hidden" id="tgl_tersedia">
|
||||
<img id="cathering_order_photo" class="img-fluid rounded shadow" style="max-height: 170px;" alt="Foto Menu">
|
||||
<img id="cathering_order_photo" class="img-fluid rounded shadow" style="max-height: 370px; width:270px;" alt="Foto Menu">
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<h5 id="cathering_order_name" class="mb-2 fw-bold"></h5>
|
||||
@ -23,13 +23,14 @@
|
||||
<div class="row text-muted small mb-2">
|
||||
<div class="col-6">Harga Karyawan:</div>
|
||||
<div class="col-6 text-end"><span class="fw-semibold" id="cathering_order_price_karyawan"></span></div>
|
||||
<div class="col-6">Harga Keluarga Pasien:</div>
|
||||
<div class="col-6 text-end"><span class="fw-semibold" id="cathering_order_price_keluarga_pasien"></span></div>
|
||||
<div class="col-6">Harga Public:</div>
|
||||
<div class="col-6 text-end"><span class="fw-semibold" id="cathering_order_price_public"></span></div>
|
||||
</div>
|
||||
|
||||
<p id="cathering_order_deskripsi" class="text-muted small mb-2"></p>
|
||||
<div id="tag_klasifikasi_menu" class="mb-2"></div>
|
||||
|
||||
<div id="kalori_menu" class="mb-2"></div>
|
||||
|
||||
<input type="hidden" id="cathering_order_menu_id">
|
||||
<input type="hidden" id="cathering_order_jenis_menu">
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user