Skip to content

Commit

Permalink
Minor cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
wichtounet committed Sep 26, 2023
1 parent 877e7eb commit 6cfcd28
Showing 1 changed file with 49 additions and 48 deletions.
97 changes: 49 additions & 48 deletions src/liabilities.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -180,73 +180,74 @@ void budget::liabilities_module::handle(const std::vector<std::string>& args){
}
} else if (subcommand == "value") {
if (args.size() == 2) {
budget::show_asset_values(w, true);
} else {
const auto& subsubcommand = args[2];

if (subsubcommand == "set") {
asset_value asset_value;
asset_value.guid = generate_guid();
asset_value.liability = true;
return budget::show_asset_values(w, true);
}

std::string liability_name;
edit_string_complete(liability_name, "Liability", get_liabilities_names(), not_empty_checker(), liability_checker());
asset_value.asset_id = get_liability(liability_name).id;
const auto& subsubcommand = args[2];

edit_money(asset_value.amount, "Amount", not_negative_checker());
if (subsubcommand == "set") {
asset_value asset_value;
asset_value.guid = generate_guid();
asset_value.liability = true;

asset_value.set_date = budget::local_day();
edit_date(asset_value.set_date, "Date");
std::string liability_name;
edit_string_complete(liability_name, "Liability", get_liabilities_names(), not_empty_checker(), liability_checker());
asset_value.asset_id = get_liability(liability_name).id;

auto id = add_asset_value(asset_value);
std::cout << "Asset Value " << id << " has been created" << std::endl;
} else if (subsubcommand == "show") {
show_asset_values(w, true);
} else if (subsubcommand == "list") {
list_asset_values(w, true);
} else if (subsubcommand == "edit") {
size_t id = 0;
edit_money(asset_value.amount, "Amount", not_negative_checker());

enough_args(args, 4);
asset_value.set_date = budget::local_day();
edit_date(asset_value.set_date, "Date");

id = to_number<size_t>(args[3]);
auto id = add_asset_value(asset_value);
std::cout << "Asset Value " << id << " has been created" << std::endl;
} else if (subsubcommand == "show") {
show_asset_values(w, true);
} else if (subsubcommand == "list") {
list_asset_values(w, true);
} else if (subsubcommand == "edit") {
size_t id = 0;

auto value = get_asset_value(id);
enough_args(args, 4);

if (!value.liability) {
throw budget_exception("Cannot edit asset value from the liability module");
}
id = to_number<size_t>(args[3]);

std::string liability_name = get_liability(value.asset_id).name;
edit_string_complete(liability_name, "Asset", get_liabilities_names(), not_empty_checker(), liability_checker());
value.asset_id = get_liability(liability_name).id;
auto value = get_asset_value(id);

edit_money(value.amount, "Amount", not_negative_checker());
edit_date(value.set_date, "Date");
if (!value.liability) {
throw budget_exception("Cannot edit asset value from the liability module");
}

if (edit_asset_value(value)) {
std::cout << "Asset Value " << id << " has been modified" << std::endl;
}
} else if (subsubcommand == "delete") {
size_t id = 0;
std::string liability_name = get_liability(value.asset_id).name;
edit_string_complete(liability_name, "Asset", get_liabilities_names(), not_empty_checker(), liability_checker());
value.asset_id = get_liability(liability_name).id;

enough_args(args, 4);
edit_money(value.amount, "Amount", not_negative_checker());
edit_date(value.set_date, "Date");

id = to_number<size_t>(args[3]);
if (edit_asset_value(value)) {
std::cout << "Asset Value " << id << " has been modified" << std::endl;
}
} else if (subsubcommand == "delete") {
size_t id = 0;

auto value = get_asset_value(id);
enough_args(args, 4);

if (!value.liability) {
throw budget_exception("Cannot edit asset value from the liability module");
}
id = to_number<size_t>(args[3]);

asset_value_delete(id);
auto value = get_asset_value(id);

std::cout << "Asset value " << id << " has been deleted" << std::endl;
} else {
throw budget_exception("Invalid subcommand value \"" + subsubcommand + "\"");
if (!value.liability) {
throw budget_exception("Cannot edit asset value from the liability module");
}

asset_value_delete(id);

std::cout << "Asset value " << id << " has been deleted" << std::endl;
} else {
throw budget_exception("Invalid subcommand value \"" + subsubcommand + "\"");
}

} else {
throw budget_exception("Invalid subcommand \"" + subcommand + "\"");
}
Expand Down

0 comments on commit 6cfcd28

Please sign in to comment.