Stock - Reception screen

stock_reception_screen
REPOSITORY
REPOSITORYOCA/wms
GIT
GIThttps://github.com/OCA/wms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/wms/tree/14.0/stock_reception_screen
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSAkim Juillerat, OCA Transbot, Sébastien Alix, Thierry Ducrest, Sébastien BEAU, oca-travis, Weblate, OCA-git-bot, Simone Orsi, oca-ci, Dũng (Trần Đình)
WEBSITE
WEBSITEhttps://github.com/OCA/wms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:12
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_packaging_dimension
    - product_logistics_uom
    - product_packaging_type_pallet
    - product_packaging_type
OCA/server-tools:
    - base_m2m_custom_field
OCA/stock-logistics-workflow:
    - stock_quant_package_dimension
    - stock_quant_package_product_packaging
    - stock_putaway_hook
OCA/web:
    - web_domain_field
OCA/wms:
    - stock_storage_type
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - product_expiry
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
stock_picking_manual_barcode_form stock.picking.manual.barcode.view.form stock.picking.manual.barcode form New
stock_reception_screen_assets stock.reception.screen.assets ir.ui.view qweb Inherits web.assets_backend
stock_reception_screen_view_form stock.reception.screen.form stock.reception.screen form New
view_move_line_tree stock.move.line.tree.stock.reception.screen stock.move.line field Inherits stock.view_move_line_tree
view_picking_form stock.picking.form.inherit stock.picking div Inherits stock.view_picking_form
view_stock_move_line_operation_tree stock.move.line.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
Models touched (6)

New fields (1)
  • storage_type_name Char
    related='package_storage_type_id.name' string='Storage Type'
Public methods (0)

No public methods.

New fields (3)
  • last_move_line_lot_id Many2one → stock.production.lot
    comodel_name='stock.production.lot' index=True
  • reception_screen_current_step Char
    related='picking_id.reception_screen_id.current_step'
  • vendor_code Char
    compute='_compute_vendor_code'
Public methods (2)
  • action_select_move(self)
    Set the move as the current one at the picking level.
  • action_select_product(self)
    "Same than `action_select_move` excepting that as we we are in the 'select_product' step and that the user already selected the right move through this button, we automatically go to the next step (done by `process_select_product`).

New fields (1)
  • lot_expiration_date Datetime
    related='lot_id.expiration_date' string='End of Expiration Date'
Public methods (2)
  • action_reception_screen_open(self)
    Open reception screen from specific move line.
  • action_select_move_line(self)
    Set the move line as the current one at the picking level.

New fields (1)
  • reception_screen_id Many2one → stock.reception.screen
    comodel_name='stock.reception.screen' copy=False string='Reception Screen'
Public methods (2)
  • action_cancel(self)
  • action_reception_screen_open(self)

New fields (1)
  • barcode Char
    string='Barcode'
Public methods (1)
  • button_save(self)

New fields (41)
  • allowed_location_dest_ids One2many → stock.location
    compute='_compute_allowed_location_dest_ids' help='Allowed destination locations based on the package storage type.' string='Allowed destination locations' args: 'stock.location'
  • current_filter_product Char
    copy=False string='Filter product'
  • current_move_has_tracking Selection
    related='current_move_id.has_tracking'
  • current_move_id Many2one → stock.move
    comodel_name='stock.move' copy=False
  • current_move_line_id Many2one → stock.move.line
    comodel_name='stock.move.line' copy=False
  • current_move_line_location_dest_id Many2one
    related='current_move_line_id.location_dest_id'
  • current_move_line_location_dest_stored_id Many2one → stock.location
    comodel_name='stock.location' string='Destination'
  • current_move_line_lot_expiration_date Datetime
    string='End of Expiration Date'
  • current_move_line_lot_id Many2one
    related='current_move_line_id.lot_id' string='Lot NumBer'
  • current_move_line_package Char
    compute='_compute_current_move_line_package' inverse='_inverse_current_move_line_package' string='Package N°'
  • current_move_line_package_stored Char
  • current_move_line_qty_done Float
    readonly=False related='current_move_line_id.qty_done' string='Quantity'
  • current_move_line_qty_status Char
    compute='_compute_current_move_line_qty_status' string='Qty Status'
  • current_move_line_uom_id Many2one
    related='current_move_line_id.product_uom_id' string='UoM'
  • current_move_product_display_name Char
    related='current_move_id.product_id.display_name' string='Product'
  • current_move_product_id Many2one
    related='current_move_id.product_id' string="Move's product"
  • current_move_product_last_lot_expiration_date Datetime
    compute='_compute_current_move_product_last_lot_expiration_date' string='Most recent exp. date'
  • current_move_product_outgoing_qty Float
    compute='_compute_current_move_product_qty_fields'
  • current_move_product_packaging_ids One2many
    related='current_move_id.product_id.packaging_ids'
  • current_move_product_qty_available Float
    compute='_compute_current_move_product_qty_fields'
  • current_move_product_uom_id Many2one
    related='current_move_id.product_uom'
  • current_move_product_uom_qty Float
    related='current_move_id.product_uom_qty'
  • current_move_product_vendor_code Char
    related='current_move_id.vendor_code'
  • current_step Char
    copy=False default='select_product'
  • current_step_descr Char
    compute='_compute_current_step_descr' string='Operation'
  • current_step_focus_field Char
    compute='_compute_current_step_descr' string='Focus field'
  • name Char
    related='picking_id.name' store=True
  • package_height Integer
  • package_storage_type_height_required Boolean
    related='package_storage_type_id.height_required'
  • package_storage_type_id Many2one → stock.package.storage.type
    args: 'stock.package.storage.type'
  • package_storage_type_id Many2one → stock.package.storage.type
    args: 'stock.package.storage.type'
  • picking_filtered_move_lines One2many → stock.move
    comodel_name='stock.move' compute='_compute_picking_filtered_move_lines'
  • picking_id Many2one → stock.picking
    comodel_name='stock.picking' ondelete='cascade' required=True string='Transfer'
  • picking_location_dest_id Many2one
    related='picking_id.location_dest_id'
  • picking_move_lines One2many
    related='picking_id.move_lines'
  • picking_origin Char
    related='picking_id.origin'
  • picking_partner_id Many2one
    related='picking_id.partner_id'
  • picking_state Selection
    related='picking_id.state'
  • product_packaging_id Many2one → product.packaging
    domain="[('product_id', '=', current_move_product_id)]" args: 'product.packaging'
  • warn_notification Char
    default=False
  • warn_notification_html Html
    compute='_compute_warn_notification'
Public methods (23)
  • action_check_quantity(self)
    Used to trigger an implicit call to 'write()' on the form to check the quantity.
  • action_reception_screen_close(self)
    Close the reception screen. It'll automatically reload the picking form.
  • action_reception_screen_manual_barcode(self)
    Display a window to fill manually a barcode. You don't need to open this window if you use a barcode scanner directly on the screen.
  • button_next_pack(self)
    Process the current package and prepare the screen to scan another one for the same product/lot/packaging data. When calling this button we are supposed to be in the `set_package` step, and once triggered the button will complete the first steps with the same data than the previous package, and will stop again on the `set_package` step.
  • button_reset(self)
    Reset the current step. This allows the user to choose another product to process.
  • button_save_step(self)
    Save the current step.
  • get_reception_screen_steps(self)
    Aim to be overloaded to update the reception steps.
  • next_step(self)
    Evaluate the next step for the operator.
  • on_barcode_scanned(self, barcode)
    Dispatch the barcode event to the right method (if any).
  • on_barcode_scanned_select_packaging(self, barcode)
    Auto-complete the package data. The package data is filled automatically depending on the barcode scanned for the package storage type.
  • on_barcode_scanned_select_product(self, barcode)
    Try to find the corresponding product based on the barcode.
  • on_barcode_scanned_set_lot_number(self, barcode)
    Set the lot number on a move line.
  • on_barcode_scanned_set_package(self, barcode)
    Set the package on the move line.
  • onchange_package_storage_type_id(self)
    @api.onchange('package_storage_type_id')
  • onchange_product_packaging_id(self)
    @api.onchange('product_packaging_id')
  • process_select_move(self)
  • process_select_packaging(self)
  • process_select_product(self)
  • process_set_expiry_date(self)
    Set the lot expiration date on a move line.
  • process_set_location(self)
  • process_set_lot_number(self)
  • process_set_package(self)
  • process_set_quantity(self)
