diff --git a/app/Http/Controllers/Admins/Penjualan/PenjualanController.php b/app/Http/Controllers/Admins/Penjualan/PenjualanController.php index d939019..1fb2645 100644 --- a/app/Http/Controllers/Admins/Penjualan/PenjualanController.php +++ b/app/Http/Controllers/Admins/Penjualan/PenjualanController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers\Admins\Penjualan; use App\Http\Controllers\Controller; use App\Models\DetailPesanan; use App\Models\Pesanan; +use App\Models\RekeningCoa; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -13,7 +14,9 @@ class PenjualanController extends Controller { public function index() { - return view('pages.admin.penjualan.index'); + $aba = RekeningCoa::where('kode_coa', 1)->where('sub_kode_coa', 200)->get(); + + return view('pages.admin.penjualan.index', compact('aba')); } public function getDataPenjualan(Request $request) @@ -21,18 +24,35 @@ class PenjualanController extends Controller $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('tanggal_pesanan', '>=', $filter_tanggal_1); - }) - ->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) { - return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2); - }) - ->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) { - return $query->whereDate('tanggal_pesanan', Carbon::today()); - }) - ->orderBy('tanggal_pesanan', 'desc') - ->get(); + $akun_coa = $request->akun_coa; + if ($request->akun_coa == null) { + $data = Pesanan::with(['detailPesanan', 'user', 'rekening_coa']) + ->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) { + return $query->whereDate('tanggal_pesanan', '>=', $filter_tanggal_1); + }) + ->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) { + return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2); + }) + ->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) { + return $query->whereDate('tanggal_pesanan', Carbon::today()); + }) + ->orderBy('tanggal_pesanan', 'desc') + ->get(); + } else { + $data = Pesanan::with(['detailPesanan', 'user', 'rekening_coa']) + ->where('rekening_coa_id', $akun_coa) + ->when($filter_tanggal_1, function ($query) use ($filter_tanggal_1) { + return $query->whereDate('tanggal_pesanan', '>=', $filter_tanggal_1); + }) + ->when($filter_tanggal_2, function ($query) use ($filter_tanggal_2) { + return $query->whereDate('tanggal_pesanan', '<=', $filter_tanggal_2); + }) + ->when(!$filter_tanggal_1 && !$filter_tanggal_2, function ($query) { + return $query->whereDate('tanggal_pesanan', Carbon::today()); + }) + ->orderBy('tanggal_pesanan', 'desc') + ->get(); + } return datatables() ->of($data) @@ -55,6 +75,9 @@ class PenjualanController extends Controller ->addColumn('grand_total_rp', function ($data) { return 'Rp ' . number_format($data->grand_total, 0, ',', '.'); }) + ->addColumn('jenis_pembayarannya', function ($data) { + return $data->jenis_pembayaran == 1 ? 'Tunai' : 'Non-Tunai' . ' (' . $data->rekening_coa->keterangan_coa . ')'; + }) ->addColumn('ubah', function ($data) { return '
@@ -94,13 +117,25 @@ class PenjualanController extends Controller $mpdf->AddPage(); $mpdf->setFooter('{PAGENO}'); - $data = Pesanan::with(['user', 'bukuBesar'])->whereDate('tanggal_pesanan', '>=', $request->filter_tanggal_1) - ->whereDate('tanggal_pesanan', '<=', $request->filter_tanggal_2) - ->get(); + $filter_tanggal_1 = $request->filter_tanggal_1; + $filter_tanggal_2 = $request->filter_tanggal_2; + if ($request->jenis_coa == null) { + $keterangan_coa = 'Semua'; + $data = Pesanan::with(['user', 'bukuBesar', 'rekening_coa'])->whereDate('tanggal_pesanan', '>=', $request->filter_tanggal_1) + ->whereDate('tanggal_pesanan', '<=', $request->filter_tanggal_2) + ->get(); + } else { + $keterangan_coa = RekeningCoa::find($request->jenis_coa)->keterangan_coa; + $data = Pesanan::with(['user', 'bukuBesar', 'rekening_coa'])->where('rekening_coa_id', $request->jenis_coa)->whereDate('tanggal_pesanan', '>=', $request->filter_tanggal_1) + ->whereDate('tanggal_pesanan', '<=', $request->filter_tanggal_2) + ->get(); + } + $html = view('pages.admin.penjualan.laporan', [ 'data' => $data, - 'filter_tanggal_1' => $request->filter_tanggal_1, - 'filter_tanggal_2' => $request->filter_tanggal_2, + 'filter_tanggal_1' => $filter_tanggal_1, + 'filter_tanggal_2' => $filter_tanggal_2, + 'keterangan_coa' => $keterangan_coa ]); $mpdf->writeHTML($html); diff --git a/app/Http/Controllers/Kasir/Transaksi.php b/app/Http/Controllers/Kasir/Transaksi.php index adf5400..5ca4e50 100644 --- a/app/Http/Controllers/Kasir/Transaksi.php +++ b/app/Http/Controllers/Kasir/Transaksi.php @@ -182,6 +182,7 @@ class Transaksi extends Controller 'status_bayar' => '1', 'user_id' => $user->id, 'jenis_pembayaran' => $request->jenis_pembayaran, + 'rekening_coa_id' => $request->id_rekening_coa, ]; $pesananModels = \App\Models\Pesanan::create($pesananDatas); } diff --git a/app/Models/Pesanan.php b/app/Models/Pesanan.php index 372c2b7..17e5e4d 100644 --- a/app/Models/Pesanan.php +++ b/app/Models/Pesanan.php @@ -34,7 +34,7 @@ class Pesanan extends Model 'diskon_rupiah', 'user_id', 'jenis_pembayaran', - 'coa_kas', + 'rekening_coa_id', ]; public function detailPesanan() @@ -62,4 +62,9 @@ class Pesanan extends Model { return $this->hasMany(BukuBesar::class, 'pesanans_id'); } + + public function rekening_coa() + { + return $this->belongsTo(RekeningCoa::class, 'rekening_coa_id'); + } } diff --git a/database/migrations/2024_02_19_165439_change_comment_in_coa_kas_column_in_pesanans_table.php b/database/migrations/2024_02_19_165439_change_comment_in_coa_kas_column_in_pesanans_table.php new file mode 100644 index 0000000..a361be6 --- /dev/null +++ b/database/migrations/2024_02_19_165439_change_comment_in_coa_kas_column_in_pesanans_table.php @@ -0,0 +1,30 @@ +dropForeign(['coa_kas']); + $table->dropColumn('coa_kas'); + $table->foreignId('rekening_coa_id')->nullable()->after('jenis_pembayaran')->comment('relation in id coa kas')->references('id')->on('rekening_coa')->onUpdate('cascade')->onDelete('cascade'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('pesanans', function (Blueprint $table) { + $table->dropColumn('coa_kas'); + }); + } +}; diff --git a/resources/views/pages/Kasir/js.blade.php b/resources/views/pages/Kasir/js.blade.php index 6d11623..6468992 100644 --- a/resources/views/pages/Kasir/js.blade.php +++ b/resources/views/pages/Kasir/js.blade.php @@ -776,6 +776,7 @@ // pembayaran non tunai $('#pembayaran-nontunai').on('click', function() { + document.getElementById('pembayaran-nontunai').disabled = true; let jenis_pembayaran = "2" // return console.log(jenis_pembayaran); var table = document.getElementById("order-menus"); @@ -802,7 +803,10 @@ diskonSatuan: diskonSatuan, harga: harga, total: total, - keterangan: document.getElementsByName('keterangan_satuan')[i - 1].value + keterangan: document.getElementsByName('keterangan_satuan')[i - 1] + .value, + status_pesanan_dinein: document.getElementsByName( + 'status_pesanan_dinein')[i - 1].value, }); } } @@ -815,11 +819,11 @@ 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] + 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'); @@ -828,7 +832,7 @@ if (orderMenus.length == 0) { alert('Menu tidak boleh kosong'); - document.getElementById('pesan-bayar-tunai').disabled = false; + document.getElementById('pembayaran-nontunai').disabled = false; return false; } // if (totalDiskon != 0) { @@ -845,12 +849,12 @@ // } if (namaPemesan == '' || namaPemesan == null || namaPemesan == undefined) { alert('Nama pemesan tidak boleh kosong'); - document.getElementById('pesan-bayar-tunai').disabled = false; + document.getElementById('pembayaran-nontunai').disabled = false; return false; } if (nomorMeja == '' || nomorMeja == null || nomorMeja == undefined) { alert('Nomor meja tidak boleh kosong'); - document.getElementById('pesan-bayar-tunai').disabled = false; + document.getElementById('pembayaran-nontunai').disabled = false; return false; } @@ -877,7 +881,7 @@ method: "POST", data: data, success: function(result) { - document.getElementById('pesan-bayar-tunai').disabled = false; + document.getElementById('pembayaran-nontunai').disabled = false; toastr.success(result.message, 'Success', { timeOut: 2000 }); @@ -889,7 +893,7 @@ }, 1000); }, error: function(xhr, status, error) { - document.getElementById('pesan-bayar-tunai').disabled = false; + document.getElementById('pembayaran-nontunai').disabled = false; toastr.error(xhr.responseJSON.message, 'Error', { timeOut: 3000 }); diff --git a/resources/views/pages/admin/penjualan/index.blade.php b/resources/views/pages/admin/penjualan/index.blade.php index 68fced4..30dddd6 100644 --- a/resources/views/pages/admin/penjualan/index.blade.php +++ b/resources/views/pages/admin/penjualan/index.blade.php @@ -32,14 +32,31 @@ @csrf
-

s/d

-
+
+ +
Filter data @@ -63,7 +80,7 @@ No Kode Pesanan Pemesan - Nomor Meja + Status Pembayaran Tanggal & Jam Total Pesanan Sub Total diff --git a/resources/views/pages/admin/penjualan/js.blade.php b/resources/views/pages/admin/penjualan/js.blade.php index f2c3ac3..f922141 100644 --- a/resources/views/pages/admin/penjualan/js.blade.php +++ b/resources/views/pages/admin/penjualan/js.blade.php @@ -1,7 +1,10 @@ @push('scripts') + +