where('sub_kode_coa', 200)->get(); return view('pages.admin.penjualan.index', compact('aba')); } public function getDataPenjualan(Request $request) { $nomor = 1; $filter_tanggal_1 = $request->filter_tanggal_1; $filter_tanggal_2 = $request->filter_tanggal_2; $akun_coa = $request->akun_coa; if ($request->akun_coa == null) { $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(); } 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) ->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('jenis_pembayarannya', function ($data) { return $data->jenis_pembayaran == 1 ? 'Tunai' : ($data->jenis_pembayaran == null ? 'Tunai' : 'Non-Tunai' . ' (' . ($data->rekening_coa?->keterangan_coa ?? '') . ')'); }) ->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)->withTrashed()->get(); $pesanan = Pesanan::find($request->id_pesanan); return response()->json(['status' => true, 'data' => $data, 'pesanan' => $pesanan]); } public function laporan(Request $request) { try { $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}'); $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(); } $alldata = [ 'data' => $data, 'filter_tanggal_1' => $filter_tanggal_1, 'filter_tanggal_2' => $filter_tanggal_2, 'keterangan_coa' => $keterangan_coa ]; $html = view('pages.admin.penjualan.laporan', $alldata); // $html->render(); // $mpdf->WriteHTML($html); // $mpdf->chunkLoadView('', 'pages.admin.penjualan.laporan', $alldata); // return $mpdf->stream('document.pdf'); $chunks = explode("chunk", (string)$html); foreach ($chunks as $key => $val) { // $mpdf->WriteHTML($val); } $mpdf->writeHTML($html); $mpdf->Output('Laporan_Penjualan.pdf', 'I'); return response()->header('Content-Type', 'application/pdf'); } catch (\Throwable $th) { Session::flash('errors', 'Gagal membuat laporan, coba lagi dengan rentang tanggal yang lebih pendek'); return redirect()->back(); //throw $th; } } public function cancel(Request $request) { try { DB::beginTransaction(); $pesanan = Pesanan::find($request->id); $pesanan->status_pesanan = 3; // delete detail pesanan $pesanan->detailPesanan()->delete(); $pesanan->delete(); $pesanan->save(); DB::commit(); return response()->json(['status' => true, 'message' => 'Pesanan berhasil di cancel']); } catch (\Throwable $th) { DB::rollBack(); return response()->json(['status' => false, 'message' => 'Pesanan gagal di cancel']); //throw $th; } } public function cancelDetail(Request $request) { try { DB::beginTransaction(); $detailPesanan = DetailPesanan::find($request->id); $pesanan = Pesanan::find($detailPesanan->pesanan_id); $pesanan->total_bayar = $pesanan->total_bayar - $detailPesanan->total_harga_produk; // check the diskon in pesanan $pesanan->grand_total = $pesanan->total_bayar - $pesanan->diskon_rupiah; $pesanan->total_pesanan = $pesanan->total_pesanan - $detailPesanan->jumlah_produk; $pesanan->save(); $detailPesanan->status_pesanan = '3'; $detailPesanan->delete(); $detailPesanan->save(); DB::commit(); return response()->json(['status' => true, 'message' => 'Pesanan berhasil di cancel']); } catch (\Throwable $th) { DB::rollBack(); return response()->json(['status' => false, 'message' => 'Pesanan gagal di cancel']); //throw $th; } } public function dibatalkan() { if (request()->ajax()) { $data = Pesanan::with(['detailPesanan', 'user']) ->where('status_pesanan', 3) ->orderBy('tanggal_pesanan', 'desc') ->withTrashed() ->get(); return datatables() ->of($data) ->addIndexColumn() ->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); } return view('pages.admin.penjualan.dibatalkan'); } }