REPOSITORY
REPOSITORYOCA/wms
GIT
GIThttps://github.com/OCA/wms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/wms/tree/13.0/stock_reception_screen
VERSION
VERSION 1.6.2
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSGuewen Baconnier, OCA Transbot, Sébastien Alix, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Simone Orsi, Carlos Serra-Toro
WEBSITE
WEBSITEhttps://github.com/OCA/wms
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/product-attribute:
    - product_packaging_dimension
    - product_packaging_type_pallet
    - product_packaging_type
OCA/server-tools:
    - base_m2m_custom_field
OCA/stock-logistics-workflow:
    - stock_quant_package_dimension
    - stock_quant_package_product_packaging
    - stock_putaway_hook
OCA/web:
    - web_domain_field
OCA/wms:
    - stock_storage_type
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - product_expiry
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
stock_picking_manual_barcode_form stock.picking.manual.barcode.view.form stock.picking.manual.barcode form New
stock_reception_screen_assets stock.reception.screen.assets ir.ui.view qweb Inherits web.assets_backend
stock_reception_screen_view_form stock.reception.screen.form stock.reception.screen form New
view_move_line_tree stock.move.line.tree.stock.reception.screen stock.move.line field Inherits stock.view_move_line_tree
view_picking_form stock.picking.form.inherit stock.picking div Inherits stock.view_picking_form
view_stock_move_line_operation_tree stock.move.line.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
Models touched (6)

New fields (1)
  • storage_type_name Char
    related='package_storage_type_id.name' string='Storage Type'
Public methods (0)

No public methods.

New fields (3)
  • last_move_line_lot_id Many2one → stock.production.lot
    comodel_name='stock.production.lot'
  • reception_screen_current_step Char
    related='picking_id.reception_screen_id.current_step'
  • vendor_code Char
    compute='_compute_vendor_code'
Public methods (2)
  • action_select_move(self)
    Set the move as the current one at the picking level.
  • action_select_product(self)
    "Same than `action_select_move` excepting that as we we are in the 'select_product' step and that the user already selected the right move through this button, we automatically go to the next step (done by `process_select_product`).

New fields (1)
  • lot_life_date Datetime
    related='lot_id.life_date' string='End of Life Date'
Public methods (2)
  • action_reception_screen_open(self)
    Open reception screen from specific move line.
  • action_select_move_line(self)
    Set the move line as the current one at the picking level.

New fields (1)
  • reception_screen_id Many2one → stock.reception.screen
    comodel_name='stock.reception.screen' copy=False string='Reception Screen'
Public methods (2)
  • action_cancel(self)
  • action_reception_screen_open(self)

New fields (1)
  • barcode Char
    string='Barcode'
Public methods (1)
  • button_save(self)

