// transact with the current active account and profile void TransactionMenu(){ if(ActiveAccountID < 1){ cout << "No active account has been selected."; return; } if(ActiveUserID < 1){ cout << "No active profile has been selected."; return; } stringstream AAID(""); // active account id stringstream AUID(""); // active user id AAID << ActiveAccountID; AUID << ActiveUserID; if(DB.FieldExists(USER_TABLE, "UserID", (char*)AUID.str().c_str()) == false){ ActiveUserID = -1; cout << "User ID selected does not exist."; return; } else if(DB.FieldExists(ACCOUNT_TABLE, "AcctID", (char*)AAID.str().c_str()) == false){ ActiveAccountID = -1; cout << "Account ID selected does not exist."; return; } string MenuOptions[] = { "exit this menu", "add money", "withdraw money", "view transactions" }; switch(Menu(MenuOptions, "Transactions Menu")){ case 0: return; case 1: TransactAmount(true); break; case 2: TransactAmount(false); break; case 3: ViewTransactions(); break; default: return; } }
void ReportMenu(){ if(ActiveAccountID < 1){ cout << "No active account has been selected."; return; } if(ActiveUserID < 1){ cout << "No active profile has been selected."; return; } stringstream AAID(""); // active account id stringstream AUID(""); // active user id AAID << ActiveAccountID; AUID << ActiveUserID; if(DB.FieldExists(USER_TABLE, "UserID", (char*)AUID.str().c_str()) == false){ ActiveUserID = -1; cout << "User ID selected does not exist."; return; } else if(DB.FieldExists(ACCOUNT_TABLE, "AcctID", (char*)AAID.str().c_str()) == false){ ActiveAccountID = -1; cout << "Account ID selected does not exist."; return; } string MenuOptions[] = { "exit this menu", "view all", "view last 24 hours", "view last 7 days" }; switch(Menu(MenuOptions, "Transactions Menu")){ case 0: return; case 1: ViewReport(); break; case 2: ViewReport(86400); break; case 3: ViewReport(604800); break; default: return; } }
// delete an account void DeleteAccount(){ TableDataSet NewDataSet; stringstream is(""); ViewAccounts(); is << GetUserInput("Select an ID to delete", DB.GetMaxField(ACCOUNT_TABLE, "AcctID")); NewDataSet.push_back(make_pair("AcctID", is.str())); DB.Delete(ACCOUNT_TABLE, NewDataSet); // delete transactions matching this user and account id TableDataSet TransactionTableDataSet; stringstream AAID(""); // active account id stringstream AUID(""); // active user id AAID << ActiveAccountID; AUID << ActiveUserID; if(DB.FieldExists(USER_TABLE, "UserID", (char*)AUID.str().c_str()) == false){ ActiveUserID = -1; cout << "User ID selected does not exist."; return; } else if(DB.FieldExists(ACCOUNT_TABLE, "AcctID", (char*)AAID.str().c_str()) == false){ ActiveAccountID = -1; cout << "Account ID selected does not exist."; return; } TransactionTableDataSet.push_back(make_pair("AcctID", AAID.str().c_str())); TransactionTableDataSet.push_back(make_pair("UserID", AUID.str().c_str())); DB.Delete(TRANSACTION_TABLE, TransactionTableDataSet); ActiveAccountID = -1; }
// view transactions for the current account id and user id void ViewTransactions(){ TableDataSet TransactionTableDataSet; stringstream AAID(""); // active account id stringstream AUID(""); // active user id AAID << ActiveAccountID; AUID << ActiveUserID; if(!validate::string::numeric(AAID.str())){ cout << "invalid account id"; return; } if(!validate::string::numeric(AUID.str())){ cout << "invalid user id"; return; } if(DB.FieldExists(USER_TABLE, "UserID", (char*)AUID.str().c_str()) == false){ ActiveUserID = -1; cout << "User ID selected does not exist."; return; } else if(DB.FieldExists(ACCOUNT_TABLE, "AcctID", (char*)AAID.str().c_str()) == false){ ActiveAccountID = -1; cout << "Account ID selected does not exist."; return; } TransactionTableDataSet.push_back(make_pair("AcctID", AAID.str().c_str())); TransactionTableDataSet.push_back(make_pair("UserID", AUID.str().c_str())); DB.ShowTable(TRANSACTION_TABLE, TransactionTableDataSet, 2); }