콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
1 회신
2318 화면

I added a monetary field (x_studio_total_price) to the stock moves of a delivery order, to show the prices of all delivered products. Now, I want this sum to be saved and shown as a variable (total_sum) in the delivery order itself, to see the total price of the delivery order.

First, I tried using a related field, but since there is only a reference from the stock picking model to the stock moves model (and not the other way around), this was no option.

Next, I tried using a compute field:

​total_sum = 0
​for rec in self.stock_move:
​total_sum += rec.x_studio_total_price
self.x_studio_total_sum = total_sum

But keep having this value error:

ValueError: forbidden opcode(s) in 'total_sum = 0\nfor rec in self.stock_move:\n  total_sum += rec.x_studio_total_price\nself.x_studio_total_sum = total_sum': STORE_ATTR


What am I doing wrong? Is there another way to easily save an aggregated sum in a variable?

아바타
취소
작성자 베스트 답변

I found a solution!

total_sum = 0
for move in self.move_ids:
​total_sum += move.x_studio_total_price
for rec in self:
​rec['x_studio_total_sum'] = total_sum

By changing self.x_studio_total_sum into rec['x_studio_total_sum'], the opcode error was solved. Afterwards I found out that I could iterate over the move_ids of the stock_picking object to access the different prices.

아바타
취소
관련 게시물 답글 화면 활동
1
8월 21
6445
0
2월 17
5804
2
2월 24
3478
1
6월 22
3055
0
11월 17
3408