← Back to team overview

openerp-india team mailing list archive

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

 

IMHO for the balance there is an easy "fix" / workaround

    def _balance_move_line(self, cr, uid, ids, name, arg, context={}):
        res = {}
        for line in self.browse(cr, uid, ids,context):
            balance = line.debit -  line.credit
            res[line.id] = balance
        return res


'balance_move_line': fields.function(_balance_move_line, method=True, string='Balance Line'),

with store=true

this stored value can be used by the SQL statement

for reconciliation we found it usefull  to be able to sort by balance
without signe to get matching values next to each other

    def _balance_move_line_abs(self, cr, uid, ids, name, arg, context={}):
        res = {}
        for line in self.browse(cr, uid, ids,context):
            balance = abs(line.debit -  line.credit)
            res[line.id] = balance
        return res

        'balance_move_line_abs': fields.function(_balance_move_line_abs,
method=True, string='Balance Line abs'),


for server side sorting of function fields please see
http://www.camptocamp.com/fr/component/wordpress/?author=87
https://code.launchpad.net/~c2c/openobject-server/6.0-c2c-official

-- 
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Addons.
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