diff --git a/app/Http/Controllers/Admins/Penjualan/PenjualanController.php b/app/Http/Controllers/Admins/Penjualan/PenjualanController.php
new file mode 100644
index 0000000..1eaa680
--- /dev/null
+++ b/app/Http/Controllers/Admins/Penjualan/PenjualanController.php
@@ -0,0 +1,109 @@
+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();
+
+ return datatables()
+ ->of($data)
+ ->addColumn('nomor', function ($data) use (&$nomor) {
+ return $nomor++;
+ })
+ ->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('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) {
+ return '
';
+ })
+ ->rawColumns(['nomor', 'nama_user', 'created_at', 'grand_total', 'ubah'])
+ ->make(true);
+ }
+
+ public function print($id)
+ {
+ $pesanan = \App\Models\Pesanan::with('detailPesanan', 'user')->find($id);
+
+ return view('pages.Kasir.print_dapur', compact('pesanan'));
+ }
+
+ public function getDataDetailPenjualan(Request $request)
+ {
+ $data = DetailPesanan::with('pesanan')->where('pesanan_id', $request->id_pesanan)->get();
+
+ return response()->json(['status' => true, 'data' => $data]);
+ }
+
+ public function laporan(Request $request)
+ {
+ $mpdf = new \Mpdf\Mpdf([
+ 'mode' => 'utf-8',
+ 'format' => 'A4',
+ 'orientation' => 'portrait',
+ 'margin_left' => 15,
+ 'margin_right' => 15,
+ 'margin_top' => 10,
+ 'margin_bottom' => 10,
+ 'default_font_size' => 9,
+ 'default_font' => 'arial',
+ ]);
+ $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();
+ $html = view('pages.admin.penjualan.laporan', [
+ 'data' => $data,
+ 'filter_tanggal_1' => $request->filter_tanggal_1,
+ 'filter_tanggal_2' => $request->filter_tanggal_2,
+ ]);
+ $mpdf->writeHTML($html);
+
+ $mpdf->Output('Laporan_Penjualan.pdf', 'I');
+ return response()->header('Content-Type', 'application/pdf');
+ }
+}
diff --git a/app/Models/BukuBesar.php b/app/Models/BukuBesar.php
index 6d75bf9..ecb0e34 100644
--- a/app/Models/BukuBesar.php
+++ b/app/Models/BukuBesar.php
@@ -10,5 +10,16 @@ class BukuBesar extends Model
use HasFactory;
protected $table = 'buku_besar';
- protected $guarded = [];
+
+ protected $fillable = [
+ 'faktur',
+ 'tanggal',
+ 'rekening_coa_id',
+ 'pesanans_id',
+ 'kode_rekening_coa',
+ 'keterangan_coa',
+ 'keterangan',
+ 'debet',
+ 'kredit',
+ ];
}
diff --git a/app/Models/Pesanan.php b/app/Models/Pesanan.php
index bd6a5d9..372c2b7 100644
--- a/app/Models/Pesanan.php
+++ b/app/Models/Pesanan.php
@@ -52,7 +52,14 @@ class Pesanan extends Model
return $this->belongsTo(User::class, 'user_id');
}
- public function coa(){
+ public function coa()
+ {
return $this->belongsTo(RekeningCoa::class, 'coa_kas');
}
+
+ // buku besar
+ public function bukuBesar()
+ {
+ return $this->hasMany(BukuBesar::class, 'pesanans_id');
+ }
}
diff --git a/resources/views/components/navbar.blade.php b/resources/views/components/navbar.blade.php
index 4728a2f..a948f7c 100644
--- a/resources/views/components/navbar.blade.php
+++ b/resources/views/components/navbar.blade.php
@@ -19,14 +19,20 @@
Dashboard
@endcan
-
-
-
-
+ @canany(['penjualan.index', 'pengeluaran.index'], auth()->user())
+
+
+
+ @can('penjualan.index', auth()->user())
+ - Penjualan
+ @endcan
+ @can('pengeluaran.index', auth()->user())
+ - Pengeluaran
+ @endcan
+
+
+ @endcanany
@canany(['users.index', 'menu.index'], auth()->user())
+
+ Tanggal Unduh: {{ date('d-m-Y H:i:s') }} |
+
+
+ Dicetak Oleh: {{ Session::get('name') }} |
+
+
+
+
+
+ Laporan Transaksi Penjualan |
+
+
+ Pencarian:
+ {{ 'Antara Tanggal ' . toDmy($filter_tanggal_1) . ' s/d Tanggal ' . toDmy($filter_tanggal_2) . '' }}
+ |
+
+
+
+
+
+
+ No |
+ Kode Pesanan |
+ Kasir |
+ Nama Pemesan |
+ Tanggal |
+ Jenis Pembayaran |
+ Nominal |
+ {{-- Keterangan | --}}
+
+
+
+ @foreach ($data as $key => $val)
+
+
+ {{ $key + 1 }} |
+
+ {{ $val->kode_pesanan }} |
+
+ {{ $val->user->name }} |
+
+ {{ $val->nama_pemesan }} |
+
+ {{ \Carbon\Carbon::parse($val->tanggal_pesanan)->format('d F Y H:i:s') }} |
+
+ @if ($val->jenis_pembayaran == 1 || $val->jenis_pembayaran == null)
+ Tunai
+ @else
+ Non Tunai
+
+ ({{ $val->bukuBesar[0]->keterangan_coa }})
+ @endif
+ |
+ Rp
+ {{ format_uang($val->grand_total) }} |
+ {{-- {{ $val->keterangan }} | --}}
+
+ @endforeach
+
+ @php
+ $total = 0;
+ foreach ($data as $key => $val) {
+ $total += $val->grand_total;
+ }
+ @endphp
+
+
+ Total
+ |
+ Rp
+ {{ format_uang($total) }} |
+
+
+
+
+
+
diff --git a/resources/views/pages/admin/penjualan/modal.blade.php b/resources/views/pages/admin/penjualan/modal.blade.php
new file mode 100644
index 0000000..10aed85
--- /dev/null
+++ b/resources/views/pages/admin/penjualan/modal.blade.php
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+ No |
+ Nama Produk |
+ Harga |
+ Jumlah Terjual |
+ Total Harga |
+ Diskon(%) |
+ Keterangan |
+
+
+
+
+
+
+
+
+
diff --git a/resources/views/pages/admin/penjualan/style.blade.php b/resources/views/pages/admin/penjualan/style.blade.php
new file mode 100644
index 0000000..63bfc92
--- /dev/null
+++ b/resources/views/pages/admin/penjualan/style.blade.php
@@ -0,0 +1,18 @@
+@push('styles')
+
+
+
+
+@endpush
\ No newline at end of file
diff --git a/routes/web.php b/routes/web.php
index 974547a..3d0938a 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -6,6 +6,7 @@ use App\Http\Controllers\Admins\Dashboard\ChartPenjualanController;
use App\Http\Controllers\Admins\Dashboard\DashboardController;
use App\Http\Controllers\Admins\JenisMenu\JenisMenuController;
use App\Http\Controllers\Admins\Pengeluaran\PengeluaranController;
+use App\Http\Controllers\Admins\Penjualan\PenjualanController;
use App\Http\Controllers\Admins\RekeningCoa\RekeningCoaController;
use App\Http\Controllers\Admins\Users\RoleController;
use App\Http\Controllers\Admins\Users\UserController;
@@ -121,6 +122,14 @@ Route::group(['middleware' => ['auth', 'permission']], function () {
Route::get('/getDatapengeluaran', [PengeluaranController::class, 'getDatapengeluaran'])->name('pengeluaran.getDataPengeluaran')->comment("Ambil data Riwayat Transaksi");
});
+ Route::group(['prefix' => 'penjualan'], function () {
+ Route::get('/', [PenjualanController::class, 'index'])->name('penjualan.index')->comment("Halaman Riwayat Transaksi Penjualan");
+ Route::get('/getDataPenjualan', [PenjualanController::class, 'getDataPenjualan'])->name('penjualan.getDataPenjualan')->comment("Ambil data Riwayat Transaksi Penjualan");
+ Route::get('/print/{id}', [PenjualanController::class, 'print'])->name('penjualan.print')->comment("Print Riwayat Transaksi Penjualan");
+ Route::post('/laporan', [PenjualanController::class, 'laporan'])->name('penjualan.laporan')->comment('Halaman Laporan Penjualan');
+ Route::post('/getDataDetailPenjualan', [PenjualanController::class, 'getDataDetailPenjualan'])->name('penjualan.getDataDetailPenjualan')->comment("Ambil data Detail Riwayat Transaksi Penjualan");
+ });
+
// Rekening Coa
Route::group(['prefix' => 'coa'], function () {
Route::get('/', [RekeningCoaController::class, 'index'])->name('coa.index')->comment('Halaman Rekening Coa');