Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Error:
- Odoo Server Error
- Traceback (most recent call last):
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 350, in safe_eval
- return unsafe_eval(c, globals_dict, locals_dict)
- File "", line 11, in <module>
- AttributeError: 'sale.order.line' object has no attribute 'property_ids'
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 350, in safe_eval
- return unsafe_eval(c, globals_dict, locals_dict)
- File "", line 3, in <module>
- File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 553, in run
- res = func(action, eval_context=eval_context)
- File "/home/odoo/src/odoo/addons/website/models/ir_actions.py", line 57, in run_action_code_multi
- res = super(ServerAction, self).run_action_code_multi(action, eval_context)
- File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 444, in run_action_code_multi
- safe_eval(action.sudo().code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action'
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 373, in safe_eval
- pycompat.reraise(ValueError, ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr)), exc_info[2])
- File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 86, in reraise
- raise value.with_traceback(tb)
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 350, in safe_eval
- return unsafe_eval(c, globals_dict, locals_dict)
- File "", line 11, in <module>
- ValueError: <class 'AttributeError'>: "'sale.order.line' object has no attribute 'property_ids'" while evaluating
- 'object = record\n\nso_total_cost = 0.0\nso_total_price = 0.0\n\nfor l in object.order_line:\n domain = [\n (\'product_tmpl_id\', \'=\', l.product_id.product_tmpl_id.id)\n ]\n\n if l.property_ids:\n domain += [\n (\'property_ids\', \'!=\', False), (\'property_ids\', \'in\', l.property_ids.ids)\n ]\n else:\n domain += [\n (\'property_ids\', \'=\', False)\n ]\n\n boms = env[\'mrp.bom\'].search(domain)\n if boms:\n if len(boms) > 1:\n raise Warning("More than one BoM has been found with the selected product ( %s ) and properties" % l.product_id.display_name )\n bom = boms[0]\n object.write({\n \'order_line\': [\n (1, l.id, {\n \'purchase_price\': bom.x_total_cost,\n \'x_bom_id\': bom.id\n })\n ]\n })\n else:\n object.write({\n \'order_line\': [\n (1, l.id, {\n \'x_bom_id\': False\n })\n ]\n })\n\n so_total_cost += l.purchase_price * l.product_uom_qty\n so_total_price += l.price_subtotal\n\ncomputed_margin = (1 - (so_total_cost / so_total_price)) * 100 if so_total_price else 0.0\nobject.write({\n \'x_margin\': computed_margin\n})'
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "/home/odoo/src/odoo/odoo/http.py", line 656, in _handle_exception
- return super(JsonRequest, self)._handle_exception(exception)
- File "/home/odoo/src/odoo/odoo/http.py", line 314, in _handle_exception
- raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
- File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 87, in reraise
- raise value
- File "/home/odoo/src/odoo/odoo/http.py", line 698, in dispatch
- result = self._call_function(**self.params)
- File "/home/odoo/src/odoo/odoo/http.py", line 346, in _call_function
- return checked_call(self.db, *args, **kwargs)
- File "/home/odoo/src/odoo/odoo/service/model.py", line 97, in wrapper
- return f(dbname, *args, **kwargs)
- File "/home/odoo/src/odoo/odoo/http.py", line 339, in checked_call
- result = self.endpoint(*a, **kw)
- File "/home/odoo/src/odoo/odoo/http.py", line 941, in __call__
- return self.method(*args, **kw)
- File "/home/odoo/src/odoo/odoo/http.py", line 519, in response_wrap
- response = f(*args, **kw)
- File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 966, in call_button
- action = self._call_kw(model, method, args, {})
- File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 954, in _call_kw
- return call_kw(request.env[model], method, args, kwargs)
- File "/home/odoo/src/odoo/odoo/api.py", line 759, in call_kw
- return _call_kw_multi(method, model, args, kwargs)
- File "/home/odoo/src/odoo/odoo/api.py", line 746, in _call_kw_multi
- result = method(recs, *args, **kwargs)
- File "/home/odoo/src/enterprise/quality_mrp/models/mrp_production.py", line 72, in button_mark_done
- return super(MrpProduction, self).button_mark_done()
- File "/home/odoo/src/enterprise/mrp_account/models/mrp_production.py", line 67, in button_mark_done
- res = super(MrpProduction, self).button_mark_done()
- File "/home/odoo/src/odoo/addons/mrp/models/mrp_production.py", line 708, in button_mark_done
- self.post_inventory()
- File "/home/odoo/src/odoo/addons/mrp/models/mrp_production.py", line 685, in post_inventory
- moves_to_finish._action_done()
- File "/home/odoo/src/odoo/addons/purchase_stock/models/stock.py", line 96, in _action_done
- res = super(StockMove, self)._action_done()
- File "/home/odoo/src/odoo/addons/stock_account/models/stock.py", line 400, in _action_done
- res = super(StockMove, self)._action_done()
- File "/home/odoo/src/odoo/addons/stock/models/stock_move.py", line 1155, in _action_done
- moves_todo.mapped('move_dest_ids')._action_assign()
- File "/home/odoo/src/odoo/addons/mrp/models/stock_move.py", line 134, in _action_assign
- res = super(StockMove, self)._action_assign()
- File "/home/odoo/src/odoo/addons/stock/models/stock_move.py", line 1022, in _action_assign
- assigned_moves.write({'state': 'assigned'})
- File "/home/odoo/src/odoo/addons/purchase_stock/models/stock.py", line 101, in write
- res = super(StockMove, self).write(vals)
- File "/home/odoo/src/odoo/addons/stock/models/stock_move.py", line 448, in write
- res = super(StockMove, self).write(vals)
- File "/home/odoo/src/odoo/odoo/models.py", line 3359, in write
- self.recompute()
- File "/home/odoo/src/odoo/odoo/models.py", line 5283, in recompute
- target._write(dict(vals))
- File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 259, in _write
- action._process(records, domain_post=domain_post)
- File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 205, in _process
- self.action_server_id.with_context(**ctx).run()
- File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 553, in run
- res = func(action, eval_context=eval_context)
- File "/home/odoo/src/odoo/addons/website/models/ir_actions.py", line 57, in run_action_code_multi
- res = super(ServerAction, self).run_action_code_multi(action, eval_context)
- File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 444, in run_action_code_multi
- safe_eval(action.sudo().code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action'
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 373, in safe_eval
- pycompat.reraise(ValueError, ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr)), exc_info[2])
- File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 86, in reraise
- raise value.with_traceback(tb)
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 350, in safe_eval
- return unsafe_eval(c, globals_dict, locals_dict)
- File "", line 3, in <module>
- File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 553, in run
- res = func(action, eval_context=eval_context)
- File "/home/odoo/src/odoo/addons/website/models/ir_actions.py", line 57, in run_action_code_multi
- res = super(ServerAction, self).run_action_code_multi(action, eval_context)
- File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 444, in run_action_code_multi
- safe_eval(action.sudo().code.strip(), eval_context, mode="exec", nocopy=True) # nocopy allows to return 'action'
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 373, in safe_eval
- pycompat.reraise(ValueError, ValueError('%s: "%s" while evaluating\n%r' % (ustr(type(e)), ustr(e), expr)), exc_info[2])
- File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 86, in reraise
- raise value.with_traceback(tb)
- File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 350, in safe_eval
- return unsafe_eval(c, globals_dict, locals_dict)
- File "", line 11, in <module>
- ValueError: <class 'ValueError'>: "<class 'AttributeError'>: "'sale.order.line' object has no attribute 'property_ids'" while evaluating
- 'object = record\n\nso_total_cost = 0.0\nso_total_price = 0.0\n\nfor l in object.order_line:\n domain = [\n (\'product_tmpl_id\', \'=\', l.product_id.product_tmpl_id.id)\n ]\n\n if l.property_ids:\n domain += [\n (\'property_ids\', \'!=\', False), (\'property_ids\', \'in\', l.property_ids.ids)\n ]\n else:\n domain += [\n (\'property_ids\', \'=\', False)\n ]\n\n boms = env[\'mrp.bom\'].search(domain)\n if boms:\n if len(boms) > 1:\n raise Warning("More than one BoM has been found with the selected product ( %s ) and properties" % l.product_id.display_name )\n bom = boms[0]\n object.write({\n \'order_line\': [\n (1, l.id, {\n \'purchase_price\': bom.x_total_cost,\n \'x_bom_id\': bom.id\n })\n ]\n })\n else:\n object.write({\n \'order_line\': [\n (1, l.id, {\n \'x_bom_id\': False\n })\n ]\n })\n\n so_total_cost += l.purchase_price * l.product_uom_qty\n so_total_price += l.price_subtotal\n\ncomputed_margin = (1 - (so_total_cost / so_total_price)) * 100 if so_total_price else 0.0\nobject.write({\n \'x_margin\': computed_margin\n})'" while evaluating
- "# Automatically created by migration.\n\naction = env['ir.actions.server'].browse([806, 581]).run()"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement