#include #include #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(); } }