diff --git a/app_odoo_customize/models/res_config_settings.py b/app_odoo_customize/models/res_config_settings.py index f92955d7..616ee87a 100644 --- a/app_odoo_customize/models/res_config_settings.py +++ b/app_odoo_customize/models/res_config_settings.py @@ -314,6 +314,7 @@ class ResConfigSettings(models.TransientModel): self = self.with_company(self.env.company) to_removes = [ # 清除财务科目,用于重设 + 'account.reconcile.model', 'res.partner.bank', # 'account.invoice', 'account.payment', @@ -348,48 +349,61 @@ class ResConfigSettings(models.TransientModel): # partner 处理 try: rec = self.env['res.partner'].search([]) - for r in rec: - r.write({ - 'property_account_receivable_id': None, - 'property_account_payable_id': None, - }) + rec.write({ + 'property_account_receivable_id': None, + 'property_account_payable_id': None, + }) except Exception as e: _logger.error('remove data error: %s,%s', 'account_chart', e) # 品类处理 try: rec = self.env['product.category'].search([]) - for r in rec: - r.write({ - 'property_account_income_categ_id': None, - 'property_account_expense_categ_id': None, - 'property_account_creditor_price_difference_categ': None, - 'property_stock_account_input_categ_id': None, - 'property_stock_account_output_categ_id': None, - 'property_stock_valuation_account_id': None, - }) + rec.write({ + 'property_account_income_categ_id': None, + 'property_account_expense_categ_id': None, + 'property_account_creditor_price_difference_categ': None, + 'property_stock_account_input_categ_id': None, + 'property_stock_account_output_categ_id': None, + 'property_stock_valuation_account_id': None, + 'property_stock_journal': None, + }) except Exception as e: pass # 产品处理 try: rec = self.env['product.template'].search([]) - for r in rec: - r.write({ - 'property_account_income_id': None, - 'property_account_expense_id': None, - }) + rec.write({ + 'property_account_income_id': None, + 'property_account_expense_id': None, + 'property_account_creditor_price_difference': None, + }) except Exception as e: pass - # 库存计价处理 + # 日记账处理 try: - rec = self.env['stock.location'].search([]) - for r in rec: - r.write({ - 'valuation_in_account_id': None, - 'valuation_out_account_id': None, - }) + #todo: 当前有些日记账的默认值要在 ir.property 处理 _set_default,比较麻烦,先修改下该日记账 code,创建新日记账后删除旧的即可 + rec = self.env['account.journal'].search([]) + rec.write({ + 'account_control_ids': None, + 'bank_account_id': None, + 'default_account_id': None, + 'loss_account_id': None, + 'profit_account_id': None, + 'suspense_account_id': None, + }) except Exception as e: pass # raise Warning(e) + # 库存计价处理 + try: + rec = self.env['stock.location'].search([]) + rec.write({ + 'valuation_in_account_id': None, + 'valuation_out_account_id': None, + }) + except Exception as e: + pass # raise Warning(e) + self._cr.commit() seqs = [] self.env.company.write({ 'chart_template_id': False, diff --git a/l10n_cn_standard_latest/data/account.account.template.csv b/l10n_cn_standard_latest/data/account.account.template.csv index d1b34050..70b9b1cf 100644 --- a/l10n_cn_standard_latest/data/account.account.template.csv +++ b/l10n_cn_standard_latest/data/account.account.template.csv @@ -1,8 +1,11 @@ id,code,name,parent_id/id,reconcile,account_type,tag_ids/id,chart_template_id/id account_1001,1001,库存现金,,TRUE,asset_cash,,l10n_chart_china_standard_business_latest account_1002,1002,银行存款,,TRUE,asset_cash,tag21,l10n_chart_china_standard_business_latest -account_1002_08,1002.08,银行存款-未付款,,TRUE,asset_cash,tag21,l10n_chart_china_standard_business_latest -account_1002_09,1002.09,银行存款-未收款,,TRUE,asset_cash,tag21,l10n_chart_china_standard_business_latest +account_1002_01,1002.01,银行存款-人民币,account_1002,TRUE,asset_cash,,l10n_chart_china_standard_business_latest +account_1002_02,1002.02,银行存款-利息,account_1002,TRUE,asset_cash,,l10n_chart_china_standard_business_latest +account_1002_07,1002.07,银行暂记科目,account_1002,TRUE,asset_current,,l10n_chart_china_standard_business_latest +account_1002_08,1002.08,银行存款-未付款,account_1002,TRUE,asset_current,,l10n_chart_china_standard_business_latest +account_1002_09,1002.09,银行存款-未收款,account_1002,TRUE,asset_current,,l10n_chart_china_standard_business_latest account_1003,1003,存放中央银行款项,,TRUE,asset_current,tag21,l10n_chart_china_standard_business_latest account_1011,1011,存放同业,,FALSE,asset_current,tag21,l10n_chart_china_standard_business_latest account_1012,1012,其他货币资金,,FALSE,asset_current,,l10n_chart_china_standard_business_latest @@ -32,7 +35,7 @@ account_1402,1402,在途物资,,FALSE,asset_current,,l10n_chart_china_standard_b account_1403,1403,原材料,,FALSE,asset_current,,l10n_chart_china_standard_business_latest account_1404,1404,材料成本差异,,FALSE,asset_current,,l10n_chart_china_standard_business_latest account_1405,1405,库存商品,,FALSE,asset_current,,l10n_chart_china_standard_business_latest -account_1405_01,1405.01,其中:数据资源,account_1405,FALSE,asset_current,,l10n_chart_china_standard_business_latest +account_1405_01,1405.01,其中:数据资源,account_1405,FALSE,asset_current,,l10n_chart_china_standard_business_latest account_1406,1406,发出商品,,FALSE,asset_current,,l10n_chart_china_standard_business_latest account_1407,1407,商品进销差价,,FALSE,asset_current,,l10n_chart_china_standard_business_latest account_1408,1408,委托加工物资,,FALSE,asset_current,,l10n_chart_china_standard_business_latest diff --git a/l10n_cn_standard_latest/data/account_chart_template_data.xml b/l10n_cn_standard_latest/data/account_chart_template_data.xml index a299c533..e81544e4 100644 --- a/l10n_cn_standard_latest/data/account_chart_template_data.xml +++ b/l10n_cn_standard_latest/data/account_chart_template_data.xml @@ -9,6 +9,9 @@ + + + diff --git a/l10n_cn_standard_latest/models/account_chart_template.py b/l10n_cn_standard_latest/models/account_chart_template.py index 9bd070b0..0ff7095b 100644 --- a/l10n_cn_standard_latest/models/account_chart_template.py +++ b/l10n_cn_standard_latest/models/account_chart_template.py @@ -57,6 +57,14 @@ class AccountChartTemplate(models.Model): } def _load(self, company): + if self == self.env.ref('l10n_cn_standard_latest.l10n_chart_china_standard_business_latest', False): + # #todo: 当为 标准中国会计的处理 + # company.write({ + # 'account_journal_suspense_account_id': self.account_journal_suspense_account_id.id if self.account_journal_suspense_account_id else False, + # 'account_journal_payment_credit_account_id': self.account_journal_payment_credit_account_id.id if self.account_journal_payment_credit_account_id else False, + # 'account_journal_payment_debit_account_id': self.account_journal_payment_debit_account_id.id if self.account_journal_payment_debit_account_id else False, + # }) + pass res = super(AccountChartTemplate, self)._load(company) # 更新父级 company = self.env.user.company_id @@ -74,8 +82,8 @@ class AccountChartTemplate(models.Model): parent = self.env['account.account'].sudo().search([ ('company_id', '=', company.id), ('code', '=', parent_code), - ], limit=1) - if len(parent): + ], limit=1).exists() + if parent: acc.write({ 'parent_id': parent.id, })