[Kmymoney-devel] Matching mystery - another mystery

aga agander93 at gmail.com
Tue Mar 24 12:01:04 UTC 2015



On 12/03/15 21:12, aga wrote:
>
>
> On 12/03/15 17:46, aga wrote:
>>
>>
>> On 12/03/15 15:27, Cristian Oneț wrote:
>>> Judging by the import log and cross-referencing it with the code it
>>> seems that this code in mymoneystatementreader.cpp is reached:
>>>
>>>        //
>>>        // Fill in other side of the transaction (category/etc) based
>>> on payee
>>>        //
>>>        // Note, this logic is lifted from
>>> KLedgerView::slotPayeeChanged(),
>>>        // however this case is more complicated, because we have an
>>> amount and
>>>        // a memo.  We just don't have the other side of the transaction.
>>>        //
>>>        // We'll search for the most recent transaction in this account
>>> with
>>>        // this payee.  If this reference transaction is a simple 2-split
>>>        // transaction, it's simple.  If it's a complex split, and the
>>> amounts
>>>        // are different, we have a problem.  Somehow we have to
>>> balance the
>>>        // transaction.  For now, we'll leave it unbalanced, and let
>>> the user
>>>        // handle it.
>>>        //
>>>
>>> Maybe you have a previous transaction involving that payee and that
>>> stock.
>>>
>>> Regards,
>>> Cristian
>>>
>>
>> Yes, I did say that there are reinvest dividend transactions referencing
>> both accounts. However, Fidelity is an investment company with a very
>> large range of investments.  I have a number of different ones, but
>> generally they appear in that checking account with the investment name,
>> rather than Fidelity.  The majority are reinvest dividend.  There are
>> also dividend entries, but the payee name for these is variable, and
>> does not reference the actual investment.  I try to standardise the
>> payee name, and then have to determine the actual investment concerned.
>>   It is these that I am looking at now.
>>
>> I'll try to have a look at that code, to try to get a better idea of
>> what is supposed to happen as against what actually happens.
>>
>
> I don't know if this is correct, or good enough, or sufficient,but what
> I've done is, after
> line 1135 MyMoneyAccount splitAccount = file->account(s.accountId()),
> I've added
> if (!splitAccount.accountType() == MyMoneyAccount::Stock) {
> to bypass the following four lines.
>
> Then, deleting the already imported transaction and re-importing, all
> looks good.  I wondered if MyMoneyAccount::Investment might also need
> including/excluding.
>
> Or, perhaps I'm missing something.

I was about to add my proposed fix.  So, to be able to test afterwards, 
I tested first.

Using the same files, I cannot now reproduce this issue.  The file I was 
intending to edit was mymoneystatementreader.cpp, and this has had no 
change since January.

So, I await further developments.

Allan



>>> 2015-03-12 17:18 GMT+02:00 aga <agander93 at gmail.com>:
>>>>
>>>>
>>>> On 12/03/15 14:49, Cristian Oneț wrote:
>>>>>
>>>>> I'm guessing that the transaction is created with a quantity of 49.56
>>>>> because between the £ of and E000002 there is a price of
>>>>> 49.59/40.09=1.236. Is that true? Please check your price entries. This
>>>>> was added to fix BUG 339262.
>>>>>
>>>>> Regards,
>>>>> Cristian
>>>>>
>>>>
>>>> Thanks Cristian.
>>>>
>>>> That could be a clue.  If I open the split editor on this
>>>> transaction, I'm
>>>> presented with the price editor, showing Currency GBP to
>>>> GB0006838097, To
>>>> amount = 49.56, Price £1 = 1.2362, GB0006838097 1 = £0.8089.
>>>>
>>>> The last price I have, for 2 Feb, is 0.8089.
>>>>
>>>> But I don't understand the leap to this particular stock.  I'm
>>>> intrigued.
>>>> It doesn't make sense to me.
>>>>
>>>> Allan
>>>>
>>>>
>>>>> 2015-03-12 16:29 GMT+02:00 aga <agander93 at gmail.com>:
>>>>>>
>>>>>> I'm having difficulty importing a particular transaction.  It is an
>>>>>> example
>>>>>> of a regular transaction, where the payee name often varies.  I
>>>>>> have the
>>>>>> matching set up to include a few variations.
>>>>>>
>>>>>> In this particular case, the payee is 'FIDELITY FNW INC  ' and I
>>>>>> have an
>>>>>> entry to match that to 'FIDELITY'.  There is no default account.
>>>>>>
>>>>>> This is what happens on import -
>>>>>>
>>>>>> Statement with 1 transactions ready.
>>>>>> KMyMoneyPlugin::KMMStatementInterface::import start
>>>>>> Importing statement for 'NatWest Current Plus 8355'
>>>>>> Processing transactions (NatWest Current Plus 8355)
>>>>>> Process on: '2015-03-02', id: '2015-03-02-7fafe70-1', amount:
>>>>>> '40.09',
>>>>>> fees:
>>>>>> '0.00'
>>>>>> Start matching payee
>>>>>> Found match with 'FIDELITY FNW INC' on 'FIDELITY'
>>>>>> Single matches
>>>>>> Adding second split to Artemis High Income(A000454)
>>>>>> Setting second split shares to E000002 -49.56
>>>>>> Looking for a match with transaction:  "2015-03-02" , "FIDELITY" ,
>>>>>> "40.09"
>>>>>> (referenced account:  "NatWest Current Plus 8355" )
>>>>>> Considering 0 existing transaction(s) for matching
>>>>>> Looking for a match with transaction:  "2015-03-02" , "FIDELITY" ,
>>>>>> "40.09"
>>>>>> (referenced account:  "NatWest Current Plus 8355" )
>>>>>> Considering 17 schedule(s) for matching the transaction
>>>>>> Processing transactions done (NatWest Current Plus 8355)
>>>>>> Importing statement for 'NatWest Current Plus 8355' done
>>>>>>
>>>>>> So, what has happened is that a Sell transaction has been created,
>>>>>> for
>>>>>> the
>>>>>> amount of £40.09, and a Quantity of 49.56 has been invented.
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> I can't see any reason why this should happen.  There are reinvest
>>>>>> dividend
>>>>>> transaction referencing both accounts.
>>>>>>
>>>>>> Has anyone any clue please?  I'm stumped.
>>>>>>
>>>>>> Allan


More information about the KMyMoney-devel mailing list