Enforce manually selected lot

stock_move_manual_lot
REPOSITORY
REPOSITORYOCA/stock-logistics-workflow
GIT
GIThttps://github.com/OCA/stock-logistics-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-workflow/tree/12.0/stock_move_manual_lot
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Opener B.V., Hunki Enterprises BV
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Opener B.V., Hunki Enterprises BV
COMMITTERS
COMMITTERSStefan Rijnhart, Holger Brunn, oca-travis, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:21
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
view_move_line_form stock.move.line form Inherits stock.view_move_line_form
view_picking_form stock.picking sheet Inherits stock.view_picking_form
view_picking_type_form stock.picking.type field Inherits stock.view_picking_type_form
Models touched (4)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • manual_lot_id Many2one → stock.production.lot
    comodel_name='stock.production.lot' copy=False string='Lot/Serial'
  • use_manual_lot_selection Boolean
    related='picking_id.picking_type_id.use_manual_lot_selection'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
    Reuse zero quantity move line from the same move.
  • unlink(self)
    @api.multi
    Keep move lines if they are assigned a manual lot in a batch
  • write(self, vals)

New fields (1)
  • use_manual_lot_selection Boolean
    related='picking_type_id.use_manual_lot_selection'
Public methods (3)
  • action_done(self)
    Keep manual lots up to date not to lose visibility. Keep visibility of transferred lot in the case of * an untracked product transferred without setting a manual lot * an update of a picking type to use manual lot selection
  • button_validate(self)
    Check for missing manually assigned lots
  • write(self, vals)
    Encode move line quantities in the context if necessary. If manual_lot_id is being written on the move lines, this could lead to freeing move lines from the same picking that are also being written in this very same call. We encode the original reserved quantities of the move lines in the context so that they can be rereserved for these quantities.

New fields (1)
  • use_manual_lot_selection Boolean
    default=False
Public methods (0)

No public methods.