Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
1628 Vistas

Hi,


I am trying to avoid that users can be able to make delivery (out) transfers of quantities greater than was demanded.


I try it with this server action, but is not working:


Can this be done?


Thanks.

Avatar
Descartar
Autor Mejor respuesta

No worries, need to use UserError instead of Warning, here the complete code:

model: Stock move line

if record.reserved_uom_qty < record.qty_done:

  raise UserError("You can't transfer more than the Initial Demand!")

thanks

Avatar
Descartar
Mejor respuesta

I think you want an Automated Action.

A Server Action needs to be called from code or via a Button. 

Avatar
Descartar
Autor

That's true mate. Tried as a server action, but the error that is displaying is like there is an error in the code, not a message or warning to the user:

This is the full error:
RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 1652, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/src/odoo/odoo/http.py", line 1679, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/odoo/http.py", line 1883, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/odoo/http.py", line 734, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 42, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 33, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 468, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/src/odoo/addons/stock/models/stock_picking.py", line 827, in write
res = super(Picking, self).write(vals)
File "/home/odoo/src/odoo/addons/mail/models/mail_thread.py", line 315, in write
result = super(MailThread, self).write(values)
File "/home/odoo/src/odoo/addons/mail/models/mail_activity_mixin.py", line 241, in write
return super(MailActivityMixin, self).write(vals)
File "/home/odoo/src/odoo/odoo/models.py", line 3785, in write
field.write(self, value)
File "/home/odoo/src/odoo/odoo/fields.py", line 4267, in write
return self.write_batch([(records, value)])
File "/home/odoo/src/odoo/odoo/fields.py", line 4288, in write_batch
return self.write_real(records_commands_list, create)
File "/home/odoo/src/odoo/odoo/fields.py", line 4460, in write_real
comodel.browse(command[1]).write(command[2])
File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 415, in write
action._process(records, domain_post=domain_post)
File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 340, in _process
raise e
File "/home/odoo/src/odoo/addons/base_automation/models/base_automation.py", line 337, in _process
action_server.sudo().with_context(**ctx).run()
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 675, in run
res = runner(run_self, eval_context=eval_context)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_actions.py", line 545, in _run_action_code_multi
safe_eval(self.code.strip(), eval_context, mode="exec", nocopy=True, filename=str(self)) # nocopy allows to return 'action'
File "/home/odoo/src/odoo/odoo/tools/safe_eval.py", line 391, in safe_eval
return unsafe_eval(c, globals_dict, locals_dict)
File "ir.actions.server(729,)", line 14, in <module>
odoo.exceptions.Warning: You can't transfer more than the Initial Demand!

The above server error caused the following client error:
null

Publicaciones relacionadas Respuestas Vistas Actividad
4
abr 25
7313
0
oct 24
1378
1
oct 23
8334
3
nov 21
3296
0
abr 21
2965