From a84a4ca90bccb9c33ac02defa78f4a0cf091ab11 Mon Sep 17 00:00:00 2001 From: Zelda Ababil Date: Fri, 16 Feb 2024 03:53:23 +0700 Subject: [PATCH] change to mac --- .../Admins/Penjualan/PenjualanController.php | 30 +++++++- app/Http/Controllers/Kasir/History.php | 2 +- app/Http/Controllers/Kasir/Transaksi.php | 43 +++++++----- app/Models/DetailPesanan.php | 1 + ...status_pesanan_in_detail_pesanan_table.php | 28 ++++++++ resources/views/pages/History/index.blade.php | 2 + resources/views/pages/History/js.blade.php | 53 +++++++++++--- resources/views/pages/History/modal.blade.php | 61 +++++++++++++++- resources/views/pages/Kasir/js.blade.php | 37 +++++++++- resources/views/pages/Kasir/print.blade.php | 21 +++--- .../views/pages/Kasir/print_dapur.blade.php | 22 +++--- .../pages/Kasir/print_dapur_2x.blade.php | 13 ++-- .../pages/Kasir/print_dapur_3x.blade.php | 13 ++-- .../views/pages/Kasir/transaksi.blade.php | 26 ++++++- .../pages/admin/penjualan/index.blade.php | 4 +- .../views/pages/admin/penjualan/js.blade.php | 70 ++++++++++++++++++- .../pages/admin/penjualan/modal.blade.php | 30 ++++++-- routes/web.php | 1 + 18 files changed, 383 insertions(+), 74 deletions(-) create mode 100644 database/migrations/2024_02_07_150544_add_status_pesanan_in_detail_pesanan_table.php diff --git a/app/Http/Controllers/Admins/Penjualan/PenjualanController.php b/app/Http/Controllers/Admins/Penjualan/PenjualanController.php index d74efe6..d939019 100644 --- a/app/Http/Controllers/Admins/Penjualan/PenjualanController.php +++ b/app/Http/Controllers/Admins/Penjualan/PenjualanController.php @@ -57,7 +57,6 @@ class PenjualanController extends Controller }) ->addColumn('ubah', function ($data) { return '
-
'; }) @@ -74,7 +73,7 @@ class PenjualanController extends Controller public function getDataDetailPenjualan(Request $request) { - $data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->get(); + $data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->withTrashed()->get(); $pesanan = Pesanan::find($request->id_pesanan); return response()->json(['status' => true, 'data' => $data, 'pesanan' => $pesanan]); } @@ -130,6 +129,33 @@ class PenjualanController extends Controller } } + public function cancelDetail(Request $request) + { + try { + + DB::beginTransaction(); + $detailPesanan = DetailPesanan::find($request->id); + + $pesanan = Pesanan::find($detailPesanan->pesanan_id); + $pesanan->total_bayar = $pesanan->total_bayar - $detailPesanan->total_harga_produk; + // check the diskon in pesanan + $pesanan->grand_total = $pesanan->total_bayar - $pesanan->diskon_rupiah; + $pesanan->total_pesanan = $pesanan->total_pesanan - $detailPesanan->jumlah_produk; + $pesanan->save(); + + $detailPesanan->status_pesanan = '3'; + $detailPesanan->delete(); + $detailPesanan->save(); + + DB::commit(); + return response()->json(['status' => true, 'message' => 'Pesanan berhasil di cancel']); + } catch (\Throwable $th) { + DB::rollBack(); + return response()->json(['status' => false, 'message' => 'Pesanan gagal di cancel']); + //throw $th; + } + } + public function dibatalkan() { if (request()->ajax()) { diff --git a/app/Http/Controllers/Kasir/History.php b/app/Http/Controllers/Kasir/History.php index 883da52..a95c1f9 100644 --- a/app/Http/Controllers/Kasir/History.php +++ b/app/Http/Controllers/Kasir/History.php @@ -72,7 +72,7 @@ class History extends Controller public function getDataDetailHistory(Request $request) { - $data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->get(); + $data = Pesanan::with('detailPesanan')->find($request->id_pesanan); return response()->json(['status' => true, 'data' => $data]); } diff --git a/app/Http/Controllers/Kasir/Transaksi.php b/app/Http/Controllers/Kasir/Transaksi.php index 0a317b0..adf5400 100644 --- a/app/Http/Controllers/Kasir/Transaksi.php +++ b/app/Http/Controllers/Kasir/Transaksi.php @@ -23,7 +23,9 @@ class Transaksi extends Controller public function index() { - $orderCode = "ORD-" . strtoupper(random_str(6, random_str())); + // count pesanan by date now and add 1 for next count pesanan today + $lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1; + $orderCode = "ORD-" . date('ym') . strtoupper(random_str(3, random_str())) . date('d') . '-' . $lastCountPesanan; $KelompokKategori = KelompokKategori::with('kelompokKategoriPivot.produk')->get(); $aba = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get(); @@ -105,7 +107,6 @@ class Transaksi extends Controller public function store(Request $request) { - $request->validate([ 'orderCode' => 'required', 'namaPemesan' => 'required', @@ -134,9 +135,16 @@ class Transaksi extends Controller // calculate nomor antrian $nomorAntrian = $lastCountPesanan; - if($request->jenis_pembayaran == "1"){ + $kodenya = substr($request->orderCode, 0, -3); // Menghapus tiga karakter terakhir, + + // check antrian pesanan jika sudah ada di database maka tambahkan 1 untuk nomor antrian selanjutnya + $lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1; + + $kodenya = $kodenya . $lastCountPesanan; + + if ($request->jenis_pembayaran == "1") { $pesananDatas = [ - 'kode_pesanan' => $request->orderCode, + 'kode_pesanan' => $kodenya, 'nama_pemesan' => $request->namaPemesan, 'nomor_pemesan' => $request->nomorPemesan, 'nomor_meja' => $request->nomorMeja, @@ -155,9 +163,9 @@ class Transaksi extends Controller 'jenis_pembayaran' => $request->jenis_pembayaran, ]; $pesananModels = \App\Models\Pesanan::create($pesananDatas); - }else{ + } else { $pesananDatas = [ - 'kode_pesanan' => $request->orderCode, + 'kode_pesanan' => $kodenya, 'nama_pemesan' => $request->namaPemesan, 'nomor_pemesan' => $request->nomorPemesan, 'nomor_meja' => $request->nomorMeja, @@ -200,56 +208,57 @@ class Transaksi extends Controller 'total_harga_produk' => $value['total'], 'diskon_persen' => $value['diskonSatuan'] ?? null, 'keterangan_produk' => $value['keterangan'] ?? null, + 'status_pesanan' => $value['status_pesanan_dinein'] ?? null, ]; $detailPesananModels = \App\Models\DetailPesanan::create($oderDatas); } // keuangan // jika pembayaran non tunai - if($request->jenis_pembayaran == "2"){ + if ($request->jenis_pembayaran == "2") { BukuBesar::create([ - 'faktur' => 'PJ-'.date('YmdHis'), + 'faktur' => 'PJ-' . date('YmdHis'), 'tanggal' => date('Y-m-d'), 'rekening_coa_id' => $request->id_rekening_coa, 'pesanans_id' => $pesananModels->id, 'kode_rekening_coa' => $request->kode_coa, 'keterangan_coa' => $request->keterangan_coa, - 'keterangan' => 'Penjualan Non Tunai['.$request->orderCode.']', + 'keterangan' => 'Penjualan Non Tunai[' . $request->orderCode . ']', 'debet' => $request->totalDiskon, 'kredit' => 0 ]); BukuBesar::create([ - 'faktur' => 'PJ-'.date('YmdHis'), + 'faktur' => 'PJ-' . date('YmdHis'), 'tanggal' => date('Y-m-d'), 'rekening_coa_id' => "35", 'pesanans_id' => $pesananModels->id, 'kode_rekening_coa' => "4.100.01", 'keterangan_coa' => "Pendapatan Penjualan", - 'keterangan' => 'Penjualan Non Tunai['.$request->orderCode.']', + 'keterangan' => 'Penjualan Non Tunai[' . $request->orderCode . ']', 'debet' => 0, 'kredit' => $request->totalDiskon ]); - // jika pembayaran tunai - }else{ + // jika pembayaran tunai + } else { BukuBesar::create([ - 'faktur' => 'PJ-'.date('YmdHis'), + 'faktur' => 'PJ-' . date('YmdHis'), 'tanggal' => date('Y-m-d'), 'rekening_coa_id' => "2", 'pesanans_id' => $pesananModels->id, 'kode_rekening_coa' => "1.100.01", 'keterangan_coa' => "Kas Kasir", - 'keterangan' => 'Penjualan Tunai['.$request->orderCode.']', + 'keterangan' => 'Penjualan Tunai[' . $request->orderCode . ']', 'debet' => $request->totalDiskon, 'kredit' => 0 ]); BukuBesar::create([ - 'faktur' => 'PJ-'.date('YmdHis'), + 'faktur' => 'PJ-' . date('YmdHis'), 'tanggal' => date('Y-m-d'), 'rekening_coa_id' => "35", 'pesanans_id' => $pesananModels->id, 'kode_rekening_coa' => "4.100.01", 'keterangan_coa' => "Pendapatan Penjualan", - 'keterangan' => 'Penjualan Tunai['.$request->orderCode.']', + 'keterangan' => 'Penjualan Tunai[' . $request->orderCode . ']', 'debet' => 0, 'kredit' => $request->totalDiskon ]); diff --git a/app/Models/DetailPesanan.php b/app/Models/DetailPesanan.php index e0a9753..408d7c5 100644 --- a/app/Models/DetailPesanan.php +++ b/app/Models/DetailPesanan.php @@ -19,6 +19,7 @@ class DetailPesanan extends Model 'nama_produk', 'harga_produk', 'jumlah_produk', + 'status_pesanan', // 0=takeaway,1=default,2=dinein,3=cancel 'total_harga_produk', 'keterangan_produk', 'diskon_id', diff --git a/database/migrations/2024_02_07_150544_add_status_pesanan_in_detail_pesanan_table.php b/database/migrations/2024_02_07_150544_add_status_pesanan_in_detail_pesanan_table.php new file mode 100644 index 0000000..c204542 --- /dev/null +++ b/database/migrations/2024_02_07_150544_add_status_pesanan_in_detail_pesanan_table.php @@ -0,0 +1,28 @@ +enum('status_pesanan', [0, 1, 2, 3])->default(1)->comment('0=takeaway,1=default,2=dinein,3=cancel')->after('jumlah_produk'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_pesanans', function (Blueprint $table) { + $table->dropColumn('status_pesanan'); + }); + } +}; diff --git a/resources/views/pages/History/index.blade.php b/resources/views/pages/History/index.blade.php index bfae095..b0bc9b7 100644 --- a/resources/views/pages/History/index.blade.php +++ b/resources/views/pages/History/index.blade.php @@ -50,6 +50,7 @@ Kode Pesanan Pemesan Nomor Meja + Urutan Pesanan Tanggal & Jam Total Pesanan Sub Total @@ -62,6 +63,7 @@ Total + diff --git a/resources/views/pages/History/js.blade.php b/resources/views/pages/History/js.blade.php index d7a742b..c5307e6 100644 --- a/resources/views/pages/History/js.blade.php +++ b/resources/views/pages/History/js.blade.php @@ -34,6 +34,10 @@ data: 'nomor_meja', name: 'nomor_meja' }, + { + data: 'nomor_antrian', + name: 'nomor_antrian' + }, { data: 'created_at', name: 'created_at' @@ -88,7 +92,7 @@ // GrandTotal over all pages totalAll = api - .column(8) + .column(9) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); @@ -97,7 +101,7 @@ // Total over this page pageTotal = api - .column(6, { + .column(7, { page: 'current' }) .data() @@ -105,15 +109,15 @@ // total pesanan totalPesanan = api - .column(5) + .column(6) .data() .reduce((a, b) => intVal(a) + intVal(b), 0); // Update footer - api.column(5).footer().innerHTML = totalPesanan + ' Item'; - api.column(6).footer().innerHTML = + api.column(6).footer().innerHTML = totalPesanan + ' Item'; + api.column(7).footer().innerHTML = 'Rp. ' + pageTotal.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); - api.column(8).footer().innerHTML = + api.column(9).footer().innerHTML = 'Rp. ' + totalAll.toString().replace(/\B(?=(\d{3})+(?!\d))/g, '.'); } }) @@ -147,13 +151,23 @@ success: function(result) { $('#view_history_detail').empty() if (result.status) { - const data = result.data + const data = result.data.detail_pesanan let nomor = 1 // console.log(data); data.forEach(x => { + if (x.status_pesanan == 0) { + statusnya = 'TAKEAWAY'; + } else if (x.status_pesanan == 1) { + statusnya = 'DINEIN'; + } else if (x.status_pesanan == 2) { + statusnya = 'DINEIN'; + } else if (x.status_pesanan == 3) { + statusnya = 'CANCEL'; + } let tr = $('') tr.append('' + nomor + '') - tr.append('' + x.nama_produk + '') + tr.append('' + x.nama_produk + + statusnya + '') tr.append('' + formatRupiah(x.harga_produk) + '') tr.append('' + x.jumlah_produk + '') tr.append('' + formatRupiah(x.total_harga_produk) + '') @@ -163,11 +177,34 @@ $('#view_history_detail').append(tr) nomor++ }) + $('#kode_pesanan').val(result.data.kode_pesanan) + $('#nama_pemesan').val(result.data.nama_pemesan) + $('#tanggal_jam').val(tanggal_jam(result.data.created_at)) + $('#nomor_meja').val(result.data.nomor_meja) + $('#nomor_antrian').val(result.data.nomor_antrian) + $('#total_pesanan').val(result.data.total_pesanan + ' Item') + $('#sub_total').val(formatRupiah(result.data.total_bayar)) + if (result.data.diskon_persen == null) { + result.data.diskon_persen = 0 + } + $('#diskon_persen').val(result.data.diskon_persen + '%') + $('#grand_total').val(formatRupiah(result.data.grand_total)) } } }) $('#modal_detail_history').modal('show') } + + function tanggal_jam(tanggal) { + let date = new Date(tanggal) + let tahun = date.getFullYear() + let bulan = date.getMonth() + 1 + let tanggalnya = date.getDate() + let jam = date.getHours() + let menit = date.getMinutes() + let detik = date.getSeconds() + return `${tanggalnya}-${bulan}-${tahun} ${jam}:${menit}:${detik}` + } {{--