diff options
Diffstat (limited to 'src/ui/ui_earnings.cpp')
| -rw-r--r-- | src/ui/ui_earnings.cpp | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/src/ui/ui_earnings.cpp b/src/ui/ui_earnings.cpp new file mode 100644 index 0000000..81e31b5 --- /dev/null +++ b/src/ui/ui_earnings.cpp @@ -0,0 +1,151 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "ui.hpp" +#include "imgui.h" +#include "administration.hpp" +#include "locales.hpp" + +income_statement* statement = 0; + +void ui_setup_earnings() +{ + statement = (income_statement*)malloc(sizeof(income_statement)); + administration_create_income_statement(statement); +} + +void ui_destroy_earnings() +{ + free(statement); +} + +void ui_draw_earnings() +{ + if (ImGui::BeginTable("QuarterlyResultsTable", 5, + ImGuiTableFlags_Borders | ImGuiTableFlags_RowBg | ImGuiTableFlags_SizingFixedFit)) + { + ImGui::TableSetupColumn("##names"); + + int quarter_start = 0; + int quarter_count = 4; + + // Table header + for (int q = 0; q < quarter_count; q++) + { + ImGui::TableSetupColumn(statement->quarters[q].quarter_str, ImGuiTableColumnFlags_WidthStretch); + } + + ImGui::TableHeadersRow(); + + // Uncategorized income and expenses + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::Text("(Uncategorized)"); + ImGui::TableSetColumnIndex(1); ImGui::Text(""); + ImGui::TableSetColumnIndex(2); ImGui::Text(""); + ImGui::TableSetColumnIndex(3); ImGui::Text(""); + ImGui::TableSetColumnIndex(4); ImGui::Text(""); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(" Revenue"); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].uncategorized_revenue); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].uncategorized_revenue); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].uncategorized_revenue); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].uncategorized_revenue); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(" Tax"); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].uncategorized_taxes); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].uncategorized_taxes); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].uncategorized_taxes); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].uncategorized_taxes); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(" Expenses"); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].uncategorized_expenses); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].uncategorized_expenses); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].uncategorized_expenses); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].uncategorized_expenses); + + quarterly_report default_quater = statement->quarters[0]; + for (u32 p = 0; p < default_quater.report_count; p++) + { + ImGui::TableNextRow(); + project_report* report = &default_quater.reports[p]; + ImGui::TableSetColumnIndex(0); ImGui::Text("(%s)", report->description); + ImGui::TableSetColumnIndex(1); ImGui::Text(""); + ImGui::TableSetColumnIndex(2); ImGui::Text(""); + ImGui::TableSetColumnIndex(3); ImGui::Text(""); + ImGui::TableSetColumnIndex(4); ImGui::Text(""); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(" Revenue"); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].reports[p].revenue); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].reports[p].revenue); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].reports[p].revenue); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].reports[p].revenue); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(" Tax"); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].reports[p].taxes); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].reports[p].taxes); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].reports[p].taxes); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].reports[p].taxes); + + ImGui::TableNextRow(); + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(" Expenses"); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].reports[p].expenses_total); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].reports[p].expenses_total); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].reports[p].expenses_total); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].reports[p].expenses_total); + + for (u32 e = 0; e < report->expense_count; e++) + { + ImGui::TableNextRow(); + project_expense* expense = &report->expenses[e]; + ImGui::TableSetColumnIndex(0); ImGui::Text(" %s", localize(expense->description)); + ImGui::TableSetColumnIndex(1); ImGui::Text("%.2f", statement->quarters[quarter_start + 0].reports[p].expenses[e].total); + ImGui::TableSetColumnIndex(2); ImGui::Text("%.2f", statement->quarters[quarter_start + 1].reports[p].expenses[e].total); + ImGui::TableSetColumnIndex(3); ImGui::Text("%.2f", statement->quarters[quarter_start + 2].reports[p].expenses[e].total); + ImGui::TableSetColumnIndex(4); ImGui::Text("%.2f", statement->quarters[quarter_start + 3].reports[p].expenses[e].total); + + + } + } + + /* + for (int i = 0; i < 1; i++) + { + quarterly_report quarter = statement->quarters[quarter_start + quarter_index]; + + for (u32 p = 0; p < quarter.report_count; p++) + { + ImGui::TableNextRow(); + project_report* report = &quarter.reports[p]; + ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(report->description); + ImGui::TableSetColumnIndex(1); ImGui::Text(""); + ImGui::TableSetColumnIndex(2); ImGui::Text(""); + ImGui::TableSetColumnIndex(3); ImGui::Text(""); + ImGui::TableSetColumnIndex(4); ImGui::Text(""); + + + // for (u32 e = 0; e < report->expense_count; e++) + // { + // project_expense* expense = &report->expenses[e]; + // ImGui::TableNextColumn(); ImGui::TextUnformatted(expense->description); + // } + } + }*/ + + // // Rows + // for (int i = 0; i < results_count; i++) + // { + // ImGui::TableNextRow(); + // ImGui::TableSetColumnIndex(0); ImGui::TextUnformatted(results[i].quarter); + // ImGui::TableSetColumnIndex(1); ImGui::TextUnformatted(results[i].revenue); + // ImGui::TableSetColumnIndex(2); ImGui::TextUnformatted(results[i].profit); + // ImGui::TableSetColumnIndex(3); ImGui::TextUnformatted(results[i].expenses); + // } + + ImGui::EndTable(); + } +}
\ No newline at end of file |
