void mmStocksPanel::updateHeader() { const Model_Account::Data* account = Model_Account::instance().get(accountID_); double initVal = 0; // + Transfered from other accounts - Transfered to other accounts //Get Stock Investment Account Balance as Init Amount + sum (Value) - sum (Purchase Price) std::pair<double, double> investment_balance; if (account) { header_text_->SetLabelText(GetPanelTitle(*account)); //Get Init Value of the account initVal = account->INITIALBAL; investment_balance = Model_Account::investment_balance(account); } double originalVal = investment_balance.second; double total = investment_balance.first; const wxString& diffStr = Model_Currency::toCurrency(total > originalVal ? total - originalVal : originalVal - total, m_currency); double diffPercents = diffPercents = (total > originalVal ? total / originalVal*100.0 - 100.0 : -(total / originalVal*100.0 - 100.0)); const wxString lbl = wxString::Format("%s %s %s %s (%s %%)" , wxString::Format(_("Total Shares: %s"), Total_Shares()) , wxString::Format(_("Total: %s"), Model_Currency::toCurrency(total + initVal, m_currency)) , wxString::Format(_("Invested: %s"), Model_Currency::toCurrency(originalVal, m_currency)) , wxString::Format(total > originalVal ? _("Gain: %s") : _("Loss: %s"), diffStr) , Model_Currency::toString(diffPercents, m_currency, 2)); header_total_->SetLabelText(lbl); this->Layout(); }
void mmStocksPanel::updateHeader() { const Model_Account::Data* account = Model_Account::instance().get(accountID_); double initVal = 0; // + Transfered from other accounts - Transfered to other accounts //Get Stock Investment Account Balance as Init Amount + sum (Value) - sum (Purchase Price) std::pair<double, double> investment_balance; if (account) { header_text_->SetLabelText(GetPanelTitle(*account)); //Get Init Value of the account initVal = account->INITIALBAL; investment_balance = Model_Account::investment_balance(account); } double originalVal = investment_balance.second; double total = investment_balance.first; wxString balance = Model_Currency::toCurrency(total + initVal, m_currency); wxString original = Model_Currency::toCurrency(originalVal, m_currency); wxString diffStr = Model_Currency::toCurrency(total > originalVal ? total - originalVal : originalVal - total, m_currency); wxString lbl; lbl << _("Total Shares: ") << Total_Shares() << " " << _("Total: ") << balance << " " << _("Invested: ") << original; //Percent if (originalVal != 0.0) { if (total > originalVal) lbl << " " << _("Gain: "); else lbl << " " << _("Loss: "); double diffPercents = (total > originalVal ? total/originalVal*100.0-100.0 : -(total/originalVal*100.0-100.0)); lbl << diffStr << " ( " << Model_Currency::toString(diffPercents, m_currency, 2) << " %)"; } header_total_->SetLabelText(lbl); }