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 f1376e3..a1ebc2b 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()) + + @endcanany @canany(['users.index', 'menu.index'], auth()->user())