. */ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Recurring; use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface; use Illuminate\Http\Request; /** * * Class CreateController */ class CreateController extends Controller { /** @var BudgetRepositoryInterface */ private $budgets; /** @var RecurringRepositoryInterface */ private $recurring; /** * */ public function __construct() { parent::__construct(); // translations: $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paint-brush'); app('view')->share('title', trans('firefly.recurrences')); app('view')->share('subTitle', trans('firefly.create_new_recurrence')); $this->recurring = app(RecurringRepositoryInterface::class); $this->budgets = app(BudgetRepositoryInterface::class); return $next($request); } ); } /** * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function create(Request $request) { // todo refactor to expandedform method. $budgets = app('expandedform')->makeSelectListWithEmpty($this->budgets->getActiveBudgets()); $defaultCurrency = app('amount')->getDefaultCurrency(); $tomorrow = new Carbon; $tomorrow->addDay(); // types of repetitions: $typesOfRepetitions = [ 'forever' => trans('firefly.repeat_forever'), 'until_date' => trans('firefly.repeat_until_date'), 'times' => trans('firefly.repeat_times'), ]; // flash some data: $preFilled = [ 'first_date' => $tomorrow->format('Y-m-d'), 'transaction_type' => 'withdrawal', 'active' => $request->old('active') ?? true, 'apply_rules' => $request->old('apply_rules') ?? true, ]; $request->session()->flash('preFilled', $preFilled); return view('recurring.create', compact('tomorrow', 'preFilled','typesOfRepetitions', 'defaultCurrency', 'budgets')); } }