问题描述
所以我有一个模块可以触发odoo的标准模块方法。当我的模块触发默认的odoo方法时,它将创建一个错误。因此,我已经找到了错误的原因,但是我很难用固有模型替换该方法。这是我的模型,我想替换默认的_prepare_procurement_values方法。我已经在_init中导入了它。当我调试它时,它会在values = super(SaleOrderLine,self)._prepare_procurement_values(group_id)
行中停止,然后运行旧方法,因为错误仍然相同。
from datetime import timedelta
from odoo import _,api,fields,models
class SaleOrderLine(models.Model):
_inherit = "sale.order.line"
@api.multi
def _prepare_procurement_values(self,group_id=False):
""" Prepare specific key for moves or other components that will be created from a stock rule
comming from a sale order line. This method Could be override in order to add other custom key that Could
be used in move/po creation.
"""
values = super(SaleOrderLine,self)._prepare_procurement_values(group_id)
daysValue = self.customer_lead if self.customer_lead != None else 0.0
confirmationDate = self.order_id.confirmation_date if self.order_id.confirmation_date else datetime.datetime.Now()
self.ensure_one()
date_planned = confirmationDate\
+ timedelta(daysValue) - timedelta(days=self.order_id.company_id.security_lead)
values.update({
'company_id': self.order_id.company_id,'group_id': group_id,'sale_line_id': self.id,'date_planned': date_planned,'route_ids': self.route_id,'warehouse_id': self.order_id.warehouse_id or False,'partner_id': self.order_id.partner_shipping_id.id,})
for line in self.filtered("order_id.commitment_date"):
date_planned = fields.Datetime.from_string(line.order_id.commitment_date) - timedelta(days=line.order_id.company_id.security_lead)
values.update({
'date_planned': fields.Datetime.to_string(date_planned),})
return values
File "c:\program files (x86)\odoo 12.0\server\addons\hotel_restaurant\models\sale_order_line.py",line 14,in _prepare_procurement_values
values = super(SaleOrderLine,self)._prepare_procurement_values(group_id)
File "c:\program files (x86)\odoo 12.0\server\odoo\addons\sale_stock\models\sale_order.py",line 337,in _prepare_procurement_values
+ timedelta(days=self.customer_lead or 0.0) - timedelta(days=self.order_id.company_id.security_lead)
TypeError: unsupported operand type(s) for +: 'bool' and 'datetime.timedelta'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)