New fields (40)
  • allowed_location_dest_ids One2many → stock.location
    compute='_compute_allowed_location_dest_ids' help='Allowed destination locations based on the package storage type.' string='Allowed destination locations' args: 'stock.location'
  • current_filter_product Char
    copy=False string='Filter product'
  • current_move_has_tracking Selection
    related='current_move_id.has_tracking'
  • current_move_id Many2one → stock.move
    comodel_name='stock.move' copy=False
  • current_move_line_id Many2one → stock.move.line
    comodel_name='stock.move.line' copy=False
  • current_move_line_location_dest_id Many2one
    related='current_move_line_id.location_dest_id'
  • current_move_line_location_dest_stored_id Many2one → stock.location
    comodel_name='stock.location' string='Destination'
  • current_move_line_lot_id Many2one
    related='current_move_line_id.lot_id' string='Lot NumBer'
  • current_move_line_lot_life_date Datetime
    string='End of Life Date'
  • current_move_line_package Char
    compute='_compute_current_move_line_package' inverse='_inverse_current_move_line_package' string='Package N°'
  • current_move_line_package_stored Char
  • current_move_line_qty_done Float
    readonly=False related='current_move_line_id.qty_done' string='Quantity'
  • current_move_line_qty_status Char
    compute='_compute_current_move_line_qty_status' string='Qty Status'
  • current_move_line_uom_id Many2one
    related='current_move_line_id.product_uom_id' string='UoM'
  • current_move_product_display_name Char
    related='current_move_id.product_id.display_name' string='Product'
  • current_move_product_id Many2one
    related='current_move_id.product_id' string="Move's product"
  • current_move_product_last_lot_life_date Datetime
    compute='_compute_current_move_product_last_lot_life_date' string='Most recent exp. date'
  • current_move_product_outgoing_qty Float
    related='current_move_id.product_id.outgoing_qty'
  • current_move_product_packaging_ids One2many
    related='current_move_id.product_id.packaging_ids'
  • current_move_product_qty_available Float
    related='current_move_id.product_id.qty_available'
  • current_move_product_uom_id Many2one
    related='current_move_id.product_uom'
  • current_move_product_uom_qty Float
    related='current_move_id.product_uom_qty'
  • current_move_product_vendor_code Char
    related='current_move_id.vendor_code'
  • current_step Char
    copy=False default='select_product'
  • current_step_descr Char
    compute='_compute_current_step_descr' string='Operation'
  • current_step_focus_field Char
    compute='_compute_current_step_descr' string='Focus field'
  • name Char
    related='picking_id.name' store=True
  • package_height Integer
  • package_storage_type_height_required Boolean
    related='package_storage_type_id.height_required'
  • package_storage_type_id Many2one → stock.package.storage.type
    args: 'stock.package.storage.type'
  • picking_filtered_move_lines One2many → stock.move
    comodel_name='stock.move' compute='_compute_picking_filtered_move_lines'
  • picking_id Many2one → stock.picking
    comodel_name='stock.picking' ondelete='cascade' required=True string='Transfer'
  • picking_location_dest_id Many2one
    related='picking_id.location_dest_id'
  • picking_move_lines One2many
    related='picking_id.move_lines'
  • picking_origin Char
    related='picking_id.origin'
  • picking_partner_id Many2one
    related='picking_id.partner_id'
  • picking_state Selection
    related='picking_id.state'
  • product_packaging_id Many2one → product.packaging
    domain="[('product_id', '=', current_move_product_id)]" args: 'product.packaging'
  • warn_notification Char
    default=False
  • warn_notification_html Html
    compute='_compute_warn_notification'
Public methods (23)
  • action_check_quantity(self)
    Used to trigger an implicit call to 'write()' on the form to check the quantity.
  • action_reception_screen_close(self)
    Close the reception screen. It'll automatically reload the picking form.
  • action_reception_screen_manual_barcode(self)
    Display a window to fill manually a barcode. You don't need to open this window if you use a barcode scanner directly on the screen.
  • button_next_pack(self)
    Process the current package and prepare the screen to scan another one for the same product/lot/packaging data. When calling this button we are supposed to be in the `set_package` step, and once triggered the button will complete the first steps with the same data than the previous package, and will stop again on the `set_package` step.
  • button_reset(self)
    Reset the current step. This allows the user to choose another product to process.
  • button_save_step(self)
    Save the current step.
  • get_reception_screen_steps(self)
    Aim to be overloaded to update the reception steps.
  • next_step(self)
    Evaluate the next step for the operator.
  • on_barcode_scanned(self, barcode)
    Dispatch the barcode event to the right method (if any).
  • on_barcode_scanned_select_packaging(self, barcode)
    Auto-complete the package data. The package data is filled automatically depending on the barcode scanned for the package storage type.
  • on_barcode_scanned_select_product(self, barcode)
    Try to find the corresponding product based on the barcode.
  • on_barcode_scanned_set_lot_number(self, barcode)
    Set the lot number on a move line.
  • on_barcode_scanned_set_package(self, barcode)
    Set the package on the move line.
  • onchange_package_storage_type_id(self)
    @api.onchange('package_storage_type_id')
  • onchange_product_packaging_id(self)
    @api.onchange('product_packaging_id')
  • process_select_move(self)
  • process_select_packaging(self)
  • process_select_product(self)
  • process_set_expiry_date(self)
    Set the lot life date on a move line.
  • process_set_location(self)
  • process_set_lot_number(self)
  • process_set_package(self)
  • process_set_quantity(self)
