mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-09-29 18:20:01 +00:00
Fix list
This commit is contained in:
@@ -86,7 +86,7 @@ class IndexController extends Controller
|
|||||||
/** @var PiggyBank $piggy */
|
/** @var PiggyBank $piggy */
|
||||||
foreach ($collection as $piggy) {
|
foreach ($collection as $piggy) {
|
||||||
$array = $transformer->transform($piggy);
|
$array = $transformer->transform($piggy);
|
||||||
$groupOrder = $array['object_group_order'];
|
$groupOrder = (int) $array['object_group_order'];
|
||||||
// make group array if necessary:
|
// make group array if necessary:
|
||||||
$piggyBanks[$groupOrder] = $piggyBanks[$groupOrder] ?? [
|
$piggyBanks[$groupOrder] = $piggyBanks[$groupOrder] ?? [
|
||||||
'object_group_id' => $array['object_group_id'],
|
'object_group_id' => $array['object_group_id'],
|
||||||
@@ -116,12 +116,54 @@ class IndexController extends Controller
|
|||||||
$array['account_name'] = $account['name'];
|
$array['account_name'] = $account['name'];
|
||||||
$piggyBanks[$groupOrder]['piggy_banks'][] = $array;
|
$piggyBanks[$groupOrder]['piggy_banks'][] = $array;
|
||||||
}
|
}
|
||||||
|
// do a bunch of summaries.
|
||||||
|
$piggyBanks = $this->makeSums($piggyBanks);
|
||||||
|
|
||||||
ksort($piggyBanks);
|
ksort($piggyBanks);
|
||||||
|
|
||||||
return view('piggy-banks.index', compact('piggyBanks', 'accounts'));
|
return view('piggy-banks.index', compact('piggyBanks', 'accounts'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array $piggyBanks
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
private function makeSums(array $piggyBanks): array
|
||||||
|
{
|
||||||
|
$sums = [];
|
||||||
|
foreach ($piggyBanks as $groupOrder => $group) {
|
||||||
|
$groupId = $group['object_group_id'];
|
||||||
|
foreach ($group['piggy_banks'] as $piggy) {
|
||||||
|
$currencyId = $piggy['currency_id'];
|
||||||
|
$sums[$groupId][$currencyId] = $sums[$groupId][$currencyId] ?? [
|
||||||
|
'target' => '0',
|
||||||
|
'saved' => '0',
|
||||||
|
'left_to_save' => '0',
|
||||||
|
'save_per_month' => '0',
|
||||||
|
'currency_id' => $currencyId,
|
||||||
|
'currency_code' => $piggy['currency_code'],
|
||||||
|
'currency_symbol' => $piggy['currency_symbol'],
|
||||||
|
'currency_decimal_places' => $piggy['currency_decimal_places'],
|
||||||
|
];
|
||||||
|
// target_amount
|
||||||
|
// current_amount
|
||||||
|
// left_to_save
|
||||||
|
// save_per_month
|
||||||
|
$sums[$groupId][$currencyId]['target'] = bcadd($sums[$groupId][$currencyId]['target'], (string) $piggy['target_amount']);
|
||||||
|
$sums[$groupId][$currencyId]['saved'] = bcadd($sums[$groupId][$currencyId]['saved'], (string) $piggy['current_amount']);
|
||||||
|
$sums[$groupId][$currencyId]['left_to_save'] = bcadd($sums[$groupId][$currencyId]['left_to_save'], (string) $piggy['left_to_save']);
|
||||||
|
$sums[$groupId][$currencyId]['save_per_month'] = bcadd($sums[$groupId][$currencyId]['save_per_month'], (string) $piggy['save_per_month']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
foreach ($piggyBanks as $groupOrder => $group) {
|
||||||
|
$groupId = $group['object_group_id'];
|
||||||
|
$piggyBanks[$groupOrder]['sums'] = $sums[$groupId];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $piggyBanks;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the order of a piggy bank.
|
* Set the order of a piggy bank.
|
||||||
*
|
*
|
||||||
|
@@ -5,6 +5,7 @@ namespace FireflyIII\Repositories\ObjectGroup;
|
|||||||
|
|
||||||
use DB;
|
use DB;
|
||||||
use FireflyIII\Models\ObjectGroup;
|
use FireflyIII\Models\ObjectGroup;
|
||||||
|
use FireflyIII\Models\PiggyBank;
|
||||||
use FireflyIII\User;
|
use FireflyIII\User;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
use Log;
|
use Log;
|
||||||
@@ -123,6 +124,12 @@ class ObjectGroupRepository implements ObjectGroupRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function destroy(ObjectGroup $objectGroup): void
|
public function destroy(ObjectGroup $objectGroup): void
|
||||||
{
|
{
|
||||||
|
$list = $objectGroup->piggyBanks;
|
||||||
|
/** @var PiggyBank $piggy */
|
||||||
|
foreach($list as $piggy) {
|
||||||
|
$piggy->objectGroups()->sync([]);
|
||||||
|
$piggy->save();
|
||||||
|
}
|
||||||
$objectGroup->delete();
|
$objectGroup->delete();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -96,6 +96,36 @@
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
<tr>
|
||||||
|
<td class="visible-xs visible-sm hidden-md hidden-lg"> </td>
|
||||||
|
<td class="visible-xs visible-sm hidden-md hidden-lg"> </td>
|
||||||
|
<td> </td> {# handle #}
|
||||||
|
<td class="hidden-sm hidden-xs"> </td> {# buttons #}
|
||||||
|
<td> </td>
|
||||||
|
<td style="text-align: right;">
|
||||||
|
{% for sum in objectGroup.sums %}
|
||||||
|
{{ formatAmountBySymbol(sum.saved, sum.currency_symbol, sum.currency_decimal_places) }}<br />
|
||||||
|
{% endfor %}
|
||||||
|
</td>
|
||||||
|
<td class="hidden-sm hidden-xs"> </td> {# remove money #}
|
||||||
|
<td class="hidden-sm hidden-xs"> </td> {# progress#}
|
||||||
|
<td class="hidden-sm hidden-xs"> </td> {# add money #}
|
||||||
|
<td class="hidden-sm hidden-xs" style="text-align: right;">
|
||||||
|
{% for sum in objectGroup.sums %}
|
||||||
|
{{ formatAmountBySymbol(sum.target, sum.currency_symbol, sum.currency_decimal_places) }}<br />
|
||||||
|
{% endfor %}
|
||||||
|
</td>
|
||||||
|
<td class="hidden-sm hidden-xs" style="text-align: right;">
|
||||||
|
{% for sum in objectGroup.sums %}
|
||||||
|
{{ formatAmountBySymbol(sum.left_to_save, sum.currency_symbol, sum.currency_decimal_places) }}<br />
|
||||||
|
{% endfor %}
|
||||||
|
</td>
|
||||||
|
<td class="hidden-sm hidden-xs" style="text-align: right;">
|
||||||
|
{% for sum in objectGroup.sums %}
|
||||||
|
{{ formatAmountBySymbol(sum.save_per_month, sum.currency_symbol, sum.currency_decimal_places) }}<br />
|
||||||
|
{% endfor %}
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
Reference in New Issue
Block a user