<p dir="ltr">Thanks Fernando!</p>
<p dir="ltr">It will be a bit before I can add this but I appreciate the start. I will look at the suggested code as well.</p>
<p dir="ltr">Eric</p>
<div class="gmail_quote">On May 14, 2014 11:36 PM, "Fernando Vilas" <<a href="mailto:fvilas@iname.com">fvilas@iname.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wednesday, May 14, 2014 19:48:15 Eric Bonney wrote:<br>
> Hi everyone!<br>
><br>
> So after a year or so of letting this project lay idle I have resurrected<br>
> it again. I have it just about updated to the latest API and starting to<br>
> fix some other bugs.<br>
><br>
> I have a quick question about investment accounts. I am trying to figure<br>
> out how the actual current balance in an investment account is figured. I<br>
> don't see it stored in the database anywhere so I am guessing there is a<br>
> calculation going on somewhere right?<br>
><br>
> If so can someone point me where to look?<br>
><br>
> Thanks,<br>
> Eric<br>
<br>
We have tried a few database views to calculate it, but those proved to be<br>
cumbersome. They also break down when the a stock splits or goes through a<br>
reverse split.<br>
<br>
Consequently, they are calculated at the storage layer in the<br>
MMStorage::balance() function, implemented for both the XML and SQL backends.<br>
I will cover the one in the SQL backend, since that is one I am more familiar<br>
with, though it was modeled after the one in the XML backend.<br>
<br>
The algorithm is essentially to grab all splits in the date range that match<br>
txType='N' and the accountId is the one you want, ordered by accountId and<br>
date. Then loop through all splits returned. If the action was a normal<br>
transaction, then add the value to the running total. If the action was<br>
ActionSplitShares, then multiply instead of add so that the split is handled<br>
appropriately.<br>
<br>
For speed the results are stored in the MMFile member variable of type<br>
MyMoneyBalanceCache.<br>
<br>
--<br>
Thanks,<br>
Fernando Vilas<br>
<a href="mailto:fvilas@iname.com">fvilas@iname.com</a><br>
<br>_______________________________________________<br>
KMyMoney-devel mailing list<br>
<a href="mailto:KMyMoney-devel@kde.org">KMyMoney-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kmymoney-devel" target="_blank">https://mail.kde.org/mailman/listinfo/kmymoney-devel</a><br>
<br></blockquote></div>