odoo多公司开发建议
开发需求
建立多公司多语言的一个进销存系统
关于界面
由于各个分公司对界面的需求不同,多数是不希望界面出现别的国家或者是用不上的字段
odoo界面主要核心要素
tree form等视图
各种语言翻译
tree form等视图
1.设置权限组
<record id="group_mx_base_user" model="res.groups">
<field name="name">XXX分公司</field>
<field name="category_id" ref="peru_base.module_peru_base_category"/>
</record>
2.将界面关联到权限组
<record id="view_order_form_mx" model="ir.ui.view">
<field name="name">sale.order.form.mx</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="groups_id" eval="[(4, ref('group_mx_base_user'))]"/>
<field name="arch" type="xml">
<xpath expr="//label[@for='discount']" position="before">
<field name="price_zx" string="Precio unitario sin impuestos"
<field name="price_unit"/>
</xpath>
</field>
3.后期再有新的分公司类似开发,最后只需要调整权限就能通用
各种语言翻译
关于语言翻译等问题
强烈建议给各个国家设置独立的语言,即使母语是同一种语言
特别是在产品数据,即使语言一样,各个地区同一个产品的叫法也会出现各种各样的不同
关于数据
1.各种数据一样要加上,company_id字段,防止数据乱掉,同时要设置字段不可编辑
company_id = fields.Many2one('res.company', 'Company', required=True,
default=lambda self: self.env.user.company_id)
2.配置权限,可以在用户界面勾选更改,也可以进入技术进行增加权限,但是涉及减少权限用户等操作要注意,会出现清空其他分公司所有用户的状况
3.如需定制某个用户权限,最好新增一个专门的权限组,减少冲突和增加后续拓展性