Fix similar issue in piggies

This commit is contained in:
James Cole 2020-10-20 04:42:44 +02:00
parent ec787de5e0
commit ed86c26a18
No known key found for this signature in database
GPG Key ID: B5669F9493CDE38D

View File

@ -336,16 +336,16 @@ trait ModifiesPiggyBanks
*/ */
public function update(PiggyBank $piggyBank, array $data): PiggyBank public function update(PiggyBank $piggyBank, array $data): PiggyBank
{ {
if (isset($data['name']) && '' !== $data['name']) { if (array_key_exists('name', $data) && '' !== $data['name']) {
$piggyBank->name = $data['name']; $piggyBank->name = $data['name'];
} }
if (isset($data['account_id']) && 0 !== $data['account_id']) { if (array_key_exists('account_id', $data) && 0 !== $data['account_id']) {
$piggyBank->account_id = (int) $data['account_id']; $piggyBank->account_id = (int) $data['account_id'];
} }
if (isset($data['targetamount']) && '' !== $data['targetamount']) { if (array_key_exists('targetamount', $data) && '' !== $data['targetamount']) {
$piggyBank->targetamount = $data['targetamount']; $piggyBank->targetamount = $data['targetamount'];
} }
if (isset($data['targetdate']) && '' !== $data['targetdate']) { if (array_key_exists('targetdate', $data) && '' !== $data['targetdate']) {
$piggyBank->targetdate = $data['targetdate']; $piggyBank->targetdate = $data['targetdate'];
} }
$piggyBank->startdate = $data['startdate'] ?? $piggyBank->startdate; $piggyBank->startdate = $data['startdate'] ?? $piggyBank->startdate;
@ -360,7 +360,6 @@ trait ModifiesPiggyBanks
$this->updateOrder($piggyBank, $oldOrder, $newOrder); $this->updateOrder($piggyBank, $oldOrder, $newOrder);
} }
// if the piggy bank is now smaller than the current relevant rep, // if the piggy bank is now smaller than the current relevant rep,
// remove money from the rep. // remove money from the rep.
$repetition = $this->getRepetition($piggyBank); $repetition = $this->getRepetition($piggyBank);
@ -380,7 +379,14 @@ trait ModifiesPiggyBanks
$piggyBank->objectGroups()->sync([$objectGroup->id]); $piggyBank->objectGroups()->sync([$objectGroup->id]);
$piggyBank->save(); $piggyBank->save();
} }
return $piggyBank;
} }
// remove if name is empty. Should be overruled by ID.
if ('' === $objectGroupTitle) {
$piggyBank->objectGroups()->sync([]);
$piggyBank->save();
}
// try also with ID: // try also with ID:
$objectGroupId = (int) ($data['object_group_id'] ?? 0); $objectGroupId = (int) ($data['object_group_id'] ?? 0);
if (0 !== $objectGroupId) { if (0 !== $objectGroupId) {
@ -389,6 +395,7 @@ trait ModifiesPiggyBanks
$piggyBank->objectGroups()->sync([$objectGroup->id]); $piggyBank->objectGroups()->sync([$objectGroup->id]);
$piggyBank->save(); $piggyBank->save();
} }
return $piggyBank;
} }
return $piggyBank; return $piggyBank;