You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.7 KiB
43 lines
1.7 KiB
# Copyright (C) 2018 - TODAY, Open Source Integrators
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class Agreement(models.Model):
|
|
_inherit = "agreement"
|
|
|
|
picking_count = fields.Integer('# Pickings',
|
|
compute='_compute_picking_count')
|
|
move_count = fields.Integer('# Moves', compute='_compute_move_count')
|
|
lot_count = fields.Integer('# Lots/Serials', compute='_compute_lot_count')
|
|
|
|
@api.multi
|
|
def _compute_picking_count(self):
|
|
data = self.env['stock.picking'].read_group(
|
|
[('agreement_id', 'in', self.ids)],
|
|
['agreement_id'], ['agreement_id'])
|
|
count_data = dict((item['agreement_id'][0],
|
|
item['agreement_id_count']) for item in data)
|
|
for agreement in self:
|
|
agreement.picking_count = count_data.get(agreement.id, 0)
|
|
|
|
@api.multi
|
|
def _compute_move_count(self):
|
|
data = self.env['stock.move'].read_group(
|
|
[('agreement_id', 'in', self.ids)],
|
|
['agreement_id'], ['agreement_id'])
|
|
count_data = dict((item['agreement_id'][0],
|
|
item['agreement_id_count']) for item in data)
|
|
for agreement in self:
|
|
agreement.move_count = count_data.get(agreement.id, 0)
|
|
|
|
@api.multi
|
|
def _compute_lot_count(self):
|
|
data = self.env['stock.production.lot'].read_group(
|
|
[('agreement_id', 'in', self.ids)],
|
|
['agreement_id'], ['agreement_id'])
|
|
count_data = dict((item['agreement_id'][0],
|
|
item['agreement_id_count']) for item in data)
|
|
for agreement in self:
|
|
agreement.lot_count = count_data.get(agreement.id, 0)
|