Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
1 Ответить
1222 Представления

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

Related Posts Ответы Просмотры Активность
1
окт. 22
4141
3
мар. 18
4677
1
февр. 17
3248
2
янв. 17
7093
1
мар. 15
3964