Shipment Advice

shipment_advice
REPOSITORY
REPOSITORYOCA/stock-logistics-transport
GIT
GIThttps://github.com/OCA/stock-logistics-transport.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-transport/tree/18.0/shipment_advice
VERSION
VERSION 1.2.4
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp, BCIM
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp, BCIM
COMMITTERS
COMMITTERSJacques-Etienne Baudoux, Thierry Ducrest, Weblate, OCA-git-bot, SilvioC2C, oca-ci, Mmequignon, Rafael Lima
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-transport
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:18
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
OCA/stock-logistics-transport:
    - stock_dock
odoo/odoo:
    - stock_delivery
    - sale_stock
    - sale
    - sales_team
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - account_payment
    - account
    - onboarding
    - product
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - payment
    - utm
    - stock_account
    - stock
    - barcodes_gs1_nomenclature
    - barcodes
    - delivery
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Manage your (un)loading process through shipment advices.

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
package_level_tree_view_picking stock.package_level.tree.inherit stock.package_level field Inherits stock.package_level_tree_view_picking
report_shipment_advice report_shipment_advice ir.ui.view qweb New
report_shipment_advice_document report_shipment_advice_document ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.shipment.advice res.config.settings xpath Inherits stock.res_config_settings_view_form
shipment_advice_view_calendar shipment.advice.calendar shipment.advice calendar New
shipment_advice_view_form shipment.advice.form shipment.advice form New
shipment_advice_view_search shipment.advice.search shipment.advice search New
shipment_advice_view_tree shipment.advice.tree shipment.advice list New
stock_move_line_limited_view_tree stock.move.line.limited.tree stock.move.line list New
stock_move_line_view_search stock.move.line.search.inherit stock.move.line field Inherits stock.stock_move_line_view_search
stock_package_level_limited_view_tree stock.package_level.limited.tree stock.package_level list New
stock_picking_limited_view_tree stock.picking.limited.tree stock.picking list New
stock_picking_loading_progress_view_tree stock.picking.loading.progress.tree stock.picking list New
view_move_line_tree stock.move.line.tree.inherit stock.move.line field Inherits stock.view_move_line_tree
view_move_search stock.move.search.inherit stock.move group Inherits stock.view_move_search
view_move_tree stock.move.tree.inherit stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking header Inherits stock.view_picking_form
view_picking_internal_search stock.picking.search.inherit stock.picking group Inherits stock.view_picking_internal_search
view_stock_move_line_detailed_operation_tree stock.move.line.detailed.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_detailed_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
wizard_load_shipment_form wizard.load.shipment.form wizard.load.shipment form New
wizard_plan_shipment_form wizard.plan.shipment.form wizard.plan.shipment form New
wizard_unload_shipment_form wizard.unload.shipment.form wizard.unload.shipment form New
wizard_unplan_shipment_form wizard.unplan.shipment.form wizard.unplan.shipment form New
Models touched (11)

New fields (3)
  • shipment_advice_auto_close_incoming Boolean
    help='This flag indicates if an incoming shipment advice will be automatically set to done if all related moves are done or canceled' string='Shipment Advice: Auto Close Incoming Advices'
  • shipment_advice_outgoing_backorder_policy Selection
    default='create_backorder' help="If you want that closing an outgoing shipment advice marks as done all related deliveries and creates backorder in case of partial choose 'Create backorder'.\nIf you want to mark deliveries as done only when they are all loaded in a shipment advice choose 'Leave open'. This last option is useful when your deliveries will be shipped by several trucks." selection=[('create_backorder', 'Create backorder'), ('leave_open', 'Leave open')] string='Shipment Advice: Outgoing backorder policy'
  • shipment_advice_run_in_queue_job Boolean
    help='To prevent timeouts for large shipments, enable this option to execute shipment advice validation through a queued jobs. Each picking will be validated in a separate job.' string='Run shipment advice in queue job'
Public methods (0)

No public methods.

New fields (3)
  • shipment_advice_auto_close_incoming Boolean
    readonly=False related='company_id.shipment_advice_auto_close_incoming'
  • shipment_advice_outgoing_backorder_policy Selection
    readonly=False related='company_id.shipment_advice_outgoing_backorder_policy'
  • shipment_advice_run_in_queue_job Boolean
    readonly=False related='company_id.shipment_advice_run_in_queue_job'
Public methods (0)

No public methods.

