mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update customize
This commit is contained in:
@@ -4,4 +4,5 @@ from . import res_config_settings
|
|||||||
from . import ir_ui_view
|
from . import ir_ui_view
|
||||||
from . import base_language_install
|
from . import base_language_install
|
||||||
from . import models
|
from . import models
|
||||||
|
# from . import ir_ui_menu
|
||||||
# from . import mail_thread
|
# from . import mail_thread
|
||||||
|
|||||||
26
app_odoo_customize/models/ir_ui_menu.py
Normal file
26
app_odoo_customize/models/ir_ui_menu.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
from odoo import api, fields, models, tools, _
|
||||||
|
|
||||||
|
MENU_ITEM_SEPARATOR = "/"
|
||||||
|
NUMBER_PARENS = re.compile(r"\(([0-9]+)\)")
|
||||||
|
|
||||||
|
|
||||||
|
class IrUiMenu(models.Model):
|
||||||
|
_inherit = 'ir.ui.menu'
|
||||||
|
|
||||||
|
def _get_full_name(self, level=6):
|
||||||
|
""" Return the full name of ``self`` (up to a certain level). """
|
||||||
|
if level <= 0:
|
||||||
|
return '...'
|
||||||
|
if self.parent_id:
|
||||||
|
try:
|
||||||
|
name = self.parent_id._get_full_name(level - 1) + MENU_ITEM_SEPARATOR + (self.name or "")
|
||||||
|
except Exception:
|
||||||
|
name = self.name or "..."
|
||||||
|
else:
|
||||||
|
name = self.name
|
||||||
|
return name
|
||||||
|
|
||||||
@@ -203,6 +203,11 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
seq.write({
|
seq.write({
|
||||||
'number_next': 1,
|
'number_next': 1,
|
||||||
})
|
})
|
||||||
|
# 更新要关帐的值,因为 store=true 的计算字段要重置
|
||||||
|
statement = self.env['account.bank.statement'].search([])
|
||||||
|
for s in statement:
|
||||||
|
s._end_balance()
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass # raise Warning(e)
|
pass # raise Warning(e)
|
||||||
return True
|
return True
|
||||||
@@ -263,6 +268,34 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
pass # raise Warning(e)
|
pass # raise Warning(e)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@api.multi
|
||||||
|
def remove_expense(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除
|
||||||
|
['hr.expense.sheet', ],
|
||||||
|
['hr.expense', ],
|
||||||
|
['hr.payslip', ],
|
||||||
|
['hr.payslip.run', ],
|
||||||
|
]
|
||||||
|
try:
|
||||||
|
for line in to_removes:
|
||||||
|
obj_name = line[0]
|
||||||
|
obj = self.pool.get(obj_name)
|
||||||
|
if obj:
|
||||||
|
sql = "delete from %s" % obj._table
|
||||||
|
self._cr.execute(sql)
|
||||||
|
# 更新序号
|
||||||
|
seqs = self.env['ir.sequence'].search([
|
||||||
|
('code', '=', 'hr.expense.invoice')])
|
||||||
|
for seq in seqs:
|
||||||
|
seq.write({
|
||||||
|
'number_next': 1,
|
||||||
|
})
|
||||||
|
self._cr.execute(sql)
|
||||||
|
except Exception as e:
|
||||||
|
pass # raise Warning(e)
|
||||||
|
return True
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def remove_mrp(self):
|
def remove_mrp(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
@@ -374,7 +407,6 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
['account.voucher.line', ],
|
['account.voucher.line', ],
|
||||||
['account.voucher', ],
|
['account.voucher', ],
|
||||||
['account.bank.statement.line', ],
|
['account.bank.statement.line', ],
|
||||||
['account.bank.statement', ],
|
|
||||||
['account.payment', ],
|
['account.payment', ],
|
||||||
['account.analytic.line', ],
|
['account.analytic.line', ],
|
||||||
['account.analytic.account', ],
|
['account.analytic.account', ],
|
||||||
@@ -422,13 +454,63 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
def remove_account_chart(self):
|
def remove_account_chart(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除财务科目,用于重设
|
# 清除财务科目,用于重设
|
||||||
|
['res.partner.bank', ],
|
||||||
|
['res.bank', ],
|
||||||
|
['account.move.line'],
|
||||||
|
['account.invoice'],
|
||||||
|
['account.payment'],
|
||||||
|
['account.bank.statement', ],
|
||||||
['account.tax.account.tag', ],
|
['account.tax.account.tag', ],
|
||||||
['account.tax', ],
|
['account.tax', ],
|
||||||
|
['account.tax', ],
|
||||||
['account.account.account.tag', ],
|
['account.account.account.tag', ],
|
||||||
['wizard_multi_charts_accounts'],
|
['wizard_multi_charts_accounts'],
|
||||||
['account.account', ],
|
['account.account', ],
|
||||||
['account.journal', ],
|
['account.journal', ],
|
||||||
]
|
]
|
||||||
|
# todo: 要做 remove_hr,因为工资表会用到 account
|
||||||
|
# 更新account关联,很多是多公司字段,故只存在 ir_property,故在原模型,只能用update
|
||||||
|
try:
|
||||||
|
# reset default tax,不管多公司
|
||||||
|
field1 = self.env['ir.model.fields']._get('product.template', "taxes_id").id
|
||||||
|
field2 = self.env['ir.model.fields']._get('product.template', "supplier_taxes_id").id
|
||||||
|
|
||||||
|
sql = ("delete from ir_default where field_id = %s or field_id = %s") % (field1, field2)
|
||||||
|
self._cr.execute(sql)
|
||||||
|
except Exception as e:
|
||||||
|
pass # raise Warning(e)
|
||||||
|
try:
|
||||||
|
rec = self.env['res.partner'].search([])
|
||||||
|
for r in rec:
|
||||||
|
r.write({
|
||||||
|
'property_account_receivable_id': None,
|
||||||
|
'property_account_payable_id': None,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
pass # raise Warning(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,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
pass # raise Warning(e)
|
||||||
|
try:
|
||||||
|
rec = self.env['stock.location'].search([])
|
||||||
|
for r in rec:
|
||||||
|
r.write({
|
||||||
|
'valuation_in_account_id': None,
|
||||||
|
'valuation_out_account_id': None,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
pass # raise Warning(e)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for line in to_removes:
|
for line in to_removes:
|
||||||
obj_name = line[0]
|
obj_name = line[0]
|
||||||
@@ -437,18 +519,13 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
sql = "delete from %s" % obj._table
|
sql = "delete from %s" % obj._table
|
||||||
self._cr.execute(sql)
|
self._cr.execute(sql)
|
||||||
|
|
||||||
# reset default tax,不管多公司
|
|
||||||
field1 = self.env['ir.model.fields']._get('product.template', "taxes_id").id
|
|
||||||
field2 = self.env['ir.model.fields']._get('product.template', "supplier_taxes_id").id
|
|
||||||
|
|
||||||
sql = ("delete from ir_default where field_id = %s or field_id = %s") % (field1, field2)
|
sql = "update res_company set chart_template_id=null;"
|
||||||
self._cr.execute(sql)
|
|
||||||
|
|
||||||
sql = "update res_company set chart_template_id=null ;"
|
|
||||||
self._cr.execute(sql)
|
self._cr.execute(sql)
|
||||||
# 更新序号
|
# 更新序号
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
|
|||||||
Reference in New Issue
Block a user