Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
5825 Lượt xem

I'm try tocalcualte the percentage but got the syntax error 

Code 1: 

record in self:

if record['planned_revenue'] !=0 :

record['x_SalesMarginPercentage'] = (record.planned_revenue - record.x_SSSCostPrice) / (record.planned_revenue * .01 )


code 2: 

record in self:

if record['planned_revenue'] !=0 & record['x_SSSCostPrice'] !=0 :

record['x_SalesMarginPercentage'] = (record.planned_revenue - record.x_SSSCostPrice) / (record.planned_revenue * .01 )

Ảnh đại diện
Huỷ bỏ

Please post the error as well.

Tác giả

Error:

Odoo Server Error

Traceback (most recent call last):

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\api.py", line 753, in get

value = self._data[field][record._ids[0]]

KeyError: 5028

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\fields.py", line 978, in __get__

value = env.cache.get(record, self)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\api.py", line 759, in get

raise CacheMiss(record, field)

odoo.exceptions.CacheMiss: ('crm.lead(5028,).x_SalesMarginPercentage', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 619, in _handle_exception

return super(JsonRequest, self)._handle_exception(exception)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 309, in _handle_exception

raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\tools\pycompat.py", line 14, in reraise

raise value

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 664, in dispatch

result = self._call_function(**self.params)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 345, in _call_function

return checked_call(self.db, *args, **kwargs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\service\model.py", line 93, in wrapper

return f(dbname, *args, **kwargs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 338, in checked_call

result = self.endpoint(*a, **kw)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 909, in __call__

return self.method(*args, **kw)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\http.py", line 510, in response_wrap

response = f(*args, **kw)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\addons\web\controllers\main.py", line 1320, in call_kw

return self._call_kw(model, method, args, kwargs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\addons\web\controllers\main.py", line 1312, in _call_kw

return call_kw(request.env[model], method, args, kwargs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\api.py", line 395, in call_kw

result = _call_kw_multi(method, model, args, kwargs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\api.py", line 382, in _call_kw_multi

result = method(recs, *args, **kwargs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\models.py", line 2909, in read

vals[name] = convert(record[name], record, use_name_get)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\models.py", line 5589, in __getitem__

return self._fields[key].__get__(self, type(self))

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\fields.py", line 1002, in __get__

self.compute_value(recs)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\fields.py", line 1087, in compute_value

records._compute_field_value(self)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\models.py", line 3907, in _compute_field_value

field.compute(self)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\addons\base\models\ir_model.py", line 33, in <lambda>

func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\tools\safe_eval.py", line 347, in safe_eval

c = test_expr(expr, _SAFE_OPCODES, mode=mode)

File "C:\Program Files (x86)\Odoo 13.0e\server\odoo\tools\safe_eval.py", line 206, in test_expr

code_obj = compile(expr, "", mode)

File "<string>", line 1

record in self:

^

SyntaxError: invalid syntax

Câu trả lời hay nhất


Guess you forgot to add 'for'

Code 1: 

for record in self:

    if record['planned_revenue'] !=0 :

        record['x_SalesMarginPercentage'] = (record.planned_revenue - record.x_SSSCostPrice) / (record.planned_revenue * .01 )

Code 2:

for record in self:

    if record['planned_revenue'] !=0 & record['x_SSSCostPrice'] !=0 :

        record['x_SalesMarginPercentage'] = (record.planned_revenue - record.x_SSSCostPrice) / (record.planned_revenue * .01 )


Ảnh đại diện
Huỷ bỏ
Tác giả

Thanks it works.

When enter the zero value in expected revenue, popup screen with below error but why the if condition not executed

Something went wrong :

"crm.lead(<NewId origin=5028>,).x_SalesMarginPercentage"

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 12 24
4176
0
thg 11 24
1692
2
thg 7 24
3498
0
thg 4 24
2229
3
thg 3 24
2644