mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 02:36:28 +00:00 
			
		
		
		
	improved request and balance range date handling
This commit is contained in:
		| @@ -49,7 +49,7 @@ use function Safe\preg_replace; | ||||
|  */ | ||||
| class Steam | ||||
| { | ||||
|     public function accountsBalancesOptimized(Collection $accounts, Carbon $date, ?TransactionCurrency $primary = null, ?bool $convertToPrimary = null): array | ||||
|     public function accountsBalancesOptimized(Collection $accounts, Carbon $date, ?TransactionCurrency $primary = null, ?bool $convertToPrimary = null, bool $inclusive = true): array | ||||
|     { | ||||
|         Log::debug(sprintf('accountsBalancesOptimized: Called for %d account(s) with date/time "%s"', $accounts->count(), $date->toIso8601String())); | ||||
|         $result      = []; | ||||
| @@ -61,7 +61,7 @@ class Steam | ||||
|         $arrayOfSums = Transaction::whereIn('account_id', $accounts->pluck('id')->toArray()) | ||||
|             ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') | ||||
|             ->leftJoin('transaction_currencies', 'transaction_currencies.id', '=', 'transactions.transaction_currency_id') | ||||
|             ->where('transaction_journals.date', '<=', $date->format('Y-m-d H:i:s')) | ||||
|             ->where('transaction_journals.date', $inclusive ? '<=': '<', $date->format('Y-m-d H:i:s')) | ||||
|             ->groupBy(['transactions.account_id', 'transaction_currencies.code']) | ||||
|             ->get(['transactions.account_id', 'transaction_currencies.code', DB::raw('SUM(transactions.amount) as sum_of_amount')])->toArray() | ||||
|         ; | ||||
| @@ -125,6 +125,14 @@ class Steam | ||||
|         return $result; | ||||
|     } | ||||
| 
 | ||||
|     public function accountsBalancesInRange(Carbon $start, Carbon $end, Collection $accounts, ?TransactionCurrency $primary = null, ?bool $convertToPrimary = null): array | ||||
|     { | ||||
|         return [ | ||||
|             $this->accountsBalancesOptimized($accounts, $start, $primary, $convertToPrimary, inclusive: false), | ||||
|             $this->accountsBalancesOptimized($accounts, $end, $primary, $convertToPrimary), | ||||
|         ]; | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * https://stackoverflow.com/questions/1642614/how-to-ceil-floor-and-round-bcmath-numbers | ||||
|      */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user