diff --git a/app/Http/Controllers/Kasir/Transaksi.php b/app/Http/Controllers/Kasir/Transaksi.php index e50709e..0a317b0 100644 --- a/app/Http/Controllers/Kasir/Transaksi.php +++ b/app/Http/Controllers/Kasir/Transaksi.php @@ -118,6 +118,8 @@ class Transaksi extends Controller 'orderMenus.required' => 'Pesanan tidak boleh kosong', ]); + $user = request()->user(); + try { DB::beginTransaction(); @@ -131,28 +133,50 @@ class Transaksi extends Controller $lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1; // calculate nomor antrian $nomorAntrian = $lastCountPesanan; - $pesananDatas = [ - 'kode_pesanan' => $request->orderCode, - 'nama_pemesan' => $request->namaPemesan, - 'nomor_pemesan' => $request->nomorPemesan, - 'nomor_meja' => $request->nomorMeja, - 'status_pesanan' => '1', - 'tanggal_pesanan' => date('Y-m-d H:i:s'), - 'keterangan_pesanan' => $request->keteranganPesanan ?? null, - 'nomor_antrian' => $nomorAntrian, - 'total_pesanan' => $orderMenusQty, - 'total_bayar' => $orderMenusRupiah, - 'grand_total' => $request->totalDiskon, - 'nominal_bayar' => $request->nominalBayar, - 'diskon_persen' => $request->diskon, - 'nominal_kembali' => $request->kembali, - 'status_bayar' => '1', - 'user_id' => '1', - 'jenis_pembayaran' => $request->jenis_pembayaran, - 'coa_kas' => $request->coa_kas, - ]; - $pesananModels = \App\Models\Pesanan::create($pesananDatas); + if($request->jenis_pembayaran == "1"){ + $pesananDatas = [ + 'kode_pesanan' => $request->orderCode, + 'nama_pemesan' => $request->namaPemesan, + 'nomor_pemesan' => $request->nomorPemesan, + 'nomor_meja' => $request->nomorMeja, + 'status_pesanan' => '1', + 'tanggal_pesanan' => date('Y-m-d H:i:s'), + 'keterangan_pesanan' => $request->keteranganPesanan ?? null, + 'nomor_antrian' => $nomorAntrian, + 'total_pesanan' => $orderMenusQty, + 'total_bayar' => $orderMenusRupiah, + 'grand_total' => $request->totalDiskon, + 'nominal_bayar' => $request->nominalBayar, + 'diskon_persen' => $request->diskon, + 'nominal_kembali' => $request->kembali, + 'status_bayar' => '1', + 'user_id' => $user->id, + 'jenis_pembayaran' => $request->jenis_pembayaran, + ]; + $pesananModels = \App\Models\Pesanan::create($pesananDatas); + }else{ + $pesananDatas = [ + 'kode_pesanan' => $request->orderCode, + 'nama_pemesan' => $request->namaPemesan, + 'nomor_pemesan' => $request->nomorPemesan, + 'nomor_meja' => $request->nomorMeja, + 'status_pesanan' => '1', + 'tanggal_pesanan' => date('Y-m-d H:i:s'), + 'keterangan_pesanan' => $request->keteranganPesanan ?? null, + 'nomor_antrian' => $nomorAntrian, + 'total_pesanan' => $orderMenusQty, + 'total_bayar' => $orderMenusRupiah, + 'grand_total' => $request->totalDiskon, + 'nominal_bayar' => $request->totalDiskon, + 'diskon_persen' => $request->diskon, + 'nominal_kembali' => 0, + 'status_bayar' => '1', + 'user_id' => $user->id, + 'jenis_pembayaran' => $request->jenis_pembayaran, + ]; + $pesananModels = \App\Models\Pesanan::create($pesananDatas); + } foreach ($request->orderMenus as $key => $value) { // calculate produk promo untuk mengurangi stok @@ -181,12 +205,37 @@ class Transaksi extends Controller } // keuangan - // jika pembayaran tunai - if($request->jenis_pembayaran == "1"){ + // jika pembayaran non tunai + if($request->jenis_pembayaran == "2"){ + BukuBesar::create([ + '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.']', + 'debet' => $request->totalDiskon, + 'kredit' => 0 + ]); + BukuBesar::create([ + '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.']', + 'debet' => 0, + 'kredit' => $request->totalDiskon + ]); + // jika pembayaran tunai + }else{ BukuBesar::create([ '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.']', @@ -197,15 +246,13 @@ class Transaksi extends Controller '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.']', 'debet' => 0, 'kredit' => $request->totalDiskon ]); - // jika pembayaran non tunai - }else{ - } DB::commit(); diff --git a/database/migrations/2024_01_23_134040_add_coa_kas.php b/database/migrations/2024_01_23_134040_add_coa_kas.php index 0e91f63..e4b73c5 100644 --- a/database/migrations/2024_01_23_134040_add_coa_kas.php +++ b/database/migrations/2024_01_23_134040_add_coa_kas.php @@ -12,7 +12,7 @@ return new class extends Migration public function up(): void { Schema::table('pesanans', function (Blueprint $table) { - $table->foreignId('coa_kas')->nullable()->after('jenis_pembayaran')->references('id')->on('rekening_coa')->onUpdate('cascade')->onDelete('cascade'); + $table->foreignId('coa_kas')->nullable()->after('jenis_pembayaran')->comment('kolom ini tidak terpakai')->references('id')->on('rekening_coa')->onUpdate('cascade')->onDelete('cascade'); }); } diff --git a/database/migrations/2024_01_24_142010_add_pesanan_id.php b/database/migrations/2024_01_24_142010_add_pesanan_id.php new file mode 100644 index 0000000..1a54a29 --- /dev/null +++ b/database/migrations/2024_01_24_142010_add_pesanan_id.php @@ -0,0 +1,28 @@ +foreignId('pesanans_id')->nullable()->after('rekening_coa_id')->references('id')->on('pesanans')->onUpdate('cascade')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('buku_besar', function (Blueprint $table) { + $table->dropColumn('coa_kas'); + }); + } +}; diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index 41f8d04..9610b6a 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -19,7 +19,8 @@ class DatabaseSeeder extends Seeder ProdukSeeder::class, KelompokKategoriPivotSeeder::class, - // UserSeeder::class, + UserSeeder::class, + KasirSeeder::class, RekeningCoaSeeder::class ]; diff --git a/resources/views/pages/Kasir/js.blade.php b/resources/views/pages/Kasir/js.blade.php index 895ae7c..9cd000e 100644 --- a/resources/views/pages/Kasir/js.blade.php +++ b/resources/views/pages/Kasir/js.blade.php @@ -635,12 +635,6 @@ var kode_coa = split_rekening_coa_aba_penarikan[1] var keterangan_coa = split_rekening_coa_aba_penarikan[2] - // if (rekening_coa_aba_penarikan == '') { - // alert('Pilih kas tujuan'); - // document.getElementById('pesan-bayar-tunai').disabled = false; - // return false; - // } - if (orderMenus.length == 0) { alert('Menu tidak boleh kosong'); document.getElementById('pesan-bayar-tunai').disabled = false; @@ -682,7 +676,7 @@ nominalBayar: nominalBayar, kembali: kembaliHidden, jenis_pembayaran: jenis_pembayaran, - coa_kas: id_rekening_coa, + id_rekening_coa: id_rekening_coa, kode_coa: kode_coa, keterangan_coa: keterangan_coa, }; @@ -710,9 +704,133 @@ } }); }) + + // modal bayar non tunai $('#pesan-bayar-nontunai').on('click', function() { $("#modal_nontunai").modal('show') }) + + // pembayaran non tunai + $('#pembayaran-nontunai').on('click', function() { + let jenis_pembayaran = "2" + // return console.log(jenis_pembayaran); + var table = document.getElementById("order-menus"); + var orderMenus = []; + + for (var i = 1, row; row = table.rows[i]; i++) { + 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'); + if (diskonSatuan != 0 && diskonSatuan != null && diskonSatuan != undefined) { + total = total - (total * (diskonSatuan / 100)); + } else { + total = total + } + + if (id != null || qty != null || total != null) { + orderMenus.push({ + id: id, + nama: nama, + qty: qty, + diskonSatuan: diskonSatuan, + harga: harga, + total: total, + keterangan: document.getElementsByName('keterangan_satuan')[i - 1].value + }); + } + } + + var diskon = document.getElementsByName('diskon')[0].value; + var totalDiskon = document.getElementById('total-diskon-hidden').innerHTML; + var bayar = document.getElementsByName('nominal-bayar')[0].value; + var nominalBayar = bayar.replace(/[^,\d]/g, '').toString(); + var kembaliHidden = document.getElementById('kembali-hidden').innerHTML; + var namaPemesan = document.getElementsByName('nama-pemesan')[0].value; + var nomorPemesan = document.getElementsByName('nomor-pemesan')[0].value; + var nomorMeja = document.getElementsByName('nomor-meja')[0].value; + var rekening_coa_aba_penarikan = $("#rekening_coa_aba_penarikan").val() + var split_rekening_coa_aba_penarikan = rekening_coa_aba_penarikan.split("|") + var id_rekening_coa = split_rekening_coa_aba_penarikan[0] + var kode_coa = split_rekening_coa_aba_penarikan[1] + var keterangan_coa = split_rekening_coa_aba_penarikan[2] + + if (rekening_coa_aba_penarikan == '') { + alert('Pilih kas tujuan'); + return false; + } + + if (orderMenus.length == 0) { + alert('Menu tidak boleh kosong'); + document.getElementById('pesan-bayar-tunai').disabled = false; + return false; + } + // if (totalDiskon != 0) { + // if (nominalBayar == '' || nominalBayar == 0) { + // alert('Pembayaran tidak boleh kosong'); + // document.getElementById('pesan-bayar-tunai').disabled = false; + // return false; + // } + // } + // if (kembaliHidden < 0) { + // alert('Pembayaran kurang'); + // document.getElementById('pesan-bayar-tunai').disabled = false; + // return false; + // } + if (namaPemesan == '' || namaPemesan == null || namaPemesan == undefined) { + alert('Nama pemesan tidak boleh kosong'); + document.getElementById('pesan-bayar-tunai').disabled = false; + return false; + } + if (nomorMeja == '' || nomorMeja == null || nomorMeja == undefined) { + alert('Nomor meja tidak boleh kosong'); + document.getElementById('pesan-bayar-tunai').disabled = false; + return false; + } + + var data = { + _token: "{{ csrf_token() }}", + orderCode: "{{ $orderCode }}", + orderMenus: orderMenus, + namaPemesan: namaPemesan, + nomorPemesan: nomorPemesan, + nomorMeja: nomorMeja, + keteranganPesanan: document.getElementsByName('keterangan-pesanan')[0].value, + diskon: diskon, + totalDiskon: totalDiskon, + nominalBayar: nominalBayar, + kembali: kembaliHidden, + jenis_pembayaran: jenis_pembayaran, + id_rekening_coa: id_rekening_coa, + kode_coa: kode_coa, + keterangan_coa: keterangan_coa, + }; + + $.ajax({ + url: "{{ route('transaksi.store') }}", + method: "POST", + data: data, + success: function(result) { + document.getElementById('pesan-bayar-tunai').disabled = false; + toastr.success(result.message, 'Success', { + timeOut: 2000 + }); + window.open(result.url, '_blank'); + + setTimeout(function() { + window.location.reload(1); + }, 1000); + }, + error: function(xhr, status, error) { + document.getElementById('pesan-bayar-tunai').disabled = false; + toastr.error(xhr.responseJSON.message, 'Error', { + timeOut: 3000 + }); + } + }); + }) }); // select paket diff --git a/resources/views/pages/Kasir/transaksi.blade.php b/resources/views/pages/Kasir/transaksi.blade.php index a073ed3..742c8a4 100644 --- a/resources/views/pages/Kasir/transaksi.blade.php +++ b/resources/views/pages/Kasir/transaksi.blade.php @@ -471,7 +471,7 @@
-