mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 10:47:00 +00:00 
			
		
		
		
	Expand code for #384
This commit is contained in:
		| @@ -23,7 +23,12 @@ declare(strict_types=1); | ||||
|  | ||||
| namespace FireflyIII\Http\Controllers\Report; | ||||
|  | ||||
| use Carbon\Carbon; | ||||
| use FireflyIII\Http\Controllers\Controller; | ||||
| use FireflyIII\Models\Account; | ||||
| use FireflyIII\Models\AccountType; | ||||
| use FireflyIII\Repositories\Account\AccountRepositoryInterface; | ||||
| use Illuminate\Support\Collection; | ||||
|  | ||||
|  | ||||
| /** | ||||
| @@ -31,5 +36,58 @@ use FireflyIII\Http\Controllers\Controller; | ||||
|  */ | ||||
| class ExpenseController extends Controller | ||||
| { | ||||
|     /** @var AccountRepositoryInterface */ | ||||
|     protected $accountRepository; | ||||
|  | ||||
|     /** | ||||
|      * | ||||
|      */ | ||||
|     public function __construct() | ||||
|     { | ||||
|         parent::__construct(); | ||||
|  | ||||
|         // translations: | ||||
|         $this->middleware( | ||||
|             function ($request, $next) { | ||||
|                 $this->accountRepository = app(AccountRepositoryInterface::class); | ||||
|  | ||||
|                 return $next($request); | ||||
|             } | ||||
|         ); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @param Collection $accounts | ||||
|      * @param Collection $expense | ||||
|      * @param Carbon     $start | ||||
|      * @param Carbon     $end | ||||
|      */ | ||||
|     public function spentGrouped(Collection $accounts, Collection $expense, Carbon $start, Carbon $end) | ||||
|     { | ||||
|         $combined = $this->combineAccounts($expense); | ||||
|         // for period, get spent and earned for each account (by name) | ||||
|         /** | ||||
|          * @var string $name | ||||
|          * @var Collection $combi | ||||
|          */ | ||||
|         foreach($combined as $name => $combi) { | ||||
|  | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     protected function combineAccounts(Collection $accounts): array | ||||
|     { | ||||
|         $combined = []; | ||||
|         /** @var Account $expenseAccount */ | ||||
|         foreach ($accounts as $expenseAccount) { | ||||
|             $combined[$expenseAccount->name] = [$expenseAccount]; | ||||
|             $revenue = $this->accountRepository->findByName($expenseAccount->name, [AccountType::REVENUE]); | ||||
|             if (!is_null($revenue->id)) { | ||||
|                 $combined[$expenseAccount->name][] = $revenue; | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         return $combined; | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user