37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class StockTrackConfirmation(models.TransientModel):
|
|
_name = 'stock.track.confirmation'
|
|
_description = 'Stock Track Confirmation'
|
|
|
|
tracking_line_ids = fields.One2many('stock.track.line', 'wizard_id')
|
|
quant_ids = fields.Many2many('stock.quant', string='Quants')
|
|
product_ids = fields.Many2many('product.product', string='Products')
|
|
|
|
def action_confirm(self):
|
|
self.quant_ids._apply_inventory()
|
|
self.quant_ids.inventory_quantity_set = False
|
|
|
|
@api.onchange('product_ids')
|
|
def _onchange_quants(self):
|
|
self.tracking_line_ids = [(0, 0, {'product_id': product}) for product in self.product_ids]
|
|
|
|
|
|
class StockTrackingLines(models.TransientModel):
|
|
_name = 'stock.track.line'
|
|
_description = 'Stock Track Line'
|
|
|
|
product_display_name = fields.Char('Name', compute='_compute_product_display_name', readonly=True)
|
|
product_id = fields.Many2one('product.product', 'Product', readonly=True)
|
|
tracking = fields.Selection(related='product_id.tracking')
|
|
wizard_id = fields.Many2one('stock.track.confirmation', readonly=True)
|
|
|
|
def _compute_product_display_name(self):
|
|
""" Onchange results in product.display_name not being directly accessible """
|
|
for line in self:
|
|
line.product_display_name = line.product_id._origin.display_name
|