New fields (27)
  • arrival_date Datetime
    help='When will the shipment arrive at the (un)loading dock. It is a planned date until in progress, then it represents the real one.'
  • carrier_ids Many2many → delivery.carrier
    comodel_name='delivery.carrier' compute='_compute_carrier_ids' help="Concerned shipping method for this shipment advice. It can be used to determine what are the eligible deliveries to load in the shipment when you don't have planned content (e.g. through the shopfloor application)." string='Related shipping methods'
  • company_id Many2one → res.company
    comodel_name='res.company' index=True readonly=True related='warehouse_id.company_id' store=True string='Company'
  • departure_date Datetime
    help='When will the shipment leave the (un)loading dock. It is a planned date until in progress, then it represents the real one.'
  • dock_id Many2one → stock.dock
    comodel_name='stock.dock' domain="[('warehouse_id', '=', warehouse_id)]" index=True ondelete='restrict' string='Loading dock'
  • error_message Text
    tracking=True
  • line_to_load_ids One2many → stock.move.line
    comodel_name='stock.move.line' compute='_compute_line_to_load_ids' help="Lines to load in priority.\nIf the shipment is planned, it'll return the planned lines.\nIf the shipment is not planned, it'll return lines from transfers partially loaded."
  • lines_to_load_count Integer
    compute='_compute_count'
  • loaded_move_line_ids One2many → stock.move.line
    check_company=True comodel_name='stock.move.line' inverse_name='shipment_advice_id' string='Loaded content list'
  • loaded_move_line_without_package_ids One2many → stock.move.line
    check_company=True comodel_name='stock.move.line' domain=[('package_level_id', '=', False)] inverse_name='shipment_advice_id' string='Loaded content list (w/o packages)'
  • loaded_move_lines_without_package_count Integer
    compute='_compute_count'
  • loaded_package_ids One2many → stock.quant.package
    comodel_name='stock.quant.package' compute='_compute_package_ids' string='Packages'
  • loaded_package_level_ids One2many → stock.package_level
    comodel_name='stock.package_level' compute='_compute_package_ids' string='Package Levels'
  • loaded_packages_count Integer
    compute='_compute_count'
  • loaded_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Loaded transfers'
  • loaded_pickings_count Integer
    compute='_compute_count'
  • name Char
    copy=False default='/' index=True readonly=True required=True
  • planned_move_ids One2many → stock.move
    check_company=True comodel_name='stock.move' inverse_name='shipment_advice_id' string='Planned content list'
  • planned_moves_count Integer
    compute='_compute_count'
  • planned_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Planned transfers'
  • planned_pickings_count Integer
    compute='_compute_count'
  • ref Char
    string='Consignment/Truck\xa0Ref.'
  • run_in_queue_job Boolean
    default=<expr>
  • shipment_type Selection
    default='outgoing' help='Use incoming to plan receptions, use outgoing for deliveries.' readonly=True required=True selection=[('outgoing', 'Outgoing'), ('incoming', 'Incoming')] string='Type'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('confirmed', 'Confirmed'), ('in_progress', 'In progress'), ('in_process', 'In process'), ('error', 'Error'), ('done', 'Done'), ('cancel', 'Cancelled')] string='Status' tracking=True
  • total_load Float
    compute='_compute_total_load' digits=(16, 2) string='Total load (kg)'
  • warehouse_id Many2one → stock.warehouse
    check_company=True comodel_name='stock.warehouse' default=_default_warehouse_id ondelete='cascade' required=True string='Warehouse'
