From 471def2b46eddda2b5d6a82a86330a14edf414b4 Mon Sep 17 00:00:00 2001 From: ivan deng Date: Wed, 2 Sep 2020 13:35:12 +0800 Subject: [PATCH] opt --- .../models/res_config_settings.py | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/app_odoo_customize/models/res_config_settings.py b/app_odoo_customize/models/res_config_settings.py index b598d217..b8fb908f 100644 --- a/app_odoo_customize/models/res_config_settings.py +++ b/app_odoo_customize/models/res_config_settings.py @@ -134,7 +134,7 @@ class ResConfigSettings(models.TransientModel): for line in s: domain = [('code', '=ilike', line + '%')] try: - seqs = self.env['ir.sequence'].search(domain) + seqs = self.env['ir.sequence'].sudo().search(domain) if seqs.exists(): seqs.write({ 'number_next': 1, @@ -149,7 +149,7 @@ class ResConfigSettings(models.TransientModel): 'sale.order.line', 'sale.order', # 销售提成,自用 - 'sale.commission.line', + # 'sale.commission.line', # 不能删除报价单模板 # 'sale.order.template.option', # 'sale.order.template.line', @@ -194,11 +194,14 @@ class ResConfigSettings(models.TransientModel): res = self.remove_app_data(to_removes, seqs) # 更新要关帐的值,因为 store=true 的计算字段要重置 - statement = self.env['account.bank.statement'].search([]) - for s in statement: - s._end_balance() - return res + try: + statement = self.env['account.bank.statement'].sudo().search([]) + for s in statement: + s._end_balance() + except Exception as e: + _logger.error('reset sequence data error: %s', e) + return res def remove_purchase(self): to_removes = [ @@ -299,11 +302,10 @@ class ResConfigSettings(models.TransientModel): 'hr.expense.sheet', 'account.move', ] - seqs = [] - res = self.remove_app_data(to_removes, seqs) + res = self.remove_app_data(to_removes, []) # extra 更新序号 - seqs = self.env['ir.sequence'].search([ + domain = [ '|', ('code', '=ilike', 'account.%'), '|', ('prefix', '=ilike', 'BNK1/%'), '|', ('prefix', '=ilike', 'CSH1/%'), @@ -312,10 +314,15 @@ class ResConfigSettings(models.TransientModel): '|', ('prefix', '=ilike', 'MISC/%'), '|', ('prefix', '=ilike', '账单/%'), ('prefix', '=ilike', '杂项/%') - ]) - seqs.write({ - 'number_next': 1, - }) + ] + try: + seqs = self.env['ir.sequence'].search(domain) + if seqs.exists(): + seqs.write({ + 'number_next': 1, + }) + except Exception as e: + _logger.error('reset sequence data error: %s,%s', domain, e) return res def remove_account_chart(self):