From ab1a2c886a9d3e1298edad68241b27d519e7b611 Mon Sep 17 00:00:00 2001 From: Zelda Ababil <zeldaababil01@gmail.com> Date: Mon, 22 Jan 2024 13:05:50 +0700 Subject: [PATCH] total --- app/Http/Controllers/Kasir/History.php | 13 +- app/Http/Controllers/Kasir/Transaksi.php | 4 +- resources/views/pages/History/index.blade.php | 205 ++++++++++++------ resources/views/pages/Kasir/print.blade.php | 11 +- .../views/pages/Kasir/print_dapur.blade.php | 31 ++- .../pages/Kasir/print_dapur_2x.blade.php | 11 +- .../pages/Kasir/print_dapur_3x.blade.php | 11 +- 7 files changed, 207 insertions(+), 79 deletions(-) diff --git a/app/Http/Controllers/Kasir/History.php b/app/Http/Controllers/Kasir/History.php index 5cd4045..101b1fc 100644 --- a/app/Http/Controllers/Kasir/History.php +++ b/app/Http/Controllers/Kasir/History.php @@ -24,13 +24,20 @@ class History extends Controller ->addColumn('nomor', function ($data) use (&$nomor) { return $nomor++; }) - ->addColumn('nama_user', function ($data) { - return $data->user->name; + ->addColumn('nama_pemesan', function ($data) { + $nomor = $data->nomor_pemesan != null ? '(' . $data->nomor_pemesan . ')' : ''; + return $data->nama_pemesan . ' ' . $nomor; + }) + ->addColumn('nomor_meja', function ($data) { + return $data->nomor_meja != null ? $data->nomor_meja : '-'; }) ->addColumn('created_at', function ($data) { return \Carbon\Carbon::parse($data->created_at)->format('d F Y H:i:s'); }) - ->addColumn('grand_total', function ($data) { + ->addColumn('total_bayar_rp', function ($data) { + return 'Rp ' . number_format($data->total_bayar, 0, ',', '.'); + }) + ->addColumn('grand_total_rp', function ($data) { return 'Rp ' . number_format($data->grand_total, 0, ',', '.'); }) ->addColumn('ubah', function ($data) { diff --git a/app/Http/Controllers/Kasir/Transaksi.php b/app/Http/Controllers/Kasir/Transaksi.php index dc6ef4b..29d8a68 100644 --- a/app/Http/Controllers/Kasir/Transaksi.php +++ b/app/Http/Controllers/Kasir/Transaksi.php @@ -21,7 +21,7 @@ class Transaksi extends Controller public function index() { - $orderCode = "ORD -" . strtoupper(random_str(6, random_str())); + $orderCode = "ORD-" . strtoupper(random_str(6, random_str())); $KelompokKategori = KelompokKategori::with('kelompokKategoriPivot.produk')->get(); // dd($KelompokKategori); @@ -77,7 +77,7 @@ class Transaksi extends Controller return view('pages.Kasir.print_dapur_3x', compact('pesanan')); } - + public function printDapurDuaKali($id) { $pesanan = \App\Models\Pesanan::with('detailPesanan', 'user')->find($id); diff --git a/resources/views/pages/History/index.blade.php b/resources/views/pages/History/index.blade.php index 0fc86d8..8f21618 100644 --- a/resources/views/pages/History/index.blade.php +++ b/resources/views/pages/History/index.blade.php @@ -1,51 +1,62 @@ @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-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 Pesanan</th> - <th>Kasir</th> - <th>Tanggal & Jam</th> - <th>Total Pesanan</th> - <th>Diskon(%)</th> - <th>Total</th> - <th class="text-center"><i class="fas fa-cog"></i></th> - </tr> - </thead> - </table> + <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-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 Pesanan</th> + <th>Pemesan</th> + <th>Nomor Meja</th> + <th>Tanggal & Jam</th> + <th>Total Pesanan</th> + <th>Sub Total</th> + <th>Diskon(%)</th> + <th>Total</th> + <th class="text-center"><i class="fas fa-cog"></i></th> + </tr> + </thead> + <tfoot> + <tr> + <th class="text-right" colspan="6">Total</th> + <th></th> + <th></th> + <th></th> + <th class="text-center"></th> + </tr> + </tfoot> + </table> + </div> </div> </div> </div> </div> -</div> @endsection @push('styles') @@ -64,34 +75,106 @@ } </style> <link rel="stylesheet" href="{{ asset('assets/plugins/toastr/toastr.min.css') }}"> - <link rel="stylesheet" href="{{asset('assets/datatables/datatables.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 () { + $(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_user', name: 'nama_user'}, - {data: 'created_at', name: 'created_at'}, - {data: 'total_pesanan', name: 'total_pesanan', className: 'text-center'}, - { - data: 'diskon_persen', - name: 'diskon_persen', - className: 'text-center', - render: function(data){ - return data ?? 0; - } - }, - {data: 'grand_total', name: 'grand_total'}, - {data: 'ubah', name: 'ubah', className: 'text-center'}, - ] + 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', + 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', + 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(); + console.log(api.column(6).data()); + // 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; + }; + + // Total over all pages + totalAll = api + .column(8) + .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); + + // Update footer + api.column(6).footer().innerHTML = + 'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); + api.column(8).footer().innerHTML = + 'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); + } }) }) </script> @@ -101,4 +184,4 @@ window.open(url, '_blank'); } </script> -@endpush \ No newline at end of file +@endpush diff --git a/resources/views/pages/Kasir/print.blade.php b/resources/views/pages/Kasir/print.blade.php index 7e4cf60..f73c891 100644 --- a/resources/views/pages/Kasir/print.blade.php +++ b/resources/views/pages/Kasir/print.blade.php @@ -77,11 +77,11 @@ <body style="width: 58mm;"> <!-- Button Print --> - <div class=""> + {{-- <div class=""> <div class="col-6 mb"> <button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button> </div> - </div> + </div> --}} <br> <h2 style="text-align: center">Sepiring Telur Keriting</h2> <p style="text-align: center">Jln. Jawa No. 28A, Jember</p> @@ -303,7 +303,12 @@ } </style> <script> - // window.print(); + addEventListener("afterprint", (event) => { + window.close(); + }); + + window.print(); + const $btnPrint = document.querySelector("#print-dapur"); $btnPrint.addEventListener("click", () => { window.print(); diff --git a/resources/views/pages/Kasir/print_dapur.blade.php b/resources/views/pages/Kasir/print_dapur.blade.php index 7e4cf60..4d17a88 100644 --- a/resources/views/pages/Kasir/print_dapur.blade.php +++ b/resources/views/pages/Kasir/print_dapur.blade.php @@ -75,13 +75,19 @@ } </style> -<body style="width: 58mm;"> +<body style="width: 56mm;"> <!-- Button Print --> - <div class=""> + {{-- <div class=""> <div class="col-6 mb"> <button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button> </div> - </div> + <div class="col-6 mb"> + <button class="btn btn-warning btn-block hidden-print" id="refresh">Refresh</button> + </div> + <div class="col-6 mb"> + <button class="btn btn-danger btn-block hidden-print" id="close">Tutup</button> + </div> + </div> --}} <br> <h2 style="text-align: center">Sepiring Telur Keriting</h2> <p style="text-align: center">Jln. Jawa No. 28A, Jember</p> @@ -290,6 +296,13 @@ box-shadow: none; } + .btn-warning { + color: #fff; + background-color: orange; + border-color: orange; + box-shadow: none; + } + .btn-danger { color: #fff; background-color: #dc3545; @@ -303,7 +316,12 @@ } </style> <script> - // window.print(); + addEventListener("afterprint", (event) => { + window.close(); + }); + + window.print(); + const $btnPrint = document.querySelector("#print-dapur"); $btnPrint.addEventListener("click", () => { window.print(); @@ -314,6 +332,11 @@ location.reload() }) }) + $(document).ready(function() { + $('#close').on('click', function() { + window.close() + }) + }) </script> </html> diff --git a/resources/views/pages/Kasir/print_dapur_2x.blade.php b/resources/views/pages/Kasir/print_dapur_2x.blade.php index a386b54..264c4fd 100644 --- a/resources/views/pages/Kasir/print_dapur_2x.blade.php +++ b/resources/views/pages/Kasir/print_dapur_2x.blade.php @@ -77,11 +77,11 @@ <body style="width: 58mm;"> <!-- Button Print --> - <div class=""> + {{-- <div class=""> <div class="col-6 mb"> <button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button> </div> - </div> + </div> --}} <br> @for ($i = 0; $i < 2; $i++) <hr class="dashed-line" style="margin-top: 15px;"> @@ -220,7 +220,12 @@ } </style> <script> - // window.print(); + addEventListener("afterprint", (event) => { + window.close(); + }); + + window.print(); + const $btnPrint = document.querySelector("#print-dapur"); $btnPrint.addEventListener("click", () => { window.print(); diff --git a/resources/views/pages/Kasir/print_dapur_3x.blade.php b/resources/views/pages/Kasir/print_dapur_3x.blade.php index 637c8e3..3ad545e 100644 --- a/resources/views/pages/Kasir/print_dapur_3x.blade.php +++ b/resources/views/pages/Kasir/print_dapur_3x.blade.php @@ -77,11 +77,11 @@ <body style="width: 58mm;"> <!-- Button Print --> - <div class=""> + {{-- <div class=""> <div class="col-6 mb"> <button class="btn btn-info btn-block hidden-print" id="print-dapur">Print</button> </div> - </div> + </div> --}} <br> @for ($i = 0; $i < 3; $i++) <hr class="dashed-line" style="margin-top: 15px;"> @@ -223,7 +223,12 @@ } </style> <script> - // window.print(); + addEventListener("afterprint", (event) => { + window.close(); + }); + + window.print(); + const $btnPrint = document.querySelector("#print-dapur"); $btnPrint.addEventListener("click", () => { window.print();