8889841crole_id); if($role->hasPermissionTo('expenses-index')){ $permissions = Role::findByName($role->name)->permissions; foreach ($permissions as $permission) $all_permission[] = $permission->name; if(empty($all_permission)) $all_permission[] = 'dummy text'; if($request->starting_date) { $starting_date = $request->starting_date; $ending_date = $request->ending_date; } else { $starting_date = date('Y-m-01', strtotime('-1 year', strtotime(date('Y-m-d')))); $ending_date = date("Y-m-d"); } if($request->input('warehouse_id')) $warehouse_id = $request->input('warehouse_id'); else $warehouse_id = 0; $lims_warehouse_list = Warehouse::select('name', 'id')->where('is_active', true)->get(); $lims_account_list = Account::where('is_active', true)->get(); return view('backend.expense.index', compact('lims_account_list', 'lims_warehouse_list', 'all_permission', 'starting_date', 'ending_date', 'warehouse_id')); } else return redirect()->back()->with('not_permitted', 'Sorry! You are not allowed to access this module'); } public function expenseData(Request $request) { $columns = array( 1 => 'created_at', 2 => 'reference_no', ); $warehouse_id = $request->input('warehouse_id'); $q = Expense::whereDate('created_at', '>=' ,$request->input('starting_date')) ->whereDate('created_at', '<=' ,$request->input('ending_date')); if(Auth::user()->role_id > 2 && config('staff_access') == 'own') $q = $q->where('user_id', Auth::id()); if($warehouse_id) $q = $q->where('warehouse_id', $warehouse_id); $totalData = $q->count(); $totalFiltered = $totalData; if($request->input('length') != -1) $limit = $request->input('length'); else $limit = $totalData; $start = $request->input('start'); $order = 'expenses.'.$columns[$request->input('order.0.column')]; $dir = $request->input('order.0.dir'); if(empty($request->input('search.value'))) { $q = Expense::with('warehouse', 'expenseCategory') ->whereDate('created_at', '>=' ,$request->input('starting_date')) ->whereDate('created_at', '<=' ,$request->input('ending_date')) ->offset($start) ->limit($limit) ->orderBy($order, $dir); if(Auth::user()->role_id > 2 && config('staff_access') == 'own') $q = $q->where('user_id', Auth::id()); if($warehouse_id) $q = $q->where('warehouse_id', $warehouse_id); $expenses = $q->get(); } else { $search = $request->input('search.value'); $q = Expense::whereDate('expenses.created_at', '=' , date('Y-m-d', strtotime(str_replace('/', '-', $search)))) ->offset($start) ->limit($limit) ->orderBy($order,$dir); if(Auth::user()->role_id > 2 && config('staff_access') == 'own') { $expenses = $q->select('expenses.*') ->with('warehouse', 'expenseCategory') ->where('expenses.user_id', Auth::id()) ->orwhere([ ['reference_no', 'LIKE', "%{$search}%"], ['user_id', Auth::id()] ]) ->get(); $totalFiltered = $q->where('expenses.user_id', Auth::id())->count(); } else { $expenses = $q->select('expenses.*') ->with('warehouse', 'expenseCategory') ->orwhere('reference_no', 'LIKE', "%{$search}%") ->get(); $totalFiltered = $q->orwhere('expenses.reference_no', 'LIKE', "%{$search}%")->count(); } } $data = array(); if(!empty($expenses)) { foreach ($expenses as $key=>$expense) { $nestedData['id'] = $expense->id; $nestedData['key'] = $key; $nestedData['date'] = date(config('date_format'), strtotime($expense->created_at->toDateString())); $nestedData['reference_no'] = $expense->reference_no; $nestedData['warehouse'] = $expense->warehouse->name; $nestedData['expenseCategory'] = $expense->expenseCategory->name; $nestedData['amount'] = number_format($expense->amount, config('decimal')); $nestedData['note'] = $expense->note; $nestedData['options'] = '