Public methods (15)
  • action_cancel(self)
  • action_confirm(self)
  • action_done(self)
  • action_draft(self)
  • action_in_progress(self)
  • auto_close_incoming_shipment_advices(self)
    Set incoming shipment advice to done when all planned moves are processed
  • button_open_deliveries_in_progress(self)
  • button_open_loaded_move_lines(self)
  • button_open_loaded_packages(self)
  • button_open_loaded_pickings(self)
  • button_open_planned_moves(self)
  • button_open_planned_pickings(self)
  • button_open_receptions_in_progress(self)
  • button_open_to_load_move_lines(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' copy=False index=True ondelete='set null' string='Planned shipment'
Public methods (0)

No public methods.

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True ondelete='set null' string='Shipment advice'
Public methods (1)
  • button_load_in_shipment(self)

New fields (3)
  • package_shipping_weight Float
    related='package_id.shipping_weight'
  • package_shipping_weight_uom_name Char
    compute='_compute_package_shipping_weight_uom_name' store=False
  • shipment_advice_id Many2one
    related='move_line_ids.shipment_advice_id'
Public methods (1)
  • button_load_in_shipment(self)

New fields (17)
  • is_fully_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is fully loaded in a shipment?'
  • is_partially_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is partially loaded in a shipment?'
  • loaded_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded'
  • loaded_move_lines_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded/total'
  • loaded_move_lines_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Bulk lines loaded/total %'
  • loaded_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded'
  • loaded_packages_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded/total'
  • loaded_packages_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Packages loaded/total %'
  • loaded_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Loaded/total'
  • loaded_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Loaded/total %'
  • loaded_shipment_advice_ids Many2many → shipment.advice
    compute='_compute_loaded_in_shipment' args: 'shipment.advice'
  • loaded_waiting_quantity Float
    compute='_compute_shipment_loaded_progress' args: 'Waiting Quantity'
  • loaded_weight Integer
    compute='_compute_shipment_loaded_progress'
  • loaded_weight_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Weight/total'
  • planned_shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True related='move_ids.shipment_advice_id' store=True
  • total_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total bulk lines'
  • total_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total packages'
Public methods (3)
  • button_load_in_shipment(self)
  • button_plan_in_shipment(self)
  • button_unload_from_shipment(self)

New fields (6)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to load'
  • open_shipment Boolean
    default=True
  • package_level_ids Many2many → stock.package_level
    comodel_name='stock.package_level' string='Packages to load'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to load'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('confirm', 'in_progress', 'error'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True
Public methods (2)
  • action_load(self)
    Load the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (4)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to plan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to plan'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('draft', 'confirmed', 'error'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True
Public methods (2)
  • action_plan(self)
    Plan the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to unload'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unload'
  • warning Char
    readonly=True
Public methods (2)
  • action_unload(self)
    Unload the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to unplan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unplan'
  • warning Char
    readonly=True
Public methods (2)
  • action_unplan(self)
    Unplan the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.
REPOSITORY
REPOSITORYOCA/stock-logistics-transport
GIT
GIThttps://github.com/OCA/stock-logistics-transport.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-transport/tree/16.0/shipment_advice
VERSION
VERSION 1.10.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSJacques-Etienne Baudoux, Laurent Mignon (ACSONE), Denis Roussel, sbejaoui, Sébastien Alix, Weblate, OCA-git-bot, oca-ci, cyrilmanuel, bosd, Laurent Stukkens, hda, Gil Arasa Verge, r.perez, victorvermot
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-transport
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/queue:
    - queue_job
OCA/stock-logistics-transport:
    - stock_dock
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - delivery
    - sale_stock
    - sale
    - sales_team
    - account_payment
    - account
    - analytic
    - payment
    - utm
    - stock_account
    - sale_management
    - base_sparse_field
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (25)
XML IDNameModelTypeStatus
package_level_tree_view_picking stock.package_level.tree.inherit stock.package_level field Inherits stock.package_level_tree_view_picking
report_shipment_advice report_shipment_advice ir.ui.view qweb New
report_shipment_advice_document report_shipment_advice_document ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.shipment.advice res.config.settings xpath Inherits stock.res_config_settings_view_form
shipment_advice_view_calendar shipment.advice.calendar shipment.advice calendar New
shipment_advice_view_form shipment.advice.form shipment.advice form New
shipment_advice_view_search shipment.advice.search shipment.advice search New
shipment_advice_view_tree shipment.advice.tree shipment.advice tree New
stock_move_line_limited_view_tree stock.move.line.limited.tree stock.move.line tree New
stock_move_line_view_search stock.move.line.search.inherit stock.move.line field Inherits stock.stock_move_line_view_search
stock_package_level_limited_view_tree stock.package_level.limited.tree stock.package_level tree New
stock_picking_limited_view_tree stock.picking.limited.tree stock.picking tree New
stock_picking_loading_progress_view_tree stock.picking.loading.progress.tree stock.picking tree New
view_move_line_tree stock.move.line.tree.inherit stock.move.line field Inherits stock.view_move_line_tree
view_move_line_tree_detailed stock.move.line.tree.inherit stock.move.line field Inherits stock.view_move_line_tree_detailed
view_move_search stock.move.search.inherit stock.move group Inherits stock.view_move_search
view_move_tree stock.move.tree.inherit stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking header Inherits stock.view_picking_form
view_picking_internal_search stock.picking.search.inherit stock.picking group Inherits stock.view_picking_internal_search
view_stock_move_line_detailed_operation_tree stock.move.line.detailed.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_detailed_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
wizard_load_shipment_form wizard.load.shipment.form wizard.load.shipment form New
wizard_plan_shipment_form wizard.plan.shipment.form wizard.plan.shipment form New
wizard_unload_shipment_form wizard.unload.shipment.form wizard.unload.shipment form New
wizard_unplan_shipment_form wizard.unplan.shipment.form wizard.unplan.shipment form New
Models touched (11)

New fields (3)
  • shipment_advice_auto_close_incoming Boolean
    help='This flag indicates if an incoming shipment advice will be automatically set to done if all related moves are done or canceled' string='Shipment Advice: Auto Close Incoming Advices'
  • shipment_advice_outgoing_backorder_policy Selection
    default='create_backorder' help="If you want that closing an outgoing shipment advice marks as done all related deliveries and creates backorder in case of partial choose 'Create backorder'.\nIf you want to mark deliveries as done only when they are all loaded in a shipment advice choose 'Leave open'. This last option is useful when your deliveries will be shipped by several trucks." selection=[('create_backorder', 'Create backorder'), ('leave_open', 'Leave open')] string='Shipment Advice: Outgoing backorder policy'
  • shipment_advice_run_in_queue_job Boolean
    help='To prevent timeouts for large shipments, enable this option to execute shipment advice validation through a queued jobs. Each picking will be validated in a separate job.' string='Run shipment advice in queue job'
Public methods (0)

No public methods.

New fields (3)
  • shipment_advice_auto_close_incoming Boolean
    readonly=False related='company_id.shipment_advice_auto_close_incoming'
  • shipment_advice_outgoing_backorder_policy Selection
    readonly=False related='company_id.shipment_advice_outgoing_backorder_policy'
  • shipment_advice_run_in_queue_job Boolean
    readonly=False related='company_id.shipment_advice_run_in_queue_job'
Public methods (0)

No public methods.

New fields (29)
  • arrival_date Datetime
    help='When will the shipment arrive at the (un)loading dock. It is a planned date until in progress, then it represents the real one.' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]}
  • carrier_ids Many2many → delivery.carrier
    comodel_name='delivery.carrier' compute='_compute_carrier_ids' help="Concerned shipping method for this shipment advice. It can be used to determine what are the eligible deliveries to load in the shipment when you don't have planned content (e.g. through the shopfloor application)." string='Related shipping methods'
  • company_id Many2one → res.company
    comodel_name='res.company' index=True readonly=True related='warehouse_id.company_id' store=True string='Company'
  • departure_date Datetime
    help='When will the shipment leave the (un)loading dock. It is a planned date until in progress, then it represents the real one.' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]}
  • dock_id Many2one → stock.dock
    comodel_name='stock.dock' domain="[('warehouse_id', '=', warehouse_id)]" index=True ondelete='restrict' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} string='Loading dock'
  • error_message Text
    tracking=True
  • line_to_load_ids One2many → stock.move.line
    comodel_name='stock.move.line' compute='_compute_line_to_load_ids' help="Lines to load in priority.\nIf the shipment is planned, it'll return the planned lines.\nIf the shipment is not planned, it'll return lines from transfers partially loaded."
  • lines_to_load_count Integer
    compute='_compute_count'
  • loaded_move_line_ids One2many → stock.move.line
    check_company=True comodel_name='stock.move.line' inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Loaded content list'
  • loaded_move_line_without_package_ids One2many → stock.move.line
    check_company=True comodel_name='stock.move.line' domain=[('package_level_id', '=', False)] inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Loaded content list (w/o packages)'
  • loaded_move_lines_without_package_count Integer
    compute='_compute_count'
  • loaded_package_ids One2many → stock.quant.package
    comodel_name='stock.quant.package' compute='_compute_package_ids' string='Packages'
  • loaded_package_level_ids One2many → stock.package_level
    comodel_name='stock.package_level' compute='_compute_package_ids' string='Package Levels'
  • loaded_packages_count Integer
    compute='_compute_count'
  • loaded_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Loaded transfers'
  • loaded_pickings_count Integer
    compute='_compute_count'
  • name Char
    copy=False default='/' index=True readonly=True required=True
  • notes Text
    readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]}
  • planned_move_ids One2many → stock.move
    check_company=True comodel_name='stock.move' inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Planned content list'
  • planned_moves_count Integer
    compute='_compute_count'
  • planned_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Planned transfers'
  • planned_pickings_count Integer
    compute='_compute_count'
  • ref Char
    readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Consignment/Truck\xa0Ref.'
  • run_in_queue_job Boolean
    default=<expr>
  • shipment_type Selection
    default='outgoing' help='Use incoming to plan receptions, use outgoing for deliveries.' readonly=True required=True selection=[('outgoing', 'Outgoing'), ('incoming', 'Incoming')] string='Type'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('confirmed', 'Confirmed'), ('in_progress', 'In progress'), ('in_process', 'In process'), ('error', 'Error'), ('done', 'Done'), ('cancel', 'Cancelled')] string='Status' tracking=True
  • to_validate_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Transfers to validate'
  • total_load Float
    compute='_compute_total_load' digits=(16, 2) string='Total load (kg)'
  • warehouse_id Many2one → stock.warehouse
    check_company=False comodel_name='stock.warehouse' default=_default_warehouse_id ondelete='cascade' readonly=True required=True states={'draft': [('readonly', False)]} string='Warehouse'
