【问题标题】:OpenERP: modify core moduleOpenERP:修改核心模块
【发布时间】:2012-07-31 08:44:37
【问题描述】:

我也是 OpenERP 和 Python 的新手。我有 OpenERP 6.0.4

我已经使用 python 2.7 修改了 account 文件夹中的 invoice.py 文件(我只是编辑并保存了文件,我没有'不编译任何东西)。

我所做的更改是如何计算总金额,我需要总金额总是在总金额中添加 0.3 欧元。

然后我重启了OpenERP服务器,我也去admnisitration>modules>设置account module升级然后应用升级。

然后我创建了一张新发票,但更改并未反映出来。

出于测试目的,由于我是 Python 新手,并且认为我可能没有正确编码,因此我修改了当您将鼠标悬停在发票界面中的“Residual”上时出现的帮助消息,方法是修改invoice.py 从 help="Remaining amount due."help="This is just for testing."

我重新启动了服务器并升级了模块,甚至这个更改也没有反映出来。

我什至创建了一个新数据库,但修改仍然没有显示。

我错过了什么吗?甚至可以编辑核心模块吗?有什么解决方法吗?

最终解决方案:卸载并重新安装服务器解决了问题。

【问题讨论】:

  • 尝试在代码中添加诸如 add 'print a' 之类的错误,并检查此错误是否显示。如果不是,请检查您正在编辑的服务器是否是您正在运行的实际服务器。
  • 您应该针对印花税票问题提出一个单独的问题。我的答案下面的讨论变得混乱了。

标签: openerp


【解决方案1】:

最可能的原因是正在使用的addons 目录与您正在编辑的目录不同。您可以确定如果您更改了addons 目录的名称,并且可以毫无问题地重新启动服务器。您也可以尝试将--addons-path参数设置为服务器启动命令。

如果/当您确认正在处理正确的文件时,请尝试在视图上进行小的文本更改,因为这些在模块升级后立即可见,不需要重新启动服务器。例如,尝试更改account\partner_view.xml 上的一些string 属性。

【讨论】:

  • 这快把我逼疯了!我重命名了插件文件夹,服务器重新启动没有任何错误,但是当我打开 OpenERP 并更新模块时,我收到一条错误消息,提示找不到模块文件夹。此外,我通过右键单击服务器快捷方式然后选择打开文件位置来访问插件文件夹,所以我必须在正确的目录中,但是如果服务器没有产生错误,这并不意味着它没有运行正确吗?
  • 这可以解释,因为模块仅在第一个用户访问服务器时实际加载。因此,您可能正在处理正确的文件夹。我在答案中添加了另一个要遵循的指针。
  • 我明天试试这个,会通知你的变化是立竿见影的。工作上肯定有什么问题,我明天去检查告诉你。
  • 好吧,我遇到了另一个问题,我无法再登录数据库“用户名或密码错误”,我浏览了论坛,似乎是由于模块损坏,因为我'我不是python程序员,调试对我来说并不容易,我卸载并重新安装了服务器。现在我可以重新登录,py 文件的更改是即时的。现在我只需要重新安装我下载的所有模块。感谢您的帮助。
【解决方案2】:

有点离题,但很重要:您应该直接在源代码中修改核心模块。正确的方法是在您自己的模块中扩展核心类,这将依赖于核心模块。

【讨论】:

  • 感谢您的警告。我从来没有在 python 中编程,我需要做的就是在所有发票/报价中添加 0.3 欧元(印花税)。我打开 invoice.py 并更改了总金额的计算方式。我已阅读有关如何创建新模块的信息,我相信我可以做到,但我不知道如何以其他方式覆盖总量计算公式,然后直接编辑它。我只知道如何创建新的“东西”并在其中使用核心变量,但我不知道如何通过另一个模块修改现有的核心变量。
  • 如果您能指出如何使用我自己的模块覆盖核心模块中的默认“函数/变量”,我将不胜感激。只是覆盖的具体代码,其余的我可以处理。
  • 您可以在我对this question 的回答中看到一个示例,@IlyesFerchiou,它覆盖了核心模块的方法。点击链接到我们覆盖的sale_order._prepare_order_line_move()
  • 谢谢你的帮助Don,所以基本上,我需要做的就是继承“模块”并使用相同的变量名创建一个新的“def”?
  • @IlyesFerchiou 如果您要加税,为什么不使用内置的税务模块将该税添加到您的产品中,而不是尝试破解代码?
【解决方案3】:

从您的 cmets 看来,您似乎想在发票中添加一个固定的税额。看看http://doc.openerp.com/v6.1/book/3/3_7/invoicing.html#tax-management - openerp 已经满足了这种需求,然后你不需要破解源代码,这应该是你最后的手段:)

【讨论】:

  • 正如我在另一条评论中已经说过的,这不是普通税,它不应该在税收总额中计算,它是一个固定数额的税,在旁边计算。它必须是分开的。发票末尾将有 4 行:1. 未征税金额 2. 税金 3. 印花税 4. 总金额
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-02
  • 1970-01-01
  • 2014-10-12
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
相关资源
最近更新 更多