[Kmymoney-devel] A bug in Git master

Allan agander93 at gmail.com
Tue Nov 26 00:15:49 UTC 2013


On 25/11/13 23:24, Chris Tucker wrote:
> During OFX import when direct downloading from the brokerage there isn't a popup box for matching securities, as there likely shouldn't be.  Since the OFX import should just pull in the transactions and try to match, this make sense.  I might be able to get a OFX transaction to test with if you need it but I will try explaining first so you can see the problem in the code.
>

Yes, thanks Chris, but I think I'd got that.  I wasn't 100% certain 
though that, although the match didn't occur, the transaction did or did 
not get accepted.  I see now that you actually got that message box 
appear.  Wonder how my CSV import via the same code managed to avoid 
that.  Must investigate.

<snip>

> My patch may have one problem, though, since I assumed the OFX security name should not be compared to the iterator symbol and changed the code to compare symbol -> symbol or name -> name.  Maybe there was a reason for the name -> symbol comparison and the code should read:
>
>              if (statementTransactionUnderImport.m_strSecurity.toLower() == (*it).tradingSymbol().toLower()
>                  || statementTransactionUnderImport.m_strSymbol.toLower() == (*it).tradingSymbol().toLower()
>                  || statementTransactionUnderImport.m_strSecurity.toLower() == (*it).name().toLower()) {
>

No, the original code definitely looks wrong, and I don't think your 
second idea is necessary.  I would say your first was adequate.  I've 
checked, partly in case I'd slipped up, but that code is over four years 
old.

> In my testing I never found a reason to compare the OFX name to symbol.

I don't think it would achieve much really!

> --
>
> Chris


I'll put that through as soon as my backlog has cleared.

Allan

>
>
> On Monday, November 25, 2013 10:51:13 PM Allan wrote:
>> On 25/11/13 01:49, Chris Tucker wrote:
>>> Vanguard Index FDS Mid-Cap Value Index (VOE)
>>
>> @ Thomas please, below.
>>
>> Hi Chris
>>
>> I've had a quick look at your patch, and, while I've not sat and thought
>> about it in detail, it does look OK.
>>
>> However, my first thought was 'How do I test it, as I don't have OFX?'
>> Then, your patch is for  mymoneystatementreader.cpp, which is common to
>> all input methods, so I knocked up a simple CSV file.  First, I entered
>> into KMM, your original security, with a single Buy transaction.  Then,
>> I imported my CSV file containing a Dividend Reinvest for your imported
>> security.  The CSV i9mporter, prior to the actual import, displays the
>> data from the file, to give the user the chance to edit security names
>> to correspond to existing securities.  This recognises the existing
>> symbol and security, and doesn't show the new data.  I proceed, and
>> continue the import.  The import statement stats show one transaction
>> processed and one added, with no duplicates.  Looking now at the ledger
>> for the import account, both transactions appear with their own distinct
>> security names, and the investment view contains both securities with
>> their own separate names.  Back in the Ledger, starting a new
>> transaction gives a choice of either security, so everything seems OK,
>> unless you actually wanted the two securities to match, rather than be
>> independent.  You say "...the transaction import fails to find the
>> security by name.", and it can't because it's dealing with a different
>> name, but it actually finds it by symbol.
>>
>> I have not used your proposed patch.  Forgive my asking, but I'm
>> assuming you tested your patch?  Did it give the result you wanted, and
>> to be clear, you do want the two to match?
>>
>> @ Thomas please, below.
>> The next point is of principal.  I've always taken it that a symbol
>> needs to be unique within KMM, and I can see possible problems having
>> two different securities with the same symbol.  Of course, this would
>> resolve if the two securities can actually match.
>>
>> Allan
>>
>>
>


More information about the KMyMoney-devel mailing list