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

Hi,

I have created a module with a tree view and some data inside.

Now i want to add new data each time an invoice is paid (payment_state == "paid").

The problem is that i tried to override the create function, the write, tried the @api.onchange but during all of them i never see the payment_state changing to "paid" (sometimes it is "not_paid" and sometimes it gets "False") and it magically happens i don't know where during the process.

Also @api.onchange never printed out the test print that i put in the function so i assume it wasn't even called ??


If you need more details feel free to ask. thank you.


Note : I am using Odoo 17 community

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi,
payment_state is a computed function and the value is assigned from the function:  _compute_payment_state, if you see the function you will see the paid is returned/set from this.

if all(x['all_payments_matched'] for x in reconciliation_vals):
new_pmt_state = 'paid'
else:
new_pmt_state = invoice._get_invoice_in_payment_state()



Thanks

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
7
thg 12 24
8100
0
thg 7 24
1175
1
thg 5 25
3359
2
thg 1 24
2345
2
thg 4 19
6699