diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php
index 182ccff..b836b8c 100644
--- a/app/Http/Controllers/CustomerController.php
+++ b/app/Http/Controllers/CustomerController.php
@@ -168,7 +168,7 @@ class CustomerController extends Controller
$payload = [
'title' => 'Checkout '
];
- return view('guest.checkout_payment', $payload);
+ return view('guest.checkout.checkout_payment', $payload);
}
public function submitCheckout(){
diff --git a/public/js/checkout/index.js b/public/js/checkout/index.js
index 5d967b0..7260422 100644
--- a/public/js/checkout/index.js
+++ b/public/js/checkout/index.js
@@ -1,42 +1,208 @@
-
-
document.addEventListener('DOMContentLoaded', () => {
$("#cartButton").addClass('d-none');
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- if (cart.length === 0) {
- window.location.href="/"
- return
- }
- function toggleCustomerFields() {
- const selected = $('input[name="jenis_customer"]:checked').val();
+ const steps = document.querySelectorAll('.form-step');
+ const progressBar = document.getElementById('stepProgressBar');
+ let currentStep = 0;
- if (selected === 'Karyawan RSAB Harapan Kita') {
- $('.karyawan').show();
- $('.pasien').hide();
- } else if (selected === 'Keluarga Pasien / Penunggu Pasien') {
- $('.pasien').show();
- $('.karyawan').hide();
- } else {
- $('.karyawan, .pasien').hide();
- }
+ let cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
+ let checkout_biodata = JSON.parse(sessionStorage.getItem('checkout_biodata') || '{}');
+
+ if (cart.length === 0) {
+ window.location.href = "/";
+ return;
+ }
+
+ function toggleCustomerFields() {
+ const selected = $('input[name="jenis_customer"]:checked').val();
+ if (selected === 'Karyawan RSAB Harapan Kita') {
+ $('.karyawan').show();
+ $('.pasien').hide();
+ } else if (selected === 'Keluarga Pasien / Penunggu Pasien') {
+ $('.pasien').show();
+ $('.karyawan').hide();
+ } else {
+ $('.karyawan, .pasien').hide();
}
+ }
- // Jalankan saat load awal (jika radio sudah terpilih)
- toggleCustomerFields();
+ $('input[name="jenis_customer"]').on('change', toggleCustomerFields);
+ toggleCustomerFields();
- // Jalankan saat user memilih salah satu radio
- $('input[name="jenis_customer"]').on('change', function() {
- toggleCustomerFields();
+ if (typeof checkout_biodata === 'object') {
+ if (checkout_biodata.jenis_customer) {
+ $(`input[name="jenis_customer"][value="${checkout_biodata.jenis_customer}"]`).prop('checked', true);
+ }
+ $('#nama_pemesan').val(checkout_biodata.nama_pemesan);
+ $('#jenis_kelamin').val(checkout_biodata.jenis_kelamin);
+ $('#tanggal_lahir').val(checkout_biodata.tanggal_lahir);
+ $('#tinggi_badan').val(checkout_biodata.tinggi_badan);
+ $('#berat_badan').val(checkout_biodata.berat_badan);
+ $('#no_whatsapp').val(checkout_biodata.no_whatsapp);
+ $('#nama_pasien').val(checkout_biodata.nama_pasien);
+ $('#ruang_perawatan').val(checkout_biodata.ruang_perawatan);
+ $('#no_kamar').val(checkout_biodata.no_kamar);
+ $('#kelas_perawatan').val(checkout_biodata.kelas_perawatan);
+ $('#bagian_instalasi').val(checkout_biodata.bagian_instalasi);
+ $('#no_ekstensien').val(checkout_biodata.no_ekstensien);
+ }
+
+ function showStep(index) {
+ steps.forEach((step, i) => {
+ step.classList.toggle('active', i === index);
+ step.classList.toggle('d-none', i !== index);
});
+ const total = steps.length;
+ const progress = ((index + 1) / total) * 100;
+ progressBar.style.width = progress + '%';
+ progressBar.innerText = `Langkah ${index + 1} dari ${total}`;
+ }
- $("#checkoutFormFinal").on('submit', function(e){
- if(cart.length === 0){
- e.preventDefault();
- alert("Keranjang kosong. Silakan pilih menu terlebih dahulu!");
- return;
+ function isiKonfirmasi() {
+ const biodata = {
+ jenis_customer: $('input[name="jenis_customer"]:checked').val(),
+ nama_pemesan: $('#nama_pemesan').val(),
+ jenis_kelamin: $('#jenis_kelamin').val(),
+ tanggal_lahir: $('#tanggal_lahir').val(),
+ tinggi_badan: $('#tinggi_badan').val(),
+ berat_badan: $('#berat_badan').val(),
+ no_whatsapp: $('#no_whatsapp').val(),
+ nama_pasien: $('#nama_pasien').val(),
+ ruang_perawatan: $('#ruang_perawatan').val(),
+ no_kamar: $('#no_kamar').val(),
+ kelas_perawatan: $('#kelas_perawatan').val(),
+ bagian_instalasi: $('#bagian_instalasi').val(),
+ no_ekstensien: $('#no_ekstensien').val(),
+ };
+
+ sessionStorage.setItem('checkout_biodata', JSON.stringify(biodata));
+ checkout_biodata = biodata; // Update global var
+ renderCartSummary();
+ }
+
+ function renderCartSummary() {
+ const container = document.getElementById('checkout_cart_summary');
+ container.innerHTML = '';
+
+ cart.forEach((item) => {
+ const pesananList = Array.isArray(item.pesanan) ? item.pesanan : [];
+
+ let pesananHTML = '';
+ pesananList.forEach((p, i) => {
+ pesananHTML += `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
`;
+ });
+
+ const harga = checkout_biodata.jenis_customer === 'Karyawan RSAB Harapan Kita' ? item.harga_karyawan || 0 : item.harga_kp || 0;
+ const itemTotal = pesananList.reduce((sum, p) => sum + (p.jumlah * harga), 0);
+
+ const itemHTML = `
+
+
+
+

+
+
+
+
${item.nama_menu}
+
Rp ${parseInt(harga).toLocaleString('id-ID')}
+
${item.deskripsi || ''}
+ ${pesananHTML}
+
+
+
Total: Rp ${itemTotal.toLocaleString('id-ID')}
+
+
+
+
+
+
`;
+ container.insertAdjacentHTML('beforeend', itemHTML);
+ });
+ }
+
+ window.onTanggalChange = function (itemId, index) {
+ const tanggalInput = document.querySelector(`div[data-item-id='${itemId}'][data-index='${index}'] .tanggal-input`).value;
+ cart.forEach(item => {
+ if (item.id === itemId) item.pesanan[index].tgl = tanggalInput;
+ });
+ sessionStorage.setItem('cart', JSON.stringify(cart));
+ };
+
+ window.onKategoriChange = function (itemId, index) {
+ const kategori = $(`[data-item-id='${itemId}'][data-index='${index}'] .kategori-pemesanan-input`).val();
+ cart.find(item => item.id === itemId).pesanan[index].kategoriPemesanan = kategori;
+ sessionStorage.setItem('cart', JSON.stringify(cart));
+ };
+
+ window.onJumlahChange = function (itemId, index) {
+ const jumlahInput = document.querySelector(`div[data-item-id='${itemId}'][data-index='${index}'] .jumlah-input`).value;
+ if (!isNaN(jumlahInput)) {
+ cart.find(item => item.id === itemId).pesanan[index].jumlah = parseInt(jumlahInput);
+ sessionStorage.setItem('cart', JSON.stringify(cart));
+ isiKonfirmasi();
}
- document.getElementById('cart_data').value = JSON.stringify(cart)
- });
-});
+ };
+ window.addOrderDate = function(itemId) {
+ const item = cart.find(i => i.id === itemId);
+ if (item && Array.isArray(item.pesanan)) {
+ item.pesanan.push({ tgl: '', jumlah: 1, kategoriPemesanan: '' });
+ sessionStorage.setItem('cart', JSON.stringify(cart));
+ renderCartSummary();
+ }
+ }
+
+ window.removeOrderDate = function(itemId, index) {
+ const item = cart.find(i => i.id === itemId);
+
+ if (item && Array.isArray(item.pesanan) && item.pesanan.length > index) {
+ item.pesanan.splice(index, 1);
+ sessionStorage.setItem('cart', JSON.stringify(cart));
+ renderCartSummary();
+ }
+ }
+
+
+
+ document.querySelectorAll('.next-step').forEach(btn => {
+ btn.addEventListener('click', () => {
+ if (currentStep === 0) isiKonfirmasi();
+ if (currentStep < steps.length - 1) {
+ currentStep++;
+ showStep(currentStep);
+ }
+ });
+ });
+
+ document.querySelectorAll('.prev-step').forEach(btn => {
+ btn.addEventListener('click', () => {
+ if (currentStep > 0) {
+ currentStep--;
+ showStep(currentStep);
+ }
+ });
+ });
+
+ showStep(currentStep);
+ isiKonfirmasi();
+});
\ No newline at end of file
diff --git a/public/js/order_guest/checkout.js b/public/js/order_guest/checkout.js
index d31d05b..49f5d80 100644
--- a/public/js/order_guest/checkout.js
+++ b/public/js/order_guest/checkout.js
@@ -94,26 +94,7 @@ let orderIndex = 0;
}
- function addOrderDate(itemId) {
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- const item = cart.find(i => i.id === itemId);
- if (item) {
- item.pesanan.push({ tgl: '', jumlah: 1 });
- sessionStorage.setItem('cart', JSON.stringify(cart));
- renderCartList();
-
- }
- }
-
- function removeOrderDate(itemId, index) {
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- const item = cart.find(i => i.id === itemId);
- if (item && item.pesanan.length > index) {
- item.pesanan.splice(index, 1);
- sessionStorage.setItem('cart', JSON.stringify(cart));
- renderCartList();
- }
- }
+
function removeCartItem(itemId){
let cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
@@ -123,41 +104,11 @@ let orderIndex = 0;
renderCartList()
}
- function onJumlahChange(itemId, index) {
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- const jumlahInput = document.querySelector(`div[data-item-id='${itemId}'][data-index='${index}'] .jumlah-input`).value;
- if (!isNaN(jumlahInput)) {
- cart.forEach(item => {
- if (item.id === itemId) {
- item.pesanan[index].jumlah = parseInt(jumlahInput);
- }
- });
- sessionStorage.setItem('cart', JSON.stringify(cart));
- renderCartList();
- }
- }
+
- function onTanggalChange(itemId, index) {
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- const tanggalInput = document.querySelector(`div[data-item-id='${itemId}'][data-index='${index}'] .tanggal-input`).value;
- cart.forEach(item => {
- if (item.id === itemId) {
- item.pesanan[index].tgl = tanggalInput;
- }
- });
- sessionStorage.setItem('cart', JSON.stringify(cart));
- validateCheckoutButton();
- }
+
- function onKategoriChange(itemId, index) {
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- const item = cart.find(i => i.id === itemId);
- if (!item) return;
-
- const kategori = $(`[data-item-id='${itemId}'][data-index='${index}'] .kategori-pemesanan-input`).val();
- item.pesanan[index].kategoriPemesanan = kategori;
- sessionStorage.setItem('cart', JSON.stringify(cart));
- }
+
function renderCartTotalOnly() {
diff --git a/public/js/order_guest/index.js b/public/js/order_guest/index.js
index 13ef420..dec3083 100644
--- a/public/js/order_guest/index.js
+++ b/public/js/order_guest/index.js
@@ -1,13 +1,8 @@
$(document).ready(function () {
- // Auto render setiap buka offcanvas
-
- cartSidebar.addEventListener('shown.bs.offcanvas', renderCartList);
- cartSidebar.addEventListener('hidden.bs.offcanvas', function () {
- const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
- if (cart.length > 0) {
- $('#floatingCartButton').removeClass('d-none');
- }
- });
+ const cart = JSON.parse(sessionStorage.getItem('cart') || '[]');
+ if (cart.length > 0) {
+ $('#floatingCartButton').removeClass('d-none');
+ }
});
@@ -57,9 +52,9 @@
Harga
Karyawan:
-
Rp ${parseInt(menu.harga_karyawan).toLocaleString('id-ID')}
+
Rp ${parseInt(menu.harga_karyawan).toLocaleString('id-ID')}
Keluarga Pasien:
-
Rp ${parseInt(menu.harga_keluarga_pasien).toLocaleString('id-ID')}
+
Rp ${parseInt(menu.harga_keluarga_pasien).toLocaleString('id-ID')}
@@ -228,6 +223,7 @@
harga_kp : $("#cathering_order_price_keluarga_pasien").text(),
foto: $('#cathering_order_photo').attr('src'),
jenis_menu: $('#cathering_order_jenis_menu').text(),
+ deskripsi:$("#cathering_order_deskripsi").text(),
pesanan : orders
}
cart.push(orderItem)
@@ -271,6 +267,7 @@
harga_kp : $(e).data('harga_keluarga_pasien'),
foto: $(e).data('foto'),
jenis_menu: $(e).data('jenis_menu'),
+ deskripsi: $(e).data('deskripsi'),
pesanan : orders
}
cart.push(orderItem)
diff --git a/resources/views/guest/checkout/checkout_payment.blade.php b/resources/views/guest/checkout/checkout_payment.blade.php
new file mode 100644
index 0000000..24db248
--- /dev/null
+++ b/resources/views/guest/checkout/checkout_payment.blade.php
@@ -0,0 +1,153 @@
+@extends('guest.layout.main')
+@section('body_main_guests')
+
+
+
+
+@endsection
diff --git a/resources/views/guest/checkout_payment.blade.php b/resources/views/guest/checkout_payment.blade.php
deleted file mode 100644
index dc2896e..0000000
--- a/resources/views/guest/checkout_payment.blade.php
+++ /dev/null
@@ -1,131 +0,0 @@
-@extends('guest.layout.main')
-@section('body_main_guests')
-
-
-
-
-
Checkout Order
-
- Kembali ke Menu
-
-
-
-
-
-
- Sebelum melakukan checkout, silakan isi biodata Anda dengan lengkap terlebih dahulu.
-
-
-
- {{-- Form Identitas --}}
-
-
-
-
-
-@endsection