This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include
, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
1 | <?php |
||
2 | |||
3 | |||
4 | /** |
||
5 | * Author: Emmanuel Paul Mnzava |
||
6 | * Twitter: @epmnzava |
||
7 | * Github:https://github.com/dbrax/income-expense |
||
8 | * Email: [email protected] |
||
9 | * |
||
10 | */ |
||
11 | |||
12 | namespace Epmnzava\IncomeExpense; |
||
13 | |||
14 | use Epmnzava\IncomeExpense\Models\Expense; |
||
15 | use Epmnzava\IncomeExpense\Models\ExpenseCategory; |
||
16 | use Epmnzava\IncomeExpense\Models\Income; |
||
17 | use Epmnzava\IncomeExpense\Models\IncomeCategory; |
||
18 | use Epmnzava\IncomeExpense\Models\Ledger; |
||
19 | use Illuminate\Support\Str; |
||
20 | |||
21 | class IncomeExpense extends AccountingData |
||
22 | { |
||
23 | |||
24 | |||
25 | /** |
||
26 | * @param int $categoryid |
||
27 | * @param string $income_title |
||
28 | * @param int $amount |
||
29 | * @param string $notes |
||
30 | * @param string $transaction_id |
||
31 | * @return Income |
||
32 | * |
||
33 | * function to add an income and ledger at the same time |
||
34 | */ |
||
35 | View Code Duplication | public function add_income(int $categoryid, string $income_title, int $amount, string $notes = "", $transaction_id = "0"): Income |
|
36 | { |
||
37 | |||
38 | $income = $this->newIncome($categoryid, $income_title, $amount, $notes, $transaction_id); |
||
0 ignored issues
–
show
|
|||
39 | |||
40 | if ($transaction_id == 0) |
||
41 | $transaction_id = $this->set_transaction_id($income); |
||
42 | |||
43 | |||
44 | $ledger = $this->add_transaction_on_ledger($income, "INC", $transaction_id); |
||
45 | |||
46 | return $income; |
||
47 | } |
||
48 | |||
49 | /** |
||
50 | * @param int $categoryid |
||
51 | * @param string $income_title |
||
52 | * @param int $amount |
||
0 ignored issues
–
show
There is no parameter named
$income_title . Was it maybe removed?
This check looks for PHPDoc comments describing methods or function parameters that do not exist on the corresponding method or function. Consider the following example. The parameter /**
* @param array $germany
* @param array $island
* @param array $italy
*/
function finale($germany, $island) {
return "2:1";
}
The most likely cause is that the parameter was removed, but the annotation was not. ![]() |
|||
53 | * @param string $notes |
||
54 | * @param string $transaction_id |
||
55 | * @return Expense |
||
56 | * |
||
57 | * function to add expense and to a ledger at the sametime |
||
58 | */ |
||
59 | |||
60 | View Code Duplication | public function add_expense(int $categoryid, string $expense_title, int $amount, string $notes = "", $transaction_id = "0"): Expense |
|
61 | { |
||
62 | |||
63 | $expense = $this->newExpense($categoryid, $expense_title, $amount, $notes, $transaction_id); |
||
0 ignored issues
–
show
The call to
IncomeExpense::newExpense() has too many arguments starting with $transaction_id .
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue. If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. In this case you can add the ![]() |
|||
64 | |||
65 | if ($transaction_id == 0) |
||
66 | $transaction_id = $this->set_transaction_id($expense); |
||
67 | |||
68 | |||
69 | $ledger = $this->add_transaction_on_ledger($expense, "EXP", $transaction_id); |
||
70 | |||
71 | return $expense; |
||
72 | } |
||
73 | |||
74 | |||
75 | /** |
||
76 | * @param $income |
||
77 | * @return string |
||
78 | * @throws \Exception |
||
79 | * |
||
80 | * function that sets a transaction id |
||
81 | */ |
||
82 | |||
83 | public function set_transaction_id($income) |
||
0 ignored issues
–
show
|
|||
84 | { |
||
85 | $prefix = config('income-expense.transaction_id_prefix'); |
||
86 | $length = config('income-expense.transaction_id_length'); |
||
87 | |||
88 | $keyspace = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; |
||
89 | |||
90 | $str = ''; |
||
91 | |||
92 | $max = mb_strlen($keyspace, '8bit') - 1; |
||
93 | |||
94 | for ($i = 0; $i < $length; ++$i) { |
||
95 | $str .= $keyspace[random_int(0, $max)]; |
||
96 | } |
||
97 | |||
98 | return $prefix . $str; |
||
99 | } |
||
100 | |||
101 | /** |
||
102 | * @param int $categoryid |
||
103 | * @param string $income_title |
||
104 | * @param int $amount |
||
105 | * @param string $notes |
||
106 | * @return Income |
||
107 | * |
||
108 | * Unit function that adds income |
||
109 | */ |
||
110 | private function newIncome(int $categoryid, string $income_title, int $amount, string $notes = ""): Income |
||
111 | { |
||
112 | return Income::create([ |
||
113 | "incomecategory" => $categoryid, |
||
114 | "income_title" => $income_title, |
||
115 | "amount" => $amount, |
||
116 | "notes" => $notes, |
||
117 | "date" => date('Y-m-d') |
||
118 | ]); |
||
119 | } |
||
120 | |||
121 | /** |
||
122 | * @param $transactionObj |
||
123 | * @param $type |
||
124 | * @param $transaction_id |
||
125 | * @return Ledger |
||
126 | * |
||
127 | * unit function that adds a ledger transaction |
||
128 | */ |
||
129 | public function add_transaction_on_ledger($transactionObj, $type, $transaction_id): Ledger |
||
130 | { |
||
131 | |||
132 | $ledger = new Ledger; |
||
133 | $ledger->transaction_id = $transaction_id; |
||
134 | $ledger->transaction_type = $type; |
||
135 | if($type=="INC") |
||
136 | $ledger->transaction_type_category = $transactionObj->incomecategory; |
||
137 | else |
||
138 | $ledger->transaction_type_category = $transactionObj->expense_category; |
||
139 | |||
140 | $ledger->amount = $transactionObj->amount; |
||
141 | $ledger->save(); |
||
142 | return $ledger; |
||
143 | } |
||
144 | |||
145 | /** |
||
146 | * @param int $categoryid |
||
147 | * @param string $expense_title |
||
148 | * @param int $amount |
||
149 | * @param string $notes |
||
150 | * @return Expense |
||
151 | * |
||
152 | * A unit function that adds new expense |
||
153 | */ |
||
154 | |||
155 | private function newExpense(int $categoryid, string $expense_title, int $amount, string $notes = ""): Expense |
||
156 | { |
||
157 | return Expense::create([ |
||
158 | "expense_category" => $categoryid, |
||
159 | "expense_title" => $expense_title, |
||
160 | "amount" => $amount, |
||
161 | "notes" => $notes, |
||
162 | "date" => date('Y-m-d') |
||
163 | ]); |
||
164 | } |
||
165 | |||
166 | |||
167 | /** |
||
168 | * @param $categoryname |
||
169 | * @param $description |
||
170 | * @return ExpenseCategory |
||
171 | * |
||
172 | * A unit function that adds expense category |
||
173 | */ |
||
174 | View Code Duplication | public function addExpenseCategory($categoryname, $description): ExpenseCategory |
|
175 | { |
||
176 | return ExpenseCategory::create([ |
||
177 | "category" => $categoryname, |
||
178 | "description" => $description, |
||
179 | "slug"=>Str::slug($categoryname, '-'), |
||
180 | "date" => date('Y-m-d') |
||
181 | ]); |
||
182 | } |
||
183 | |||
184 | /** |
||
185 | * @param $categoryname |
||
186 | * @param $description |
||
187 | * @return IncomeCategory |
||
188 | * |
||
189 | * A unit function that adds income category |
||
190 | */ |
||
191 | |||
192 | |||
193 | View Code Duplication | public function addIncomeCategory($categoryname, $description): IncomeCategory |
|
194 | { |
||
195 | |||
196 | return IncomeCategory::create([ |
||
197 | "category" => $categoryname, |
||
198 | "description" => $description, |
||
199 | "slug"=>Str::slug($categoryname, '-'), |
||
200 | "date" => date('Y-m-d') |
||
201 | ]); |
||
202 | } |
||
203 | |||
204 | /** |
||
205 | * @param $expensecategoryid |
||
206 | * @return Expense |
||
207 | * |
||
208 | * Function that return a specific expense category instance by passing in an expense category id |
||
209 | */ |
||
210 | public function getExpenseCategoryById($expensecategoryid) : ExpenseCategory |
||
211 | { |
||
212 | return ExpenseCategory::find($expensecategoryid); |
||
213 | } |
||
214 | |||
215 | |||
216 | /** |
||
217 | * @param $incomecategoryid |
||
218 | * @return Income |
||
219 | * |
||
220 | * Function that returns a particular IncomeCatgory by passing in an incomecategoryid |
||
221 | */ |
||
222 | public function getIncomeCategoryById($incomecategoryid) : IncomeCategory |
||
223 | { |
||
224 | return IncomeCategory::find($incomecategoryid); |
||
225 | } |
||
226 | |||
227 | public function deleteExpenseCategory($expensecategoryid) |
||
0 ignored issues
–
show
|
|||
228 | { |
||
229 | } |
||
230 | |||
231 | |||
232 | public function deleteIncomeCategory($incomecategoryid) |
||
0 ignored issues
–
show
|
|||
233 | { |
||
234 | } |
||
235 | |||
236 | |||
237 | public function updateExpenseCategory($expensecategoryid) |
||
0 ignored issues
–
show
|
|||
238 | { |
||
239 | } |
||
240 | |||
241 | |||
242 | public function updateIncomeCategory($incomecategoryid) |
||
0 ignored issues
–
show
|
|||
243 | { |
||
244 | } |
||
245 | } |
||
246 |
This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.
If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress.
In this case you can add the
@ignore
PhpDoc annotation to the duplicate definition and it will be ignored.