domain.insert(-1, '|', )
domain.append(('partner_id.name', 'ilike', str))
-
- # Get move lines
- line_ids = mv_line_pool.search(cr, uid, domain, offset=offset, limit=limit, order="date_maturity asc, id asc", context=context)
- lines = mv_line_pool.browse(cr, uid, line_ids, context=context)
-
- # Either return number of lines
- if count:
- nb_lines = 0
- reconcile_partial_ids = [] # for a partial reconciliation, take only one line
+ # Get move lines ; in case of a partial reconciliation, only consider one line
+ filtered_lines = []
+ reconcile_partial_ids = []
+ shift = 0
+ while True:
+ actual_offset = offset and offset+limit*shift or offset
+ actual_limit = limit and limit+limit*shift or limit
+ line_ids = mv_line_pool.search(cr, uid, domain, offset=actual_offset, limit=actual_limit, order="date_maturity asc, id asc", context=context)
+ lines = mv_line_pool.browse(cr, uid, line_ids, context=context)
+
+ did_filter_out_lines = False
for line in lines:
if line.reconcile_partial_id and line.reconcile_partial_id.id in reconcile_partial_ids:
+ did_filter_out_lines = True
continue
- nb_lines += 1
+ filtered_lines.append(line)
if line.reconcile_partial_id:
reconcile_partial_ids.append(line.reconcile_partial_id.id)
- return nb_lines
+
+ if not limit or not did_filter_out_lines or len(filtered_lines) >= limit:
+ break
+ shift += 1
+ lines = limit and filtered_lines[:limit] or filtered_lines
+
+ # Either return number of lines
+ if count:
+ return len(lines)
# Or return list of dicts representing the formatted move lines
else:
currency_obj = self.pool.get('res.currency')
company_currency = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id
rml_parser = report_sxw.rml_parse(cr, uid, 'reconciliation_widget_aml', context=context)
- reconcile_partial_ids = [] # for a partial reconciliation, take only one line
ret = []
for line in lines:
- if line.reconcile_partial_id and line.reconcile_partial_id.id in reconcile_partial_ids:
- continue
partial_reconciliation_siblings_ids = []
if line.reconcile_partial_id:
- reconcile_partial_ids.append(line.reconcile_partial_id.id)
partial_reconciliation_siblings_ids = self.search(cr, uid, [('reconcile_partial_id', '=', line.reconcile_partial_id.id)], context=context)
partial_reconciliation_siblings_ids.remove(line.id)