add query total pembelian berdasarkan produk, remove footer, edit navbar, edit print, edit primary to warning

auth
Akhmad Sofyan 2024-01-20 00:31:20 +07:00
parent 7e31d7bb0a
commit dff9222ef4
5 changed files with 134 additions and 66 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Kasir;
use App\Http\Controllers\Controller;
use App\Models\DetailPesanan;
use App\Models\KelompokKategori;
use App\Models\Produk;
use Illuminate\Http\Request;
@ -15,8 +16,19 @@ class Transaksi extends Controller
{
$orderCode = "ORD -" . strtoupper(random_str(6, random_str()));
$KelompokKategori = KelompokKategori::with('kelompokKategoriPivot.produk')->get();
foreach ($KelompokKategori as $item) {
foreach ($item->kelompokKategoriPivot as $kelompokKategoriPivot) {
// Query tambahan untuk mendapatkan total pembelian berdasarkan produk
$totalPembelianByProduk[$kelompokKategoriPivot->produk->id] = DetailPesanan::
select('detail_pesanans.produk_id', DB::raw('SUM(detail_pesanans.jumlah_produk) as total_beli'))
->where('detail_pesanans.produk_id', '=', $kelompokKategoriPivot->produk->id)
->groupBy('detail_pesanans.produk_id')
->first();
}
}
$produk = Produk::all();
return view('pages.Kasir.transaksi', compact('orderCode', 'KelompokKategori', 'produk'));
return view('pages.Kasir.transaksi', compact('orderCode', 'KelompokKategori', 'produk', 'totalPembelianByProduk'));
}
public function store(Request $request)
@ -24,10 +36,12 @@ class Transaksi extends Controller
$request->validate([
'orderCode' => 'required',
'namaPemesan' => 'required',
'nomorMeja' => 'required',
'orderMenus' => 'required',
], [
'orderCode.required' => 'Kode pesanan tidak boleh kosong',
'namaPemesan.required' => 'Nama pemesan tidak boleh kosong',
'nomorMeja.required' => 'Nomor meja tidak boleh kosong',
'orderMenus.required' => 'Pesanan tidak boleh kosong',
]);
@ -43,6 +57,7 @@ class Transaksi extends Controller
$pesananDatas = [
'kode_pesanan' => $request->orderCode,
'nama_pemesan' => $request->namaPemesan,
'nomor_meja' => $request->nomorMeja,
'status_pesanan' => '1',
'tanggal_pesanan' => date('Y-m-d H:i:s'),
'keterangan_pesanan' => $request->keteranganPesanan ?? null,

View File

@ -1,10 +1,9 @@
<!-- Main Footer -->
<footer class="main-footer">
{{-- <footer class="main-footer">
<!-- To the right -->
<div class="float-right d-none d-sm-inline">
Anything you want
version 1.0.0
</div>
<!-- Default to the left -->
<strong>Copyright &copy; 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a>.</strong> All rights
reserved.
</footer>
<strong>Copyright &copy; 2014-2021 <a href="https://adminlte.io">AdminLTE.io</a>.</strong> All rights reserved.
</footer> --}}

View File

@ -1,11 +1,11 @@
<!-- Navbar -->
<nav class="main-header navbar navbar-expand-lg navbar-light navbar-warning">
<div class="container" style="display: contents">
<a href="#" class="navbar-brand">
<span class="brand-text font-weight-light">Sepiring Telur Keriting</span>
<a href="/" class="navbar-brand">
<span class="brand-text font-weight-bold ml-2" style="color: rgba(62, 62, 62, 0.526)">Sepiring Telur Keriting</span>
</a>
<div class="collapse navbar-collapse order-3" id="navbarCollapse">
{{-- <div class="collapse navbar-collapse order-3" id="navbarCollapse">
<!-- Left navbar links -->
<ul class="navbar-nav">
<li class="nav-item">
@ -66,13 +66,13 @@
</div>
</div>
</form>
</div>
</div> --}}
<!-- Right navbar links -->
<ul class="order-1 order-md-3 navbar-nav navbar-no-expand ml-auto">
<!-- Messages Dropdown Menu -->
<li class="nav-item">
<a class="nav-link" id="full-screen" data-widget="control-sidebar" data-slide="true" href="#"
<a class="nav-link" id="full-screen" data-widget="control-sidebar" data-slide="true" href="javascript:void(0)"
role="button">
<i class="fas fa-th-large"></i>
Fullscreen

View File

@ -74,10 +74,14 @@
<span>
<p>{{ tanggal_indonesia($pesanan->tanggal_pesanan) }}</p>
<p>{{ date('H:i', strtotime($pesanan->tanggal_pesanan)) }}</p>
<p>Meja: {{ $pesanan->nomor_meja }}</p>
<p></p>
</span>
<span style="text-align: right">
<p>{{ $pesanan->kode_pesanan }}</p>
<p>{{ $pesanan->user->name }}</p>
<p>Kasir: {{ $pesanan->user->name }}</p>
<p>Order: {{ $pesanan->nama_pemesan }}</p>
<p></p>
</span>
</span>
<p></p>

View File

@ -23,7 +23,7 @@
<div class="container" style="display: contents;">
<div class="row" style="padding: 5px">
<div class="col-lg-8">
<div class="card card-primary card-outline card-outline-tabs">
<div class="card card-warning card-outline card-outline-tabs">
<div class="card-header p-0 border-bottom-0">
<ul class="nav nav-tabs" id="custom-tabs-four-tab" role="tablist">
@foreach ($KelompokKategori as $key => $item)
@ -72,7 +72,7 @@
aria-controls="vert-tabs-free"
aria-selected="false">Free</a>
<div class="card card-primary card-outline"
<div class="card card-warning card-outline"
style="margin-top: auto;margin-right: 5px;height: auto;">
<div class="card-header">
<h5 class="card-title m-0" id="nama-paket">
@ -86,7 +86,7 @@
</li>
</ul>
</div>
<a class="btn btn-primary disabled"
<a class="btn btn-warning disabled"
id="select-ordered-menus" onclick="cariPaket()">Pilih
Paket Menu
</a>
@ -104,14 +104,14 @@
@if ($kelompokKategoriPivot->produk->urutan == 1)
<div class="col-lg-4">
<div
class="card card-primary card-outline">
class="card card-warning card-outline">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<img style="width: 100%;height: 200px;object-fit: cover;"
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
@ -120,7 +120,7 @@
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary"
<a class="btn btn-warning"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
@ -138,14 +138,14 @@
@if ($kelompokKategoriPivot->produk->urutan == 2)
<div class="col-lg-4">
<div
class="card card-primary card-outline">
class="card card-warning card-outline">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<img style="width: 100%;height: 200px;object-fit: cover;"
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
@ -154,7 +154,7 @@
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary"
<a class="btn btn-warning"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
@ -173,14 +173,14 @@
@if ($kelompokKategoriPivot->produk->urutan == 3)
<div class="col-lg-4">
<div
class="card card-primary card-outline">
class="card card-warning card-outline">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<img style="width: 100%;height: 200px;object-fit: cover;"
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
@ -189,7 +189,7 @@
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary"
<a class="btn btn-warning"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
@ -208,14 +208,14 @@
@if ($kelompokKategoriPivot->produk->urutan == 4)
<div class="col-lg-4">
<div
class="card card-primary card-outline">
class="card card-warning card-outline">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<img style="width: 100%;height: 200px;object-fit: cover;"
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
@ -224,7 +224,7 @@
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary"
<a class="btn btn-warning"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
@ -242,14 +242,14 @@
@if ($kelompokKategoriPivot->produk->urutan == 5)
<div class="col-lg-4">
<div
class="card card-primary card-outline">
class="card card-warning card-outline">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<img style="width: 100%;height: 200px;object-fit: cover;"
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
@ -258,7 +258,7 @@
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary"
<a class="btn btn-warning"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
@ -276,35 +276,77 @@
</div>
@else
@foreach ($item->kelompokKategoriPivot as $key2 => $kelompokKategoriPivot)
<div class="col-lg-4">
<div class="card card-primary card-outline btn"
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<div class="col">
<img style="width: 100%;height: 200px;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
{{ asset('assets/images/menu_image.jpeg') }} @endif
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
<div class="row"
style="margin: 5px;display: flex;align-items: center;align-content: center;">
<h5 class="col-6">
{{ convert_to_rupiah($kelompokKategoriPivot->produk->harga_produk) }}
</h5>
<a class="col-6 btn btn-primary"
id="ordered-menus">Pesan</a>
{{-- Jika paket irit --}}
@if ($kelompokKategoriPivot->kelompok_kategori_id == 2)
<div class="col-lg-4">
<div class="card card-warning card-outline btn"
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<div class="col-md-12">
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
{{ asset('assets/images/menu_image.jpeg') }} @endif
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
<div class="col-md-12 mt-1"
style="align-items: center;align-content: center;">
<h5>
{{ convert_to_rupiah($kelompokKategoriPivot->produk->harga_produk) }}
</h5>
</div>
<div class="col-md-12">
<a class="col-6 btn btn-warning"
id="ordered-menus">Pesan</a>
</div>
</div>
<div class="col-md-12 mt-3">
<h6 style="color: red">Jumlah terjual : {{ $totalPembelianByProduk[$kelompokKategoriPivot->produk->id]->total_beli ?? 0 }}</h6>
</div>
</div>
</div>
</div>
</div>
@else
<div class="col-lg-4">
<div class="card card-warning card-outline btn"
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
</h5>
</div>
<div class="card-body">
<div class="col-md-12">
<img style="width: 100%;height: 100%;object-fit: cover;"
src="
@if ($kelompokKategoriPivot->produk->gambar_produk != null) {{ asset('storage/' . $kelompokKategoriPivot->produk->gambar_produk) }}
@else
{{ asset('assets/images/menu_image.jpeg') }} @endif
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
<div class="col-md-12 mt-1"
style="align-items: center;align-content: center;">
<h5>
{{ convert_to_rupiah($kelompokKategoriPivot->produk->harga_produk) }}
</h5>
</div>
<div class="col-md-12">
<a class="col-6 btn btn-warning"
id="ordered-menus">Pesan</a>
</div>
</div>
</div>
</div>
</div>
@endif
@endforeach
@endif
</div>
@ -317,7 +359,7 @@
</div>
<!-- /.col-md-6 -->
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div class="card card-warning card-outline">
<div class="card-header">
<h5 class="col-lg-6 card-title m-0">Kode Pesanan
<small>{{ $orderCode }}</small>
@ -388,6 +430,8 @@
<tr>
<th colspan="3">
<span class="row">
<input type="number" min="1" name="nomor-meja" class="form-control rounded-0"
placeholder="Nomor Meja" id="nomor-meja" required>
<input type="text" name="nama-pemesan" class="form-control rounded-0"
placeholder="Nama Pemesan" id="nama-pemesan" required>
<input type="text" name="keterangan-pesanan"
@ -398,7 +442,7 @@
</tr>
<tr style="background-color: white">
<th colspan="3">
<button class="btn btn-primary btn-block" id="pesan-bayar">Bayar</button>
<button class="btn btn-warning btn-block" id="pesan-bayar">Bayar</button>
</th>
</tr>
</tfoot>
@ -779,6 +823,7 @@
var nominalBayar = bayar.replace(/[^,\d]/g, '').toString();
var kembaliHidden = document.getElementById('kembali-hidden').innerHTML;
var namaPemesan = document.getElementsByName('nama-pemesan')[0].value;
var nomorMeja = document.getElementsByName('nomor-meja')[0].value;
if (orderMenus.length == 0) {
alert('Menu tidak boleh kosong');
@ -790,18 +835,21 @@
} else if (kembaliHidden < 0) {
alert('Pembayaran kurang');
return false;
} else if (nomorMeja == '') {
alert('Nomor meja tidak boleh kosong');
return false;
} else if (namaPemesan == '') {
alert('Nama pemesan tidak boleh kosong');
return false;
}
var data = {
_token: "{{ csrf_token() }}",
orderCode: "{{ $orderCode }}",
orderMenus: orderMenus,
namaPemesan: namaPemesan,
nomorMeja: nomorMeja,
keteranganPesanan: document.getElementsByName('keterangan-pesanan')[0].value,
diskon: diskon,
totalDiskon: totalDiskon,
@ -930,7 +978,7 @@
var gambar_produk = "{{ asset('assets/images/menu_image.jpeg') }}";
}
show_modal_paket.innerHTML += `
<div class="card card-primary card-outline btn"
<div class="card card-warning card-outline btn"
onclick="aadMenu(${htmlEntitiesData})">
<div class="card-header">
<h5 class="card-title m-0" id="nama-produk-modal">
@ -938,16 +986,18 @@
</h5>
</div>
<div class="card-body">
<div class="col">
<img style="width: 100%;height: 200px;object-fit: cover;"
<div class="col-md-12">
<img style="width: 80%;height: 80%;object-fit: cover;"
src="${gambar_produk}"
alt="${result.nama_produk ?? ''}">
<div class="row"
style="margin: 5px;display: flex;align-items: center;align-content: center;">
<h5 class="col-6">
${result.harga_produk ?? ''}
<div class="col-md-12 mt-1"
style="align-items: center;align-content: center;">
<h5>
Rp ${result.harga_produk ?? ''}
</h5>
<a class="col-6 btn btn-primary" id="ordered-menus">Pesan</a>
</div>
<div class="col-md-12">
<a class="col-6 btn btn-warning" id="ordered-menus">Pesan</a>
</div>
</div>
</div>