Expand forms and improve validation for multi-account piggy banks

This commit is contained in:
James Cole
2024-12-06 08:10:31 +01:00
parent 4819b5ac5d
commit ea4be9dd0c
16 changed files with 149 additions and 57 deletions

View File

@@ -37,7 +37,11 @@ use Illuminate\Database\QueryException;
*/
class PiggyBankFactory
{
private User $user;
public User $user {
set(User $value) {
$this->user = $value;
}
}
private CurrencyRepositoryInterface $currencyRepository;
private AccountRepositoryInterface $accountRepository;
private PiggyBankRepositoryInterface $piggyBankRepository;
@@ -138,11 +142,6 @@ class PiggyBankFactory
return $this->user->piggyBanks()->where('piggy_banks.name', $name)->first();
}
public function setUser(User $user): void
{
$this->user = $user;
}
private function getCurrency(array $data): TransactionCurrency {
// currency:
$defaultCurrency = app('amount')->getDefaultCurrency();
@@ -197,7 +196,8 @@ class PiggyBankFactory
private function getMaxOrder(): int
{
return (int)$this->user->piggyBanks()->max('piggy_banks.order');
return (int) $this->piggyBankRepository->getPiggyBanks()->max('order');
}
private function linkToAccountIds(PiggyBank $piggyBank, array $accounts): void {
@@ -207,7 +207,7 @@ class PiggyBankFactory
if(null === $account) {
continue;
}
$piggyBank->accounts()->syncWithoutDetaching([$account->id, ['current_amount' => $info['current_amount'] ?? '0']]);
$piggyBank->accounts()->syncWithoutDetaching([$account->id => ['current_amount' => $info['current_amount'] ?? '0']]);
}
}
}