Public methods (15)
  • action_cancel(self)
  • action_confirm(self)
  • action_done(self)
  • action_draft(self)
  • action_in_progress(self)
  • auto_close_incoming_shipment_advices(self)
    Set incoming shipment advice to done when all planned moves are processed
  • button_open_deliveries_in_progress(self)
  • button_open_loaded_move_lines(self)
  • button_open_loaded_packages(self)
  • button_open_loaded_pickings(self)
  • button_open_planned_moves(self)
  • button_open_planned_pickings(self)
  • button_open_receptions_in_progress(self)
  • button_open_to_load_move_lines(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' copy=False index=True ondelete='set null' string='Planned shipment'
Public methods (0)

No public methods.

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True ondelete='set null' string='Shipment advice'
Public methods (1)
  • button_load_in_shipment(self)

New fields (3)
  • package_shipping_weight Float
    related='package_id.shipping_weight'
  • package_weight_uom_name Char
    related='package_id.weight_uom_name'
  • shipment_advice_id Many2one
    related='move_line_ids.shipment_advice_id'
Public methods (1)
  • button_load_in_shipment(self)

New fields (17)
  • is_fully_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is fully loaded in a shipment?'
  • is_partially_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is partially loaded in a shipment?'
  • loaded_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded'
  • loaded_move_lines_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded/total'
  • loaded_move_lines_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Bulk lines loaded/total %'
  • loaded_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded'
  • loaded_packages_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded/total'
  • loaded_packages_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Packages loaded/total %'
  • loaded_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Loaded/total'
  • loaded_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Loaded/total %'
  • loaded_shipment_advice_ids Many2many → shipment.advice
    compute='_compute_loaded_in_shipment' args: 'shipment.advice'
  • loaded_waiting_quantity Float
    compute='_compute_shipment_loaded_progress' args: 'Waiting Quantity'
  • loaded_weight Integer
    compute='_compute_shipment_loaded_progress'
  • loaded_weight_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Weight/total'
  • planned_shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True related='move_ids.shipment_advice_id' store=True
  • total_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total bulk lines'
  • total_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total packages'
Public methods (3)
  • button_load_in_shipment(self)
  • button_plan_in_shipment(self)
  • button_unload_from_shipment(self)

New fields (6)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to load'
  • open_shipment Boolean
    default=True
  • package_level_ids Many2many → stock.package_level
    comodel_name='stock.package_level' string='Packages to load'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to load'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('confirm', 'in_progress', 'error'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True
Public methods (2)
  • action_load(self)
    Load the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (4)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to plan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to plan'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('draft', 'confirmed', 'error'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True
Public methods (2)
  • action_plan(self)
    Plan the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to unload'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unload'
  • warning Char
    readonly=True
Public methods (2)
  • action_unload(self)
    Unload the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to unplan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unplan'
  • warning Char
    readonly=True
Public methods (2)
  • action_unplan(self)
    Unplan the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.
REPOSITORY
REPOSITORYOCA/stock-logistics-transport
GIT
GIThttps://github.com/OCA/stock-logistics-transport.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-transport/tree/14.0/shipment_advice
VERSION
VERSION 2.6.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSAkim Juillerat, Sébastien Alix, Thierry Ducrest, oca-travis, Weblate, OCA-git-bot, Michael Tietz, oca-ci, Hai Lang, Dũng (Trần Đình)
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-transport
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:10
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-transport:
    - stock_dock
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - delivery
    - sale_stock
    - sale
    - sales_team
    - payment
    - account
    - analytic
    - utm
    - stock_account
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
package_level_tree_view_picking stock.package_level.tree.inherit stock.package_level field Inherits stock.package_level_tree_view_picking
report_shipment_advice report_shipment_advice ir.ui.view qweb New
report_shipment_advice_document report_shipment_advice_document ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.shipment.advice res.config.settings xpath Inherits stock.res_config_settings_view_form
shipment_advice_view_calendar shipment.advice.calendar shipment.advice calendar New
shipment_advice_view_form shipment.advice.form shipment.advice form New
shipment_advice_view_search shipment.advice.search shipment.advice search New
shipment_advice_view_tree shipment.advice.tree shipment.advice tree New
stock_move_line_limited_view_tree stock.move.line.limited.tree stock.move.line tree New
stock_move_line_view_search stock.move.line.search.inherit stock.move.line field Inherits stock.stock_move_line_view_search
stock_package_level_limited_view_tree stock.package_level.limited.tree stock.package_level tree New
stock_picking_limited_view_tree stock.picking.limited.tree stock.picking tree New
stock_picking_loading_progress_view_tree stock.picking.loading.progress.tree stock.picking tree New
view_move_line_tree stock.move.line.tree.inherit stock.move.line field Inherits stock.view_move_line_tree
view_move_search stock.move.search.inherit stock.move group Inherits stock.view_move_search
view_move_tree stock.move.tree.inherit stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking header Inherits stock.view_picking_form
view_picking_internal_search stock.picking.search.inherit stock.picking group Inherits stock.view_picking_internal_search
view_stock_move_line_detailed_operation_tree stock.move.line.detailed.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_detailed_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
wizard_load_shipment_form wizard.load.shipment.form wizard.load.shipment form New
wizard_plan_shipment_form wizard.plan.shipment.form wizard.plan.shipment form New
wizard_unload_shipment_form wizard.unload.shipment.form wizard.unload.shipment form New
wizard_unplan_shipment_form wizard.unplan.shipment.form wizard.unplan.shipment form New
Models touched (11)

New fields (2)
  • shipment_advice_auto_close_incoming Boolean
    help='This flag indicates if an incoming shipment advice will be automatically set to done if all related moves are done or canceled' string='Shipment Advice: Auto Close Incoming Advices'
  • shipment_advice_outgoing_backorder_policy Selection
    default='create_backorder' help="If you want that closing an outgoing shipment advice marks as done all related deliveries and creates backorder in case of partial choose 'Create backorder'.\nIf you want to mark deliveries as done only when they are all loaded in a shipment advice choose 'Leave open'. This last option is useful when your deliveries will be shipped by several trucks." selection=[('create_backorder', 'Create backorder'), ('leave_open', 'Leave open')] string='Shipment Advice: Outgoing backorder policy'
Public methods (0)

No public methods.

New fields (2)
  • shipment_advice_auto_close_incoming Boolean
    readonly=False related='company_id.shipment_advice_auto_close_incoming'
  • shipment_advice_outgoing_backorder_policy Selection
    readonly=False related='company_id.shipment_advice_outgoing_backorder_policy'
Public methods (0)

No public methods.

New fields (26)
  • arrival_date Datetime
    help='When will the shipment arrive at the (un)loading dock. It is a planned date until in progress, then it represents the real one.' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} string='Arrival date'
  • carrier_ids Many2many → delivery.carrier
    comodel_name='delivery.carrier' compute='_compute_carrier_ids' help="Concerned shipping method for this shipment advice. It can be used to determine what are the eligible deliveries to load in the shipment when you don't have planned content (e.g. through the shopfloor application)." string='Related shipping methods'
  • company_id Many2one → res.company
    comodel_name='res.company' index=True readonly=True related='warehouse_id.company_id' store=True string='Company'
  • departure_date Datetime
    help='When will the shipment leave the (un)loading dock. It is a planned date until in progress, then it represents the real one.' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Departure date'
  • dock_id Many2one → stock.dock
    comodel_name='stock.dock' index=True ondelete='restrict' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} string='Loading dock'
  • line_to_load_ids One2many → stock.move.line
    comodel_name='stock.move.line' compute='_compute_line_to_load_ids' help="Lines to load in priority.\nIf the shipment is planned, it'll return the planned lines.\nIf the shipment is not planned, it'll return lines from transfers partially loaded."
  • lines_to_load_count Integer
    compute='_compute_count'
  • loaded_move_line_ids One2many → stock.move.line
    comodel_name='stock.move.line' inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Loaded content list'
  • loaded_move_line_without_package_ids One2many → stock.move.line
    comodel_name='stock.move.line' domain=[('package_level_id', '=', False)] inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Loaded content list (w/o packages)'
  • loaded_move_lines_without_package_count Integer
    compute='_compute_count'
  • loaded_package_ids One2many → stock.quant.package
    comodel_name='stock.quant.package' compute='_compute_package_ids' string='Packages'
  • loaded_package_level_ids One2many → stock.package_level
    comodel_name='stock.package_level' compute='_compute_package_ids' string='Package Levels'
  • loaded_packages_count Integer
    compute='_compute_count'
  • loaded_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Loaded transfers'
  • loaded_pickings_count Integer
    compute='_compute_count'
  • name Char
    copy=False default='/' index=True readonly=True required=True
  • planned_move_ids One2many → stock.move
    comodel_name='stock.move' inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Planned content list'
  • planned_moves_count Integer
    compute='_compute_count'
  • planned_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Planned transfers'
  • planned_pickings_count Integer
    compute='_compute_count'
  • ref Char
    readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Consignment/Truck\xa0Ref.'
  • shipment_type Selection
    default='outgoing' help='Use incoming to plan receptions, use outgoing for deliveries.' readonly=True required=True selection=[('outgoing', 'Outgoing'), ('incoming', 'Incoming')] string='Type'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('confirmed', 'Confirmed'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')] string='Status'
  • to_validate_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Transfers to validate'
  • total_load Float
    compute='_compute_total_load' digits=(16, 2) string='Total load (kg)'
  • warehouse_id Many2one → stock.warehouse
    check_company=True comodel_name='stock.warehouse' default=_default_warehouse_id ondelete='cascade' readonly=True required=True states={'draft': [('readonly', False)]} string='Warehouse'
Public methods (15)
  • action_cancel(self)
  • action_confirm(self)
  • action_done(self)
  • action_draft(self)
  • action_in_progress(self)
  • auto_close_incoming_shipment_advices(self)
    Set incoming shipment advice to done when all planned moves are processed
  • button_open_deliveries_in_progress(self)
  • button_open_loaded_move_lines(self)
  • button_open_loaded_packages(self)
  • button_open_loaded_pickings(self)
  • button_open_planned_moves(self)
  • button_open_planned_pickings(self)
  • button_open_receptions_in_progress(self)
  • button_open_to_load_move_lines(self)
  • create(self, vals)
    @api.model

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True ondelete='set null' string='Planned shipment'
Public methods (0)

No public methods.

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True ondelete='set null' string='Shipment advice'
Public methods (1)
  • button_load_in_shipment(self)

New fields (3)
  • package_shipping_weight Float
    related='package_id.shipping_weight'
  • package_weight_uom_name Char
    related='package_id.weight_uom_name'
  • shipment_advice_id Many2one
    related='move_line_ids.shipment_advice_id'
Public methods (1)
  • button_load_in_shipment(self)

New fields (17)
  • is_fully_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is fully loaded in a shipment?'
  • is_partially_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is partially loaded in a shipment?'
  • loaded_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded'
  • loaded_move_lines_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded/total'
  • loaded_move_lines_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Bulk lines loaded/total %'
  • loaded_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded'
  • loaded_packages_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded/total'
  • loaded_packages_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Packages loaded/total %'
  • loaded_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Loaded/total'
  • loaded_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Loaded/total %'
  • loaded_shipment_advice_ids Many2many → shipment.advice
    compute='_compute_loaded_in_shipment' args: 'shipment.advice'
  • loaded_waiting_quantity Float
    compute='_compute_shipment_loaded_progress' args: 'Waiting Quantity'
  • loaded_weight Integer
    compute='_compute_shipment_loaded_progress' args: 'Loaded weight'
  • loaded_weight_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Weight/total'
  • planned_shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True related='move_lines.shipment_advice_id' store=True
  • total_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total bulk lines'
  • total_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total packages'
Public methods (3)
  • button_load_in_shipment(self)
  • button_plan_in_shipment(self)
  • button_unload_from_shipment(self)

New fields (6)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to load'
  • open_shipment Boolean
    default=True
  • package_level_ids Many2many → stock.package_level
    comodel_name='stock.package_level' string='Packages to load'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to load'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('confirm', 'in_progress'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_load(self)
    Load the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (4)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to plan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to plan'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('draft', 'confirmed'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_plan(self)
    Plan the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to unload'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unload'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_unload(self)
    Unload the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to unplan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unplan'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_unplan(self)
    Unplan the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.
REPOSITORY
REPOSITORYOCA/stock-logistics-transport
GIT
GIThttps://github.com/OCA/stock-logistics-transport.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/stock-logistics-transport/tree/13.0/shipment_advice
VERSION
VERSION 1.3.0
CATEGORY
CATEGORYWarehouse Management
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Camptocamp
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Camptocamp
COMMITTERS
COMMITTERSSébastien Alix, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/stock-logistics-transport
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/stock-logistics-transport:
    - stock_dock
odoo/odoo:
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - uom
    - barcodes
    - delivery
    - sale_stock
    - sale
    - sales_team
    - payment
    - account
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - utm
    - stock_account
    - sale_management
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
package_level_tree_view_picking stock.package_level.tree.inherit stock.package_level field Inherits stock.package_level_tree_view_picking
report_shipment_advice report_shipment_advice ir.ui.view qweb New
report_shipment_advice_document report_shipment_advice_document ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.shipment.advice res.config.settings xpath Inherits stock.res_config_settings_view_form
shipment_advice_view_calendar shipment.advice.calendar shipment.advice calendar New
shipment_advice_view_form shipment.advice.form shipment.advice form New
shipment_advice_view_search shipment.advice.search shipment.advice search New
shipment_advice_view_tree shipment.advice.tree shipment.advice tree New
stock_move_line_limited_view_tree stock.move.line.limited.tree stock.move.line tree New
stock_move_line_view_search stock.move.line.search.inherit stock.move.line field Inherits stock.stock_move_line_view_search
stock_package_level_limited_view_tree stock.package_level.limited.tree stock.package_level tree New
stock_picking_limited_view_tree stock.picking.limited.tree stock.picking tree New
stock_picking_loading_progress_view_tree stock.picking.loading.progress.tree stock.picking tree New
view_move_line_tree stock.move.line.tree.inherit stock.move.line field Inherits stock.view_move_line_tree
view_move_search stock.move.search.inherit stock.move group Inherits stock.view_move_search
view_move_tree stock.move.tree.inherit stock.move field Inherits stock.view_move_tree
view_picking_form stock.picking.form.inherit stock.picking header Inherits stock.view_picking_form
view_picking_internal_search stock.picking.search.inherit stock.picking group Inherits stock.view_picking_internal_search
view_stock_move_line_detailed_operation_tree stock.move.line.detailed.operation.tree.inherit stock.move.line field Inherits stock.view_stock_move_line_detailed_operation_tree
vpicktree stock.picking.tree.inherit stock.picking field Inherits stock.vpicktree
wizard_load_shipment_form wizard.load.shipment.form wizard.load.shipment form New
wizard_plan_shipment_form wizard.plan.shipment.form wizard.plan.shipment form New
wizard_unload_shipment_form wizard.unload.shipment.form wizard.unload.shipment form New
wizard_unplan_shipment_form wizard.unplan.shipment.form wizard.unplan.shipment form New
Models touched (11)

New fields (1)
  • shipment_advice_outgoing_backorder_policy Selection
    default='create_backorder' help="If you want that closing an outgoing shipment advice marks as done all related deliveries and creates backorder in case of partial choose 'Create backorder'.\nIf you want to mark deliveries as done only when they are all loaded in a shipment advice choose 'Leave open'. This last option is useful when your deliveries will be shipped by several trucks." selection=[('create_backorder', 'Create backorder'), ('leave_open', 'Leave open')] string='Shipment Advice: Outgoing backorder policy'
Public methods (0)

No public methods.

New fields (1)
  • shipment_advice_outgoing_backorder_policy Selection
    readonly=False related='company_id.shipment_advice_outgoing_backorder_policy'
Public methods (0)

No public methods.

New fields (23)
  • arrival_date Datetime
    help='When will the shipment arrive at the (un)loading dock. It is a planned date until in progress, then it represents the real one.' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} string='Arrival date'
  • carrier_ids Many2many → delivery.carrier
    comodel_name='delivery.carrier' compute='_compute_carrier_ids' help="Concerned shipping method for this shipment advice. It can be used to determine what are the eligible deliveries to load in the shipment when you don't have planned content (e.g. through the shopfloor application)." string='Related shipping methods'
  • company_id Many2one → res.company
    comodel_name='res.company' index=True readonly=True related='warehouse_id.company_id' store=True string='Company'
  • departure_date Datetime
    help='When will the shipment leave the (un)loading dock. It is a planned date until in progress, then it represents the real one.' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Departure date'
  • dock_id Many2one → stock.dock
    comodel_name='stock.dock' index=True ondelete='restrict' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)]} string='Loading dock'
  • loaded_move_line_ids One2many → stock.move.line
    comodel_name='stock.move.line' inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Loaded content list'
  • loaded_move_line_without_package_ids One2many → stock.move.line
    comodel_name='stock.move.line' domain=[('package_level_id', '=', False)] inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Loaded content list (w/o packages)'
  • loaded_move_lines_without_package_count Integer
    compute='_compute_count'
  • loaded_package_ids One2many → stock.quant.package
    comodel_name='stock.quant.package' compute='_compute_package_ids' string='Packages'
  • loaded_package_level_ids One2many → stock.package_level
    comodel_name='stock.package_level' compute='_compute_package_ids' string='Package Levels'
  • loaded_packages_count Integer
    compute='_compute_count'
  • loaded_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Loaded transfers'
  • loaded_pickings_count Integer
    compute='_compute_count'
  • name Char
    copy=False default='/' index=True readonly=True required=True
  • planned_move_ids One2many → stock.move
    comodel_name='stock.move' inverse_name='shipment_advice_id' readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Planned content list'
  • planned_moves_count Integer
    compute='_compute_count'
  • planned_picking_ids One2many → stock.picking
    comodel_name='stock.picking' compute='_compute_picking_ids' string='Planned transfers'
  • planned_pickings_count Integer
    compute='_compute_count'
  • ref Char
    readonly=True states={'draft': [('readonly', False)], 'confirmed': [('readonly', False)], 'in_progress': [('readonly', False)]} string='Consignment/Truck\xa0Ref.'
  • shipment_type Selection
    default='outgoing' help='Use incoming to plan receptions, use outgoing for deliveries.' readonly=True required=True selection=[('outgoing', 'Outgoing'), ('incoming', 'Incoming')] states={'draft': [('readonly', False)]} string='Type'
  • state Selection
    default='draft' selection=[('draft', 'Draft'), ('confirmed', 'Confirmed'), ('in_progress', 'In progress'), ('done', 'Done'), ('cancel', 'Cancelled')] string='Status'
  • total_load Float
    compute='_compute_total_load' digits=(16, 2) string='Total load (kg)'
  • warehouse_id Many2one → stock.warehouse
    check_company=True comodel_name='stock.warehouse' default=_default_warehouse_id ondelete='cascade' readonly=True required=True states={'draft': [('readonly', False)]} string='Warehouse'
