Purnendu Singh (OpenERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-bug-913494-psi into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
Related bugs:
Bug #913494 in OpenERP Addons: "[account] automatic reconcile does not use
start/end date"
https://bugs.launchpad.net/openobject-addons/+bug/913494
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-913494-psi/+merge/92725
Hello,
Fixes:
https://bugs.launchpad.net/openobject-addons/+bug/913494
Thanks,
Purnendu singh
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-bug-913494-psi/+merge/92725
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-bug-913494-psi.
=== modified file 'account/wizard/account_automatic_reconcile.py'
--- account/wizard/account_automatic_reconcile.py 2011-12-31 07:14:16 +0000
+++ account/wizard/account_automatic_reconcile.py 2012-02-13 10:08:15 +0000
@@ -130,7 +130,7 @@
while credits and debits and ok:
res = check5(credits, debits, power)
if res:
- move_line_obj.reconcile(cr, uid, res[0] + res[1], 'auto', writeoff_acc_id, period_id, journal_id, context)
+ move_line_obj.reconcile(cr, uid, res[0] + res[1], 'auto', writeoff_acc_id, period_id, journal_id, context=context)
reconciled += len(res[0]) + len(res[1])
credits = [(id, credit) for (id, credit) in credits if id not in res[0]]
debits = [(id, debit) for (id, debit) in debits if id not in res[1]]
@@ -146,6 +146,8 @@
form = self.browse(cr, uid, ids, context=context)[0]
max_amount = form.max_amount or 0.0
power = form.power
+ date_start = form.date1
+ date_end = form.date2
allow_write_off = form.allow_write_off
reconciled = unreconciled = 0
if not form.account_ids:
@@ -154,13 +156,14 @@
params = (account_id.id,)
if not allow_write_off:
query = """SELECT partner_id FROM account_move_line WHERE account_id=%s AND reconcile_id IS NULL
- AND state <> 'draft' GROUP BY partner_id
+ AND state <> 'draft' AND date >= %s AND date <= %s GROUP BY partner_id
HAVING ABS(SUM(debit-credit)) = 0.0 AND count(*)>0"""
+ params += (date_start, date_end,)
else:
query = """SELECT partner_id FROM account_move_line WHERE account_id=%s AND reconcile_id IS NULL
- AND state <> 'draft' GROUP BY partner_id
+ AND state <> 'draft' AND date >= %s AND date <= %s GROUP BY partner_id
HAVING ABS(SUM(debit-credit)) < %s AND count(*)>0"""
- params += (max_amount,)
+ params += (max_amount, date_start, date_end,)
# reconcile automatically all transactions from partners whose balance is 0
cr.execute(query, params)
partner_ids = [id for (id,) in cr.fetchall()]
@@ -171,13 +174,14 @@
"WHERE account_id=%s " \
"AND partner_id=%s " \
"AND state <> 'draft' " \
- "AND reconcile_id IS NULL",
- (account_id.id, partner_id))
+ "AND reconcile_id IS NULL "\
+ "AND date >= %s AND date <= %s",
+ (account_id.id, partner_id, date_start, date_end,))
line_ids = [id for (id,) in cr.fetchall()]
if line_ids:
reconciled += len(line_ids)
if allow_write_off:
- move_line_obj.reconcile(cr, uid, line_ids, 'auto', form.writeoff_acc_id.id, form.period_id.id, form.journal_id.id, context)
+ move_line_obj.reconcile(cr, uid, line_ids, 'auto', form.writeoff_acc_id.id, form.period_id.id, form.journal_id.id, context=context)
else:
move_line_obj.reconcile_partial(cr, uid, line_ids, 'manual', context=context)
@@ -188,10 +192,11 @@
"WHERE account_id=%s " \
"AND reconcile_id IS NULL " \
"AND state <> 'draft' " \
- "AND partner_id IS NOT NULL " \
+ "AND partner_id IS NOT NULL "\
+ "AND date >= %s AND date <= %s " \
"GROUP BY partner_id " \
"HAVING count(*)>1",
- (account_id.id,))
+ (account_id.id, date_start, date_end,))
partner_ids = [id for (id,) in cr.fetchall()]
#filter?
for partner_id in partner_ids:
@@ -204,8 +209,9 @@
"AND reconcile_id IS NULL " \
"AND state <> 'draft' " \
"AND debit > 0 " \
+ "AND date >= %s AND date <= %s " \
"ORDER BY date_maturity",
- (account_id.id, partner_id))
+ (account_id.id, partner_id, date_start, date_end))
debits = cr.fetchall()
# get the list of unreconciled 'credit transactions' for this partner
@@ -217,11 +223,12 @@
"AND reconcile_id IS NULL " \
"AND state <> 'draft' " \
"AND credit > 0 " \
+ "AND date >= %s AND date <= %s "\
"ORDER BY date_maturity",
- (account_id.id, partner_id))
+ (account_id.id, partner_id, date_start, date_end))
credits = cr.fetchall()
- (rec, unrec) = self.do_reconcile(cr, uid, credits, debits, max_amount, power, form.writeoff_acc_id.id, form.period_id.id, form.journal_id.id, context)
+ (rec, unrec) = self.do_reconcile(cr, uid, credits, debits, max_amount, power, form.writeoff_acc_id.id, form.period_id.id, form.journal_id.id, context=context)
reconciled += rec
unreconciled += unrec
@@ -233,13 +240,14 @@
"FROM account_move_line " \
"WHERE account_id=%s " \
"AND reconcile_id IS NULL " \
+ "AND date >= %s AND date <= %s "\
"AND state <> 'draft' " + partner_filter,
- (account_id.id,))
+ (account_id.id, date_start, date_end,))
additional_unrec = cr.fetchone()[0]
unreconciled = unreconciled + additional_unrec
context.update({'reconciled': reconciled, 'unreconciled': unreconciled})
- model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','account_automatic_reconcile_view1')])
- resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'])[0]['res_id']
+ model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','account_automatic_reconcile_view1')], context=context)
+ resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id']
return {
'view_type': 'form',
'view_mode': 'form',
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp