Hi Chris

Just wondering if you've been able to do any tests for my query, below.

<snip>
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