On 25/11/13 04:23, Chris Tucker wrote:
I tried to subscribe to the list but am awaiting authorization.  According to 
the page at http://kmymoney2.sourceforge.net, this is the best way to submit a 
bug for the git development code.  If not the please point me in the right 
direction.

Another bug found  when importing from OFX direct connect.  The reader trying 
to create splits cannot find the brokerage account for a split using 
statementTransactionUnderImport so all the imported transactions are broken.  
This is likely because the transaction doesn't know the account name, but 
m_account does.  A patch:

*** mymoneystatementreader.cpp.orig     2013-11-24 17:27:39.959812598 -0800
--- mymoneystatementreader.cpp  2013-11-24 20:01:40.339204121 -0800
***************
*** 565,570 ****
--- 565,573 ----
       if (brokerageactid.isEmpty()) {
         brokerageactid = 
file->nameToAccount(statementTransactionUnderImport.m_strBrokerageAccount);
       }
+     if (brokerageactid.isEmpty()) {
+       brokerageactid = file->nameToAccount(thisaccount.brokerageName());
+     }

       // find the security transacted, UNLESS this transaction didn't
       // involve any security.

--

Chris

Hi Chris

Thanks for this patch, too. I've found here, though, that brokerageactid gets over-written a bit later, circa line 1086 in mymoneystatementreader.cpp -

  // Add the 'account' split if it's needed
  if (! transfervalue.isZero()) {
// in case the transaction has a reference to the brokerage account, we use it
   if (!statementTransactionUnderImport.m_strBrokerageAccount.isEmpty() && 
brokerageactid.isEmpty()) {<<<
brokerageactid = file->nameToAccount(statementTransactionUnderImport.m_strBrokerageAccount);
    }
    if (brokerageactid.isEmpty()) {
brokerageactid = file->accountByName(statementTransactionUnderImport.m_strBrokerageAccount).id();
    }
//  There is no BrokerageAccount so have to nowhere to put this split.
    if (!brokerageactid.isEmpty()) {

and I needed to make the change on the line indicated by >>>....<<<, to avoid that happening.

I'm importing via CSV and there is no mapping of OFX source to an account for the brokerage/checking account so the user gets asked to enter this. If he specifies an existing account, all is well. If, however, because he makes a mistake or abbreviates a long name, the transfer will go to the investment account's associated brokerage account. Generally, personally, I don't use these brokerage accounts because for me, they are not real and I would then have to make a manual transfer.

It might be interesting to know what happens with your OFX transfers if/when they reach this code.

Allan

_______________________________________________
KMyMoney-devel mailing list
KMyMoney-devel@kde.org
https://mail.kde.org/mailman/listinfo/kmymoney-devel

Reply via email to