Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
2736 Visualizzazioni


I have calculated 2 fields with my method. it calculates the number of products that are assigned.

class ProductProduct(models.Model):
    _inherit = 'product.product'

    planned_qty_cust = fields.Float(compute='_calculate_planned_qty', string='Planned Qty Customer', )
    planned_qty_supl = fields.Float(compute='_calculate_planned_qty', string='Planned Qty Suplier', )


    @api.multi
    def _calculate_planned_qty(self):
        for product in self:
            stock_move_obj = self.env['stock.move']
            domain = [('product_id', '=', product.id),
                                                 ('state', 'not in', ['cancel', 'done','draft']),
                                                 ('location_dest_id.usage', '=', 'customer'),
                                                 ]
            stock_moves_cust = stock_move_obj.search(domain)
            qty = sum(stock_moves_cust.mapped('product_uom_qty'))
            product.planned_qty_cust = qty
            domain2 = [('product_id', '=', product.id),
                      ('state', 'not in', ['cancel', 'done', 'draft']),
                      ('location_dest_id.usage', '=', 'supplier'),
                      ]
            stock_moves_cust = stock_move_obj.search(domain2)
            qty = sum(stock_moves_cust.mapped('product_uom_qty'))
            product.planned_qty_supl = qty

the thing is that I need to filter on these fields, and probably I need to create search function but it's kinda complicated.

maybe someone can help me with this how this method should look, or maybe there is already a module for this type of calculation?


Avatar
Abbandona
Risposta migliore

Hi.

Are you asking how to include this newly added fields to the search view of the corresponding model(product.product here)? Compute fields cannot be added in the search view, for that you have to give store=True attribute for the fields.


planned_qty_cust = fields.Float(compute='_calculate_planned_qty', string='Planned Qty Customer', store=True)
planned_qty_supl = fields.Float(compute='_calculate_planned_qty', string='Planned Qty Supplier', store=True)


Once you finished the above you can inherit the search view defined for the product.product model and add these new fields to it. For that you can refer this blog : Inherit Search View


Thanks 

Avatar
Abbandona
Autore

The problem with your approach is that with stote=True this fields will be recalculated 1 time. I need to add @api.depends. but in my case i need them to be recalculated every time when view is updated. So i have only 1 option left. It is to add search=search_function to them. That what i ask. A help to create this search function

Post correlati Risposte Visualizzazioni Attività
1
dic 18
3040
1
apr 17
5155
1
lug 25
841
1
feb 25
1455
0
set 23
2420