# -*- coding: utf-8 -*- from odoo import fields, models, api, _ import odoo.addons.decimal_precision as dp import logging logger = logging.getLogger(__name__) class StockPackCurrent(models.Model): _name = "stock.pack.current" _description = "Current Packing Operation" _order = "id desc" picking_id = fields.Many2one( 'stock.picking', 'Stock Picking', # required=True, ondelete="cascade", help='The stock operation where the packing has been made') operation_id = fields.Many2one( 'stock.pack.operation', 'Pack Operation Id', # required=True, ondelete="cascade") product_id = fields.Many2one('product.product', 'Product', ondelete="cascade") product_uom_id = fields.Many2one('product.uom', 'Unit of Measure') product_qty = fields.Float('To Do', default=0.0, digits=dp.get_precision('Product Unit of Measure'), required=True) qty_done = fields.Float('Done', default=0.0, digits=dp.get_precision('Product Unit of Measure')) package_id = fields.Many2one('stock.quant.package', 'Source Package') result_package_id = fields.Many2one( 'stock.quant.package', 'Destination Package', ondelete='cascade', required=False, help="If set, the operations are packed into this package") weight = fields.Float( 'Weight', digits=dp.get_precision('Stock Weight'), related='product_id.weight', readonly=True, store=True, help="The weight of the contents in Kg, not including any packaging, etc.") weight_done_subtotal = fields.Float( 'Weight Done Subtotal', digits=dp.get_precision('Stock Weight'), compute='_compute_weight_done_subtotal', readonly=True, store=True, help="The weight of the contents in Kg, not including any packaging, etc.") @api.depends('weight', 'qty_done') def _compute_weight_done_subtotal(self): for rec in self: rec.weight_done_subtotal = rec.weight * rec.qty_done