mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2026-01-06 14:12:15 +00:00
Fix #1334
This commit is contained in:
@@ -197,8 +197,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
|
||||
*/
|
||||
public function getCurrentAmount(PiggyBank $piggyBank): string
|
||||
{
|
||||
/** @var PiggyBankRepetition $rep */
|
||||
$rep = $piggyBank->piggyBankRepetitions()->first(['piggy_bank_repetitions.*']);
|
||||
$rep = $this->getRepetition($piggyBank);
|
||||
if (null === $rep) {
|
||||
return '0';
|
||||
}
|
||||
@@ -301,19 +300,40 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
|
||||
}
|
||||
|
||||
/**
|
||||
* @param PiggyBank $piggyBank
|
||||
*
|
||||
* @return PiggyBankRepetition|null
|
||||
*/
|
||||
public function getRepetition(PiggyBank $piggyBank): ?PiggyBankRepetition
|
||||
{
|
||||
return $piggyBank->piggyBankRepetitions()->first();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get for piggy account what is left to put in piggies.
|
||||
*
|
||||
* @param PiggyBank $piggyBank
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return PiggyBankRepetition
|
||||
* @return string
|
||||
*/
|
||||
public function getRepetition(PiggyBank $piggyBank, Carbon $date): PiggyBankRepetition
|
||||
public function leftOnAccount(PiggyBank $piggyBank, Carbon $date): string
|
||||
{
|
||||
$repetition = $piggyBank->piggyBankRepetitions()->relevantOnDate($date)->first();
|
||||
if (null === $repetition) {
|
||||
return new PiggyBankRepetition;
|
||||
|
||||
$balance = app('steam')->balanceIgnoreVirtual($piggyBank->account, $date);
|
||||
|
||||
/** @var Collection $piggies */
|
||||
$piggies = $piggyBank->account->piggyBanks;
|
||||
|
||||
/** @var PiggyBank $current */
|
||||
foreach ($piggies as $current) {
|
||||
$repetition = $this->getRepetition($current);
|
||||
if(null !== $repetition) {
|
||||
$balance = bcsub($balance, $repetition->currentamount);
|
||||
}
|
||||
}
|
||||
|
||||
return $repetition;
|
||||
return $balance;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -162,12 +162,21 @@ interface PiggyBankRepositoryInterface
|
||||
public function getPiggyBanksWithAmount(): Collection;
|
||||
|
||||
/**
|
||||
* @param PiggyBank $piggyBank
|
||||
*
|
||||
* @return PiggyBankRepetition|null
|
||||
*/
|
||||
public function getRepetition(PiggyBank $piggyBank): ?PiggyBankRepetition;
|
||||
|
||||
/**
|
||||
* Get for piggy account what is left to put in piggies.
|
||||
*
|
||||
* @param PiggyBank $piggyBank
|
||||
* @param Carbon $date
|
||||
*
|
||||
* @return PiggyBankRepetition
|
||||
* @return string
|
||||
*/
|
||||
public function getRepetition(PiggyBank $piggyBank, Carbon $date): PiggyBankRepetition;
|
||||
public function leftOnAccount(PiggyBank $piggyBank, Carbon $date): string;
|
||||
|
||||
/**
|
||||
* @param PiggyBank $piggyBank
|
||||
|
||||
Reference in New Issue
Block a user