تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
1 الرد
1369 أدوات العرض

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
أكتوبر 22
4266
3
مارس 18
4820
1
فبراير 17
3310
2
يناير 17
7197
1
مارس 15
4115