[FIX] use the account move line residual computed in the account addon

(lp:c2c-addons/6.1  rev 89.1.34)
This commit is contained in:
Guewen Baconnier @ Camptocamp
2012-10-29 09:40:18 +01:00
parent 9690961309
commit 0aacf097a3

View File

@@ -118,7 +118,8 @@ class CreditControlLine(Model):
return [] return []
def _prepare_from_move_line(self, cursor, uid, move_line, def _prepare_from_move_line(self, cursor, uid, move_line,
level, controlling_date, context=None): level, controlling_date, open_amount,
context=None):
"""Create credit control line""" """Create credit control line"""
acc_line_obj = self.pool.get('account.move.line') acc_line_obj = self.pool.get('account.move.line')
if context is None: if context is None:
@@ -132,8 +133,7 @@ class CreditControlLine(Model):
data['partner_id'] = move_line.partner_id.id data['partner_id'] = move_line.partner_id.id
data['amount_due'] = (move_line.amount_currency or move_line.debit or data['amount_due'] = (move_line.amount_currency or move_line.debit or
move_line.credit) move_line.credit)
data['balance_due'] = acc_line_obj._amount_residual_from_date( data['balance_due'] = open_amount
cursor, uid, move_line, controlling_date, context=context)
data['policy_level_id'] = level.id data['policy_level_id'] = level.id
data['company_id'] = move_line.company_id.id data['company_id'] = move_line.company_id.id
data['move_line_id'] = move_line.id data['move_line_id'] = move_line.id
@@ -170,27 +170,20 @@ class CreditControlLine(Model):
('level', '=', current_lvl)], ('level', '=', current_lvl)],
context=context) context=context)
errors = [] errors = [] # for now there is no errors on lines
for line in ml_obj.browse(cursor, uid, lines, context): for line in ml_obj.browse(cursor, uid, lines, context):
# we want to create as many line as possible
try:
if line.id in existings:
# does nothing just a hook
debit_line_ids += self._update_from_mv_line(
cursor, uid, ids, line, level,
controlling_date, context=context)
else:
# as we use memoizer pattern this has almost no cost to get it
# multiple time
open_amount = acc_line_obj._amount_residual_from_date(
cursor, uid, line, controlling_date, context=context)
if open_amount > tolerance.get(line.currency_id.id, tolerance_base): if line.id in existings:
vals = self._prepare_from_move_line( # does nothing just a hook
cursor, uid, line, level, controlling_date, context=context) debit_line_ids += self._update_from_mv_line(
debit_line_ids.append(self.create(cursor, uid, vals, context=context)) cursor, uid, ids, line, level,
except osv.except_osv, exc: controlling_date, context=context)
logger.exception(exc) else:
errors.append(exc.value) open_amount = line.amount_residual_currency
if open_amount > tolerance.get(line.currency_id.id, tolerance_base):
vals = self._prepare_from_move_line(
cursor, uid, line, level, controlling_date, open_amount, context=context)
debit_line_ids.append(self.create(cursor, uid, vals, context=context))
return debit_line_ids, errors return debit_line_ids, errors