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)->withTrashed()->get(); $pesanan = Pesanan::find($request->id_pesanan); return response()->json(['status' => true, 'data' => $data, 'pesanan' => $pesanan]); } 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'); } 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'); } }