filter data berdasarkan tanggal pada history
parent
ca06f63ca3
commit
b7c408ee0a
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers\Kasir;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Models\DetailPesanan;
|
use App\Models\DetailPesanan;
|
||||||
use App\Models\Pesanan;
|
use App\Models\Pesanan;
|
||||||
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
class History extends Controller
|
class History extends Controller
|
||||||
|
@ -14,12 +15,25 @@ class History extends Controller
|
||||||
return view('pages.History.index');
|
return view('pages.History.index');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDataHistory()
|
public function getDataHistory(Request $request)
|
||||||
{
|
{
|
||||||
$data = Pesanan::with(['detailPesanan', 'user'])->orderBy('created_at', 'desc')->get();
|
|
||||||
$nomor = 1;
|
$nomor = 1;
|
||||||
|
$filter_tanggal_1 = $request->filter_tanggal_1;
|
||||||
|
$filter_tanggal_2 = $request->filter_tanggal_2;
|
||||||
|
$data = Pesanan::with(['detailPesanan', 'user'])
|
||||||
|
->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) {
|
||||||
|
return $query->whereDate('created_at', '>=', $filter_tanggal_1);
|
||||||
|
})
|
||||||
|
->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) {
|
||||||
|
return $query->whereDate('created_at', '<=', $filter_tanggal_2);
|
||||||
|
})
|
||||||
|
->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) {
|
||||||
|
return $query->whereDate('created_at', Carbon::today());
|
||||||
|
})
|
||||||
|
->orderBy('created_at', 'desc')
|
||||||
|
->get();
|
||||||
|
|
||||||
return $datatables = datatables()
|
return datatables()
|
||||||
->of($data)
|
->of($data)
|
||||||
->addColumn('nomor', function ($data) use (&$nomor) {
|
->addColumn('nomor', function ($data) use (&$nomor) {
|
||||||
return $nomor++;
|
return $nomor++;
|
||||||
|
@ -42,6 +56,7 @@ class History extends Controller
|
||||||
})
|
})
|
||||||
->addColumn('ubah', function ($data) {
|
->addColumn('ubah', function ($data) {
|
||||||
return '<div class="btn-group">
|
return '<div class="btn-group">
|
||||||
|
<a href="javascript:void(0)" onclick="detail(\'' . $data->id . '\')"><span class="btn btn-xs btn-warning mr-1"><i class="fas fa-eye"></i></span></a>
|
||||||
<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>';
|
<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', 'nama_user', 'created_at', 'grand_total', 'ubah'])
|
->rawColumns(['nomor', 'nama_user', 'created_at', 'grand_total', 'ubah'])
|
||||||
|
@ -54,4 +69,10 @@ class History extends Controller
|
||||||
|
|
||||||
return view('pages.Kasir.print_dapur', compact('pesanan'));
|
return view('pages.Kasir.print_dapur', compact('pesanan'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getDataDetailHistory(Request $request){
|
||||||
|
$data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->get();
|
||||||
|
|
||||||
|
return response()->json(['status' => true, 'data' => $data]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,7 @@ scratch. This page gets rid of all links and provides the needed markup only.
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
<title>Sepiring Telur Keriting</title>
|
<title>Sepiring Telur Keriting</title>
|
||||||
|
|
||||||
<!-- Google Font: Source Sans Pro -->
|
<!-- Google Font: Source Sans Pro -->
|
||||||
|
|
|
@ -25,179 +25,58 @@
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
|
<div class="card bg-warning" style="min-height:5px; border-radius:1px;"></div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{{-- <h5 class="card-title">Form List Data</h5> --}}
|
<div class="col-md-12">
|
||||||
<div class="table-responsive mt-3">
|
<label>Filter Pencarian:</label>
|
||||||
<table id="tabelku" class="table table-hover display" style="width: 100%">
|
<div class="row">
|
||||||
<thead>
|
<div class="col-md-2">
|
||||||
<tr>
|
<input type="date" class="form-control form-control-sm" id="filter_tanggal_1">
|
||||||
<th class="text-center">No</th>
|
</div>
|
||||||
<th>Kode Pesanan</th>
|
<p>s/d</p>
|
||||||
<th>Pemesan</th>
|
<div class="col-md-2">
|
||||||
<th>Nomor Meja</th>
|
<input type="date" class="form-control form-control-sm" id="filter_tanggal_2">
|
||||||
<th>Tanggal & Jam</th>
|
</div>
|
||||||
<th>Total Pesanan</th>
|
<div class="col-md-2">
|
||||||
<th>Sub Total</th>
|
<a href="javascript:void(0)" class="btn btn-sm btn-primary" id="btn_filter"><i class="fas fa-search mr-1"></i>Filter data</a>
|
||||||
<th>Diskon(%)</th>
|
</div>
|
||||||
<th>Grand Total</th>
|
</div>
|
||||||
<th class="text-center"><i class="fas fa-cog"></i></th>
|
</div>
|
||||||
</tr>
|
<div class="col-md-12">
|
||||||
</thead>
|
<div class="table-responsive mt-3">
|
||||||
<tfoot>
|
<table id="tabelku" class="table table-hover display" style="width: 100%">
|
||||||
<tr>
|
<thead>
|
||||||
<th class="text-right" colspan="5">Total</th>
|
<tr>
|
||||||
<th></th>
|
<th class="text-center">No</th>
|
||||||
<th class="text-right"></th>
|
<th>Kode Pesanan</th>
|
||||||
<th></th>
|
<th>Pemesan</th>
|
||||||
<th class="text-right"></th>
|
<th>Nomor Meja</th>
|
||||||
<th class="text-center"><i class="fas fa-cog"></i></th>
|
<th>Tanggal & Jam</th>
|
||||||
</tr>
|
<th>Total Pesanan</th>
|
||||||
</tfoot>
|
<th>Sub Total</th>
|
||||||
</table>
|
<th>Diskon(%)</th>
|
||||||
|
<th>Grand Total</th>
|
||||||
|
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tfoot>
|
||||||
|
<tr>
|
||||||
|
<th class="text-right" colspan="5">Total</th>
|
||||||
|
<th></th>
|
||||||
|
<th class="text-right"></th>
|
||||||
|
<th></th>
|
||||||
|
<th class="text-right"></th>
|
||||||
|
<th class="text-center"><i class="fas fa-cog"></i></th>
|
||||||
|
</tr>
|
||||||
|
</tfoot>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@include('pages.History.modal')
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('styles')
|
@include('pages.History.style')
|
||||||
<!-- Toastr -->
|
@include('pages.History.js')
|
||||||
<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('history.getDataHistory') }}',
|
|
||||||
columns: [{
|
|
||||||
data: 'nomor',
|
|
||||||
name: 'nomor',
|
|
||||||
orderable: false,
|
|
||||||
className: 'text-center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'kode_pesanan',
|
|
||||||
name: 'kode_pesanan'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'nama_pemesan',
|
|
||||||
name: 'nama_pemesan'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'nomor_meja',
|
|
||||||
name: 'nomor_meja'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'created_at',
|
|
||||||
name: 'created_at'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'total_pesanan',
|
|
||||||
name: 'total_pesanan',
|
|
||||||
className: 'text-center'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'total_bayar',
|
|
||||||
name: 'total_bayar',
|
|
||||||
className: 'text-right',
|
|
||||||
render: function(data) {
|
|
||||||
// change to IDR
|
|
||||||
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'diskon_persen',
|
|
||||||
name: 'diskon_persen',
|
|
||||||
className: 'text-center',
|
|
||||||
render: function(data) {
|
|
||||||
return data ?? 0;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'grand_total',
|
|
||||||
name: 'grand_total',
|
|
||||||
className: 'text-right',
|
|
||||||
render: function(data) {
|
|
||||||
// change to IDR
|
|
||||||
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
data: 'ubah',
|
|
||||||
name: 'ubah',
|
|
||||||
className: 'text-center'
|
|
||||||
},
|
|
||||||
],
|
|
||||||
footerCallback: function(row, data, start, end, display) {
|
|
||||||
let api = this.api();
|
|
||||||
// Remove the formatting to get integer data for summation
|
|
||||||
let intVal = function(i) {
|
|
||||||
return typeof i === 'string' ?
|
|
||||||
i.replace(/[\$,]/g, '') * 1 :
|
|
||||||
typeof i === 'number' ?
|
|
||||||
i :
|
|
||||||
0;
|
|
||||||
};
|
|
||||||
|
|
||||||
// GrandTotal over all pages
|
|
||||||
totalAll = api
|
|
||||||
.column(8)
|
|
||||||
.data()
|
|
||||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
|
||||||
|
|
||||||
// GrandTotal over all pages
|
|
||||||
diskonTotal = api
|
|
||||||
.column(7)
|
|
||||||
.data()
|
|
||||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
|
||||||
|
|
||||||
// Total over this page
|
|
||||||
pageTotal = api
|
|
||||||
.column(6, {
|
|
||||||
page: 'current'
|
|
||||||
})
|
|
||||||
.data()
|
|
||||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
|
||||||
|
|
||||||
// total pesanan
|
|
||||||
totalPesanan = api
|
|
||||||
.column(5)
|
|
||||||
.data()
|
|
||||||
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
|
||||||
|
|
||||||
// Update footer
|
|
||||||
api.column(5).footer().innerHTML = totalPesanan + ' Item';
|
|
||||||
api.column(6).footer().innerHTML =
|
|
||||||
'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
|
||||||
api.column(7).footer().innerHTML = diskonTotal + ' %';
|
|
||||||
api.column(8).footer().innerHTML =
|
|
||||||
'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
|
||||||
}
|
|
||||||
})
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
<script>
|
|
||||||
function print(id) {
|
|
||||||
var url = "{{ route('history.print', '') }}/" + id + '?print=true'
|
|
||||||
window.open(url, '_blank');
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
@endpush
|
|
||||||
|
|
|
@ -0,0 +1,202 @@
|
||||||
|
@push('scripts')
|
||||||
|
<script src="{{ asset('assets/datatables/datatables.min.js') }}"></script>
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
let dataTable = $('#tabelku').DataTable({
|
||||||
|
processing: true,
|
||||||
|
serverSide: true,
|
||||||
|
ajax: {
|
||||||
|
url: '{{ route('history.getDataHistory') }}',
|
||||||
|
data: function(d) {
|
||||||
|
d.filter_tanggal_1 = $("#filter_tanggal_1").val();
|
||||||
|
d.filter_tanggal_2 = $("#filter_tanggal_2").val();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
columns: [{
|
||||||
|
data: 'nomor',
|
||||||
|
name: 'nomor',
|
||||||
|
orderable: false,
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'kode_pesanan',
|
||||||
|
name: 'kode_pesanan'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'nama_pemesan',
|
||||||
|
name: 'nama_pemesan'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'nomor_meja',
|
||||||
|
name: 'nomor_meja'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'created_at',
|
||||||
|
name: 'created_at'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'total_pesanan',
|
||||||
|
name: 'total_pesanan',
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'total_bayar',
|
||||||
|
name: 'total_bayar',
|
||||||
|
className: 'text-right',
|
||||||
|
render: function(data) {
|
||||||
|
// change to IDR
|
||||||
|
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'diskon_persen',
|
||||||
|
name: 'diskon_persen',
|
||||||
|
className: 'text-center',
|
||||||
|
render: function(data) {
|
||||||
|
return data ?? 0;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'grand_total',
|
||||||
|
name: 'grand_total',
|
||||||
|
className: 'text-right',
|
||||||
|
render: function(data) {
|
||||||
|
// change to IDR
|
||||||
|
return 'Rp. ' + data.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
data: 'ubah',
|
||||||
|
name: 'ubah',
|
||||||
|
className: 'text-center'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
footerCallback: function(row, data, start, end, display) {
|
||||||
|
let api = this.api();
|
||||||
|
// Remove the formatting to get integer data for summation
|
||||||
|
let intVal = function(i) {
|
||||||
|
return typeof i === 'string' ?
|
||||||
|
i.replace(/[\$,]/g, '') * 1 :
|
||||||
|
typeof i === 'number' ?
|
||||||
|
i :
|
||||||
|
0;
|
||||||
|
};
|
||||||
|
|
||||||
|
// GrandTotal over all pages
|
||||||
|
totalAll = api
|
||||||
|
.column(8)
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// GrandTotal over all pages
|
||||||
|
diskonTotal = api
|
||||||
|
.column(7)
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// Total over this page
|
||||||
|
pageTotal = api
|
||||||
|
.column(6, {
|
||||||
|
page: 'current'
|
||||||
|
})
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// total pesanan
|
||||||
|
totalPesanan = api
|
||||||
|
.column(5)
|
||||||
|
.data()
|
||||||
|
.reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||||
|
|
||||||
|
// Update footer
|
||||||
|
api.column(5).footer().innerHTML = totalPesanan + ' Item';
|
||||||
|
api.column(6).footer().innerHTML =
|
||||||
|
'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
api.column(7).footer().innerHTML = diskonTotal + ' %';
|
||||||
|
api.column(8).footer().innerHTML =
|
||||||
|
'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$('#btn_filter').on('click', function() {
|
||||||
|
if($("#filter_tanggal_1").val() == "" || $("#filter_tanggal_2").val() == ""){
|
||||||
|
alert("Input pencarian tidak boleh kosong")
|
||||||
|
}else{
|
||||||
|
dataTable.ajax.reload();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function print(id) {
|
||||||
|
var url = "{{ route('history.print', '') }}/" + id + '?print=true'
|
||||||
|
window.open(url, '_blank');
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script>
|
||||||
|
function detail(id_pesanan){
|
||||||
|
$.ajax({
|
||||||
|
headers: {
|
||||||
|
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
|
||||||
|
},
|
||||||
|
type: "POST",
|
||||||
|
url: "{{ route('history.getDataDetailHistory') }}",
|
||||||
|
data: {
|
||||||
|
id_pesanan: id_pesanan,
|
||||||
|
},
|
||||||
|
success: function(result) {
|
||||||
|
$('#view_history_detail').empty()
|
||||||
|
if(result.status){
|
||||||
|
const data = result.data
|
||||||
|
let nomor = 1
|
||||||
|
// console.log(data);
|
||||||
|
data.forEach(x => {
|
||||||
|
let tr = $('<tr></tr>')
|
||||||
|
tr.append('<td class="text-center">'+nomor+'</td>')
|
||||||
|
tr.append('<td>'+x.nama_produk+'</td>')
|
||||||
|
tr.append('<td>'+formatRupiah(x.harga_produk)+'</td>')
|
||||||
|
tr.append('<td class="text-center">'+x.jumlah_produk+'</td>')
|
||||||
|
tr.append('<td>'+formatRupiah(x.total_harga_produk)+'</td>')
|
||||||
|
tr.append('<td class="text-center">'+x.diskon_persen+'%</td>')
|
||||||
|
tr.append('<td class="text-center">'+(x.keterangan_produk ?? '-')+'</td>')
|
||||||
|
$('#view_history_detail').append(tr)
|
||||||
|
nomor++
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
$('#modal_detail_history').modal('show')
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
{{-- <script>
|
||||||
|
$(document).ready( function () {
|
||||||
|
$('#btn_filter').on('click', function(){
|
||||||
|
let filter_tanggal_1 = $("#filter_tanggal_1").val()
|
||||||
|
let filter_tanggal_2 = $("#filter_tanggal_2").val()
|
||||||
|
|
||||||
|
// proses ajax
|
||||||
|
})
|
||||||
|
})
|
||||||
|
</script> --}}
|
||||||
|
<script>
|
||||||
|
function formatRupiah(angka) {
|
||||||
|
var bilangan = parseInt(angka);
|
||||||
|
|
||||||
|
// Cek apakah bilangan negatif atau positif
|
||||||
|
var minus = "";
|
||||||
|
if (bilangan < 0) {
|
||||||
|
minus = "-";
|
||||||
|
bilangan = Math.abs(bilangan);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Konversi angka menjadi format ribuan dengan menambahkan titik
|
||||||
|
var reverse = bilangan.toString().split("").reverse().join("");
|
||||||
|
var ribuan = reverse.match(/\d{1,3}/g);
|
||||||
|
var hasil = ribuan.join(".").split("").reverse().join("");
|
||||||
|
|
||||||
|
// Gabungkan hasil dengan simbol rupiah
|
||||||
|
var rupiah = "Rp " + minus + hasil;
|
||||||
|
|
||||||
|
return rupiah;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
@endpush
|
|
@ -0,0 +1,30 @@
|
||||||
|
<div class="modal fade" id="modal_detail_history" aria-labelledby="exampleModalLabel" >
|
||||||
|
<div class="modal-dialog modal-lg">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h5 class="modal-title" id="exampleModalLabel">Detail History</h5>
|
||||||
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<div class="table-responsive mt-3">
|
||||||
|
<table id="tabelku" class="table table-hover display" style="width: 100%; font-size: 14px;">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="text-center">No</th>
|
||||||
|
<th>Nama Produk</th>
|
||||||
|
<th>Harga</th>
|
||||||
|
<th class="text-center">Jumlah Terjual</th>
|
||||||
|
<th>Total Harga</th>
|
||||||
|
<th class="text-center">Diskon(%)</th>
|
||||||
|
<th>Keterangan</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="view_history_detail"></tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,18 @@
|
||||||
|
@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
|
|
@ -34,6 +34,7 @@ Route::group(['prefix' => 'history'], function () {
|
||||||
Route::get('/', [History::class, 'index'])->name('history.index');
|
Route::get('/', [History::class, 'index'])->name('history.index');
|
||||||
Route::get('/getDataHistory', [History::class, 'getDataHistory'])->name('history.getDataHistory');
|
Route::get('/getDataHistory', [History::class, 'getDataHistory'])->name('history.getDataHistory');
|
||||||
Route::get('/print/{id}', [History::class, 'print'])->name('history.print');
|
Route::get('/print/{id}', [History::class, 'print'])->name('history.print');
|
||||||
|
Route::post('/getDataDetailHistory', [History::class, 'getDataDetailHistory'])->name('history.getDataDetailHistory');
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::group(['prefix' => 'menu'], function () {
|
Route::group(['prefix' => 'menu'], function () {
|
||||||
|
|
Loading…
Reference in New Issue