跳至内容
菜单
此问题已终结
1 回复
1205 查看

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.

形象
丢弃
最佳答案

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

形象
丢弃

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
]})

相关帖文 回复 查看 活动
1
10月 22
4129
3
3月 18
4669
1
2月 17
3245
2
1月 17
7081
1
3月 15
3948