Public methods (13)
  • action_cancel(self)
  • action_confirm(self)
  • action_done(self)
  • action_draft(self)
  • action_in_progress(self)
  • button_open_deliveries_in_progress(self)
  • button_open_loaded_move_lines(self)
  • button_open_loaded_packages(self)
  • button_open_loaded_pickings(self)
  • button_open_planned_moves(self)
  • button_open_planned_pickings(self)
  • button_open_receptions_in_progress(self)
  • create(self, vals)
    @api.model

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True ondelete='set null' string='Planned shipment'
Public methods (0)

No public methods.

New fields (1)
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True ondelete='set null' string='Shipment advice'
Public methods (1)
  • button_load_in_shipment(self)

New fields (3)
  • package_shipping_weight Float
    related='package_id.shipping_weight'
  • package_weight_uom_name Char
    related='package_id.weight_uom_name'
  • shipment_advice_id Many2one
    related='move_line_ids.shipment_advice_id'
Public methods (1)
  • button_load_in_shipment(self)

New fields (16)
  • is_fully_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is fully loaded in a shipment?'
  • is_partially_loaded_in_shipment Boolean
    compute='_compute_loaded_in_shipment' string='Is partially loaded in a shipment?'
  • loaded_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded'
  • loaded_move_lines_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Bulk lines loaded/total'
  • loaded_move_lines_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Bulk lines loaded/total %'
  • loaded_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded'
  • loaded_packages_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Packages loaded/total'
  • loaded_packages_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Packages loaded/total %'
  • loaded_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Loaded/total'
  • loaded_progress_f Float
    compute='_compute_shipment_loaded_progress' digits=(3, 2) args: 'Loaded/total %'
  • loaded_shipment_advice_ids Many2many → shipment.advice
    compute='_compute_loaded_in_shipment' args: 'shipment.advice'
  • loaded_weight Integer
    compute='_compute_shipment_loaded_progress' args: 'Loaded weight'
  • loaded_weight_progress Char
    compute='_compute_shipment_loaded_progress' args: 'Weight/total'
  • planned_shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' index=True related='move_lines.shipment_advice_id' store=True
  • total_move_lines_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total bulk lines'
  • total_packages_count Integer
    compute='_compute_shipment_loaded_progress' args: 'Total packages'
