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

Reply via email to