REPOSITORY
REPOSITORYOCA/wms
GIT
GIThttps://github.com/OCA/wms.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/wms/tree/10.0/stock_reception_screen
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYStock
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSLaurent Mignon (ACSONE), Sébastien Alix, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-warehouse
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:20:03
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/web:
    - web_domain_field
    - web_notify
OCA/wms:
    - stock_storage_type
odoo/odoo:
    - stock
    - product
    - base
    - decimal_precision
    - mail
    - base_setup
    - web_kanban
    - web
    - bus
    - web_tour
    - report
    - procurement
    - barcodes
    - web_planner
    - product_expiry
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (6)
XML IDNameModelTypeStatus
stock_picking_manual_barcode_form stock.picking.manual.barcode.view.form stock.picking.manual.barcode form New
stock_reception_screen_assets stock.reception.screen.assets ir.ui.view qweb Inherits web.assets_backend
stock_reception_screen_view_form stock.reception.screen.form stock.reception.screen form New
view_picking_form stock.picking.form.inherit stock.picking div Inherits stock.view_picking_form
view_stock_move_line_operation_tree stock.move.line.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
Models touched (6)

New fields (1)
  • storage_type_name Char
    related='package_storage_type_id.name' string='Storage Type'
Public methods (0)

No public methods.

New fields (3)
  • last_move_line_lot_id Many2one → stock.production.lot
    comodel_name='stock.production.lot'
  • reception_screen_current_step Char
    related='picking_id.reception_screen_id.current_step'
  • vendor_code Char
    compute='_compute_vendor_code'
Public methods (2)
  • action_select_move(self)
    Set the move as the current one at the picking level.
  • action_select_product(self)
    "Same than `action_select_move` excepting that as we we are in the 'select_product' step and that the user already selected the right move through this button, we automatically go to the next step (done by `process_select_product`).

New fields (1)
  • lot_life_date Datetime
    related='lot_id.life_date' string='End of Life Date'
Public methods (1)
  • action_select_move_line(self)
    Set the move line as the current one at the picking level.

New fields (1)
  • reception_screen_id Many2one → stock.reception.screen
    comodel_name='stock.reception.screen' copy=False string='Reception Screen'
Public methods (2)
  • action_cancel(self)
  • action_reception_screen_open(self)

New fields (1)
  • barcode Char
    string='Barcode'
Public methods (1)
  • button_save(self)

