跳至內容
選單
此問題已被標幟
1 回覆
2386 瀏覽次數

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
6569
0
2月 17
5877
2
2月 24
3586
1
6月 22
3142
0
11月 17
3445