/** Returns the last price date of a given stock */ wxString Model_Stock::lastPriceDate(const Self::Data* entity) { wxString dtStr = entity->PURCHASEDATE; Model_StockHistory::Data_Set histData = Model_StockHistory::instance().find(SYMBOL(entity->SYMBOL)); std::sort(histData.begin(), histData.end(), SorterByDATE()); if (!histData.empty()) dtStr = histData.back().DATE; return dtStr; }
void mmStockDialog::showStockHistory() { priceListBox_->DeleteAllItems(); if (m_stock->SYMBOL.IsEmpty()) return; Model_Account::Data* account = Model_Account::instance().get(m_stock->HELDAT); Model_StockHistory::Data_Set histData = Model_StockHistory::instance().find(Model_StockHistory::SYMBOL(m_stock->SYMBOL)); std::stable_sort(histData.begin(), histData.end(), SorterByDATE()); std::reverse(histData.begin(), histData.end()); if (histData.size()>300) histData.resize(300); if (!histData.empty()) { int idx=0; for (const auto &d : histData) { wxListItem item; item.SetId(idx); item.SetData(d.HISTID); priceListBox_->InsertItem( item ); const wxDate dtdt = Model_StockHistory::DATE(d); const wxString dispAmount = Model_Account::toString(d.VALUE, account, 4); priceListBox_->SetItem(idx, 0, mmGetDateForDisplay(dtdt)); priceListBox_->SetItem(idx, 1, dispAmount); if (idx == 0) { priceDate_->SetValue(dtdt); currentPrice_->SetValue(dispAmount); } const wxString& priceAmount = Model_Account::toString(d.VALUE - m_stock->PURCHASEPRICE, account, 4); priceListBox_->SetItem(idx, 2, priceAmount); idx++; } priceListBox_->RefreshItems(0, --idx); } }