上午抽时间看了一个Analytic模块的界面操作,还是挺高兴的,感觉将其作为一个框架还是可以的!并且根据客户电镀厂的成本核算方法进行了测试,做出了扩展思路给同事看。下午又抽时间看了Odoo16版本的Analytic模块的代码,差别还是挺大的。今天通过这篇文章来对比一下两个版本。
V14(V15)版本
5个新模型:account.analytic.distribution;account.analytic.tag;account.analytic.group;account.analytic.account;account.analytic.line
简单的用法:在vender bill的invoice line上可以选择一个分析账户,也可以选择一个或多个分析标签。选一个分析账户,意味着100%分摊。选择分析标签的话,因为分析标签上可以设置多个分析账户的分摊比例,所以系统会按比例去创建Analytic Lines。
V16版本
代码情况如下 :
analytic_account.py
account.analytic.account
analytic_distribution_model.py
继承analytic.mixin成为新模型: account.analytic.distribution.model
analytic_line.py
account.analytic.line
analytic_mixin.py
analytic.mixin
analytic_plan.py
account.analytic.plan
account.analytic.applicability
res_config_settings.py
两个版本的对比情况:
1、group模型变成了plan,我是通过特征对比后这样说的。group(plan)都是可以通过parent字段行程父子关系。account都可以关联到特定的一个group(plan)。
由于新版的plan可以设置适用单据,所以新增了一个applicability模型,用于作为plan的one2many明细。
2、tag模型移除了。为什么移除了呢?15版本中tag的作用在前面描述了,tag上可以设置分摊比例。而这个功能在16中直接在invoice line上实现了,点击Analytic字段的时候,系统会弹出窗口,列出了几个plan,直接在这里可以设置分摊。
3、default模型改成了distribution.model
他们的功能是一样的,作为一个模板,可以自动向invoice line上添加分析账户。
以上就是两个大版本的Analytic模块的差别,差别在于实现方式,思路没啥变化。整个模块的核心就在于分摊给哪些账户、比例。
像这种固定比例的分摊,有些服务业公司可以使用,例如我们公司自己就可以。但对于制造业客户,如果需要根据产量等数据来分摊,目前看起来是很难的。
不过,我还没有学习完整个Odoo的Analytic,稍后会继续学习,如果满足不了,我们将定制开发相应的功能来满足客户需求。