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

Hello, I have a module with this code in stock.picking

# models/stock_picking.py
from odoo import fields, models, api

class StockPicking(models.Model):
_inherit = 'stock.picking'

invoice_status = fields.Boolean(string='Invoice Status', default=False)

@api.depends('sale_id.invoice_ids')
def _compute_invoice_status(self):
for picking in self:
invoices = picking.sale_id.invoice_ids.filtered(lambda inv: inv.state != 'cancel')
picking.invoice_status = bool(invoices)
and this is the xml



stock.picking.form.inherit
stock.picking








If I create a sales order, and confirm it but do not create its corresponding invoice, I want the boolean field to remain False, but if an invoice is created for the sales order, I want it to go to True automatically... .

I tried with that code and some others and it didn't work, can you guide me?

Thanks and sorry for bothering.

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

Hello Learning_Odoo,


Hope you are doing well.


I have shared below code please check.


//Code in Comment//


Hope this helps!


Thanks & Regards,

Email:  odoo@aktivsoftware.com           

Skype: kalpeshmaheshwari

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

Code:

from odoo import fields, models, api, Command

class StockPicking(models.Model):
_inherit = 'stock.picking'

invoice_status = fields.Boolean(string='Invoice Status', store=True)

class SaleOrder(models.Model):
_inherit = 'sale.order'

@api.depends('invoice_ids')
def _compute_invoice_status(self):
for order in self:
if order and order.invoice_ids:
invoices = order.invoice_ids.filtered(lambda inv: inv.state != 'cancel')
order.write({'picking_ids': [
Command.update(picking.id, {
'invoice_status': invoices,
})
for picking in order.picking_ids
if invoices
]})

Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 10 22
4181
3
thg 3 18
4703
1
thg 2 17
3264
2
thg 1 17
7120
1
thg 3 15
4001