paginate(5000); return view('expenses::payment_items.index', compact('payment_items')); } /** * Show the form for creating a new resource. * */ public function create() { $expense_accounts = ChartOfAccount::orderBy('name', 'asc')->where('type', 2)->pluck('name', 'id')->prepend('-select-', '')->toArray(); $payable_accounts = ChartOfAccount::orderBy('name', 'asc')->where('type', 6)->orWhere('type', 9)->pluck('name', 'id')->toArray(); return view('expenses::payment_items.create', compact('expense_accounts', 'payable_accounts')); } /** * Store a newly created resource in storage. * */ public function store(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required', 'unit_cost' => 'required' ]); if ($validator->fails()) { //validation failed $string = ""; foreach ($validator->errors()->getMessages() as $item) { $string .= "{$item[0]}
"; } return back()->withErrors($validator)->withInput(); } else { //validation passed $payment_item = new PaymentItem; $payment_item->name = $request->name; $payment_item->unit_cost = $request->unit_cost; $payment_item->account_id = $request->account_id; $payment_item->payable_account = $request->payable_account; $payment_item->created_by = Auth::user()->id; try { $payment_item->save(); flash($request->name . " Payment Item has been saved")->success(); return redirect("/payment_items/"); } catch (QueryException $e) { flash("An error occurred")->error(); return back()->withInput(); } } } /** * Display the specified resource. * */ public function show() { } public function edit($id) { $payment_item = PaymentItem::where(['id' => $id])->first(); $expense_accounts = ChartOfAccount::orderBy('name', 'asc')->where('type', 2)->pluck('name', 'id')->prepend('-select-', '')->toArray(); $payable_accounts = ChartOfAccount::orderBy('name', 'asc')->where('type', 6)->orWhere('type', 9)->pluck('name', 'id')->prepend('-select-', '')->toArray(); if (!$payment_item) { flash()->error("Payment Item not found"); return redirect('/payment_items/'); } else { return view('expenses::payment_items.edit', compact('payment_item', 'expense_accounts', 'payable_accounts')); } } public function quick_update(Request $request) { $payment_item = PaymentItem::find($request->item_id); $old_name = $payment_item->name; $old_created_by = $payment_item->created_by; $old_account_id = $payment_item->account_id; $logged_in_user_id = Auth::id(); $payment_item->name = $old_name; $payment_item->unit_cost = (int)$request->amount; $payment_item->account_id = $request->account_id; $payment_item->payable_account = $request->payable_account; $payment_item->created_by = $old_created_by; $payment_item->updated_by = $logged_in_user_id; if($payment_item->save()){ return 'success'; }else{ return $payment_item; } } public function update(Request $request, $id) { $validator = Validator::make($request->all(), [ 'name' => 'required' ]); if ($validator->fails()) { //validation failed $string = ""; foreach ($validator->errors()->getMessages() as $item) { $string .= "{$item[0]}
"; } flash($string)->error(); return back()->withErrors($validator)->withInput(); } else { //validation passed $payment_item = PaymentItem::find($id); $logged_in_user_id = Auth::user()->id; $payment_item->name = $request->name; $payment_item->unit_cost = $request->unit_cost; $payment_item->account_id = $request->account_id; $payment_item->payable_account = $request->payable_account; $payment_item->updated_by = $logged_in_user_id; try { $payment_item->save(); flash($request->name . " Payment Item has been updated")->success(); return redirect("/payment_items/"); } catch (QueryException $e) { flash("An error occurred")->error(); return back()->withInput(); } } } public function destroy($id) { $payment_item = PaymentItem::find($id); if ($payment_item->delete()) { flash("Payment Item has been deleted.")->success(); } return redirect('/payment_items/'); } public function inactive() { $payment_items = PaymentItem::onlyTrashed() ->orderBy('name', 'asc') ->get() ->toArray(); if (count($payment_items) < 1) { flash()->error("There is no inactive PaymentItem"); return redirect('/payment_items/'); } else { return view('expenses::payment_items.inactive', compact('payment_items')); } } public function activate($id) { $payment = PaymentItem::withTrashed()->find($id); if($payment->restore()){ flash("Parish has been activated.")->success(); return redirect('/payment_items/inactive'); } } }