Skip to content

Commit

Permalink
Merge a797b27 into 8124ed9
Browse files Browse the repository at this point in the history
  • Loading branch information
kos94ok-3D committed Sep 2, 2019
2 parents 8124ed9 + a797b27 commit c3e0409
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 27 deletions.
1 change: 1 addition & 0 deletions quality_control_stock/README.rst
Expand Up @@ -66,6 +66,7 @@ Contributors
* Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Simone Rubino <simone.rubino@agilebg.com>
* Andrii Skrypka <andrijskrypa@ukr.net>

Maintainers
~~~~~~~~~~~
Expand Down
33 changes: 19 additions & 14 deletions quality_control_stock/models/stock_picking.py
@@ -1,5 +1,6 @@
# Copyright 2014 Serv. Tec. Avanzados - Pedro M. Baeza
# Copyright 2018 Simone Rubino - Agile Business Group
# Copyright 2019 Andrii Skrypka
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from odoo import api, fields, models
Expand All @@ -10,20 +11,6 @@
class StockPicking(models.Model):
_inherit = 'stock.picking'

@api.multi
@api.depends('qc_inspections_ids', 'qc_inspections_ids.state')
def _compute_count_inspections(self):
for picking in self:
picking.created_inspections = len(picking.qc_inspections_ids)
picking.passed_inspections = \
len([x for x in picking.qc_inspections_ids
if x.state == 'success'])
picking.failed_inspections = \
len([x for x in picking.qc_inspections_ids
if x.state == 'failed'])
picking.done_inspections = \
(picking.passed_inspections + picking.failed_inspections)

qc_inspections_ids = fields.One2many(
comodel_name='qc.inspection', inverse_name='picking_id', copy=False,
string='Inspections', help="Inspections related to this picking.")
Expand All @@ -36,6 +23,24 @@ def _compute_count_inspections(self):
failed_inspections = fields.Integer(
compute="_compute_count_inspections", string="Inspections failed")

@api.depends('qc_inspections_ids', 'qc_inspections_ids.state')
def _compute_count_inspections(self):
data = self.env['qc.inspection'].read_group([
('id', 'in', self.mapped('qc_inspections_ids').ids),
], ['picking_id', 'state'], ['picking_id', 'state'], lazy=False)
picking_data = {}
for d in data:
picking_data.setdefault(d['picking_id'][0], {})\
.setdefault(d['state'], 0)
picking_data[d['picking_id'][0]][d['state']] += d['__count']
for picking in self:
count_data = picking_data.get(picking.id, {})
picking.created_inspections = sum(count_data.values())
picking.passed_inspections = count_data.get('success', 0)
picking.failed_inspections = count_data.get('failed', 0)
picking.done_inspections = \
(picking.passed_inspections + picking.failed_inspections)

@api.multi
def action_done(self):
res = super(StockPicking, self).action_done()
Expand Down
30 changes: 17 additions & 13 deletions quality_control_stock/models/stock_production_lot.py
Expand Up @@ -8,19 +8,6 @@
class StockProductionLot(models.Model):
_inherit = 'stock.production.lot'

@api.multi
@api.depends('qc_inspections_ids', 'qc_inspections_ids.state')
def _compute_count_inspections(self):
for lot in self:
lot.created_inspections = len(lot.qc_inspections_ids)
lot.passed_inspections = \
len([x for x in lot.qc_inspections_ids
if x.state == 'success'])
lot.failed_inspections = \
len([x for x in lot.qc_inspections_ids if x.state == 'failed'])
lot.done_inspections = \
(lot.passed_inspections + lot.failed_inspections)

qc_inspections_ids = fields.One2many(
comodel_name='qc.inspection', inverse_name='lot_id', copy=False,
string='Inspections', help="Inspections related to this lot.")
Expand All @@ -32,3 +19,20 @@ def _compute_count_inspections(self):
compute="_compute_count_inspections", string="Inspections OK")
failed_inspections = fields.Integer(
compute="_compute_count_inspections", string="Inspections failed")

@api.depends('qc_inspections_ids', 'qc_inspections_ids.state')
def _compute_count_inspections(self):
data = self.env['qc.inspection'].read_group([
('id', 'in', self.mapped('qc_inspections_ids').ids),
], ['lot_id', 'state'], ['lot_id', 'state'], lazy=False)
lot_data = {}
for d in data:
lot_data.setdefault(d['lot_id'][0], {}).setdefault(d['state'], 0)
lot_data[d['lot_id'][0]][d['state']] += d['__count']
for lot in self:
count_data = lot_data.get(lot.id, {})
lot.created_inspections = sum(count_data.values())
lot.passed_inspections = count_data.get('success', 0)
lot.failed_inspections = count_data.get('failed', 0)
lot.done_inspections = \
(lot.passed_inspections + lot.failed_inspections)
1 change: 1 addition & 0 deletions quality_control_stock/readme/CONTRIBUTORS.rst
@@ -1,3 +1,4 @@
* Pedro M. Baeza <pedro.baeza@serviciobaeza.com>
* Oihane Crucelaegui <oihanecrucelaegi@avanzosc.es>
* Simone Rubino <simone.rubino@agilebg.com>
* Andrii Skrypka <andrijskrypa@ukr.net>

0 comments on commit c3e0409

Please sign in to comment.