'Prepare the dict of values to balance the move.
:param recordset move: the account.move to link the move line
:param float amount: the amount of transaction that wasn\'t already reconciled'

def _prepare_reconciliation_move_line(self, move, amount):

    company_currency = self.journal_id.company_id.currency_id
    statement_currency = (self.journal_id.currency_id or company_currency)
    st_line_currency = (self.currency_id or statement_currency)
    amount_currency = False
    st_line_currency_rate = ((self.currency_id and (self.amount_currency / self.amount)) or False)
    if ((st_line_currency != company_currency) and (st_line_currency == statement_currency)):
        amount_currency = (- sum([x.amount_currency for x in move.line_ids]))
    elif ((st_line_currency != company_currency) and (statement_currency == company_currency)):
        amount_currency = (- sum([x.amount_currency for x in move.line_ids]))
    elif ((st_line_currency != company_currency) and (st_line_currency != statement_currency)):
        amount_currency = ((- sum([x.amount_currency for x in move.line_ids])) / st_line_currency_rate)
    elif ((st_line_currency == company_currency) and (statement_currency != company_currency)):
        amount_currency = (amount / st_line_currency_rate)
    return {'name': self.name, 'move_id': move.id, 'partner_id': ((self.partner_id and self.partner_id.id) or False), 'account_id': (((amount >= 0) and self.statement_id.journal_id.default_credit_account_id.id) or self.statement_id.journal_id.default_debit_account_id.id), 'credit': (((amount < 0) and (- amount)) or 0.0), 'debit': (((amount > 0) and amount) or 0.0), 'statement_id': self.statement_id.id, 'currency_id': (((statement_currency != company_currency) and statement_currency.id) or (((st_line_currency != company_currency) and st_line_currency.id) or False)), 'amount_currency': amount_currency}
