/** * disconnect * - disconnect a google account (clears pending vendors) * * @param int $vendor_id * @return boolean */ public function disconnect($vendor_id) { $user = Vendor::find($vendor_id); $user->google_token = ''; $user->google_email = ''; $user->touch(); Vendor::where('status', 'pending')->delete(); return true; }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request, Transaction $transactions) { // Setup query $query = $transactions->orderBy('timestamp', 'ASC')->with('category', 'vendor'); $activeFilters = []; // Account filter if ($accountFilter = $request->input('account')) { $query->whereHas('account', function ($q) use($accountFilter) { $q->where('slug', '=', $accountFilter); }); $activeFilters['account'] = ['name' => Account::where('slug', '=', $accountFilter)->first()->name, 'removedUri' => http_build_query($request->except('account'))]; } // Vendor filter if ($vendorFilter = $request->input('vendor')) { $query->whereHas('vendor', function ($q) use($vendorFilter) { $q->where('slug', '=', $vendorFilter); }); $activeFilters['vendor'] = ['name' => Vendor::where('slug', '=', $vendorFilter)->first()->name, 'removedUri' => http_build_query($request->except('vendor'))]; } // Category filter if ($categoryFilter = $request->input('category')) { $query->whereHas('category', function ($q) use($categoryFilter) { $q->where('slug', '=', $categoryFilter); }); $activeFilters['category'] = ['name' => Category::where('slug', '=', $categoryFilter)->first()->name, 'removedUri' => http_build_query($request->except('category'))]; } // Business filter if (($businessFilter = $request->input('business')) === "") { $query->where('business_expense', '=', '1'); $activeFilters['business expense'] = ['name' => '', 'removedUri' => http_build_query($request->except('business'))]; } // Charity filter if (($charityFilter = $request->input('charity')) === "") { $query->where('charitable_deduction', '=', '1'); $activeFilters['charitable deduction'] = ['name' => '', 'removedUri' => http_build_query($request->except('charity'))]; } // Execute query $this->transactions = $query->get(); $this->calculateRowBalances(); $rows = $this->transactions->reverse(); return view('transactions.index', ['rows' => $rows, 'balance' => money_format('%(!i', @$rows[0]->balance), 'filters' => $activeFilters])->withInput($request->all()); }