/** * @param TagRepositoryInterface $repository * * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function flush(TagRepositoryInterface $repository) { Preferences::mark(); // get all tags. // update all counts: $tags = $repository->get(); /** @var Tag $tag */ foreach ($tags as $tag) { foreach ($tag->transactionJournals()->get() as $journal) { $count = $journal->tags()->count(); $journal->tag_count = $count; $journal->save(); } } Session::clear(); Artisan::call('cache:clear'); return redirect(route('index')); }
/** * @param Collection $accounts * @param Carbon $start * @param Carbon $end * * @return BalanceLine */ private function createTagsBalanceLine(Collection $accounts, Carbon $start, Carbon $end) { $tags = new BalanceLine(); $tagsLeft = $this->tagRepository->allCoveredByBalancingActs($accounts, $start, $end); $tags->setRole(BalanceLine::ROLE_TAGROLE); foreach ($accounts as $account) { $leftEntry = $tagsLeft->filter(function (Tag $tag) use($account) { return $tag->account_id == $account->id; }); $left = 0; if (!is_null($leftEntry->first())) { $left = $leftEntry->first()->sum; } bcscale(2); // balanced by tags $tagEntry = new BalanceEntry(); $tagEntry->setAccount($account); $tagEntry->setLeft($left); $tags->addBalanceEntry($tagEntry); } return $tags; }
/** * @param TagFormRequest $request * @param TagRepositoryInterface $repository * @param Tag $tag * * @return \Illuminate\Http\RedirectResponse */ public function update(TagFormRequest $request, TagRepositoryInterface $repository, Tag $tag) { if (Input::get('setTag') == 'true') { $latitude = $request->get('latitude'); $longitude = $request->get('longitude'); $zoomLevel = $request->get('zoomLevel'); } else { $latitude = null; $longitude = null; $zoomLevel = null; } $data = ['tag' => $request->get('tag'), 'date' => strlen($request->get('date')) > 0 ? new Carbon($request->get('date')) : null, 'description' => strlen($request->get('description')) > 0 ? $request->get('description') : '', 'latitude' => $latitude, 'longitude' => $longitude, 'zoomLevel' => $zoomLevel, 'tagMode' => $request->get('tagMode')]; $repository->update($tag, $data); Session::flash('success', 'Tag "' . e($data['tag']) . '" updated.'); Preferences::mark(); if (intval(Input::get('return_to_edit')) === 1) { // set value so edit routine will not overwrite URL: Session::put('tags.edit.fromUpdate', true); return Redirect::route('tags.edit', [$tag->id])->withInput(['return_to_edit' => 1]); } // redirect to previous URL. return Redirect::to(Session::get('tags.edit.url')); }
/** * Returns a JSON list of all beneficiaries. * * @param TagRepositoryInterface $tagRepository * * @return \Illuminate\Http\JsonResponse */ public function tags(TagRepositoryInterface $tagRepository) { $list = $tagRepository->get(); $return = []; foreach ($list as $entry) { $return[] = $entry->tag; } return Response::json($return); }
/** * @param TagFormRequest $request * @param TagRepositoryInterface $repository * @param Tag $tag * * @return \Illuminate\Http\RedirectResponse */ public function update(TagFormRequest $request, TagRepositoryInterface $repository, Tag $tag) { $data = $request->collectTagData(); $repository->update($tag, $data); Session::flash('success', strval(trans('firefly.updated_tag', ['tag' => e($data['tag'])]))); Preferences::mark(); if (intval(Input::get('return_to_edit')) === 1) { // set value so edit routine will not overwrite URL: Session::put('tags.edit.fromUpdate', true); return redirect(route('tags.edit', [$tag->id]))->withInput(['return_to_edit' => 1]); } // redirect to previous URL. return redirect(session('tags.edit.url')); }