Search code examples
odooodoo-8

How to count and sum checked record in tree view and then set this result in form field. Odoo 8


I need count and sum the check record from tree view.

I have the tree view: Mi tree view

My code is:

class summary_bidding_group(models.Model):
    _name = 'summary.bidding.group'
    _description = 'Summary Bidding Group'

    check_contract = fields.Boolean("Check Contract", store = 
    True)
    bidding_amount = fields.Float("plan.bidding", related = 
    'bidding_id.amount', store = True)

class plan_group(models.Model):
    _inherit = 'plan.group'
    summary_bidding_group_id = 
    fields.One2many('summary.bidding.group','group_id',store = True)

    award_bidding = fields.Integer('award bidding', store = True) 
    total_bidding = fields.Float('total bidding', store = True) 

Solution

  • Don't just ask for solution, try to provide what you have done so far and where are you stuck.

    award_bidding = fields.Integer('award bidding', store = True, compute='_compute_total_biddings') 
    total_bidding = fields.Float('total bidding', store = True, compute='_compute_total_biddings')
    
    @api.depends('summary_bidding_group_id')
    @api.multi
    def _compute_total_biddings(self):
      for record in self:
        selected_bid_lines = record.summary_bidding_group_id.filtered(lambda l: l.check_contract)
        record.update({
          'award_bidding': len(selected_bid_lines),
          'total_bidding': sum(selected_bid_lines.mapped(bidding_amount))
        })