Compare commits

..

No commits in common. "f0eae4f1e832962193cca7a4c0bced20ab3f0585" and "f60b33bdb8b2002a413271e5acfdb7a033aed222" have entirely different histories.

7 changed files with 727 additions and 1011 deletions

View File

@ -1,38 +0,0 @@
<?php
namespace App\Http\Controllers\Kasir;
use App\Http\Controllers\Controller;
use App\Models\Pesanan;
use App\Models\Produk;
use Illuminate\Http\Request;
class Menu extends Controller
{
public function index()
{
return view('pages.menu.index');
}
public function getDataMenu()
{
$data = Produk::with(['kategori_produk'])->get();
$nomor = 1;
return $datatables = datatables()
->of($data)
->addColumn('nomor', function ($data) use (&$nomor) {
return $nomor++;
})
->addColumn('kategori_produk', function ($data) {
return $data->kategori_produk->nama_kategori_produk;
})
->addColumn('ubah', function ($data) {
return '<div class="btn-group">
<a href="javascript:void(0)" onclick="print(\'' . $data->id . '\')"><span class="btn btn-xs btn-success"><i class="fas fa-print"></i></span></a>
</div>';
})
->rawColumns(['nomor', 'kode_produk', 'ubah'])
->make(true);
}
}

View File

@ -16,7 +16,7 @@ class Transaksi extends Controller
$orderCode = "ORD -" . strtoupper(random_str(6, random_str()));
$KelompokKategori = KelompokKategori::with('kelompokKategoriPivot.produk')->get();
$produk = Produk::all();
return view('pages.Kasir.transaksi', compact('orderCode', 'KelompokKategori', 'produk'));
return view('pages.kasir.transaksi', compact('orderCode', 'KelompokKategori', 'produk'));
}
public function store(Request $request)
@ -85,34 +85,19 @@ class Transaksi extends Controller
public function print($id)
{
$pesanan = \App\Models\Pesanan::with('detailPesanan', 'user')->find($id);
return view('pages.Kasir.print', compact('pesanan'));
return view('pages.kasir.print', compact('pesanan'));
}
public function detail($id)
{
$pesanan = \App\Models\Pesanan::with('detailPesanan', 'user')->find($id);
return view('pages.Kasir.detail', compact('pesanan'));
return view('pages.kasir.detail', compact('pesanan'));
}
public function selectPaket(Request $request)
public function selectPaket($KODE)
{
$arrayKodeProduk = $request->kodeProduk;
// tampung data kodeProduk dari request ke variabel $kodeProduk
$kodeProduk = [];
usort($arrayKodeProduk, function ($a, $b) {
return $a['urutan'] - $b['urutan'];
});
foreach ($arrayKodeProduk as $key => $value) {
$kodeProduk[] = $value['kode_produk'];
}
$hasil = [];
$hasil[] = implode(' ', $kodeProduk);
// cari data produk berdasarkan kodeProduk
$produk = Produk::where('kode_produk', $hasil)->first();
// dd($produk);
$produk = Produk::where('kode_produk', $KODE)->get();
dd($produk);
return response()->json($produk);
}
}

View File

@ -380,16 +380,16 @@
2,NPL T.CEP BKR SB.BWG UDANG,Nasi Pecel Telur Ceplok Bakar Sambal Bawang UDANG,,,21000,
2,NPL T.CEP BKR SB.BWG CUMI,Nasi Pecel Telur Ceplok Bakar Sambal Bawang CUMI,,,21000,
2,NPL T.CEP BKR SB.BWG DAGING SAPI,Nasi Pecel Telur Ceplok Bakar Sambal Bawang DAGING SAPI,,,22000,
2,CAKALAN,CAKALAN Bumbu Merah,,,6000,4
2,USUS,USUS Bumbu Merah,,,6000,4
2,REMPELO ATI,REMPELO ATI Bumbu Merah,,,6000,4
2,KULIT AYAM,KULIT AYAM Bumbu Merah,,,6000,4
2,AYAM SUWIR,AYAM SUWIR Bumbu Merah,,,7000,4
2,PARU,PARU Bumbu Merah,,,7000,4
2,BABAT,BABAT Bumbu Merah,,,7000,4
2,UDANG,UDANG Bumbu Merah,,,8000,4
2,CUMI,CUMI Bumbu Ijo,,,8000,4
2,DAGING SAPI,DAGING SAPI Bumbu Merah,,,9000,4
2,CAKALAN BUMER,CAKALAN Bumbu Merah,,,6000,4
2,USUS BUMER,USUS Bumbu Merah,,,6000,4
2,REMPELO ATI BUMER,REMPELO ATI Bumbu Merah,,,6000,4
2,KULIT AYAM BUMER,KULIT AYAM Bumbu Merah,,,6000,4
2,AYAM SUWIR BUMER,AYAM SUWIR Bumbu Merah,,,7000,4
2,PARU BUMER,PARU Bumbu Merah,,,7000,4
2,BABAT BUMER,BABAT Bumbu Merah,,,7000,4
2,UDANG BUMER,UDANG Bumbu Merah,,,8000,4
2,CUMI BUJO,CUMI Bumbu Ijo,,,8000,4
2,DAGING SAPI BUMER,DAGING SAPI Bumbu Merah,,,9000,4
2,T.KER,TELUR KERITING,,,5000,2
2,T.KER BKR,TELUR KERITING BAKAR,,,6000,2
2,T.CEP,TELUR CEPLOK,,,5000,2

