mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 02:36:28 +00:00 
			
		
		
		
	Expand view for #780
This commit is contained in:
		| @@ -17,6 +17,7 @@ use Carbon\Carbon; | ||||
| use FireflyIII\Exceptions\FireflyException; | ||||
| use FireflyIII\Helpers\Collector\JournalCollectorInterface; | ||||
| use FireflyIII\Helpers\Filter\InternalTransferFilter; | ||||
| use FireflyIII\Models\Transaction; | ||||
| use FireflyIII\Models\TransactionJournal; | ||||
| use FireflyIII\Repositories\Journal\JournalRepositoryInterface; | ||||
| use FireflyIII\Repositories\Journal\JournalTaskerInterface; | ||||
| @@ -28,7 +29,6 @@ use Log; | ||||
| use Navigation; | ||||
| use Preferences; | ||||
| use Response; | ||||
| use Steam; | ||||
| use View; | ||||
|  | ||||
| /** | ||||
| @@ -168,7 +168,7 @@ class TransactionController extends Controller | ||||
|         $what         = strtolower($journal->transaction_type_type ?? $journal->transactionType->type); | ||||
|         $subTitle     = trans('firefly.' . $what) . ' "' . e($journal->description) . '"'; | ||||
|  | ||||
|         return view('transactions.show', compact('journal', 'events', 'subTitle', 'what', 'transactions', 'linkTypes','links')); | ||||
|         return view('transactions.show', compact('journal', 'events', 'subTitle', 'what', 'transactions', 'linkTypes', 'links')); | ||||
|  | ||||
|  | ||||
|     } | ||||
| @@ -198,7 +198,7 @@ class TransactionController extends Controller | ||||
|         $cache->addProperty('transaction-list-entries'); | ||||
|  | ||||
|         if ($cache->has()) { | ||||
|             return $cache->get(); // @codeCoverageIgnore | ||||
|             // return $cache->get(); // @codeCoverageIgnore | ||||
|         } | ||||
|  | ||||
|         Log::debug(sprintf('Going to get period expenses and incomes between %s and %s.', $start->format('Y-m-d'), $end->format('Y-m-d'))); | ||||
| @@ -212,35 +212,24 @@ class TransactionController extends Controller | ||||
|             $collector = app(JournalCollectorInterface::class); | ||||
|             $collector->setAllAssetAccounts()->setRange($end, $currentEnd)->withOpposingAccount()->setTypes($types); | ||||
|             $collector->removeFilter(InternalTransferFilter::class); | ||||
|             $set      = $collector->getJournals(); | ||||
|             $sum      = $set->sum('transaction_amount'); | ||||
|             $journals = $set->count(); | ||||
|             $journals = $collector->getJournals(); | ||||
|             $sum      = $journals->sum('transaction_amount'); | ||||
|  | ||||
|             // count per currency: | ||||
|             $sums     = $this->sumPerCurrency($journals); | ||||
|             $dateStr  = $end->format('Y-m-d'); | ||||
|             $dateName = Navigation::periodShow($end, $range); | ||||
|             $array    = [ | ||||
|                 'string'      => $dateStr, | ||||
|                 'name'        => $dateName, | ||||
|                 'count'       => $journals, | ||||
|                 'spent'       => 0, | ||||
|                 'earned'      => 0, | ||||
|                 'transferred' => 0, | ||||
|                 'date'        => clone $end, | ||||
|                 'string' => $dateStr, | ||||
|                 'name'   => $dateName, | ||||
|                 'sum'    => $sum, | ||||
|                 'sums'   => $sums, | ||||
|                 'date'   => clone $end, | ||||
|             ]; | ||||
|             Log::debug(sprintf('What is %s', $what)); | ||||
|             switch ($what) { | ||||
|                 case 'withdrawal': | ||||
|                     $array['spent'] = $sum; | ||||
|                     break; | ||||
|                 case 'deposit': | ||||
|                     $array['earned'] = $sum; | ||||
|                     break; | ||||
|                 case 'transfers': | ||||
|                 case 'transfer': | ||||
|                     $array['transferred'] = Steam::positive($sum); | ||||
|                     break; | ||||
|  | ||||
|             if ($journals->count() > 0) { | ||||
|                 $entries->push($array); | ||||
|             } | ||||
|             $entries->push($array); | ||||
|             $end = Navigation::subtractPeriod($end, $range, 1); | ||||
|         } | ||||
|         Log::debug('End of loop'); | ||||
| @@ -249,4 +238,41 @@ class TransactionController extends Controller | ||||
|         return $entries; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param Collection $collection | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     private function sumPerCurrency(Collection $collection): array | ||||
|     { | ||||
|         $return = []; | ||||
|         /** @var Transaction $transaction */ | ||||
|         foreach ($collection as $transaction) { | ||||
|             $currencyId = $transaction->transaction_currency_id; | ||||
|  | ||||
|             // save currency information: | ||||
|             if (!isset($return[$currencyId])) { | ||||
|                 $currencySymbol      = $transaction->transaction_currency_symbol; | ||||
|                 $decimalPlaces       = $transaction->transaction_currency_dp; | ||||
|                 $currencyCode        = $transaction->transaction_currency_code; | ||||
|                 $return[$currencyId] = [ | ||||
|                     'currency' => [ | ||||
|                         'id'     => $currencyId, | ||||
|                         'code'   => $currencyCode, | ||||
|                         'symbol' => $currencySymbol, | ||||
|                         'dp'     => $decimalPlaces, | ||||
|                     ], | ||||
|                     'sum'      => '0', | ||||
|                     'count'    => 0, | ||||
|                 ]; | ||||
|             } | ||||
|             // save amount: | ||||
|             $return[$currencyId]['sum'] = bcadd($return[$currencyId]['sum'], $transaction->transaction_amount); | ||||
|             $return[$currencyId]['count']++; | ||||
|         } | ||||
|         asort($return); | ||||
|  | ||||
|         return $return; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -22,43 +22,47 @@ use Watson\Validating\ValidatingTrait; | ||||
| /** | ||||
|  * Class Transaction | ||||
|  * | ||||
|  * @property-read int $journal_id | ||||
|  * @property-read int    $journal_id | ||||
|  * @property-read Carbon $date | ||||
|  * @property-read string $transaction_description | ||||
|  * @property-read string $transaction_amount | ||||
|  * @property-read string $transaction_foreign_amount | ||||
|  * @property-read string $transaction_type_type | ||||
|  * | ||||
|  * @property-read int $account_id | ||||
|  * @property-read int    $account_id | ||||
|  * @property-read string $account_name | ||||
|  * @property string $account_iban | ||||
|  * @property string $account_number | ||||
|  * @property string $account_bic | ||||
|  * @property string $account_currency_code | ||||
|  * @property string      $account_iban | ||||
|  * @property string      $account_number | ||||
|  * @property string      $account_bic | ||||
|  * @property string      $account_currency_code | ||||
|  * | ||||
|  * @property-read int $opposing_account_id | ||||
|  * @property string $opposing_account_name | ||||
|  * @property string $opposing_account_iban | ||||
|  * @property string $opposing_account_number | ||||
|  * @property string $opposing_account_bic | ||||
|  * @property string $opposing_currency_code | ||||
|  * @property-read int    $opposing_account_id | ||||
|  * @property string      $opposing_account_name | ||||
|  * @property string      $opposing_account_iban | ||||
|  * @property string      $opposing_account_number | ||||
|  * @property string      $opposing_account_bic | ||||
|  * @property string      $opposing_currency_code | ||||
|  * | ||||
|  * | ||||
|  * @property-read int $transaction_budget_id | ||||
|  * @property-read int    $transaction_budget_id | ||||
|  * @property-read string $transaction_budget_name | ||||
|  * @property-read int $transaction_journal_budget_id | ||||
|  * @property-read int    $transaction_journal_budget_id | ||||
|  * @property-read string $transaction_journal_budget_name | ||||
|  * | ||||
|  * @property-read int $transaction_category_id | ||||
|  * @property-read int    $transaction_category_id | ||||
|  * @property-read string $transaction_category_name | ||||
|  * @property-read int $transaction_journal_category_id | ||||
|  * @property-read int    $transaction_journal_category_id | ||||
|  * @property-read string $transaction_journal_category_name | ||||
|  * | ||||
|  * @property-read int $bill_id | ||||
|  * @property string $bill_name | ||||
|  * @property-read int    $bill_id | ||||
|  * @property string      $bill_name | ||||
|  * | ||||
|  * @property string $notes | ||||
|  * @property string $tags | ||||
|  * @property string      $notes | ||||
|  * @property string      $tags | ||||
|  * | ||||
|  * @property string      $transaction_currency_symbol | ||||
|  * @property int         $transaction_currency_dp | ||||
|  * @property string      $transaction_currency_code | ||||
|  * | ||||
|  * @package FireflyIII\Models | ||||
|  */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user