117
117
# TODO: Not sure what side effects are created when payments are done
118
118
# for credited customer invoices, which will be matched later on too.
120
def bank_match(account, partner_bank):
122
Returns whether a given account number is equivalent to a
123
partner bank in the database. We simply call the search method,
124
which checks IBAN, domestic and disregards from spaces in IBANs.
126
:param account: string representation of a bank account number
127
:param partner_bank: browse record of model res.partner.bank
129
return partner_bank.id in self.pool['res.partner.bank'].search(
130
cr, uid, [('acc_number', '=', account)])
119
132
digits = dp.get_precision('Account')(cr)[1]
121
x for x in payment_lines
122
if x.communication == trans.reference
123
and round(x.amount, digits) == -round(
124
trans.statement_line_id.amount, digits)
125
and trans.remote_account in (x.bank_id.acc_number,
126
x.bank_id.acc_number_domestic)
134
line for line in payment_lines
135
if (line.communication == trans.reference
136
and round(line.amount, digits) == -round(
137
trans.statement_line_id.amount, digits)
138
and bank_match(trans.remote_account, line.bank_id))
128
140
if len(candidates) == 1:
129
141
candidate = candidates[0]