belongsTo('FireflyIII\Models\Account'); } /** * Grabs the PiggyBankRepetition that's currently relevant / active * * @returns PiggyBankRepetition */ public function currentRelevantRep() { if (!is_null($this->currentRep)) { return $this->currentRep; } // repeating piggy banks are no longer supported. $rep = $this->piggyBankRepetitions()->first(['piggy_bank_repetitions.*']); $this->currentRep = $rep; return $rep; } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function piggyBankRepetitions() { return $this->hasMany('FireflyIII\Models\PiggyBankRepetition'); } /** * @return string[] */ public function getDates() { return ['created_at', 'updated_at', 'deleted_at', 'startdate', 'targetdate']; } /** * * @param $value * * @return string */ public function getNameAttribute($value) { if (intval($this->encrypted) == 1) { return Crypt::decrypt($value); } return $value; } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function piggyBankEvents() { return $this->hasMany('FireflyIII\Models\PiggyBankEvent'); } /** * * @param $value */ public function setNameAttribute($value) { $this->attributes['name'] = Crypt::encrypt($value); $this->attributes['encrypted'] = true; } /** * @param $value */ public function setTargetamountAttribute($value) { $this->attributes['targetamount'] = strval(round($value, 2)); } public static function routeBinder(PiggyBank $value) { if (Auth::check()) { if ($value->account->user_id == Auth::user()->id) { return $value; } } throw new NotFoundHttpException; } }