diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index bffe3a2..b6318f3 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -3,8 +3,34 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Auth; class AuthController extends Controller { - // + public function index(){ + $data = [ + 'title' => 'Login Admin | Order Gizi' + ]; + return view('auth.index', $data); + } + + public function authanticate(){ + $credentials = request()->validate([ + 'username' => 'required', + 'password' => 'required' + ]); + if(Auth::attempt($credentials)){ + request()->session()->regenerate(); + return redirect()->intended('/dashboard'); + } + return back()->with(['alertError' => 'Terdapat kesalahan disini!']); + } + + public function logout() + { + Auth::logout(); + request()->session()->invalidate(); + request()->session()->regenerateToken(); + return redirect('/login'); + } } diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php index a188877..2d11a99 100644 --- a/app/Http/Controllers/CustomerController.php +++ b/app/Http/Controllers/CustomerController.php @@ -185,16 +185,16 @@ class CustomerController extends Controller $today = now()->toDateString(); $jumlahHariIni = Order::whereDate('entry_at', $today)->count(); $urutan = $jumlahHariIni + 1; - $noOrder = 'TX/CT/GIZI/' . now()->year .'/'. now()->month .'/' . str_pad($urutan, 4, '0', STR_PAD_LEFT); + $noOrder = 'TX/CT/GIZI/' . now()->year .'/'. now()->month .'/' . now()->day .'/' . str_pad($urutan, 4, '0', STR_PAD_LEFT); $payloadOrder = [ 'no_order' => $noOrder, 'jenis_customer' => $jenisCustomer, 'nama_pemesan' => $biodataResult['nama_pemesan'], 'jenis_kelamin' => $biodataResult['jenis_kelamin'], - 'tanggal_lahir' => $biodataResult['tanggal_lahir'], + // 'tanggal_lahir' => $biodataResult['tanggal_lahir'], 'no_wa' => $biodataResult['no_whatsapp'], - 'tinggi_badan' => $biodataResult['tinggi_badan'], - 'berat_badan' => $biodataResult['berat_badan'], + // 'tinggi_badan' => $biodataResult['tinggi_badan'], + // 'berat_badan' => $biodataResult['berat_badan'], 'nama_pasien' => $biodataResult['nama_pasien'], 'ruang_perawatan' => $biodataResult['ruang_perawatan'], 'no_kamar_perawatan' => $biodataResult['no_kamar'], @@ -209,19 +209,19 @@ class CustomerController extends Controller $payloadOrderDetail = [ 'order_id' => $order->order_id, 'harga_satuan' => $jenisCustomer === "Karyawan RSAB Harapan Kita" ? $cart['harga_karyawan'] : $cart['harga_kp'], + 'status_order' => "Pending" ]; foreach ($cart['pesanan'] as $value) { $payloadOrderDetail['jumlah'] = $value['jumlah']; $payloadOrderDetail['tgl_antar'] = $value['tgl']; $payloadOrderDetail['type'] = $value['kategoriPemesanan']; + if($cart['jenis_menu'] === "paket"){ + $payloadOrderDetail['master_paket_menu_id'] = $cart['id_menu']; + }else{ + $payloadOrderDetail['master_menu_id'] = $cart['id_menu']; + } + OrderDetail::create($payloadOrderDetail); } - if($cart['jenis_menu'] === "paket"){ - $payloadOrderDetail['master_paket_menu_id'] = $cart['id_menu']; - }else{ - $payloadOrderDetail['master_menu_id'] = $cart['id_menu']; - } - - OrderDetail::create($payloadOrderDetail); } //code... DB::commit(); @@ -283,4 +283,80 @@ class CustomerController extends Controller ]; return view('guest.success_page', $payload); } + + public function checkOrder(){ + $payload = [ + 'title' => 'Check Order' + ]; + return view('guest.check_order.index', $payload); + } + + public function searchOrder(){ + $noOrder = request('no_order'); + $order = DB::connection('dbOrderGizi') + ->table('public.order as o') + ->leftJoin('public.order_detail as od', 'od.order_id', '=', 'o.order_id') + ->leftJoin('public.master_menu as mm', 'mm.master_menu_id', '=', 'od.master_menu_id') + ->leftJoin('public.master_paket_menu as mpm', 'mpm.master_paket_menu_id', '=', 'od.master_paket_menu_id') + ->where('o.no_order', 'ILIKE', '%' . $noOrder . '%') + ->select( + 'o.*', + 'od.order_detail_id', + 'od.jumlah', + 'od.tgl_antar', + 'od.harga_satuan', + DB::raw("COALESCE(mm.nama_menu, mpm.nama_paket) as nama_item"), + DB::raw("COALESCE(mm.foto, mpm.foto) as foto"), + ) + ->get(); + + if ($order->isEmpty()) { + return response()->json([ + 'status' => false, + 'message' => 'Pesanan tidak ditemukan' + ], 404); + } + + + $data = $order->first(); + $result = [ + 'order_id' => $data->order_id, + 'nama_pemesan' => $data->nama_pemesan, + 'jenis_kelamin' => $data->jenis_kelamin, + 'tgl_pesanan' => $data->entry_at, + 'tgl_pembayaran' => $data->tgl_pembayaran, + 'bukti_bayar' => $data->bukti_pembayaran, + 'cara_pembayaran' => $data->cara_pembayaran, + 'status_order' => $data->status_order, + 'total_harga' => $data->total_harga, + 'no_order' => $data->no_order, + 'jenis_customer' => $data->jenis_customer, + 'no_wa' => $data->no_wa, + // pasien + 'nama_pasien' => $data->nama_pasien, + 'kelas_perawatan' => $data->kelas_perawatan, + 'no_kamar_perawatan' => $data->no_kamar_perawatan, + 'ruang_perawatan' => $data->ruang_perawatan, + // karyawan + 'no_ekstensien' => $data->no_ekstensien, + 'bagian_instalasi' => $data->bagian_instalasi, + 'items' => $order->map(function ($item) { + return [ + 'order_detail_id' => $item->order_detail_id, + 'nama_item' => $item->nama_item, + 'tgl_antar' => $item->tgl_antar, + 'foto' => $item->foto, + 'jumlah' => $item->jumlah, + 'harga_satuan' => $item->harga_satuan, + // tambahkan field tambahan jika diperlukan + ]; + })->values(), + ]; + + + return response()->json([ + 'status' => true, + 'data' => $result, + ], 200); + } } diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php new file mode 100644 index 0000000..3dfcee5 --- /dev/null +++ b/app/Http/Controllers/DashboardController.php @@ -0,0 +1,15 @@ + 'Dashboard' + ]; + return view('dashboard.index', $data); + } +} diff --git a/app/Http/Controllers/MenuController.php b/app/Http/Controllers/MenuController.php index df4da82..2239ec5 100644 --- a/app/Http/Controllers/MenuController.php +++ b/app/Http/Controllers/MenuController.php @@ -15,7 +15,7 @@ class MenuController extends Controller $payload = [ 'title' => 'Master Menu || Order Gizi', ]; - return view('master.menu.index', $payload); + return view('dashboard.master.menu.index', $payload); } /** diff --git a/app/Http/Controllers/PesananController.php b/app/Http/Controllers/PesananController.php new file mode 100644 index 0000000..613b0a5 --- /dev/null +++ b/app/Http/Controllers/PesananController.php @@ -0,0 +1,67 @@ + 'Pesanan Pending' + ]; + return view('dashboard.pesanan.pending.index', $payload); + } + + /** + * Show the form for creating a new resource. + */ + public function create() + { + // + } + + /** + * Store a newly created resource in storage. + */ + public function store(Request $request) + { + // + } + + /** + * Display the specified resource. + */ + public function show(string $id) + { + // + } + + /** + * Show the form for editing the specified resource. + */ + public function edit(string $id) + { + // + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, string $id) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy(string $id) + { + // + } +} diff --git a/app/Models/OrderDetail.php b/app/Models/OrderDetail.php index f2e50fc..750d861 100644 --- a/app/Models/OrderDetail.php +++ b/app/Models/OrderDetail.php @@ -20,6 +20,7 @@ class OrderDetail extends Model 'jumlah', 'tgl_antar', 'type', - 'order_id' + 'order_id', + 'status_order' ]; } diff --git a/app/Models/User.php b/app/Models/User.php index 749c7b7..1d658f9 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -12,6 +12,11 @@ class User extends Authenticatable /** @use HasFactory<\Database\Factories\UserFactory> */ use HasFactory, Notifiable; + + protected $connection = 'dbAuth'; + protected $table = 'public.users'; + public $timestamps = false; + protected $primaryKey = "id"; /** * The attributes that are mass assignable. * @@ -19,6 +24,7 @@ class User extends Authenticatable */ protected $fillable = [ 'name', + 'username', 'email', 'password', ]; diff --git a/public/asset_guests/vendor/js/checkOrderHref.js b/public/asset_guests/vendor/js/checkOrderHref.js new file mode 100644 index 0000000..24f0faa --- /dev/null +++ b/public/asset_guests/vendor/js/checkOrderHref.js @@ -0,0 +1,3 @@ +function checkOrderHref(){ + window.location.href = '/check-order' +} diff --git a/public/gambar/PAKET 1 (KENTANG GORENG, STEAK DAGING, MIX VEGETABLES, SAUS).jpg b/public/gambar/PAKET 1 (KENTANG GORENG, STEAK DAGING, MIX VEGETABLES, SAUS).jpg new file mode 100644 index 0000000..1fe92ed Binary files /dev/null and b/public/gambar/PAKET 1 (KENTANG GORENG, STEAK DAGING, MIX VEGETABLES, SAUS).jpg differ diff --git a/public/gambar/PAKET 1 (NASI PUTIH, STEAK DAGING, MIX VEGETABLES, SAUS).jpg b/public/gambar/PAKET 1 (NASI PUTIH, STEAK DAGING, MIX VEGETABLES, SAUS).jpg new file mode 100644 index 0000000..9ace676 Binary files /dev/null and b/public/gambar/PAKET 1 (NASI PUTIH, STEAK DAGING, MIX VEGETABLES, SAUS).jpg differ diff --git a/public/js/checkout/index.js b/public/js/checkout/index.js index d73d23e..49d6ac0 100644 --- a/public/js/checkout/index.js +++ b/public/js/checkout/index.js @@ -18,6 +18,8 @@ document.addEventListener('DOMContentLoaded', () => { return; } + + // Setup button step document.querySelectorAll('.next-step').forEach(btn => { btn.addEventListener('click', async () => { @@ -58,7 +60,6 @@ document.addEventListener('DOMContentLoaded', () => { document.getElementById('no_order_display').textContent = order_id }); - // ======================= // FUNGSI STEP // ======================= @@ -105,11 +106,13 @@ if (typeof checkout_biodata === 'object') { if (checkout_biodata.jenis_customer) { $(`input[name="jenis_customer"][value="${checkout_biodata.jenis_customer}"]`).prop('checked', true); } + if(checkout_biodata.jenis_kelamin){ + $(`input[name="jenis_kelamin"][value="${checkout_biodata.jenis_kelamin}"]`).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); + // $('#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); @@ -123,10 +126,10 @@ 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(), + jenis_kelamin: $('input[name="jenis_kelamin"]:checked').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(), @@ -194,13 +197,17 @@ function renderCartSummary() { const itemTotal = pesananList.reduce((sum, p) => sum + (p.jumlah * harga), 0); totalKeseluruhan += itemTotal const itemHTML = ` -
+ style="max-height: 180px; width:auto; object-fit: cover;">
Please sign-in to your account
+ @if (session()->has('alertError')) +