1 ketegori_produk_id kode_produk nama_produk deskripsi_produk varian_produk harga_produk urutan
380 2 NPL T.CEP BKR SB.BWG UDANG Nasi Pecel Telur Ceplok Bakar Sambal Bawang UDANG 21000
381 2 NPL T.CEP BKR SB.BWG CUMI Nasi Pecel Telur Ceplok Bakar Sambal Bawang CUMI 21000
382 2 NPL T.CEP BKR SB.BWG DAGING SAPI Nasi Pecel Telur Ceplok Bakar Sambal Bawang DAGING SAPI 22000
383 2 CAKALAN CAKALAN BUMER CAKALAN Bumbu Merah 6000 4
384 2 USUS USUS BUMER USUS Bumbu Merah 6000 4
385 2 REMPELO ATI REMPELO ATI BUMER REMPELO ATI Bumbu Merah 6000 4
386 2 KULIT AYAM KULIT AYAM BUMER KULIT AYAM Bumbu Merah 6000 4
387 2 AYAM SUWIR AYAM SUWIR BUMER AYAM SUWIR Bumbu Merah 7000 4
388 2 PARU PARU BUMER PARU Bumbu Merah 7000 4
389 2 BABAT BABAT BUMER BABAT Bumbu Merah 7000 4
390 2 UDANG UDANG BUMER UDANG Bumbu Merah 8000 4
391 2 CUMI CUMI BUJO CUMI Bumbu Ijo 8000 4
392 2 DAGING SAPI DAGING SAPI BUMER DAGING SAPI Bumbu Merah 9000 4
393 2 T.KER TELUR KERITING 5000 2
394 2 T.KER BKR TELUR KERITING BAKAR 6000 2
395 2 T.CEP TELUR CEPLOK 5000 2

View File

@ -79,15 +79,16 @@
</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link" id="transaksi @if (Request::is('transaksi')) active @endif"
href="{{ route('transaksi.index') }}" role="button">
<a class="nav-link @if (Request::is('transaksi')) active @endif" id="transaksi"
data-widget="control-sidebar" data-slide="true" href="{{ route('transaksi.index') }}"
role="button">
Transaksi
</a>
</li>
<!-- Notifications Dropdown Menu -->
<li class="nav-item dropdown">
<a class="nav-link @if (Request::is('history')) active @endif" id="history"
href="{{ route('history.index') }}" role="button">
data-widget="control-sidebar" data-slide="true" href="{{ route('history.index') }}" role="button">
History
</a>
</li>

View File

