GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Passed
Push — master ( 37b02e...ebbbe1 )
by James
08:59
created

app/Generator/Report/Support.php (2 issues)

Labels
Severity
1
<?php
2
/**
3
 * Support.php
4
 * Copyright (c) 2017 [email protected]
5
 *
6
 * This file is part of Firefly III.
7
 *
8
 * Firefly III is free software: you can redistribute it and/or modify
9
 * it under the terms of the GNU General Public License as published by
10
 * the Free Software Foundation, either version 3 of the License, or
11
 * (at your option) any later version.
12
 *
13
 * Firefly III is distributed in the hope that it will be useful,
14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 * GNU General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU General Public License
19
 * along with Firefly III. If not, see <http://www.gnu.org/licenses/>.
20
 */
21
declare(strict_types=1);
22
23
namespace FireflyIII\Generator\Report;
24
25
use FireflyIII\Models\Transaction;
26
use Illuminate\Support\Collection;
27
28
/**
29
 * Class Support.
30
 */
31
class Support
32
{
33
    /**
34
     * @return Collection
35
     */
36
    public function getTopExpenses(): Collection
37
    {
38
        $transactions = $this->getExpenses()->sortBy('transaction_amount');
0 ignored issues
show
The method getExpenses() does not exist on FireflyIII\Generator\Report\Support. Did you maybe mean getTopExpenses()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

38
        $transactions = $this->/** @scrutinizer ignore-call */ getExpenses()->sortBy('transaction_amount');

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
39
40
        return $transactions;
41
    }
42
43
    /**
44
     * @return Collection
45
     */
46
    public function getTopIncome(): Collection
47
    {
48
        $transactions = $this->getIncome()->sortByDesc('transaction_amount');
0 ignored issues
show
The method getIncome() does not exist on FireflyIII\Generator\Report\Support. It seems like you code against a sub-type of FireflyIII\Generator\Report\Support such as FireflyIII\Generator\Rep...ag\MonthReportGenerator or FireflyIII\Generator\Rep...ry\MonthReportGenerator. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

48
        $transactions = $this->/** @scrutinizer ignore-call */ getIncome()->sortByDesc('transaction_amount');
Loading history...
49
50
        return $transactions;
51
    }
52
53
    /**
54
     * @param Collection $collection
55
     * @param int        $sortFlag
56
     *
57
     * @return array
58
     */
59
    protected function getAverages(Collection $collection, int $sortFlag): array
60
    {
61
        $result = [];
62
        /** @var Transaction $transaction */
63
        foreach ($collection as $transaction) {
64
            // opposing name and ID:
65
            $opposingId = $transaction->opposing_account_id;
66
67
            // is not set?
68
            if (!isset($result[$opposingId])) {
69
                $name                = $transaction->opposing_account_name;
70
                $result[$opposingId] = [
71
                    'name'    => $name,
72
                    'count'   => 1,
73
                    'id'      => $opposingId,
74
                    'average' => $transaction->transaction_amount,
75
                    'sum'     => $transaction->transaction_amount,
76
                ];
77
                continue;
78
            }
79
            ++$result[$opposingId]['count'];
80
            $result[$opposingId]['sum']     = bcadd($result[$opposingId]['sum'], $transaction->transaction_amount);
81
            $result[$opposingId]['average'] = bcdiv($result[$opposingId]['sum'], strval($result[$opposingId]['count']));
82
        }
83
84
        // sort result by average:
85
        $average = [];
86
        foreach ($result as $key => $row) {
87
            $average[$key] = floatval($row['average']);
88
        }
89
90
        array_multisort($average, $sortFlag, $result);
91
92
        return $result;
93
    }
94
95
    /**
96
     * @SuppressWarnings(PHPMD.CyclomaticComplexity) // it's exactly five.
97
     *
98
     * @param array $spent
99
     * @param array $earned
100
     *
101
     * @return array
102
     */
103
    protected function getObjectSummary(array $spent, array $earned): array
104
    {
105
        $return = [
106
            'sum' => [
107
                'spent'  => '0',
108
                'earned' => '0',
109
            ],
110
        ];
111
112
        /**
113
         * @var int
114
         * @var string $entry
115
         */
116
        foreach ($spent as $objectId => $entry) {
117
            if (!isset($return[$objectId])) {
118
                $return[$objectId] = ['spent' => '0', 'earned' => '0'];
119
            }
120
121
            $return[$objectId]['spent'] = $entry;
122
            $return['sum']['spent']     = bcadd($return['sum']['spent'], $entry);
123
        }
124
        unset($entry);
125
126
        /**
127
         * @var int
128
         * @var string $entry
129
         */
130
        foreach ($earned as $objectId => $entry) {
131
            if (!isset($return[$objectId])) {
132
                $return[$objectId] = ['spent' => '0', 'earned' => '0'];
133
            }
134
135
            $return[$objectId]['earned'] = $entry;
136
            $return['sum']['earned']     = bcadd($return['sum']['earned'], $entry);
137
        }
138
139
        return $return;
140
    }
141
142
    /**
143
     * @param Collection $collection
144
     *
145
     * @return array
146
     */
147
    protected function summarizeByAccount(Collection $collection): array
148
    {
149
        $result = [];
150
        /** @var Transaction $transaction */
151
        foreach ($collection as $transaction) {
152
            $accountId          = $transaction->account_id;
153
            $result[$accountId] = $result[$accountId] ?? '0';
154
            $result[$accountId] = bcadd($transaction->transaction_amount, $result[$accountId]);
155
        }
156
157
        return $result;
158
    }
159
}
160