put('from_date', date('Y-m-d', strtotime($request['from']))); session()->put('to_date', date('Y-m-d', strtotime($request['to']))); return back(); } public function expense_report(Request $request) { $from = null; $to = null; $filter = $request->query('filter', 'all_time'); if($filter == 'custom'){ $from = $request->from ?? null; $to = $request->to ?? null; } $key = explode(' ', $request['search']); $expense = Expense::with('order')->where('created_by','vendor')->where('restaurant_id',Helpers::get_restaurant_id()) ->when(isset($from) && isset($to) && $from != null && $to != null && $filter == 'custom', function ($query) use ($from, $to) { return $query->whereBetween('created_at', [$from . " 00:00:00", $to . " 23:59:59"]); }) ->when(isset($filter) && $filter == 'this_year', function ($query) { return $query->whereYear('created_at', now()->format('Y')); }) ->when(isset($filter) && $filter == 'this_month', function ($query) { return $query->whereMonth('created_at', now()->format('m'))->whereYear('created_at', now()->format('Y')); }) ->when(isset($filter) && $filter == 'this_month', function ($query) { return $query->whereMonth('created_at', now()->format('m'))->whereYear('created_at', now()->format('Y')); }) ->when(isset($filter) && $filter == 'previous_year', function ($query) { return $query->whereYear('created_at', date('Y') - 1); }) ->when(isset($filter) && $filter == 'this_week', function ($query) { return $query->whereBetween('created_at', [now()->startOfWeek()->format('Y-m-d H:i:s'), now()->endOfWeek()->format('Y-m-d H:i:s')]); }) ->when( isset($key), function($query) use($key){ $query->where(function ($q) use ($key) { foreach ($key as $value) { $q->orWhere('type', 'like', "%{$value}%")->orWhere('order_id', 'like', "%{$value}%"); } }); }) ->orderBy('created_at', 'desc') ->paginate(config('default_pagination'))->withQueryString(); return view('vendor-views.report.expense-report', compact('expense','from','to','filter')); } public function expense_export(Request $request) { $from = null; $to = null; $filter = $request->query('filter', 'all_time'); if($filter == 'custom'){ $from = $request->from ?? null; $to = $request->to ?? null; } $key = explode(' ', $request['search']); $expense = Expense::with('order')->where('created_by','vendor')->where('restaurant_id',Helpers::get_restaurant_id()) ->when(isset($from) && isset($to) && $from != null && $to != null && $filter == 'custom', function ($query) use ($from, $to) { return $query->whereBetween('created_at', [$from . " 00:00:00", $to . " 23:59:59"]); }) ->when(isset($filter) && $filter == 'this_year', function ($query) { return $query->whereYear('created_at', now()->format('Y')); }) ->when(isset($filter) && $filter == 'this_month', function ($query) { return $query->whereMonth('created_at', now()->format('m'))->whereYear('created_at', now()->format('Y')); }) ->when(isset($filter) && $filter == 'this_month', function ($query) { return $query->whereMonth('created_at', now()->format('m'))->whereYear('created_at', now()->format('Y')); }) ->when(isset($filter) && $filter == 'previous_year', function ($query) { return $query->whereYear('created_at', date('Y') - 1); }) ->when(isset($filter) && $filter == 'this_week', function ($query) { return $query->whereBetween('created_at', [now()->startOfWeek()->format('Y-m-d H:i:s'), now()->endOfWeek()->format('Y-m-d H:i:s')]); }) ->when( isset($key), function($query) use($key){ $query->where(function ($q) use ($key) { foreach ($key as $value) { $q->orWhere('type', 'like', "%{$value}%")->orWhere('order_id', 'like', "%{$value}%"); } }); }) ->orderBy('created_at', 'desc') ->get(); if ($request->type == 'excel') { return (new FastExcel(Helpers::export_expense_wise_report($expense)))->download('ExpenseReport.xlsx'); } elseif ($request->type == 'csv') { return (new FastExcel(Helpers::export_expense_wise_report($expense)))->download('ExpenseReport.csv'); } } }