mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 02:36:28 +00:00 
			
		
		
		
	Various code cleanup.
This commit is contained in:
		| @@ -26,7 +26,12 @@ class AccountReportHelper implements AccountReportHelperInterface | ||||
| { | ||||
|     /** | ||||
|      * This method generates a full report for the given period on all | ||||
|      * given accounts | ||||
|      * given accounts. | ||||
|      * | ||||
|      * a special consideration for accounts that did exist on this exact day. | ||||
|      * we also grab the balance from today just in case, to see if that changes things. | ||||
|      * it's a fall back for users who (rightly so) start keeping score at the first of | ||||
|      * the month and find the first report lacking / broken. | ||||
|      * | ||||
|      * @param Carbon     $start | ||||
|      * @param Carbon     $end | ||||
| @@ -42,26 +47,13 @@ class AccountReportHelper implements AccountReportHelperInterface | ||||
|         $ids         = $accounts->pluck('id')->toArray(); | ||||
|         $yesterday   = clone $start; | ||||
|         $yesterday->subDay(); | ||||
|  | ||||
|         // get balances for start. | ||||
|         $startSet = $this->getSet($ids, $yesterday); | ||||
|  | ||||
|         // a special consideration for accounts that did exist on this exact day. | ||||
|         // we also grab the balance from today just in case, to see if that changes things. | ||||
|         // it's a fall back for users who (rightly so) start keeping score at the first of | ||||
|         // the month and find the first report lacking / broken. | ||||
|         $startSet  = $this->getSet($ids, $yesterday); // get balances for start. | ||||
|         $backupSet = $this->getSet($ids, $start); | ||||
|  | ||||
|         // and end: | ||||
|         $endSet = $this->getSet($ids, $end); | ||||
|         $endSet    = $this->getSet($ids, $end); | ||||
|  | ||||
|         $accounts->each( | ||||
|             function (Account $account) use ($startSet, $endSet, $backupSet) { | ||||
|                 /** | ||||
|                  * The balance for today always incorporates transactions | ||||
|                  * made on today. So to get todays "start" balance, we sub one | ||||
|                  * day. | ||||
|                  */ | ||||
|                 // The balance for today always incorporates transactions made on today. So to get todays "start" balance, we sub one day. | ||||
|                 $account->startBalance = '0'; | ||||
|                 $account->endBalance   = '0'; | ||||
|                 $currentStart          = $startSet->filter( | ||||
| @@ -69,28 +61,24 @@ class AccountReportHelper implements AccountReportHelperInterface | ||||
|                         return $account->id == $entry->id; | ||||
|                     } | ||||
|                 ); | ||||
|                 // grab entry from current backup as well: | ||||
|                 $currentBackup = $backupSet->filter( | ||||
|  | ||||
|                 $currentBackup = $backupSet->filter( // grab entry from current backup as well: | ||||
|                     function (Account $entry) use ($account) { | ||||
|                         return $account->id == $entry->id; | ||||
|                     } | ||||
|                 ); | ||||
|  | ||||
|  | ||||
|                 if ($currentStart->first()) { | ||||
|                 if (!is_null($currentStart->first())) { | ||||
|                     $account->startBalance = $currentStart->first()->balance; | ||||
|                 } else { | ||||
|                     if (is_null($currentStart->first()) && !is_null($currentBackup->first())) { | ||||
|                         $account->startBalance = $currentBackup->first()->balance; | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|                 if (is_null($currentStart->first()) && !is_null($currentBackup->first())) { | ||||
|                     $account->startBalance = $currentBackup->first()->balance; | ||||
|                 } | ||||
|                 $currentEnd = $endSet->filter( | ||||
|                     function (Account $entry) use ($account) { | ||||
|                         return $account->id == $entry->id; | ||||
|                     } | ||||
|                 ); | ||||
|                 if ($currentEnd->first()) { | ||||
|                 if (!is_null($currentEnd->first())) { | ||||
|                     $account->endBalance = $currentEnd->first()->balance; | ||||
|                 } | ||||
|             } | ||||
| @@ -121,12 +109,12 @@ class AccountReportHelper implements AccountReportHelperInterface | ||||
|     private function getSet(array $ids, Carbon $date): Collection | ||||
|     { | ||||
|         return Account::leftJoin('transactions', 'transactions.account_id', '=', 'accounts.id') | ||||
|                ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') | ||||
|                ->whereIn('accounts.id', $ids) | ||||
|                ->whereNull('transaction_journals.deleted_at') | ||||
|                ->whereNull('transactions.deleted_at') | ||||
|                ->where('transaction_journals.date', '<=', $date->format('Y-m-d')) | ||||
|                ->groupBy('accounts.id') | ||||
|                ->get(['accounts.id', DB::raw('SUM(`transactions`.`amount`) as `balance`')]); | ||||
|                       ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') | ||||
|                       ->whereIn('accounts.id', $ids) | ||||
|                       ->whereNull('transaction_journals.deleted_at') | ||||
|                       ->whereNull('transactions.deleted_at') | ||||
|                       ->where('transaction_journals.date', '<=', $date->format('Y-m-d')) | ||||
|                       ->groupBy('accounts.id') | ||||
|                       ->get(['accounts.id', DB::raw('SUM(`transactions`.`amount`) as `balance`')]); | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user