Added computed field has_catch_weight to stock.picking model in product_catch_weight module.

Additionally, added filter and group by for `has_catch_weight` to stock.picking search view.
This commit is contained in:
Kristen Marie Kulha
2018-09-14 11:05:35 -07:00
parent a2f0825ecf
commit 9b47764bbd
3 changed files with 32 additions and 12 deletions

View File

@@ -27,8 +27,12 @@ class AccountInvoiceLine(models.Model):
move_lines = self.purchase_line_id.mapped('move_ids.move_line_ids')
for move_line in move_lines:
qty_done = move_line.qty_done
current_qty_done = qty_done + qty_done_total
r = move_line.lot_id.catch_weight_ratio
ratio = ((ratio * qty_done_total) + (qty_done * r)) / (qty_done + qty_done_total)
if current_qty_done == 0:
ratio = 0
else:
ratio = ((ratio * qty_done_total) + (qty_done * r)) / current_qty_done
qty_done_total += qty_done
catch_weight += move_line.lot_id.catch_weight
price = price * ratio

View File

@@ -8,7 +8,6 @@ class StockProductionLot(models.Model):
catch_weight = fields.Float(string='Catch Weight', digits=(10, 4))
catch_weight_uom_id = fields.Many2one('product.uom', related='product_id.catch_weight_uom_id')
@api.depends('catch_weight')
def _compute_catch_weight_ratio(self):
for lot in self:
@@ -44,3 +43,14 @@ class StockMoveLine(models.Model):
catch_weight_uom_id = fields.Many2one('product.uom', string='Catch Weight UOM')
lot_catch_weight = fields.Float(related='lot_id.catch_weight')
lot_catch_weight_uom_id = fields.Many2one('product.uom', related='product_id.catch_weight_uom_id')
class StockPicking(models.Model):
_inherit = 'stock.picking'
has_catch_weight = fields.Boolean(string="Has Catch Weight", compute='_compute_has_catch_weight', store=True)
@api.depends('move_lines.product_catch_weight_uom_id')
def _compute_has_catch_weight(self):
for picking in self:
picking.has_catch_weight = any(picking.mapped('move_lines.product_catch_weight_uom_id'))