Merge branch 'sofyan' of https://git.indoserv.net/wewmantap/resto-dhepot into main-gitea-akuncoa

sofyan
Zelda Ababil 2024-01-25 12:39:07 +07:00
commit dbe920e45f
6 changed files with 230 additions and 36 deletions

View File

@ -118,6 +118,8 @@ class Transaksi extends Controller
'orderMenus.required' => 'Pesanan tidak boleh kosong', 'orderMenus.required' => 'Pesanan tidak boleh kosong',
]); ]);
$user = request()->user();
try { try {
DB::beginTransaction(); DB::beginTransaction();
@ -131,28 +133,50 @@ class Transaksi extends Controller
$lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1; $lastCountPesanan = Pesanan::whereDate('created_at', date('Y-m-d'))->count() + 1;
// calculate nomor antrian // calculate nomor antrian
$nomorAntrian = $lastCountPesanan; $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) { foreach ($request->orderMenus as $key => $value) {
// calculate produk promo untuk mengurangi stok // calculate produk promo untuk mengurangi stok
@ -181,12 +205,37 @@ class Transaksi extends Controller
} }
// keuangan // keuangan
// jika pembayaran tunai // jika pembayaran non tunai
if($request->jenis_pembayaran == "1"){ 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([ BukuBesar::create([
'faktur' => 'PJ-'.date('YmdHis'), 'faktur' => 'PJ-'.date('YmdHis'),
'tanggal' => date('Y-m-d'), 'tanggal' => date('Y-m-d'),
'rekening_coa_id' => "2", 'rekening_coa_id' => "2",
'pesanans_id' => $pesananModels->id,
'kode_rekening_coa' => "1.100.01", 'kode_rekening_coa' => "1.100.01",
'keterangan_coa' => "Kas Kasir", 'keterangan_coa' => "Kas Kasir",
'keterangan' => 'Penjualan Tunai['.$request->orderCode.']', 'keterangan' => 'Penjualan Tunai['.$request->orderCode.']',
@ -197,15 +246,13 @@ class Transaksi extends Controller
'faktur' => 'PJ-'.date('YmdHis'), 'faktur' => 'PJ-'.date('YmdHis'),
'tanggal' => date('Y-m-d'), 'tanggal' => date('Y-m-d'),
'rekening_coa_id' => "35", 'rekening_coa_id' => "35",
'pesanans_id' => $pesananModels->id,
'kode_rekening_coa' => "4.100.01", 'kode_rekening_coa' => "4.100.01",
'keterangan_coa' => "Pendapatan Penjualan", 'keterangan_coa' => "Pendapatan Penjualan",
'keterangan' => 'Penjualan Tunai['.$request->orderCode.']', 'keterangan' => 'Penjualan Tunai['.$request->orderCode.']',
'debet' => 0, 'debet' => 0,
'kredit' => $request->totalDiskon 'kredit' => $request->totalDiskon
]); ]);
// jika pembayaran non tunai
}else{
} }
DB::commit(); DB::commit();

View File

@ -12,7 +12,7 @@ return new class extends Migration
public function up(): void public function up(): void
{ {
Schema::table('pesanans', function (Blueprint $table) { 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');
}); });
} }

View File

@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('buku_besar', function (Blueprint $table) {
$table->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');
});
}
};

View File

@ -19,7 +19,8 @@ class DatabaseSeeder extends Seeder
ProdukSeeder::class, ProdukSeeder::class,
KelompokKategoriPivotSeeder::class, KelompokKategoriPivotSeeder::class,
// UserSeeder::class, UserSeeder::class,
KasirSeeder::class,
RekeningCoaSeeder::class RekeningCoaSeeder::class
]; ];

View File

@ -635,12 +635,6 @@
var kode_coa = split_rekening_coa_aba_penarikan[1] var kode_coa = split_rekening_coa_aba_penarikan[1]
var keterangan_coa = split_rekening_coa_aba_penarikan[2] 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) { if (orderMenus.length == 0) {
alert('Menu tidak boleh kosong'); alert('Menu tidak boleh kosong');
document.getElementById('pesan-bayar-tunai').disabled = false; document.getElementById('pesan-bayar-tunai').disabled = false;
@ -682,7 +676,7 @@
nominalBayar: nominalBayar, nominalBayar: nominalBayar,
kembali: kembaliHidden, kembali: kembaliHidden,
jenis_pembayaran: jenis_pembayaran, jenis_pembayaran: jenis_pembayaran,
coa_kas: id_rekening_coa, id_rekening_coa: id_rekening_coa,
kode_coa: kode_coa, kode_coa: kode_coa,
keterangan_coa: keterangan_coa, keterangan_coa: keterangan_coa,
}; };
@ -710,9 +704,133 @@
} }
}); });
}) })
// modal bayar non tunai
$('#pesan-bayar-nontunai').on('click', function() { $('#pesan-bayar-nontunai').on('click', function() {
$("#modal_nontunai").modal('show') $("#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 // select paket

View File

@ -471,7 +471,7 @@
<div class="btn-group btn-block"> <div class="btn-group btn-block">
<button class="btn btn-warning btn-block col-sm-10 col-md-10 col-lg-10" <button class="btn btn-warning btn-block col-sm-10 col-md-10 col-lg-10"
id="pesan-bayar-tunai">Bayar</button> id="pesan-bayar-tunai">Bayar</button>
<button type="button" class="btn btn-success" id="nonTunaiSaja"> <button type="button" class="btn btn-success" id="pesan-bayar-nontunai">
Non Tunai Non Tunai
</button> </button>
</div> </div>