mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-23 12:27:05 +00:00
Make list grouped.
This commit is contained in:
@@ -281,6 +281,7 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
|
|||||||
$currency = app('amount')->getDefaultCurrency();
|
$currency = app('amount')->getDefaultCurrency();
|
||||||
|
|
||||||
$set = $this->getPiggyBanks();
|
$set = $this->getPiggyBanks();
|
||||||
|
|
||||||
/** @var PiggyBank $piggy */
|
/** @var PiggyBank $piggy */
|
||||||
foreach ($set as $piggy) {
|
foreach ($set as $piggy) {
|
||||||
$currentAmount = $this->getRepetition($piggy)->currentamount ?? '0';
|
$currentAmount = $this->getRepetition($piggy)->currentamount ?? '0';
|
||||||
|
@@ -47,17 +47,43 @@ class PiggyBankForm
|
|||||||
*/
|
*/
|
||||||
public function piggyBankList(string $name, $value = null, array $options = null): string
|
public function piggyBankList(string $name, $value = null, array $options = null): string
|
||||||
{
|
{
|
||||||
|
|
||||||
// make repositories
|
// make repositories
|
||||||
/** @var PiggyBankRepositoryInterface $repository */
|
/** @var PiggyBankRepositoryInterface $repository */
|
||||||
$repository = app(PiggyBankRepositoryInterface::class);
|
$repository = app(PiggyBankRepositoryInterface::class);
|
||||||
$piggyBanks = $repository->getPiggyBanksWithAmount();
|
$piggyBanks = $repository->getPiggyBanksWithAmount();
|
||||||
$array = [
|
$title = (string) trans('firefly.default_group_title_name');
|
||||||
0 => (string)trans('firefly.none_in_select_list'),
|
$array = [];
|
||||||
|
$subList = [
|
||||||
|
0 => [
|
||||||
|
'group' => [
|
||||||
|
'title' => $title,
|
||||||
|
],
|
||||||
|
'piggies' => [
|
||||||
|
(string) trans('firefly.none_in_select_list'),
|
||||||
|
],
|
||||||
|
],
|
||||||
];
|
];
|
||||||
/** @var PiggyBank $piggy */
|
/** @var PiggyBank $piggy */
|
||||||
foreach ($piggyBanks as $piggy) {
|
foreach ($piggyBanks as $piggy) {
|
||||||
$array[$piggy->id] = $piggy->name;
|
$group = $piggy->objectGroups->first();
|
||||||
|
$groupTitle = null;
|
||||||
|
$groupOrder = 0;
|
||||||
|
if (null !== $group) {
|
||||||
|
$groupTitle = $group->title;
|
||||||
|
$groupOrder = $group->order;
|
||||||
|
}
|
||||||
|
$subList[$groupOrder] = $subList[$groupOrder] ?? [
|
||||||
|
'group' => [
|
||||||
|
'title' => $groupTitle,
|
||||||
|
],
|
||||||
|
'piggies' => [],
|
||||||
|
];
|
||||||
|
$subList[$groupOrder]['piggies'][$piggy->id] = $piggy->name;
|
||||||
|
}
|
||||||
|
ksort($subList);
|
||||||
|
foreach ($subList as $info) {
|
||||||
|
$groupTitle = $info['group']['title'];
|
||||||
|
$array[$groupTitle] = $info['piggies'];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $this->select($name, $array, $value, $options);
|
return $this->select($name, $array, $value, $options);
|
||||||
|
Reference in New Issue
Block a user