Public methods (3)
  • button_load_in_shipment(self)
  • button_plan_in_shipment(self)
  • button_unload_from_shipment(self)

New fields (6)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to load'
  • open_shipment Boolean
    default=True
  • package_level_ids Many2many → stock.package_level
    comodel_name='stock.package_level' string='Packages to load'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to load'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('confirm', 'in_progress'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_load(self)
    Load the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (4)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to plan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to plan'
  • shipment_advice_id Many2one → shipment.advice
    comodel_name='shipment.advice' domain=[('state', 'in', ('draft', 'confirmed'))] required=True string='Shipment Advice'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_plan(self)
    Plan the selected records in the selected shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_line_ids Many2many → stock.move.line
    comodel_name='stock.move.line' string='Products to unload'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unload'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_unload(self)
    Unload the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.

New fields (3)
  • move_ids Many2many → stock.move
    comodel_name='stock.move' string='Moves to unplan'
  • picking_ids Many2many → stock.picking
    comodel_name='stock.picking' string='Transfers to unplan'
  • warning Char
    readonly=True string='Warning'
Public methods (2)
  • action_unplan(self)
    Unplan the selected records from their related shipment.
  • default_get(self, fields_list)
    @api.model
    'default_get' method overloaded.
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/stock-logistics-transport
PULL REQUEST
PULL REQUEST[17.0] [MIG] shipment_advice (#210)