/** * Generate expense fields and populate it with existing data */ function getExpenseEntries() { global $expenseTypes; global $expenses; global $expenseEntries; global $inputErrors; $result = ""; $expenseIndex = 0; $numEntries = $inputErrors ? count($expenseEntries) : count($expenses); do { $result .= '<div class="expenseEntry"> '; $result .= '<label for="expenseDesc' . $expenseIndex . '" class="altDescLabel">Description: </label>'; $result .= '<input type="text" id="expenseDesc' . $expenseIndex . '" name="expenseDesc' . $expenseIndex . '" class="desc'; if ($inputErrors && isset($expenseEntries[$expenseIndex])) { if ($expenseEntries[$expenseIndex]["descError"]) { $result .= ' descError'; } } $result .= '" placeholder="Description" maxlength="' . Expense::MAX_DESC_LENGTH . '"'; if ($inputErrors && isset($expenseEntries[$expenseIndex])) { $result .= ' value="'; $result .= htmlentities($expenseEntries[$expenseIndex]["desc"]); $result .= '"'; } else { if (isset($expenses[$expenseIndex])) { $result .= ' value="'; $result .= htmlentities($expenses[$expenseIndex]->description); $result .= '"'; } } $result .= '> '; $result .= '<label for="expenseType' . $expenseIndex . '" class="altTypeLabel">Category: </label>'; $result .= '<select id="expenseType' . $expenseIndex . '" name="expenseType' . $expenseIndex . '" class="type'; if ($inputErrors && isset($expenseEntries[$expenseIndex])) { if ($expenseEntries[$expenseIndex]["typeError"]) { $result .= ' typeError'; } } $result .= '"> '; foreach ($expenseTypes as $expenseType) { $result .= '<option value="' . $expenseType->category . '"'; if ($inputErrors && isset($expenseEntries[$expenseIndex])) { if ($expenseEntries[$expenseIndex]["type"] === $expenseType->category) { $result .= "selected"; } } else { if (isset($expenses[$expenseIndex])) { if ($expenses[$expenseIndex]->typeID === $expenseType->id) { $result .= "selected"; } } } $result .= '>'; $result .= $expenseType->category; $result .= '</option> '; } $result .= '</select> '; $result .= '<label for="expenseAmount' . $expenseIndex . '" class="altAmountLabel">Amount: </label>'; $result .= '<input type="text" maxlength="20" id="expenseAmount' . $expenseIndex . '" name="expenseAmount' . $expenseIndex . '" class="amount'; if ($inputErrors && isset($expenseEntries[$expenseIndex])) { if ($expenseEntries[$expenseIndex]["amountError"]) { $result .= ' amountError'; } } $result .= '" placeholder="Amount"'; if ($inputErrors && isset($expenseEntries[$expenseIndex])) { $result .= ' value="'; $result .= htmlentities($expenseEntries[$expenseIndex]["amount"]); $result .= '"'; } else { if (isset($expenses[$expenseIndex])) { $result .= ' value="'; $result .= htmlentities(Expense::formatDisplayAmount($expenses[$expenseIndex]->amount)); $result .= '"'; } } $result .= '> '; $result .= '<label class="removeLabel">Remove: </label>'; $result .= '<button type="button" id="deleteExpenseButton' . $expenseIndex . '" name="deleteExpenseButton' . $expenseIndex . '" class="deleteButton" title="Delete"> '; $result .= '✖'; $result .= '</button> '; $result .= '<br> '; $result .= '</div> '; $expenseIndex++; } while ($expenseIndex < $numEntries); return $result; }
<script type="text/javascript"> var totalIncome = <?php echo htmlentities($totalIncome); ?> ; var totalExpenses = <?php echo htmlentities($totalExpenses); ?> ; var totalIncomeDisplayString = "<?php echo htmlentities(Income::formatDisplayAmount($totalIncome)); ?> "; var totalExpensesDisplayString = "<?php echo htmlentities(Expense::formatDisplayAmount($totalExpenses)); ?> "; var totalTitle = "Income/Expenses"; var incomeTitle = "Income"; var expensesTitle = "Expenses"; var totalChartArray = [<?php echo '["Type", "Amount"], ["Income", totalIncome], ["Expenses", totalExpenses]'; ?> ]; var incomeChartArray = [["Category", "Amount"], <?php foreach ($incomeTypeAmounts as $index => $incomeTypeAmount) { echo "['" . htmlentities($incomeTypeAmount["type"]) . "', " . htmlentities($incomeTypeAmount["amount"]) . "]"; if ($index !== count($incomeTypeAmounts) - 1) { echo ", ";
} ?> </table> <div id="incomeChart"></div> <h3>Expenses</h3> <table id="expensesSummaryTable"> <tr> <th>Category</th> <th>Total</th> </tr> <?php foreach ($expenseTypeAmounts as $expenseTypeAmount) { ?> <tr> <td><?php echo htmlentities($expenseTypeAmount["type"]); ?> </td> <td><?php echo htmlentities(Expense::formatDisplayAmount($expenseTypeAmount["amount"])); ?> </td> </tr> <?php } ?> </table> <div id="expensesChart"></div>
<th>Net</th> </tr> <?php for ($ii = 1; $ii <= $daysInSelectedMonth; $ii++) { ?> <tr> <td><a href="<?php echo BASE_URL . "main/?month={$selectedMonth}&day={$ii}&year={$selectedYear}"; ?> "><?php echo $selectedMonthName . " " . $ii; ?> </a></td> <td><?php echo htmlentities(Income::formatDisplayAmount($incomeEachDay[$ii - 1])); ?> </td> <td><?php echo htmlentities(Expense::formatDisplayAmount($expenseEachDay[$ii - 1])); ?> </td> <td><?php echo htmlentities(IncomeExpenseObject::formatDisplayAmount($totalEachDay[$ii - 1])); ?> </td> </tr> <?php } ?> </table>
<th>Net</th> </tr> <?php for ($ii = $firstYear; $ii <= $lastYear; $ii++) { ?> <tr> <td><a href="<?php echo BASE_URL . "main/?view=yearly&year={$ii}"; ?> "><?php echo $ii; ?> </a></td> <td><?php echo htmlentities(Income::formatDisplayAmount($incomeEachYear[$ii])); ?> </td> <td><?php echo htmlentities(Expense::formatDisplayAmount($expenseEachYear[$ii])); ?> </td> <td><?php echo htmlentities(IncomeExpenseObject::formatDisplayAmount($totalEachYear[$ii])); ?> </td> </tr> <?php } ?> </table>