← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 887376] Re: [6.0 & 6.1] [account] def compute needs optimization

 

Ok, thank you.
We are working for it

I comment what, my patch example solution no have SQL injections
My idea is next patch:

=== modified file 'account/account.py'
--- account/account.py	2011-10-10 08:50:07 +0000
+++ account/account.py	2011-11-08 00:54:14 +0000
@@ -271,6 +271,13 @@
             request = ("SELECT l.account_id as id, " +\
                        ', '.join(map(mapping.__getitem__, field_names)) +
                        " FROM account_move_line l" \
+                       """
+                        INNER JOIN account_account aa_tree_1
+                          ON aa_tree_1.id = l.account_id
+                        INNER JOIN account_account aa_tree_2
+                           ON aa_tree_2.parent_left 
+                              BETWEEN aa_tree_1.parent_left AND aa_tree_1.parent_right
+                       """ \
                        " WHERE l.account_id IN %s " \
                             + filters +
                        " GROUP BY l.account_id")


NOTE: This is a example of my idea, not have the full solution

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to OpenERP Project Group.
https://bugs.launchpad.net/bugs/887376

Title:
  [6.0 & 6.1] [account] def compute needs optimization

Status in OpenERP Addons (modules):
  Confirmed

Bug description:
  The def compute of account module no use parent_right & parent_left fields for calculate sum(debit) & sum(credit)
  and not in use recursive function's

  These is very slow with a big account chart and very much
  account_move_line

  This can optimizate using parent_left & parent_right

  Im working for a propose merge with the solution.

  Meanwhile i put a script sql with my idea

  	SELECT 	MIN(aa_tree_1.code) AS code,
  		SUM(account_move_line.debit) AS debit, SUM(account_move_line.credit) AS credit
  	FROM account_account aa_tree_1
  	INNER JOIN account_account aa_tree_2
  	   ON aa_tree_2.parent_left 
  	      BETWEEN aa_tree_1.parent_left AND aa_tree_1.parent_right
  	INNER JOIN account_move_line
  	  ON account_move_line.account_id = aa_tree_2.id
  	INNER JOIN account_move
  	  ON account_move.id = account_move_line.move_id
  	  AND account_move.state = 'posted'
  	GROUP BY aa_tree_1.id

  
  These script is functionally without consolidate account, but I'm working

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/887376/+subscriptions


References