Impacted versions: 9.0, 9.0 enterprise

Steps to reproduce:
On current runbot duplicate any posted journal entry which is balanced

Current behavior:
Error message "Cannot create unbalanced entry" is shown

Expected behavior:
New Journal entry is created in state 'draft'

Video/Screenshot link (optional):
![selection_268](https://cloud.githubusercontent.com/assets/14974044/15007437/41f45a56-11d9-11e6-84f3-b297befaa521.png)

""" Returns the domain which is common to both manual and bank statement reconciliation.
            :param excluded_ids: list of ids of move lines that should not be fetched
            :param str: search string
        """
        context = (self._context or {})
        if excluded_ids is None:
            excluded_ids = []
        domain = []
        if excluded_ids:
            domain = expression.AND([domain, [('id', 'not in', excluded_ids)]])
        if str:
            str_domain = [
                '|', ('move_id.name', 'ilike', str),
                '|', ('move_id.ref', 'ilike', str),
                '|', ('date_maturity', 'like', str),
                '&', ('name', '!=', '/'), ('name', 'ilike', str)
            ]
            try:
                amount = float(str)
                amount_domain = ['|', ('amount_residual', '=', amount), '|', ('amount_residual_currency', '=', amount), '|', ('amount_residual', '=', -amount), ('amount_residual_currency', '=', -amount)]
                str_domain = expression.OR([str_domain, amount_domain])
            except:
                pass
            
            
            if 'bank_statement_line' in context and not context['bank_statement_line'].partner_id.id:
                str_domain = expression.OR([str_domain, [('partner_id.name', 'ilike', str)]])
            domain = expression.AND([domain, str_domain])
        return domain
    def _domain_move_lines_for_manual_reconciliation(self, account_id, partner_id=False, excluded_ids=None, str=False):