Hi
The "create_line" function is associated with a button in the sale.order model, and has the following structure:
def create_line(self):I need to create a sales line that will have the discount assigned to the sale, when pressing the created button. But I get the following error:
self.ensure_one()
vals={}
SaleOrderLine = self.env['sale.order.line']
disc = int(self.env['ir.config_parameter'].sudo().get_param('global.discount'))
amount = (self.amount_untaxed + self.amount_tax) * disc / 100
super(ButtonDiscount, self).write({
'global_discount_rate': disc,
'amount_discount': amount
})
if self.amount_discount > 0:
vals = {
'sequence': 10000,
'product_id': self.company_id.sales_discount_product,
'product_uom': self.company_id.sales_discount_product.uom_id,
'product_uom_qty': 1,
'price_unit': self.amount_discount * -1,
'name': self.company_id.sales_discount_product.name,
'order_id': self.id,
'tax_id': [(6, 0, self.company_id.sales_discount_product.taxes_id.ids)],
}
sol = SaleOrderLine.sudo().create(vals)
return sol
Error:
Odoo Server Error
Traceback (most recent call last):
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 624, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 310, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "C:\Odoo\Odoo 13.0e\server\odoo\tools\pycompat.py", line 14, in reraise
raise value
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 669, in dispatch
result = self._call_function(**self.params)
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 350, in _call_function
return checked_call(self.db, *args, **kwargs)
File "C:\Odoo\Odoo 13.0e\server\odoo\service\model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 915, in __call__
return self.method(*args, **kw)
File "C:\Odoo\Odoo 13.0e\server\odoo\http.py", line 515, in response_wrap
response = f(*args, **kw)
File "C:\Odoo\Odoo 13.0e\server\odoo\addons\web\controllers\main.py", line 1326, in call_button
action = self._call_kw(model, method, args, kwargs)
File "C:\Odoo\Odoo 13.0e\server\odoo\addons\web\controllers\main.py", line 1314, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 387, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 374, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "c:\odoo\odoo 13.0e\server\custom_addons\mtq\mtq_vf_rq6\models\sale_settings.py", line 130, in create_line
sol = SaleOrderLine.sudo().create(vals)
File "<decorator-gen-189>", line 2, in create
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 335, in _model_create_multi
return create(self, [arg])
File "C:\Odoo\Odoo 13.0e\server\odoo\addons\sale_stock\models\sale_order.py", line 338, in create
lines = super(SaleOrderLine, self).create(vals_list)
File "<decorator-gen-187>", line 2, in create
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 317, in _model_create_single
return self.browse().concat(*(create(self, vals) for vals in arg))
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 317, in <genexpr>
return self.browse().concat(*(create(self, vals) for vals in arg))
File "C:\Odoo\Odoo 13.0e\server\odoo\addons\sale_purchase\models\sale_order.py", line 98, in create
line = super(SaleOrderLine, self).create(values)
File "<decorator-gen-183>", line 2, in create
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 335, in _model_create_multi
return create(self, [arg])
File "C:\Odoo\Odoo 13.0e\server\odoo\addons\sale\models\sale.py", line 1128, in create
lines = super().create(vals_list)
File "<decorator-gen-3>", line 2, in create
File "C:\Odoo\Odoo 13.0e\server\odoo\api.py", line 336, in _model_create_multi
return create(self, arg)
File "C:\Odoo\Odoo 13.0e\server\odoo\models.py", line 3773, in create
records = self._create(data_list)
File "C:\Odoo\Odoo 13.0e\server\odoo\models.py", line 3879, in _create
cr.execute(query, params)
File "C:\Odoo\Odoo 13.0e\server\odoo\sql_db.py", line 168, in wrapper
return f(self, *args, **kwargs)
File "C:\Odoo\Odoo 13.0e\server\odoo\sql_db.py", line 245, in execute
res = self._obj.execute(query, params)
psycopg2.ProgrammingError: can't adapt type 'product.product'