Piggy bank supports notes (#350)

This commit is contained in:
James Cole
2016-10-22 10:13:49 +02:00
parent 091f6e918b
commit e4d249e73c
8 changed files with 158 additions and 2 deletions

View File

@@ -15,6 +15,7 @@ namespace FireflyIII\Repositories\PiggyBank;
use Amount;
use Carbon\Carbon;
use FireflyIII\Models\Note;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\User;
@@ -176,6 +177,8 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
{
$piggyBank = PiggyBank::create($data);
$this->updateNote($piggyBank, $data['note']);
return $piggyBank;
}
@@ -196,6 +199,8 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
$piggyBank->save();
$this->updateNote($piggyBank, $data['note']);
// if the piggy bank is now smaller than the current relevant rep,
// remove money from the rep.
$repetition = $piggyBank->currentRelevantRep();
@@ -210,4 +215,31 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
return $piggyBank;
}
/**
* @param PiggyBank $piggyBank
* @param string $note
*
* @return bool
*/
private function updateNote(PiggyBank $piggyBank, string $note): bool
{
if (strlen($note) === 0) {
$dbNote = $piggyBank->notes()->first();
if (!is_null($dbNote)) {
$dbNote->delete();
}
return true;
}
$dbNote= $piggyBank->notes()->first();
if (is_null($dbNote)) {
$dbNote= new Note();
$dbNote->noteable()->associate($piggyBank);
}
$dbNote->text = trim($note);
$dbNote->save();
return true;
}
}