From d93fa42c8378f25c3251e9d0ffa9d6625cbb6632 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Fri, 12 Aug 2011 15:07:37 +0530 Subject: [PATCH 1/4] [REF]: account: l10n fullness and inheritancy: Created generate_account() function for generating accounts from templates. This function splited from execute method of wizard.multi.charts.accounts also improved references which has been generate from generate_account function. bzr revid: ron@tinyerp.com-20110812093737-75qvpxtogmyfkga5 --- addons/account/account.py | 119 +++++++++++++++++++++----------------- 1 file changed, 67 insertions(+), 52 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index ae2a98a0ef4..1c8f43f03d4 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -2376,6 +2376,57 @@ class account_account_template(osv.osv): res.append((record['id'],name )) return res + def generate_account(self, cr, uid, account_root_id, tax_template_ref, code_digits, company_id, context=None): + """ + This method for generating accounts from templates. + @param cr: A database cursor. + @param uid: ID of the user currently logged in. + @param account_root_id: Root account id getting from current template. + @param tax_template_ref: Taxes templates reference for write taxes_id in account_account. + @param code_digits: Digit getting from wizard.multi.charts.accounts.,this is use for account code. + @param company_id: company_id selected from wizard.multi.charts.accounts. + @return :{acc_template_ref : Pass acconting_ids for reference purpose} + + """ + if context is None: + context = {} + obj_acc = self.pool.get('account.account') + acc_template_ref = {} + #deactivate the parent_store functionnality on account_account for rapidity purpose + ctx = context and context.copy() or {} + ctx['defer_parent_store_computation'] = True + children_acc_template = self.search(cr, uid, [('parent_id','child_of', account_root_id),('nocreate','!=',True)]) + children_acc_template.sort() + + for account_template in self.browse(cr, uid, children_acc_template, context=context): + tax_ids = [] + for tax in account_template.tax_ids: + tax_ids.append(tax_template_ref[tax.id]) + + code_main = account_template.code and len(account_template.code) or 0 + code_acc = account_template.code or '' + if code_main > 0 and code_main <= code_digits and account_template.type != 'view': + code_acc = str(code_acc) + (str('0'*(code_digits-code_main))) + vals={ + 'name': (account_root_id[0] == account_template.id) and company_id.name or account_template.name, + 'currency_id': account_template.currency_id and account_template.currency_id.id or False, + 'code': code_acc, + 'type': account_template.type, + 'user_type': account_template.user_type and account_template.user_type.id or False, + 'reconcile': account_template.reconcile, + 'shortcut': account_template.shortcut, + 'note': account_template.note, + 'parent_id': account_template.parent_id and ((account_template.parent_id.id in acc_template_ref) and acc_template_ref[account_template.parent_id.id]) or False, + 'tax_ids': [(6,0,tax_ids)], + 'company_id': company_id.id, + } + new_account = obj_acc.create(cr, uid, vals, context=ctx) + acc_template_ref[account_template.id] = new_account + + #reactivate the parent_store functionnality on account_account + obj_acc._parent_store_compute(cr) + return {'acc_template_ref': acc_template_ref} + account_account_template() class account_add_tmpl_wizard(osv.osv_memory): @@ -2832,8 +2883,6 @@ class wizard_multi_charts_accounts(osv.osv_memory): company_id = obj_multi.company_id.id chart_temp_id = obj_multi.chart_template_id.id - #new code - acc_template_ref = {} tax_code_template_ref = {} # create tax templates and real taxes from purchase_tax_rate,sale_tax_rate fields @@ -2880,48 +2929,14 @@ class wizard_multi_charts_accounts(osv.osv_memory): tax_template_to_tax = {} tax_templates = [x for x in obj_multi.chart_template_id.tax_template_ids if x.installable] taxes_ids = obj_tax_temp.generate_tax(cr, uid, tax_templates, tax_code_template_ref, company_id, context=context) - #deactivate the parent_store functionnality on account_account for rapidity purpose - ctx = context and context.copy() or {} - ctx['defer_parent_store_computation'] = True - children_acc_template = obj_acc_template.search(cr, uid, [('parent_id','child_of',[obj_acc_root.id]),('nocreate','!=',True)]) - children_acc_template.sort() - for account_template in obj_acc_template.browse(cr, uid, children_acc_template, context=context): - tax_ids = [] - for tax in account_template.tax_ids: - tax_ids.append(tax_template_ref[tax.id]) - #create the account_account - - dig = obj_multi.code_digits - code_main = account_template.code and len(account_template.code) or 0 - code_acc = account_template.code or '' - if code_main>0 and code_main<=dig and account_template.type != 'view': - code_acc=str(code_acc) + (str('0'*(dig-code_main))) - vals={ - 'name': (obj_acc_root.id == account_template.id) and obj_multi.company_id.name or account_template.name, - 'currency_id': account_template.currency_id and account_template.currency_id.id or False, - 'code': code_acc, - 'type': account_template.type, - 'user_type': account_template.user_type and account_template.user_type.id or False, - 'reconcile': account_template.reconcile, - 'shortcut': account_template.shortcut, - 'note': account_template.note, - 'parent_id': account_template.parent_id and ((account_template.parent_id.id in acc_template_ref) and acc_template_ref[account_template.parent_id.id]) or False, - 'tax_ids': [(6,0,tax_ids)], - 'company_id': company_id, - } - new_account = obj_acc.create(cr, uid, vals, context=ctx) - acc_template_ref[account_template.id] = new_account - - - #reactivate the parent_store functionnality on account_account - obj_acc._parent_store_compute(cr) + acc_ids = obj_acc_template.generate_account(cr, uid, [obj_acc_root.id], taxes_ids['tax_template_ref'], obj_multi.code_digits, obj_multi.company_id, context=context) for key,value in taxes_ids['account_dict'].items(): if value['account_collected_id'] or value['account_paid_id']: obj_acc_tax.write(cr, uid, [key], { - 'account_collected_id': acc_template_ref.get(value['account_collected_id'], False), - 'account_paid_id': acc_template_ref.get(value['account_paid_id'], False), + 'account_collected_id': acc_ids['acc_template_ref'].get(value['account_collected_id'], False), + 'account_paid_id': acc_ids['acc_template_ref'].get(value['account_paid_id'], False), }) # Creating Journals @@ -2943,8 +2958,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_receivable: - vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] - vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] obj_journal.create(cr,uid,vals_journal) @@ -2962,8 +2977,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_payable: - vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] - vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] obj_journal.create(cr,uid,vals_journal) # Creating Journals Sales Refund and Purchase Refund @@ -2982,8 +2997,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_receivable: - vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] - vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] obj_journal.create(cr, uid, vals_journal, context=context) @@ -2998,8 +3013,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_payable: - vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] - vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] obj_journal.create(cr, uid, vals_journal, context=context) @@ -3031,8 +3046,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'view_id': view_id, 'company_id': company_id, 'centralisation': True, - 'default_credit_account_id': acc_template_ref[obj_multi.chart_template_id.property_account_income_opening.id], - 'default_debit_account_id': acc_template_ref[obj_multi.chart_template_id.property_account_expense_opening.id] + 'default_credit_account_id': acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_opening.id], + 'default_debit_account_id': acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_opening.id] } obj_journal.create(cr, uid, vals_journal, context=context) @@ -3068,7 +3083,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'type': 'liquidity', 'user_type': account_template.user_type and account_template.user_type.id or False, 'reconcile': True, - 'parent_id': acc_template_ref[ref_acc_bank.id] or False, + 'parent_id': acc_ids['acc_template_ref'][ref_acc_bank.id] or False, 'company_id': company_id, } acc_cash_id = obj_acc.create(cr,uid,vals) @@ -3115,7 +3130,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'name': record[0], 'company_id': company_id, 'fields_id': field[0], - 'value': account and 'account.account,' + str(acc_template_ref[account.id]) or False, + 'value': account and 'account.account,' + str(acc_ids['acc_template_ref'][account.id]) or False, } if r: @@ -3126,7 +3141,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): property_obj.create(cr, uid, vals) #Generate Fiscal Position , Fiscal Position Accounts and Fiscal Position Taxes from templates - obj_fiscal_position_template.generate_fiscal_position(cr, uid, chart_temp_id, taxes_ids['tax_template_ref'], acc_template_ref, company_id, context=context) + obj_fiscal_position_template.generate_fiscal_position(cr, uid, chart_temp_id, taxes_ids['tax_template_ref'], acc_ids['acc_template_ref'], company_id, context=context) if obj_multi.sale_tax and taxes_ids['taxes_id']: ir_values_obj.set(cr, uid, key='default', key2=False, name="taxes_id", company=obj_multi.company_id.id, From 94ec14e8b9ad55f5cb342f6efc0cb9122dc8e1f9 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 16 Aug 2011 11:28:47 +0530 Subject: [PATCH 2/4] [IMP]: account: l10n_multilang : 1)Improved params of generate_account(), 2)Improved return values, 3)Improved references where passed this return values, 4)Improved in ctx bzr revid: ron@tinyerp.com-20110816055847-5vb3g33kfang0nc8 --- addons/account/account.py | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index 1c8f43f03d4..c2d6ee58a1b 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -2385,7 +2385,7 @@ class account_account_template(osv.osv): @param tax_template_ref: Taxes templates reference for write taxes_id in account_account. @param code_digits: Digit getting from wizard.multi.charts.accounts.,this is use for account code. @param company_id: company_id selected from wizard.multi.charts.accounts. - @return :{acc_template_ref : Pass acconting_ids for reference purpose} + @return : return acc_template_ref for reference purpose. """ if context is None: @@ -2393,9 +2393,9 @@ class account_account_template(osv.osv): obj_acc = self.pool.get('account.account') acc_template_ref = {} #deactivate the parent_store functionnality on account_account for rapidity purpose - ctx = context and context.copy() or {} + ctx = context.copy() ctx['defer_parent_store_computation'] = True - children_acc_template = self.search(cr, uid, [('parent_id','child_of', account_root_id),('nocreate','!=',True)]) + children_acc_template = self.search(cr, uid, [('parent_id','child_of', [account_root_id]),('nocreate','!=',True)]) children_acc_template.sort() for account_template in self.browse(cr, uid, children_acc_template, context=context): @@ -2408,7 +2408,7 @@ class account_account_template(osv.osv): if code_main > 0 and code_main <= code_digits and account_template.type != 'view': code_acc = str(code_acc) + (str('0'*(code_digits-code_main))) vals={ - 'name': (account_root_id[0] == account_template.id) and company_id.name or account_template.name, + 'name': (account_root_id == account_template.id) and company_id.name or account_template.name, 'currency_id': account_template.currency_id and account_template.currency_id.id or False, 'code': code_acc, 'type': account_template.type, @@ -2425,7 +2425,7 @@ class account_account_template(osv.osv): #reactivate the parent_store functionnality on account_account obj_acc._parent_store_compute(cr) - return {'acc_template_ref': acc_template_ref} + return acc_template_ref account_account_template() @@ -2928,15 +2928,15 @@ class wizard_multi_charts_accounts(osv.osv_memory): #create all the tax tax_template_to_tax = {} tax_templates = [x for x in obj_multi.chart_template_id.tax_template_ids if x.installable] + #This method use for generating Taxes from templates. taxes_ids = obj_tax_temp.generate_tax(cr, uid, tax_templates, tax_code_template_ref, company_id, context=context) - - acc_ids = obj_acc_template.generate_account(cr, uid, [obj_acc_root.id], taxes_ids['tax_template_ref'], obj_multi.code_digits, obj_multi.company_id, context=context) - + #This method use for generating Accounts from templates. + acc_template_ref = obj_acc_template.generate_account(cr, uid, obj_acc_root.id, taxes_ids['tax_template_ref'], obj_multi.code_digits, obj_multi.company_id, context=context) for key,value in taxes_ids['account_dict'].items(): if value['account_collected_id'] or value['account_paid_id']: obj_acc_tax.write(cr, uid, [key], { - 'account_collected_id': acc_ids['acc_template_ref'].get(value['account_collected_id'], False), - 'account_paid_id': acc_ids['acc_template_ref'].get(value['account_paid_id'], False), + 'account_collected_id': acc_template_ref.get(value['account_collected_id'], False), + 'account_paid_id': acc_template_ref.get(value['account_paid_id'], False), }) # Creating Journals @@ -2958,8 +2958,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_receivable: - vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] - vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] obj_journal.create(cr,uid,vals_journal) @@ -2977,8 +2977,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_payable: - vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] - vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] obj_journal.create(cr,uid,vals_journal) # Creating Journals Sales Refund and Purchase Refund @@ -2997,8 +2997,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_receivable: - vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] - vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] + vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_income_categ.id] obj_journal.create(cr, uid, vals_journal, context=context) @@ -3013,8 +3013,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): } if obj_multi.chart_template_id.property_account_payable: - vals_journal['default_credit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] - vals_journal['default_debit_account_id'] = acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_credit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] + vals_journal['default_debit_account_id'] = acc_template_ref[obj_multi.chart_template_id.property_account_expense_categ.id] obj_journal.create(cr, uid, vals_journal, context=context) @@ -3046,8 +3046,8 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'view_id': view_id, 'company_id': company_id, 'centralisation': True, - 'default_credit_account_id': acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_income_opening.id], - 'default_debit_account_id': acc_ids['acc_template_ref'][obj_multi.chart_template_id.property_account_expense_opening.id] + 'default_credit_account_id': acc_template_ref[obj_multi.chart_template_id.property_account_income_opening.id], + 'default_debit_account_id': acc_template_ref[obj_multi.chart_template_id.property_account_expense_opening.id] } obj_journal.create(cr, uid, vals_journal, context=context) @@ -3083,7 +3083,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'type': 'liquidity', 'user_type': account_template.user_type and account_template.user_type.id or False, 'reconcile': True, - 'parent_id': acc_ids['acc_template_ref'][ref_acc_bank.id] or False, + 'parent_id': acc_template_ref[ref_acc_bank.id] or False, 'company_id': company_id, } acc_cash_id = obj_acc.create(cr,uid,vals) @@ -3130,7 +3130,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): 'name': record[0], 'company_id': company_id, 'fields_id': field[0], - 'value': account and 'account.account,' + str(acc_ids['acc_template_ref'][account.id]) or False, + 'value': account and 'account.account,' + str(acc_template_ref[account.id]) or False, } if r: @@ -3141,7 +3141,7 @@ class wizard_multi_charts_accounts(osv.osv_memory): property_obj.create(cr, uid, vals) #Generate Fiscal Position , Fiscal Position Accounts and Fiscal Position Taxes from templates - obj_fiscal_position_template.generate_fiscal_position(cr, uid, chart_temp_id, taxes_ids['tax_template_ref'], acc_ids['acc_template_ref'], company_id, context=context) + obj_fiscal_position_template.generate_fiscal_position(cr, uid, chart_temp_id, taxes_ids['tax_template_ref'], acc_template_ref, company_id, context=context) if obj_multi.sale_tax and taxes_ids['taxes_id']: ir_values_obj.set(cr, uid, key='default', key2=False, name="taxes_id", company=obj_multi.company_id.id, From 61f589603fd72214e319c1719b203a08eb6be8c3 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 16 Aug 2011 11:39:55 +0530 Subject: [PATCH 3/4] [IMP]: account: l10n_multilang : Used order in search method for sorting instead of sort() method bzr revid: ron@tinyerp.com-20110816060955-jy7jc55dkrhr97s2 --- addons/account/account.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/addons/account/account.py b/addons/account/account.py index c2d6ee58a1b..f536d65c7c2 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -2395,9 +2395,7 @@ class account_account_template(osv.osv): #deactivate the parent_store functionnality on account_account for rapidity purpose ctx = context.copy() ctx['defer_parent_store_computation'] = True - children_acc_template = self.search(cr, uid, [('parent_id','child_of', [account_root_id]),('nocreate','!=',True)]) - children_acc_template.sort() - + children_acc_template = self.search(cr, uid, [('parent_id','child_of', [account_root_id]),('nocreate','!=',True)], order='id') for account_template in self.browse(cr, uid, children_acc_template, context=context): tax_ids = [] for tax in account_template.tax_ids: From 1121f83d04fbad76179730d33cda365decb64618 Mon Sep 17 00:00:00 2001 From: "ron@tinyerp.com" <> Date: Tue, 16 Aug 2011 11:49:33 +0530 Subject: [PATCH 4/4] [IMP]: account: l10n_multilang : Used {}.update method instead of dict[]=True bzr revid: ron@tinyerp.com-20110816061933-u3eyacevfvhrxdgc --- addons/account/account.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/account/account.py b/addons/account/account.py index f536d65c7c2..3e87e733a8d 100644 --- a/addons/account/account.py +++ b/addons/account/account.py @@ -2394,7 +2394,7 @@ class account_account_template(osv.osv): acc_template_ref = {} #deactivate the parent_store functionnality on account_account for rapidity purpose ctx = context.copy() - ctx['defer_parent_store_computation'] = True + ctx.update({'defer_parent_store_computation': True}) children_acc_template = self.search(cr, uid, [('parent_id','child_of', [account_root_id]),('nocreate','!=',True)], order='id') for account_template in self.browse(cr, uid, children_acc_template, context=context): tax_ids = []