Odoo is the world's easiest all-in-one management software. It includes hundreds of business apps:
CRM | e-Commerce | Accounting | Inventory | PoS | Project management | MRP | etc.
I'm working on OpenERP7 in a customized report of balance.
print "registers ", len(account_move_line_search)
print "start ", time.strftime("%Y-%m-%d %H:%M:%S")
account_account_search = account_account_pool.search(cr, uid, [('level','=',5)])
for account_account in account_account_pool.browse(cr,uid,account_account_search):
account_move_line_search_inicial = account_move_line_pool.search(cr,uid,[('move_id.date','<=',self_browse.end_date),
sum_cuenta_debit = 0.00
sum_cuenta_credit = 0.00
for account_move_line in account_move_line_pool.browse(cr,uid,account_move_line_search_inicial):
sum_cuenta_debit += account_move_line.debit
sum_cuenta_credit += account_move_line.credit
total_asientos += 1
print "end ", time.strftime("%Y-%m-%d %H:%M:%S")
The report takes seats, in Date Range (do not take the date of account_move_line).
My work code it's to get the necessary values (debit,credit,account_id,account_id_level_4,account_id_level_3,account_id_level_2,account_id_level_1).
With a sample of 14580 records of 10 days, movements of my jornuas, it takes 47 seconds (too in my opinion).
When I place my search more filters, takes longer.
Is there any way to simplify this time ?.
or, my work code its bad?, I should do?
It welcomes comments.
Hi Ludo, and thanks for responding.
The date filter is for table "account_move" but the debit and credit are in "account_move_line", but I have to build it so:
Given that the sum of level 5, adds to level 4, and level 4 adds to level 3, so on until the level 0 or level 1.
There is another way you suggest? or that is my fault in work code??
Well, for each account in your for-loop, you will execute another for loop searching for move_lines, effectively searching the 14580 records aroudn 300 times ( based on the Dutch accounting schema). Since the data does not change in your for loop, perhaps you could move the search outside of your loop. That would surely already make a little difference.
Furthermore, maybe you can use the methods for gathering move lines that the existing reports use, as they tend to be quite fast?
About This Community
This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.Register
Odoo Training Center
Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.Test it now
|Asked: 3/4/15, 8:57 AM|
|Seen: 1094 times|
|Last updated: 3/16/15, 8:10 AM|