Purchase Container

purchase_container
REPOSITORY
REPOSITORYOCA/purchase-workflow
GIT
GIThttps://github.com/OCA/purchase-workflow.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/purchase-workflow/tree/18.0/purchase_container
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYUncategorized
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion
COMMITTERS
COMMITTERSDavid Beal, Weblate, OCA-git-bot, oca-ci, Mathieu
WEBSITE
WEBSITEhttps://github.com/OCA/purchase-workflow
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - purchase_stock
    - stock_account
    - stock
    - product
    - base
    - mail
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - uom
    - barcodes_gs1_nomenclature
    - barcodes
    - digest
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
    - account
    - onboarding
    - analytic
    - purchase
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Add containers to purchase orders and stock pickings.

![Purchase container image](../static/description/img.png)

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
container_type_view_form container.type form New
container_type_view_list container.type list New
container_type_view_search container.type search New
purchase_container_view_form purchase.container form New
purchase_container_view_list purchase.container list New
purchase_container_view_search purchase.container search New
purchase_order_view_form_container purchase.order xpath Inherits purchase.purchase_order_form
purchase_order_view_tree purchase.order field Inherits purchase.purchase_order_view_tree
view_picking_with_container stock.picking xpath Inherits stock.view_picking_form
vpicktree stock.picking field Inherits stock.vpicktree
Models touched (4)

New fields (2)
  • description Char
  • name Char
Public methods (0)

No public methods.

New fields (29)
  • arrival_location_id Many2one → res.partner
    args: 'res.partner'
  • bill_of_lading_ref Char
    copy=False args: 'Bill Of Lading No.'
  • code Char
    compute='_compute_code' copy=False inverse='_inverse_code' required=True store=True string='Container Reference'
  • cost Float
    copy=False digits='Product Price'
  • cost_currency_id Many2one → res.currency
    copy=False args: 'res.currency', 'Cost Currency'
  • date_ata Date
    help='Actual Time Of Arrival' string='ATA Date' tracking=True
  • date_atd Date
    help='Actual Time Of Departure' string='ATD Date' tracking=True
  • date_eta Date
    help='Estimated Time Of Arrival' string='ETA Date' tracking=True
  • date_etd Date
    help='Estimated Time Of Departure' string='ETD Date' tracking=True
  • date_ett Char
    compute='_compute_date_ett' help='Estimated Time Of Travel' store=False string='ETT Date' tracking=True
  • departure_location_id Many2one → res.partner
    args: 'res.partner'
  • displayed_incoterm_id Many2one → account.incoterms
    compute='_compute_displayed_incoterm_id' inverse='_inverse_displayed_incoterm_id' store=True tracking=True args: 'account.incoterms'
  • incoterm_id Many2one → account.incoterms
    compute='_compute_incoterm_id' readonly=True store=False args: 'account.incoterms'
  • is_locked Boolean
  • manual_incoterm_id Many2one → account.incoterms
    args: 'account.incoterms'
  • name Char
    compute='_compute_name' index=True readonly=True store=True
  • package_qty Integer
    copy=False
  • picking_count Integer
    compute='_compute_picking_count' string='Receipts'
  • picking_ids One2many → stock.picking
    comodel_name='stock.picking' inverse_name='container_id' string='Related Pickings'
  • purchase_order_count Integer
    compute='_compute_purchase_order_count' string='Purchases'
  • purchase_order_ids Many2many → purchase.order
    copy=False string='Related Purchases' args: 'purchase.order'
  • purchase_order_rfq_count Integer
    compute='_compute_purchase_order_rfq_count' string='RFQ'
  • shipping_agent_id Many2one → res.partner
    comodel_name='res.partner' string='Shipping Agent'
  • state Selection
    compute='_compute_state' store=True tracking=True args: [('waiting', 'Waiting'), ('transit', 'Transit'), ('arrived', 'Arrived'), ('locked', 'Locked')]
  • type_id Many2one → container.type
    comodel_name='container.type'
  • volume Float
    copy=False digits='Volume'
  • volume_uom_id Many2one → uom.uom
    default=<expr> domain=<expr> string='Volume Units of Measure' args: 'uom.uom'
  • weight Float
    copy=False digits='Stock Weight' string='Bruto Weight'
  • weight_uom_id Many2one → uom.uom
    default=<expr> domain=<expr> help='Weight Unit of Measure' string='Weight Units of Measure' args: 'uom.uom'
Public methods (6)
  • action_view_order(self)
  • action_view_picking(self)
  • action_view_rfq(self)
  • button_lock(self)
  • button_unlock(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (1)
  • container_ids Many2many → purchase.container
    compute='_compute_container_ids' copy=False index=True inverse='_inverse_container_ids' store=True string='Containers' args: 'purchase.container'
Public methods (0)

No public methods.

New fields (1)
  • container_id Many2one → purchase.container
    copy=False index=True string='Container' args: 'purchase.container'
Public methods (0)

No public methods.

STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/purchase-workflow
PULL REQUEST
PULL REQUEST[19.0][MIG] purchase_container (#3055)