New fields (31)
  • current_filter_product Char
    copy=False string='Filter product'
  • current_move_id Many2one → stock.move
    comodel_name='stock.move' copy=False
  • current_move_line_id Many2one → stock.move.line
    comodel_name='stock.move.line' copy=False
  • current_move_line_location_dest_id Many2one → stock.location
    comodel_name='stock.location' compute='_compute_current_move_line_location_dest_id' inverse='_inverse_current_move_line_location_dest_id' string='Destination'
  • current_move_line_lot_id Many2one
    related='current_move_line_id.lot_id' string='Lot NumBer'
  • current_move_line_lot_life_date Datetime
    string='End of Life Date'
  • current_move_line_package Char
    compute='_compute_current_move_line_package' inverse='_inverse_current_move_line_package' string='Package N°'
  • current_move_line_qty_done Float
    readonly=False related='current_move_line_id.qty_done' string='Quantity'
  • current_move_line_qty_status Char
    compute='_compute_current_move_line_qty_status' string='Qty Status'
  • current_move_line_uom_id Many2one
    related='current_move_line_id.product_uom_id' string='UoM'
  • current_move_product_display_name Char
    related='current_move_id.product_id.display_name' string='Product'
  • current_move_product_id Many2one
    related='current_move_id.product_id' string="Move's product"
  • current_move_product_packaging_ids One2many
    related='current_move_id.product_id.packaging_ids'
  • current_move_product_uom_id Many2one
    related='current_move_id.product_uom'
  • current_move_product_uom_qty Float
    related='current_move_id.product_uom_qty'
  • current_move_product_vendor_code Char
    related='current_move_id.vendor_code'
  • current_step Char
    copy=False default='select_product'
  • current_step_descr Char
    compute='_compute_current_step_descr' string='Operation'
  • current_step_focus_field Char
    compute='_compute_current_step_descr' string='Focus field'
  • name Char
    related='picking_id.name' store=True
  • package_height Integer
  • package_storage_type_height_required Boolean
    related='package_storage_type_id.height_required'
  • package_storage_type_id Many2one → stock.package.storage.type
    args: 'stock.package.storage.type'
  • picking_filtered_move_lines One2many → stock.move
    comodel_name='stock.move' compute='_compute_picking_filtered_move_lines'
  • picking_id Many2one → stock.picking
    comodel_name='stock.picking' ondelete='cascade' required=True string='Transfer'
  • picking_location_dest_id Many2one
    related='picking_id.location_dest_id'
  • picking_move_lines One2many
    related='picking_id.move_lines'
  • picking_origin Char
    related='picking_id.origin'
  • picking_partner_id Many2one
    related='picking_id.partner_id'
  • picking_state Selection
    related='picking_id.state'
  • product_packaging_id Many2one → product.packaging
    domain="[('product_id', '=', current_move_product_id)]" args: 'product.packaging'
Public methods (23)
  • action_check_quantity(self)
    Used to trigger an implicit call to 'write()' on the form to check the quantity.
  • action_reception_screen_close(self)
    Close the reception screen. It'll automatically reload the picking form.
  • action_reception_screen_manual_barcode(self)
    Display a window to fill manually a barcode. You don't need to open this window if you use a barcode scanner directly on the screen.
  • button_next_pack(self)
    Process the current package and prepare the screen to scan another one for the same product/lot/packaging data. When calling this button we are supposed to be in the `set_package` step, and once triggered the button will complete the first steps with the same data than the previous package, and will stop again on the `set_package` step.
  • button_reset(self)
    Reset the current step. This allows the user to choose another product to process.
  • button_save_step(self)
    Save the current step.
  • get_reception_screen_steps(self)
    Aim to be overloaded to update the reception steps.
  • next_step(self)
    Evaluate the next step for the operator.
  • on_barcode_scanned(self, barcode)
    Dispatch the barcode event to the right method (if any).
  • on_barcode_scanned_select_packaging(self, barcode)
    Auto-complete the package data.
  • on_barcode_scanned_select_product(self, barcode)
    Try to find the corresponding product based on the barcode.
  • on_barcode_scanned_set_lot_number(self, barcode)
    Set the lot number on a move line.
  • on_barcode_scanned_set_package(self, barcode)
    Set the package on the move line.
  • onchange_package_storage_type_id(self)
    @api.onchange('package_storage_type_id')
  • onchange_product_packaging_id(self)
    @api.onchange('product_packaging_id')
  • process_select_move(self)
  • process_select_packaging(self)
  • process_select_product(self)
  • process_set_expiry_date(self)
    Set the lot life date on a move line.
  • process_set_location(self)
  • process_set_lot_number(self)
  • process_set_package(self)
  • process_set_quantity(self)