# Copyright 2014-2020 Akretion (http://www.akretion.com) # @author Alexis de Lattre # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import fields, models, _ from odoo.exceptions import UserError import logging logger = logging.getLogger(__name__) class StockMove(models.Model): _inherit = 'stock.move' # for optional display in tree view product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode") # def name_get(self): # '''name_get of stock_move is important for the reservation of the # quants: so want to add the name of the customer and the expected date # in it''' # res = [] # for line in self: # name = '%s > %s' % ( # line.location_id.name, line.location_dest_id.name) # if line.product_id.code: # name = '%s: %s' % (line.product_id.code, name) # if line.picking_id.origin: # name = '%s %s' % (line.picking_id.origin, name) # if line.partner_id: # name = '%s %s' % (line.partner_id.name, name) # if line.date_expected: # name = '%s %s' % (name, line.date_expected) # res.append((line.id, name)) # return res def button_do_unreserve(self): for move in self: move._do_unreserve() picking = move.picking_id if picking: product = move.product_id picking.message_post(body=_( "Product %s qty %s %s unreserved") % (product.id, product.display_name, move.product_qty, product.uom_id.name)) # Copied from do_unreserved of stock.picking picking.package_level_ids.filtered(lambda p: not p.move_ids).unlink() class StockMoveLine(models.Model): _inherit = 'stock.move.line' # for optional display in tree view product_barcode = fields.Char(related='product_id.barcode', string="Product Barcode") # TODO: I think it's not complete def button_do_unreserve(self): for moveline in self: if moveline.state == 'cancel': continue elif moveline.state == 'done': raise UserError(_( "You cannot unreserve a move line in done state.")) picking = moveline.move_id.picking_id if picking: product = moveline.product_id picking.message_post(body=_( "Product %s qty %s %s unreserved") % (product.id, product.display_name, moveline.product_qty, product.uom_id.name)) # Copied from do_unreserved of stock.picking picking.package_level_ids.filtered(lambda p: not p.move_ids).unlink() moveline.unlink()