@ -22,35 +22,58 @@
@section('content')
<div class="container" style="display: contents;">
<div class="row" style="padding: 5px">
<div class="col-xl-8 col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-8">
<div class="card card-primary 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)
<li class="nav-item">
<a class="nav-link @if ($key == 0) active @endif" id="custom-tabs-four-{{ $item->kode_kelompok_kategori }}-tab" data-toggle="pill" href="#custom-tabs-four-{{ $item->kode_kelompok_kategori }}" role="tab" aria-controls="custom-tabs-four-{{ $item->kode_kelompok_kategori }}" aria-selected="true">{{ $item->nama_kelompok_kategori }}</a>
<a class="nav-link @if ($key == 0) active @endif"
id="custom-tabs-four-{{ $item->kode_kelompok_kategori }}-tab" data-toggle="pill"
href="#custom-tabs-four-{{ $item->kode_kelompok_kategori }}" role="tab"
aria-controls="custom-tabs-four-{{ $item->kode_kelompok_kategori }}"
aria-selected="true">{{ $item->nama_kelompok_kategori }}</a>
</li>
@endforeach
</ul>
</div>
<div class="card-body" id="batasitinggi" style="height:720px;overflow-y:scroll;margin-bottom: 5px;padding-top: 2px;padding-bottom: 2px">
<div class="card-body" id="batasitinggi"
style="height:600px;overflow-y:scroll;margin-bottom: 5px;padding-top: 2px;padding-bottom: 2px">
<div class="tab-content" id="custom-tabs-four-tabContent">
@foreach ($KelompokKategori as $key => $item)
<div class="tab-pane fade show @if ($key == 0) active @endif" id="custom-tabs-four-{{ $item->kode_kelompok_kategori }}" role="tabpanel" aria-labelledby="custom-tabs-four-{{ $item->kode_kelompok_kategori }}-tab">
<div class="tab-pane fade show @if ($key == 0) active @endif"
id="custom-tabs-four-{{ $item->kode_kelompok_kategori }}" role="tabpanel"
aria-labelledby="custom-tabs-four-{{ $item->kode_kelompok_kategori }}-tab">
<div class="row">
@if ($item->kode_kelompok_kategori == 'PAK-SKOM')
<div class="col" style="padding: 0px">
<div class="row" style="padding: 0px">
<div class="col-4 col-sm-3" style="margin-left: 0px;padding-left: 0px;">
<div class="nav flex-column nav-tabs h-100" id="vert-tabs-tab" role="tablist" aria-orientation="vertical">
<div class="nav flex-column nav-tabs h-100" id="vert-tabs-tab"
role="tablist" aria-orientation="vertical">
<a class="nav-link active" id="vert-tabs-nasi-tab" data-toggle="pill" href="#vert-tabs-nasi" role="tab" aria-controls="vert-tabs-nasi" aria-selected="true">Nasi</a>
<a class="nav-link" id="vert-tabs-telur-tab" data-toggle="pill" href="#vert-tabs-telur" role="tab" aria-controls="vert-tabs-telur" aria-selected="false">Telur</a>
<a class="nav-link" id="vert-tabs-sambel-tab" data-toggle="pill" href="#vert-tabs-sambel" role="tab" aria-controls="vert-tabs-sambel" aria-selected="false">Sambel</a>
<a class="nav-link" id="vert-tabs-topping-tab" data-toggle="pill" href="#vert-tabs-topping" role="tab" aria-controls="vert-tabs-topping" aria-selected="false">Topping</a>
<a class="nav-link" id="vert-tabs-free-tab" data-toggle="pill" href="#vert-tabs-free" role="tab" aria-controls="vert-tabs-free" aria-selected="false">Free</a>
<a class="nav-link active" id="vert-tabs-nasi-tab"
data-toggle="pill" href="#vert-tabs-nasi" role="tab"
aria-controls="vert-tabs-nasi" aria-selected="true">Nasi</a>
<a class="nav-link" id="vert-tabs-telur-tab" data-toggle="pill"
href="#vert-tabs-telur" role="tab"
aria-controls="vert-tabs-telur"
aria-selected="false">Telur</a>
<a class="nav-link" id="vert-tabs-sambel-tab" data-toggle="pill"
href="#vert-tabs-sambel" role="tab"
aria-controls="vert-tabs-sambel"
aria-selected="false">Sambel</a>
<a class="nav-link" id="vert-tabs-topping-tab"
data-toggle="pill" href="#vert-tabs-topping" role="tab"
aria-controls="vert-tabs-topping"
aria-selected="false">Topping</a>
<a class="nav-link" id="vert-tabs-free-tab" data-toggle="pill"
href="#vert-tabs-free" role="tab"
aria-controls="vert-tabs-free"
aria-selected="false">Free</a>
<div class="card card-primary card-outline" style="margin-top: auto;margin-right: 5px;height: auto;">
<div class="card card-primary card-outline"
style="margin-top: auto;margin-right: 5px;height: auto;">
<div class="card-header">
<h5 class="card-title m-0" id="nama-paket">
Paket Menu Terpilih
@ -63,35 +86,42 @@
</li>
</ul>
</div>
<a class="btn btn-primary disabled" id="select-ordered-menus" onclick="cariPaket()">Pilih
<a class="btn btn-primary disabled" id="ordered-menus">Pilih
Paket Menu
</a>
</div>
</div>
</div>
<div class="col-8 col-sm-9" style="padding: 0px;">
<div class="card-body" style="height:700px;overflow-y:scroll;">
<div class="card-body" style="height:550px;overflow-y:scroll;">
<div class="tab-content" id="vert-tabs-tabContent">
<div class="tab-pane text-left fade show active" id="vert-tabs-nasi" role="tabpanel" aria-labelledby="vert-tabs-nasi-tab">
<div class="tab-pane text-left fade show active"
id="vert-tabs-nasi" role="tabpanel"
aria-labelledby="vert-tabs-nasi-tab">
<div class="row">
@foreach ($item->kelompokKategoriPivot as $key2 => $kelompokKategoriPivot)
@if ($kelompokKategoriPivot->produk->urutan == 1)
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div
class="card card-primary 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;" src="
<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 ?? '' }}">
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary" id="ordered-menus" onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
<a class="btn btn-primary"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
</a>
</div>
@ -100,26 +130,32 @@
@endforeach
</div>
</div>
<div class="tab-pane fade" id="vert-tabs-telur" role="tabpanel" aria-labelledby="vert-tabs-telur-tab">
<div class="tab-pane fade" id="vert-tabs-telur"
role="tabpanel" aria-labelledby="vert-tabs-telur-tab">
<div class="row">
@foreach ($item->kelompokKategoriPivot as $key2 => $kelompokKategoriPivot)
@if ($kelompokKategoriPivot->produk->urutan == 2)
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div
class="card card-primary 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;" src="
<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 ?? '' }}">
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary" id="ordered-menus" onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
<a class="btn btn-primary"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
</a>
</div>
@ -128,26 +164,33 @@
@endforeach
</div>
</div>
<div class="tab-pane fade" id="vert-tabs-sambel" role="tabpanel" aria-labelledby="vert-tabs-sambel-tab">
<div class="tab-pane fade" id="vert-tabs-sambel"
role="tabpanel"
aria-labelledby="vert-tabs-sambel-tab">
<div class="row">
@foreach ($item->kelompokKategoriPivot as $key2 => $kelompokKategoriPivot)
@if ($kelompokKategoriPivot->produk->urutan == 3)
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div
class="card card-primary 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;" src="
<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 ?? '' }}">
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary" id="ordered-menus" onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
<a class="btn btn-primary"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
</a>
</div>
@ -156,26 +199,33 @@
@endforeach
</div>
</div>
<div class="tab-pane fade" id="vert-tabs-topping" role="tabpanel" aria-labelledby="vert-tabs-topping-tab">
<div class="tab-pane fade" id="vert-tabs-topping"
role="tabpanel"
aria-labelledby="vert-tabs-topping-tab">
<div class="row">
@foreach ($item->kelompokKategoriPivot as $key2 => $kelompokKategoriPivot)
@if ($kelompokKategoriPivot->produk->urutan == 4)
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div
class="card card-primary 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;" src="
<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 ?? '' }}">
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary" id="ordered-menus" onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
<a class="btn btn-primary"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
</a>
</div>
@ -184,26 +234,32 @@
@endforeach
</div>
</div>
<div class="tab-pane fade" id="vert-tabs-free" role="tabpanel" aria-labelledby="vert-tabs-free-tab">
<div class="tab-pane fade" id="vert-tabs-free"
role="tabpanel" aria-labelledby="vert-tabs-free-tab">
<div class="row">
@foreach ($item->kelompokKategoriPivot as $key2 => $kelompokKategoriPivot)
@if ($kelompokKategoriPivot->produk->urutan == 5)
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div
class="card card-primary 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;" src="
<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 ?? '' }}">
"
alt="{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}">
</div>
<a class="btn btn-primary" id="ordered-menus" onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
<a class="btn btn-primary"
id="ordered-menus"
onclick="selectPaket( {{ $kelompokKategoriPivot->produk }} )">Pilih
Paket
</a>
</div>
@ -220,7 +276,8 @@
@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 card-primary card-outline btn"
onclick="aadMenu( {{ $kelompokKategoriPivot->produk }} )">
<div class="card-header">
<h5 class="card-title m-0">
{{ $kelompokKategoriPivot->produk->nama_produk ?? '' }}
@ -228,16 +285,20 @@
</div>
<div class="card-body">
<div class="col">
<img style="width: 100%;height: 200px;object-fit: cover;" src="
<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;">
"
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>
<a class="col-6 btn btn-primary"
id="ordered-menus">Pesan</a>
</div>
</div>
</div>
@ -254,7 +315,7 @@
</div>
</div>
<!-- /.col-md-6 -->
<div class="col-xl-4 col-lg-6 col-md-6 col-sm-12">
<div class="col-lg-4">
<div class="card card-primary card-outline">
<div class="card-header">
<h5 class="col-lg-6 card-title m-0">Kode Pesanan
@ -268,10 +329,9 @@
<table class="table table-bordered table-striped" id="order-menus" width="100%">
<thead style="background-color: lightgray">
<tr>
<th class="text-center">Menu</th>
<th width="110px">Qty</th>
<th width="60px">Diskon (%)</th>
<th width="30px">⚙️</th>
<th width="60%" class="text-center">Menu</th>
<th>Qty</th>
<th width="10%">⚙️</th>
</tr>
</thead>
<tbody id="tbody-order-menus">
@ -279,7 +339,7 @@
<tfoot style="background-color: lightgray">
<tr>
<th class="text-center">Total</th>
<th colspan="3">
<th colspan="2">
<span class="row">
<span class="col-6">Rp.</span>
<span class="col-6" style="text-align: right" id="total">0</span>
@ -289,7 +349,7 @@
</tr>
<tr>
<th class="text-center">Diskon (%)</th>
<th colspan="3">
<th colspan="2">
<div class="input-group input-group-sm">
<input type="number" name="diskon" class="form-control rounded-0">
</div>
@ -297,7 +357,7 @@
</tr>
<tr>
<th class="text-center">Grand Total</th>
<th colspan="3">
<th colspan="2">
<span class="row">
<span class="col-6">Rp.</span>
<span class="col-6" style="text-align: right" id="total-diskon">0</span>
@ -307,15 +367,16 @@
</tr>
<tr>
<th class="text-center">Bayar</th>
<th colspan="3">
<th colspan="2">
<div class="input-group input-group-sm">
<input type="text" name="nominal-bayar" class="form-control rounded-0" required id="nominal-bayar">
<input type="text" name="nominal-bayar" class="form-control rounded-0"
required id="nominal-bayar">
</div>
</th>
</tr>
<tr>
<th class="text-center">Kembali</th>
<th colspan="3">
<th colspan="2">
<span class="row">
<span class="col-6">Rp.</span>
<span class="col-6" style="text-align: right" id="kembali">0</span>
@ -324,15 +385,18 @@
</th>
</tr>
<tr>
<th colspan="4">
<th colspan="3">
<span class="row">
<input type="text" name="nama-pemesan" class="form-control rounded-0" placeholder="Nama Pemesan" id="nama-pemesan" required>
<input type="text" name="keterangan-pesanan" placeholder="Keterangan Pesanan" class="form-control rounded-0" id="keterangan-pesanan">
<input type="text" name="nama-pemesan" class="form-control rounded-0"
placeholder="Nama Pemesan" id="nama-pemesan" required>
<input type="text" name="keterangan-pesanan"
placeholder="Keterangan Pesanan" class="form-control rounded-0"
id="keterangan-pesanan">
</span>
</th>
</tr>
<tr style="background-color: white">
<th colspan="4">
<th colspan="3">
<button class="btn btn-primary btn-block" id="pesan-bayar">Bayar</button>
</th>
</tr>
@ -346,30 +410,22 @@
</div>
<!-- /.row -->
</div><!-- /.container-fluid -->
<div class="modal fade" id="modal-default">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Spesial Paket Komplit</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body" id="show-modal-paket">
</div>
</div>
<!-- /.modal-content -->
</div>
<!-- /.modal-dialog -->
</div>
@endsection
@push('styles')
<!-- Toastr -->
<style>
@media only screen and (max-width : 991px) {
/* Styles */
}
@media only screen and (max-width : 768px) {
/* Styles */
}
@media only screen and (max-width : 414px) {
/* Styles */
}
</style>
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
@endpush
@ -410,7 +466,6 @@
// make function add menu to table and calculate qty and total price menu ordered and check menu ordered is exist or not in tbody table order-menus insert this in
function aadMenu(params) {
console.log(params);
var table = document.getElementById("order-menus");
var menu = params;
var menuId = menu.id;
@ -433,48 +488,28 @@
if (isExist) {
var qty = table.rows[index].getAttribute('data-qty');
var diskonSatuan = table.rows[index].getAttribute('data-diskon-satuan');
var total = table.rows[index].getAttribute('data-total');
qty = parseInt(qty) + 1;
diskonSatuan = parseInt(diskonSatuan);
total = (parseInt(total) + parseInt(menuPrice)) - ((parseInt(total) + parseInt(menuPrice)) * (diskonSatuan / 100));
total = parseInt(total) + parseInt(menuPrice);
table.rows[index].setAttribute('data-qty', qty);
table.rows[index].setAttribute('data-diskon-satuan', diskonSatuan);
table.rows[index].setAttribute('data-total', total);
table.rows[index].cells[0].innerHTML = `
<td>
${params.nama_produk}
<br>
${(diskonSatuan > 0) ? '<small class="text-primary"><s>Rp. ' + harga + '</s></small> | <small class="text-danger">Rp. ' + total + '</small>' : '<small class="text-primary">Rp. ' + total + '</small>'}
<div class="input-group input-group-sm mt-1">
<input type="text" name="keterangan_satuan" class="form-control rounded-0" placeholder="Keterangan..">
</div>
</td>
`;
table.rows[index].cells[1].innerHTML = `
<td class="text-center">
<div class="input-group input-group-sm">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params.id}, '${params.nama_produk}')"><b>-</b></button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params.id})"><b>-</b></button>
</span>
<input type="text" name="bayar" class="form-control rounded-0" readonly value="${qty}">
<input type="number" name="bayar" class="form-control rounded-0" value="${qty}">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params.id}, '${params.nama_produk}')">+</button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params.id})">+</button>
</span>
</div>
</td>
`;
table.rows[index].cells[2].innerHTML = `
<td class="text-center">
<div class="input-group input-group-sm">
<input type="number" name="diskon_satuan" class="form-control rounded-0" value="0">
</div>
</td>
`;
table.rows[index].cells[3].innerHTML = `
<td class="text-center">
<button class="btn btn-danger btn-sm" onclick="deleteMenu(${params.id})">
<i class="fas fa-trash"></i>
@ -482,34 +517,25 @@
</td>
`;
calculateTotal();
$('#modal-default').modal('hide');
} else {
$('#tbody-order-menus').append(`
<tr id="row-${params.id}" data-id="${params.id}" data-nama="${params.nama_produk}" data-harga="${params.harga_produk}" data-qty="1" data-diskon-satuan="0" data-total="${params.harga_produk}">
<tr id="row-${params.id}" data-id="${params.id}" data-nama="${params.nama_produk}" data-harga="${params.harga_produk}" data-qty="1" data-total="${params.harga_produk}">
<td>
${params.nama_produk}
<br>
<small class="text-primary">Rp. ${params.harga_produk}</small>
<div class="input-group input-group-sm mt-1">
<input type="text" name="keterangan_satuan" class="form-control rounded-0" placeholder="Keterangan..">
</div>
<small class="text-danger">Rp. ${params.harga_produk}</small>
</td>
<td class="text-center">
<div class="input-group input-group-sm">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params.id}, '${params.nama_produk}')"><b>-</b></button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params.id})"><b>-</b></button>
</span>
<input type="text" name="bayar" class="form-control rounded-0" readonly value="${menuQty}">
<input type="number" name="bayar" class="form-control rounded-0" value="${menuQty}">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params.id}, '${params.nama_produk}')">+</button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params.id})">+</button>
</span>
</div>
</td>
<td class="text-center">
<div class="input-group input-group-sm">
<input type="number" name="diskon_satuan" class="form-control rounded-0" value="0">
</div>
</td>
<td class="text-center">
<button class="btn btn-danger btn-sm" onclick="deleteMenu(${params.id})">
<i class="fas fa-trash"></i>
@ -518,7 +544,6 @@
</tr>
`);
calculateTotal();
$('#modal-default').modal('hide');
}
}
@ -549,8 +574,7 @@
for (var i = 1, row; row = table.rows[i]; i++) {
var harga = row.getAttribute('data-harga');
var qty = row.getAttribute('data-qty');
var diskonSatuan = row.getAttribute('data-diskon-satuan');
var total = total + ((harga * qty) - ((harga * qty) * (diskonSatuan / 100)));
var total = total + (harga * qty);
}
var ribuantotal = toRupiah(total);
@ -567,7 +591,7 @@
}
// increment qty menu ordered
function incrementMenu(params, nama_produk) {
function incrementMenu(params) {
var table = document.getElementById("order-menus");
var index = 0;
@ -580,38 +604,24 @@
}
var qty = table.rows[index].getAttribute('data-qty');
var diskonSatuan = table.rows[index].getAttribute('data-diskon-satuan');
var total = table.rows[index].getAttribute('data-total');
var harga = table.rows[index].getAttribute('data-harga');
qty = parseInt(qty) + 1;
diskonSatuan = parseInt(diskonSatuan);
total = (parseInt(total) + parseInt(harga)) - ((parseInt(total) + parseInt(harga)) * (diskonSatuan / 100));
total = parseInt(total) + parseInt(harga);
table.rows[index].setAttribute('data-qty', qty);
table.rows[index].setAttribute('data-diskon-satuan', diskonSatuan);
table.rows[index].setAttribute('data-total', total);
table.rows[index].cells[0].innerHTML = `
<td>
${nama_produk}
<br>
${(diskonSatuan > 0) ? '<small class="text-primary"><s>Rp. ' + harga + '</s></small> | <small class="text-danger">Rp. ' + total + '</small>' : '<small class="text-primary">Rp. ' + total + '</small>'}
<div class="input-group input-group-sm mt-1">
<input type="text" name="keterangan_satuan" class="form-control rounded-0" placeholder="Keterangan..">
</div>
</td>
`;
table.rows[index].cells[1].innerHTML = `
<td class="text-center">
<div class="input-group input-group-sm">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params}, '${nama_produk}')"><b>-</b></button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params})"><b>-</b></button>
</span>
<input type="text" name="bayar" class="form-control rounded-0" readonly value="${qty}">
<input type="number" name="bayar" class="form-control rounded-0" value="${qty}">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params}, '${nama_produk}')">+</button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params})">+</button>
</span>
</div>
</td>
@ -621,7 +631,7 @@
}
// decrement qty menu ordered
function decrementMenu(params, nama_produk) {
function decrementMenu(params) {
var table = document.getElementById("order-menus");
var index = 0;
@ -634,39 +644,25 @@
}
var qty = table.rows[index].getAttribute('data-qty');
var diskonSatuan = table.rows[index].getAttribute('data-diskon-satuan');
var total = table.rows[index].getAttribute('data-total');
var harga = table.rows[index].getAttribute('data-harga');
if (qty > 1) {
qty = parseInt(qty) - 1;
diskonSatuan = parseInt(diskonSatuan);
total = (parseInt(total) - parseInt(harga)) - ((parseInt(total) - parseInt(harga)) * (diskonSatuan / 100));
total = parseInt(total) - parseInt(harga);
table.rows[index].setAttribute('data-qty', qty);
table.rows[index].setAttribute('data-diskon-satuan', diskonSatuan);
table.rows[index].setAttribute('data-total', total);
table.rows[index].cells[0].innerHTML = `
<td>
${nama_produk}
<br>
${(diskonSatuan > 0) ? '<small class="text-primary"><s>Rp. ' + harga + '</s></small> | <small class="text-danger">Rp. ' + total + '</small>' : '<small class="text-primary">Rp. ' + total + '</small>'}
<div class="input-group input-group-sm mt-1">
<input type="text" name="keterangan_satuan" class="form-control rounded-0" placeholder="Keterangan..">
</div>
</td>
`;
table.rows[index].cells[1].innerHTML = `
<td class="text-center">
<div class="input-group input-group-sm">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params}, '${nama_produk}')"><b>-</b></button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="decrementMenu(${params})"><b>-</b></button>
</span>
<input type="text" name="bayar" class="form-control rounded-0" readonly value="${qty}">
<input type="number" name="bayar" class="form-control rounded-0" value="${qty}">
<span class="input-group-append">
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params}, '${nama_produk}')">+</button>
<button type="button" class="btn btn-default btn-xs btn-flat" onclick="incrementMenu(${params})">+</button>
</span>
</div>
</td>
@ -752,7 +748,6 @@
var id = row.getAttribute('data-id');
var nama = row.getAttribute('data-nama');
var qty = row.getAttribute('data-qty');
var diskonSatuan = row.getAttribute('data-diskon-satuan');
var harga = row.getAttribute('data-harga');
var total = row.getAttribute('data-total');
@ -761,7 +756,6 @@
id: id,
nama: nama,
qty: qty,
diskonSatuan: diskonSatuan,
harga: harga,
total: total
});
@ -842,6 +836,7 @@
var index = 0;
for (var i = 0; i < selectedMenus.length; i++) {
console.log(selectedMenus[i].urutan);
// lakukan periksa kembali apabila menu dengan urutan yang sama sudah ada maka hapus menu tersebut dari array selectedMenus kecuali menu dengan urutan 5 boleh lebih dari 1
if (params.urutan == 5) {
if (selectedMenus[i].id == params.id) {
@ -858,13 +853,12 @@
if (isExist) {
selectedMenus.splice(index, 1);
document.getElementById('select-ordered-menus').classList.remove('disabled');
// document.getElementById('ordered-menus').setAttribute('onclick', 'orderedMenus()');
document.getElementById('ordered-menus').classList.remove('disabled');
document.getElementById('ordered-menus').setAttribute('onclick', 'orderedMenus()');
} else {
selectedMenus.push(params);
document.getElementById('select-ordered-menus').classList.remove('disabled');
// document.getElementById('ordered-menus').classList.add('disabled');
// document.getElementById('ordered-menus').setAttribute('onclick', '');
document.getElementById('ordered-menus').classList.add('disabled');
document.getElementById('ordered-menus').setAttribute('onclick', '');
}
menu_terpilih.innerHTML = '';
@ -883,82 +877,10 @@
</li>
`;
}
}
// cari paket
function cariPaket(params) {
var show_modal_paket = document.getElementById('show-modal-paket');
show_modal_paket.innerHTML = ``;
// loop selectedMenus ambil kode produk
var kodeProduk = [];
if (selectedMenus.length == 0) {
alert('Pilih Paket Menu Terlebih Dahulu');
return false;
}
for (var i = 0; i < selectedMenus.length; i++) {
if (selectedMenus[i].urutan != 5) {
kodeProduk.push({
urutan: selectedMenus[i].urutan,
kode_produk: selectedMenus[i].kode_produk
});
}
}
var data = {
_token: "{{ csrf_token() }}",
kodeProduk: kodeProduk
};
$.ajax({
url: "{{ route('transaksi.cari-paket') }}",
method: "POST",
data: data,
success: function(result) {
var dataParse = JSON.stringify(result);
console.log(selectedMenus);
// Replace karakter kutipan ganda dengan HTML entities
var htmlEntitiesData = dataParse.replace(/\"/g, '&quot;');
// Tampilkan hasil
console.log(htmlEntitiesData);
var show_modal_paket = document.getElementById('show-modal-paket');
if (result.gambar_produk != null) {
var gambar_produk = result.full_path;
} else {
var gambar_produk = "{{ asset('assets/images/menu_image.jpeg') }}";
}
show_modal_paket.innerHTML += `
<div class="card card-primary card-outline btn"
onclick="aadMenu(${htmlEntitiesData})">
<div class="card-header">
<h5 class="card-title m-0" id="nama-produk-modal">
${result.nama_produk ?? ''}
</h5>
</div>
<div class="card-body">
<div class="col">
<img style="width: 100%;height: 200px;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 ?? ''}
</h5>
<a class="col-6 btn btn-primary" id="ordered-menus">Pesan</a>
</div>
</div>
</div>
</div>
`;
$('#modal-default').modal('show');
},
error: function(xhr, status, error) {
toastr.error(xhr.responseJSON.message, 'Error', {
timeOut: 3000
});
console.log(xhr.responseJSON);
console.log(status);
console.log(error);
}
})
}
</script>
@endpush

View File

@ -1,148 +0,0 @@
@extends('layouts.base')
@section('content-header')
<div class="col-12">
<div class="container" style="display: contents">
<div class="row mb-2">
<div class="col-sm-6">
<h1 class="m-0"> Kasir <small>kasir 3.0</small></h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="#">Home</a></li>
<li class="breadcrumb-item"><a href="#">Kasir</a></li>
<li class="breadcrumb-item active">History</li>
</ol>
</div>
</div>
</div>
</div>
@endsection
@section('content')
<div class="col-12 mt-2">
<div class="container" style="display: contents">
<div class="card">
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
<div class="card-header mt-0 pt-0">
<div class="d-flex">
<h3>Daftar Menu</h3>
<!-- Button trigger modal -->
<div class="ml-auto">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-default">
Tambah Menu
</button>
</div>
</div>
</div>
<div class="card-body">
{{-- <h5 class="card-title">Form List Data</h5> --}}
<div class="table-responsive mt-3">
<table id="tabelku" class="table table-hover display" style="width: 100%">
<thead>
<tr>
<th class="text-center">No</th>
<th>Kode Produk</th>
<th>Nama Produk</th>
<th>Harga Produk</th>
<th>Kategori Produk</th>
<th class="text-center"><i class="fas fa-cog"></i></th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- Modal Tambah Menu -->
<div class="modal fade" id="modal-default">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Default Modal</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<label for="recipient-name" class="col-form-label">Recipient:</label>
<input type="text" class="form-control" id="recipient-name">
</div>
<div class="form-group">
<label for="message-text" class="col-form-label">Message:</label>
<textarea class="form-control" id="message-text"></textarea>
</div>
</form>
</div>
<div class="modal-footer justify-content-between">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
@endsection
@push('styles')
<!-- Toastr -->
<style>
@media only screen and (max-width : 991px) {
/* Styles */
}
@media only screen and (max-width : 768px) {
/* Styles */
}
@media only screen and (max-width : 414px) {
/* Styles */
}
</style>
<link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}">
<link rel="stylesheet" href="{{asset('assets/datatables/datatables.min.css')}}">
@endpush
@push('scripts')
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
<script>
$(document).ready(function() {
$('#tabelku').DataTable({
processing: true,
serverSide: true,
ajax: "{{ route('menu.getDataMenu') }}",
columns: [{
data: 'nomor',
name: 'nomor',
orderable: false,
className: 'text-center'
},
{
data: 'kode_produk',
name: 'kode_produk'
},
{
data: 'nama_produk',
name: 'nama_produk'
},
{
data: 'harga_produk',
name: 'harga_produk'
},
{
data: 'kategori_produk',
name: 'kategori_produk'
},
{
data: 'ubah',
name: 'ubah',
className: 'text-center'
},
]
})
})
</script>
@endpush

View File

@ -1,7 +1,6 @@
<?php
use App\Http\Controllers\Kasir\History;
use App\Http\Controllers\Kasir\Menu;
use App\Http\Controllers\Kasir\Transaksi;
use Illuminate\Support\Facades\Route;
@ -23,7 +22,7 @@ Route::group(['prefix' => 'transaksi'], function () {
Route::post('/store', [Transaksi::class, 'store'])->name('transaksi.store');
Route::get('/print/{id}', [Transaksi::class, 'print'])->name('transaksi.print');
Route::get('/detail/{id}', [Transaksi::class, 'detail'])->name('transaksi.detail');
Route::post('/cari-paket', [Transaksi::class, 'selectPaket'])->name('transaksi.cari-paket');
Route::get('/select-paket/{KODE}', [Transaksi::class, 'selectPaket'])->name('transaksi.select-paket');
});
Route::group(['prefix' => 'history'], function () {
@ -31,8 +30,3 @@ Route::group(['prefix' => 'history'], function () {
Route::get('/getDataHistory', [History::class, 'getDataHistory'])->name('history.getDataHistory');
Route::get('/print/{id}', [History::class, 'print'])->name('history.print');
});
Route::group(['prefix' => 'menu'], function () {
Route::get('/', [Menu::class, 'index'])->name('menu.index');
Route::get('/getDataMenu', [Menu::class, 'getDataMenu'])->name('menu.getDataMenu');
});