TIP: You can type at any time to perform a new search.
Inventory
stock · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Supply Chain/Inventory
- Folder size
- 29.07 MB
- License
- LGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://www.odoo.com/app/inventory
- Last tracking update
- 2026-08-15 22:44:15
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, odoo, Atul Patel, Odoo Translation Bot, Aaron Bohy, Lucas Perais (lpe), Adrien Dieudonne, Christophe Monniez, Arnold Moyaux, Julien Castiaux, Denis Roussel, Victor Feyens, William Henrotin, svs-odoo, Lois Rilo, Alvaro Fuentes, std-odoo, Prakash Prajapati, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, Pierre Paridans, William Braeckman, Ashmawy Walid (was), Miquel Raïch, JF Aubert, David (dafr), Abdelouahab (abla), Aurelien van Delft (avd), luvi, Hubert Van De Walle, Renaud Thiry, Vincent Larcin, Louis Wicket (wil), alsh-odoo, Adrien Widart (awt), Victor Piryns (pivi), Djamel Touati, Pieter Claeys (clpi), Andrew Gavgavian, clesgow, Levi Siuzdak (sile), Naman Shah, Dylan Kiss (dyki), Jinane Maksoud, ノウラ, kir-odoo, Odoo, bram1000, Martin Maes, tanghulu0608, Xavier Bol (xbo), Paweł Fertyk, adda-odoo, omra-odoo, sesn-odoo, Walid (wasa), stefanorigano (SRI), aktr-odoo, lase@odoo.com, Quentin Wolfs, Aurelien MARIE (auma), Ethan Vincent, reka-odoo, yosa-odoo, Nathaniel (naja), vava-odoo, Julien Carion (juca), Bastien Fafchamps (bafa), kcv-odoo, Ritika Rathore, Louis Gobert, nihp-odoo, Chrysanthe (chgo), sami odoo, asno-odoo, Junqi Wu, mano-odoo, Max Whale, Hussein Ebrahim(hyhe), Patricia Daloze (pda), yagp-odoo, Mohammad Abdulmoneim, Edoardo Piroli, dhpa-odoo, Mathias Mathy (MAMA), komugi-al, Stéphane Diez, kawkb, dhha-odoo, gteboul, Hammad Arif, Pierre Pulinckx (PIPU), Jitendra Prajapat, Ian, Victor Miguel Armenta Carrillo, Arthur Nanson, st-yes, David Van Droogenbroeck (DROD), elhayyany, pkgu-odoo, Mohammad Abdulmoneim (abdu), djameltouati, khsr-odoo, Pierre Lamotte (pila), Pierre Pulinckx, Bastien PIERRE, Michaël Mattiello, Corentin Heinix (cohe), Corentin Lombard, kasm, Mahdi Alijani (malj), MaximeNoirhomme, chha-odoo, plha-odoo, Krzysztof Magusiak (krma), Omar (OSAH), Ajit Singh, krip-odoo, joseph, Robin Engels (roen), Basioni (basm), sagu-odoo, vlst-odoo, Maeva De Keyser (MDEK), utma-odoo, Hadi El Yakhni, Ester Andreetto, nsirjacobs, bhna-odoo, defl, MAGREMENT, temo-odoo, aksi-odoo, Ze Chen (zeche), mohannedah, Junqi, BT-anieto, kinhosz, agbr-odoo, depr-odoo, Lulu Grimalkin (lugr), rare-odoo, felin-odoo, sawer, Lancelot Semal, Laetitia (ldau), adip-odoo, Quentin Colla (qucol), ABE-Mark45, path-odoo, Amr Elkhatieb, Cooper Spinelli, Robert Smith (rosm), Elliot ELCO, hossamelgendy1, YoussefM890, damrOdoo, Joe Wesnofske, =, srap-odoo, saurabh, Nguyen Nguyen (ngtpn), Zachary (zavan), sako-odoo, tpma-odoo, Jonathan Swales, Youssef (abyo), msho-odoo, lase, Atri Patel(atpa), chpa-odoo, hapt-odoo, Nuno, Joseph Nechleba (jonec), Youssef, Sanket Tank(stan), Thomas Schneider, qucol-odoo, Shiv Bhadaniya (sbha), kush-odoo, Antonio Pimentel, Mathias Mathy, ddba-odoo
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- fieldservice_stock, hotel_reservation, l10n_co_electronic_invoice, l10n_din5008_stock, l10n_ec_stock, l10n_eu_product_adr, l10n_in_stock, l10n_mx_cfdi_waybill, l10n_ro_stock, l10n_tr_nilvera_edispatch, mrp, partner_delivery_info, pms_stock, product_brand_stock, product_class, product_expiry, product_harmonized_system_stock, product_net_weight, project_stock, shopify_connector, stock_account, stock_available, stock_delivery_note, stock_demand_estimate, stock_inventory, stock_inventory_justification, stock_inventory_lockdown, stock_location_is_sublocation, stock_location_position, stock_maintenance, stock_move_quantity_product_uom, stock_orderpoint_safety_stock, stock_picking_batch, stock_picking_invoicing, stock_picking_report_external_note, stock_picking_show_linked, stock_picking_tier_validation, stock_picking_type_user_restriction, stock_picking_volume, stock_product_demand_info, stock_product_pack, stock_quant_manual_assign, stock_replenishment_mrp_bom_selection, stock_request, stock_sms, stock_warehouse_calendar, tms_product
- Description
Code Analysis ⓘ
Views touched (177)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
alternative_zpl_label |
alternative_zpl_label | ir.ui.view | qweb | New |
exception_on_picking |
exception_on_picking | ir.ui.view | qweb | New |
help_message_template |
Help Message | ir.ui.view | qweb | New |
inventory_warning_reset_view |
inventory.reset.warning.view | stock.inventory.warning | form | New |
inventory_warning_set_view |
inventory.set.warning.view | stock.inventory.warning | form | New |
jewelry_zpl_label |
jewelry_zpl_label | ir.ui.view | qweb | New |
label_lot_template_view |
label_lot_template_view | ir.ui.view | qweb | New |
label_package_history_template_view |
label_package_history_template_view | ir.ui.view | qweb | New |
label_package_template_view |
label_package_template_view | ir.ui.view | qweb | New |
label_packaging_barcode_view |
label_packaging_barcode_view | ir.ui.view | qweb | New |
label_picking_type_view |
label_picking_type_view | ir.ui.view | qweb | New |
label_product_product_view |
label_product_product_view | ir.ui.view | qweb | New |
label_transfer_template_view_pdf |
label_transfer_template_view_pdf | ir.ui.view | qweb | New |
label_transfer_template_view_zpl |
label_transfer_template_view_zpl | ir.ui.view | qweb | New |
lot_label_layout_form_picking |
lot.label.layout.form | lot.label.layout | form | New |
message_body |
message_body | ir.ui.view | qweb | New |
message_head |
message_head | ir.ui.view | qweb | New |
normal_zpl_label |
normal_zpl_label | ir.ui.view | qweb | New |
package_history_search_view |
stock.package.history.search | stock.package.history | search | New |
picking_label_type_form |
picking.label.type.form | picking.label.type | form | New |
product_category_form_view_inherit |
product.category.form | product.category | form | Inherits product.product_category_form_view |
product_form_view_procurement_button |
product.product.procurement | product.product | form | Inherits product.product_normal_form_view |
product_label_layout_form_picking |
product.label.layout.form | product.label.layout | form | Inherits product.product_label_layout_form |
product_label_layout_form_stock |
product.label.layout.form.stock | product.label.layout | form | Inherits product.product_label_layout_form |
product_product_stock_tree |
product.product.stock.list | product.product | list | New |
product_search_form_view_stock |
product.search.stock.form | product.product | form | Inherits product.product_search_form_view |
product_search_form_view_stock_report |
product.product.search.stock.form.stock.report | product.product | form | Inherits stock_product_search_form_view |
product_template_form_view_procurement_button |
product.template_procurement | product.template | form | Inherits product.product_template_only_form_view |
product_template_kanban_stock_view |
Product Template Kanban Stock | product.template | kanban | Inherits product.product_template_kanban_view |
product_template_search_form_view_stock |
product.template.search.stock.form | product.template | form | Inherits product.product_template_search_view |
product_template_search_view_inherit_stock |
product.template.search.inherit.stock | product.template | search | Inherits product.product_template_search_view |
product_uom_form_view_inherit |
uom.uom.form.inherit | uom.uom | form | Inherits uom.product_uom_form_view |
product_uom_tree_view_inherit |
uom.uom.list.inherit | uom.uom | list | Inherits uom.product_uom_tree_view |
product_view_kanban_catalog |
product.view.kanban.catalog.inherit.stock | product.product | kanban | Inherits product.product_view_kanban_catalog |
quant_search_view |
stock.quant.search | stock.quant | search | New |
replenishment_option_tree_view |
stock.replenishment.option.list.view | stock.replenishment.option | list | New |
replenishment_option_warning_view |
stock.replenishment.warning.view | stock.replenishment.option | form | New |
report_delivery_document |
report_delivery_document | ir.ui.view | qweb | New |
report_deliveryslip |
report_deliveryslip | ir.ui.view | qweb | New |
report_generic_barcode |
report_generic_barcode | ir.ui.view | qweb | New |
report_inventory |
report_inventory | ir.ui.view | qweb | New |
report_location_barcode |
report_location_barcode | ir.ui.view | qweb | New |
report_lot_label |
report_lot_label | ir.ui.view | qweb | New |
report_package_barcode |
report_package_barcode | ir.ui.view | qweb | New |
report_package_barcode_content |
report_package_barcode_content | ir.ui.view | qweb | New |
report_package_barcode_small |
report_package_barcode_small | ir.ui.view | qweb | New |
report_package_history_barcode |
report_package_history_barcode | ir.ui.view | qweb | New |
report_package_history_barcode_small |
report_package_history_barcode_small | ir.ui.view | qweb | New |
report_picking |
report_picking | ir.ui.view | qweb | New |
report_picking_packages |
report_picking_packages | ir.ui.view | qweb | New |
report_picking_type_label |
report_picking_type_label | ir.ui.view | qweb | New |
report_reception |
report_reception | ir.ui.view | qweb | New |
report_reception_body |
report_reception_body | ir.ui.view | qweb | New |
report_reception_report_label |
report_reception_report_label | ir.ui.view | qweb | New |
report_return_document |
report_return_document | ir.ui.view | qweb | New |
report_stock_body_print |
report_stock_body_print | ir.ui.view | qweb | New |
report_stock_inventory_print |
report_stock_inventory_print | ir.ui.view | qweb | New |
report_stock_rule |
report_stock_rule | ir.ui.view | qweb | New |
report_stock_rule_left_arrow |
report_stock_rule_left_arrow | ir.ui.view | qweb | New |
report_stock_rule_line |
report_stock_rule_line | ir.ui.view | qweb | New |
report_stock_rule_right_arrow |
report_stock_rule_right_arrow | ir.ui.view | qweb | New |
report_stock_rule_suspension_points |
report_stock_rule_suspension_points | ir.ui.view | qweb | New |
report_stock_rule_vertical_bar |
report_stock_rule_vertical_bar | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.stock | res.config.settings | form | Inherits base.res_config_settings_view_form |
search_product_lot_filter |
Production Lots Filter | stock.lot | search | New |
small_zpl_label |
small_zpl_label | ir.ui.view | qweb | New |
stock.report_return_slip |
stock.report_return_slip | ir.ui.view | qweb | New |
stock_inventory_adjustment_name_form_view |
stock.inventory.adjustment.name.form.view | stock.inventory.adjustment.name | form | New |
stock_inventory_conflict_form_view |
stock.inventory.conflict.form.view | stock.inventory.conflict | form | New |
stock_inventory_request_count_form_view |
stock.request.count.form.view | stock.request.count | form | New |
stock_location_route_form_view |
stock.location.route.form | stock.route | form | New |
stock_location_route_tree |
stock.location.route.list | stock.route | list | New |
stock_location_route_view_search |
stock.location.route.search | stock.route | search | New |
stock_location_view_form_editable |
stock.location.form.editable | stock.location | form | Inherits stock.view_location_form |
stock_location_view_tree2_editable |
stock.location.list2.editable | stock.location | list | Inherits stock.view_location_tree2 |
stock_move_line_view_search |
stock.move.line.search | stock.move.line | search | New |
stock_package_destination_form_view |
stock.package.destination.view | stock.package.destination | form | New |
stock_package_type_form |
stock.package.type.form | stock.package.type | form | New |
stock_package_type_tree |
stock.package.type.list | stock.package.type | list | New |
stock_package_view_add_list |
stock.package.add.package.list | stock.package | list | New |
stock_package_view_form |
stock.package.form | stock.package | form | New |
stock_package_view_kanban |
stock.package.kanban | stock.package | kanban | New |
stock_package_view_list |
stock.package.list | stock.package | list | New |
stock_package_view_list_editable |
stock.package.list.editable | stock.package | list | New |
stock_package_view_search |
stock.package.search | stock.package | search | New |
stock_picking_calendar |
stock.picking.calendar | stock.picking | calendar | New |
stock_picking_kanban |
stock.picking.kanban | stock.picking | kanban | New |
stock_picking_type_kanban |
stock.picking.type.kanban | stock.picking.type | kanban | New |
stock_picking_view_activity |
stock.picking.view.activity | stock.picking | activity | New |
stock_product_search_form_view |
product.product.search.stock.form | product.product | form | Inherits product.product_search_form_view |
stock_put_in_pack_form |
stock.put.in.pack.form | stock.put.in.pack | form | New |
stock_putaway_list |
stock.putaway.rule.list | stock.putaway.rule | list | New |
stock_quant_relocate_view_form |
Stock Relocation | stock.quant.relocate | form | New |
stock_quant_view_graph |
stock.quant.graph | stock.quant | graph | New |
stock_reference_form_view |
stock.reference.form | stock.reference | form | New |
stock_reference_search_view |
stock.reference.search | stock.reference | search | New |
stock_reference_tree_view |
stock.reference.list | stock.reference | list | New |
stock_reorder_report_search |
stock.warehouse.orderpoint.reorder.search | stock.warehouse.orderpoint | search | New |
stock_report_delivery_aggregated_move_lines |
stock_report_delivery_aggregated_move_lines | ir.ui.view | qweb | New |
stock_report_delivery_has_serial_move_line |
stock_report_delivery_has_serial_move_line | ir.ui.view | qweb | New |
stock_report_delivery_no_package_section_line |
stock_report_delivery_no_package_section_line | ir.ui.view | qweb | New |
stock_report_delivery_package_section_line |
stock_report_delivery_package_section_line | ir.ui.view | qweb | New |
stock_report_view_graph |
stock_report_view_graph | report.stock.quantity | graph | New |
stock_scrap_form_view |
stock.scrap.form | stock.scrap | form | New |
stock_scrap_form_view2 |
stock.scrap.form2 | stock.scrap | form | New |
stock_scrap_search_view |
stock.scrap.search | stock.scrap | search | New |
stock_scrap_tree_view |
stock.scrap.list | stock.scrap | list | New |
stock_scrap_view_kanban |
stock.scrap.kanban | stock.scrap | kanban | New |
stock_storage_category_capacity_tree |
stock.storage.category.capacity.list | stock.storage.category.capacity | list | New |
stock_storage_category_form |
stock.storage.category.form | stock.storage.category | form | New |
stock_storage_category_tree |
stock.storage.category.list | stock.storage.category | list | New |
stock_warehouse_view_search |
stock.warehouse.search | stock.warehouse | search | New |
stock_warn_insufficient_qty_form_view |
stock.warn.insufficient.qty | stock.warn.insufficient.qty | form | New |
stock_warn_insufficient_qty_scrap_form_view |
stock.warn.insufficient.qty.scrap | stock.warn.insufficient.qty.scrap | form | Inherits stock.stock_warn_insufficient_qty_form_view |
track_move_template |
track_move_template | ir.ui.view | qweb | New |
view_backorder_confirmation |
stock_backorder_confirmation | stock.backorder.confirmation | form | New |
view_location_form |
stock.location.form | stock.location | form | New |
view_location_search |
stock.location.search | stock.location | search | New |
view_location_tree2 |
stock.location.list | stock.location | list | New |
view_move_form |
stock.move.form | stock.move | form | New |
view_move_graph |
stock.move.graph | stock.move | graph | New |
view_move_kandan |
stock.move.kanban | stock.move | kanban | New |
view_move_line_form |
stock.move.line.form | stock.move.line | form | New |
view_move_line_mobile_form |
stock.move.line.mobile.form | stock.move.line | form | Inherits stock.view_move_line_form |
view_move_line_tree |
stock.move.line.list | stock.move.line | list | New |
view_move_line_tree_detailed |
stock.move.line.list.detailed | stock.move.line | list | New |
view_move_pivot |
stock.move.pivot | stock.move | pivot | New |
view_move_search |
stock.move.search | stock.move | search | New |
view_move_tree |
stock.move.list | stock.move | list | New |
view_move_tree_receipt_picking |
stock.move.tree2 | stock.move | list | New |
view_partner_stock_form |
res.partner.stock.property.form.inherit | res.partner | form | Inherits mail.res_partner_view_form_inherit_mail |
view_partner_stock_warnings_form |
res.partner.stock.warning | res.partner | form | Inherits base.view_partner_form |
view_picking_form |
stock.picking.form | stock.picking | form | New |
view_picking_internal_search |
stock.picking.internal.search | stock.picking | search | New |
view_picking_move_tree |
stock.picking.move.list | stock.move | list | New |
view_picking_type_form |
Operation Types | stock.picking.type | form | New |
view_picking_type_tree |
Operation types | stock.picking.type | list | New |
view_pickingtype_filter |
stock.picking.type.filter | stock.picking.type | search | New |
view_product_replenish |
Replenish | product.replenish | form | New |
view_production_lot_form |
stock.production.lot.form | stock.lot | form | New |
view_production_lot_kanban |
stock.production.lot.kanban | stock.lot | kanban | New |
view_production_lot_tree |
stock.production.lot.list | stock.lot | list | New |
view_putaway_search |
stock.putaway.rule.search | stock.putaway.rule | search | New |
view_removal |
product.removal.form | product.removal | form | New |
view_route_rule_form |
stock.rule.form | stock.rule | form | Inherits stock.view_stock_rule_form |
view_stock_move_line_detailed_operation_tree |
stock.move.line.operations.list | stock.move.line | list | New |
view_stock_move_line_kanban |
stock.move.line.kanban | stock.move.line | kanban | New |
view_stock_move_line_operation_tree |
stock.move.line.operations.list | stock.move.line | list | New |
view_stock_move_line_pivot |
stock.move.line.pivot | stock.move.line | pivot | New |
view_stock_move_operations |
stock.move.operations.form | stock.move | form | New |
view_stock_orderpoint_snooze |
Stock Orderpoint Snooze | stock.orderpoint.snooze | form | New |
view_stock_package_history_list |
stock.package.history.list | stock.package.history | list | New |
view_stock_product_template_tree |
product.template.stock.list.inherit | product.template | list | Inherits product.product_template_tree_view |
view_stock_product_tree |
product.stock.list.inherit | product.product | list | Inherits product.product_product_tree_view |
view_stock_quant_form |
view.stock.quant.form | stock.quant | form | New |
view_stock_quant_form_editable |
stock.quant.form.editable | stock.quant | form | New |
view_stock_quant_pivot |
stock.quant.pivot | stock.quant | pivot | New |
view_stock_quant_tree |
stock.quant.list | stock.quant | list | Inherits stock.view_stock_quant_tree_simple |
view_stock_quant_tree_editable |
stock.quant.list.editable | stock.quant | list | New |
view_stock_quant_tree_inventory_editable |
stock.quant.inventory.list.editable | stock.quant | list | New |
view_stock_quant_tree_simple |
stock.quant.list | stock.quant | list | New |
view_stock_quantity_history |
Inventory Report at Date | stock.quantity.history | form | New |
view_stock_replenishment_info |
Stock Replenishment Information | stock.replenishment.info | form | New |
view_stock_return_picking_form |
Return lines | stock.return.picking | form | New |
view_stock_rule_filter |
stock.rule.select | stock.rule | search | New |
view_stock_rule_form |
stock.rule.form | stock.rule | form | New |
view_stock_rule_tree |
stock.rule.list | stock.rule | list | New |
view_stock_rules_report |
Stock Rules Report | stock.rules.report | form | New |
view_stock_warehouse_orderpoint_kanban |
stock.warehouse.orderpoint.kanban | stock.warehouse.orderpoint | kanban | New |
view_template_property_form |
product.template.stock.property.form.inherit | product.template | form | Inherits product.product_template_form_view |
view_warehouse |
stock.warehouse | stock.warehouse | form | New |
view_warehouse_orderpoint_form |
stock.warehouse.orderpoint.form | stock.warehouse.orderpoint | form | New |
view_warehouse_orderpoint_tree_editable |
stock.warehouse.orderpoint.list.editable | stock.warehouse.orderpoint | list | New |
view_warehouse_orderpoint_tree_editable_show_trigger |
stock.warehouse.orderpoint.list.editable.inherit.show_trigger | stock.warehouse.orderpoint | list | Inherits stock.view_warehouse_orderpoint_tree_editable |
view_warehouse_tree |
stock.warehouse.list | stock.warehouse | list | New |
vpicktree |
stock.picking.list | stock.picking | list | New |
warehouse_orderpoint_search |
stock.warehouse.orderpoint.search | stock.warehouse.orderpoint | search | New |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/stock/<string:output_format>/<string:report_name> |
StockReportController.report |
user | http | ALL |
Models touched (63)
New fields (1)
-
typeSelectionondelete={'weight': 'set default', 'location': 'set default', 'lot': 'set default', 'package': 'set default'}selection_add=[('weight', 'Weighted Product'), ('location', 'Location'), ('lot', 'Lot'), ('package', 'Package')]
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (3)
-
label_quantitySelectiondefault='lots'help="If the UoM of a lot is not 'units', the lot will be considered as a unit and only one label will be printed for this lot."required=Truestring='Quantity to print' args: [('lots', 'One per lot/SN'), ('units', 'One per unit')] -
move_line_idsMany2many → stock.move.lineargs: 'stock.move.line' -
print_formatSelectiondefault='4x12'required=Truestring='Format' args: [('4x12', '4 x 12'), ('zpl', 'ZPL Labels')]
-
process(self)
New fields (2)
-
label_typeSelectiondefault='products'required=Truestring='Labels to print' args: [('products', 'Product Labels'), ('lots', 'Lot/SN Labels')] -
picking_idsMany2many → stock.pickingargs: 'stock.picking'
-
process(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (7)
-
filter_for_stock_putaway_ruleBooleansearch='_search_filter_for_stock_putaway_rule'store=False args: 'stock.putaway.rule' -
packaging_reserve_methodSelectiondefault='partial'help='Reserve Only Full Packagings: will not reserve partial packagings. If customer orders 2 pallets of 1000 units each and you only have 1600 in stock, then only 1000 will be reserved\nReserve Partial Packagings: allow reserving partial packagings. If customer orders 2 pallets of 1000 units each and you only have 1600 in stock, then 1600 will be reserved'string='Reserve Packagings' args: [('full', 'Reserve Only Full Packagings'), ('partial', 'Reserve Partial Packagings')] -
parent_route_idsMany2many → stock.routecompute='_compute_parent_route_ids'string='Parent Routes' args: 'stock.route' -
putaway_rule_idsOne2many → stock.putaway.ruleargs: 'stock.putaway.rule', 'category_id', 'Putaway Rules' -
removal_strategy_idMany2one → product.removalhelp='Set a specific removal strategy that will be used regardless of the source location for this product category.\n\nFIFO: products/lots that were stocked first will be moved out first.\nLIFO: products/lots that were stocked last will be moved out first.\nClosest location: products/lots closest to the target location will be moved out first.\nFEFO: products/lots with the closest removal date will be moved out first (the availability of this method depends on the "Expiration Dates" setting).\nLeast Packages: FIFO but with the least number of packages possible when there are several packages containing the same product.'tracking=True args: 'product.removal', 'Force Removal Strategy' -
route_idsMany2many → stock.routedomain=[('product_categ_selectable', '=', True)] args: 'stock.route', 'stock_route_categ', 'categ_id', 'route_id', 'Routes' -
total_route_idsMany2many → stock.routecompute='_compute_total_route_ids'readonly=Truesearch='_search_total_route_ids'string='Total routes' args: 'stock.route'
No public methods.
New fields (5)
-
move_idsMany2many → stock.moveargs: 'stock.move' -
move_quantitySelectiondefault='custom'required=Truestring='Quantity to print' args: [('move', 'Operation Quantities'), ('custom', 'Custom')] -
print_formatSelectionondelete={'zpl': 'set default', 'zplxprice': 'set default'}selection_add=[('zpl', 'ZPL Labels'), ('zplxprice', 'ZPL Labels with price')] -
zpl_previewImagedefault=_get_zpl_label_placeholderreadonly=True args: 'ZPL Preview' -
zpl_templateSelectiondefault='normal'required=Truestring='ZPL Template' args: [('normal', 'Normal (2.25" x 1.25")'), ('small', 'Small (1.25" x 1.00")'), ('alternative', 'Alternative (2.00" x 1.00")'), ('jewelry', 'Jewelry (2.20" x 0.50")')]
No public methods.
New fields (20)
-
free_qtyFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'help="Available quantity (computed as Quantity On Hand - reserved quantity)\nIn a context with a single Stock Location, this includes goods stored in this location, or any of its children.\nIn a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods stored in any Stock Location with 'internal' type."search='_search_free_qty' args: 'Free To Use Quantity ' -
incoming_qtyFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'help="Quantity of planned incoming products.\nIn a context with a single Stock Location, this includes goods arriving to this Location, or any of its children.\nIn a context with a single Warehouse, this includes goods arriving to the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods arriving to any Stock Location with 'internal' type."search='_search_incoming_qty' args: 'Incoming' -
lot_properties_definitionPropertiesDefinitionargs: 'Lot Properties' -
nbr_moves_inIntegercompute='_compute_nbr_moves'compute_sudo=Falsehelp='Number of incoming stock moves in the past 12 months' -
nbr_moves_outIntegercompute='_compute_nbr_moves'compute_sudo=Falsehelp='Number of outgoing stock moves in the past 12 months' -
nbr_reordering_rulesIntegercompute='_compute_nbr_reordering_rules'compute_sudo=False args: 'Reordering Rules' -
orderpoint_idsOne2many → stock.warehouse.orderpointargs: 'stock.warehouse.orderpoint', 'product_id', 'Minimum Stock Rules' -
outgoing_qtyFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'help="Quantity of planned outgoing products.\nIn a context with a single Stock Location, this includes goods leaving this Location, or any of its children.\nIn a context with a single Warehouse, this includes goods leaving the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods leaving any Stock Location with 'internal' type."search='_search_outgoing_qty' args: 'Outgoing' -
putaway_rule_idsOne2many → stock.putaway.ruleargs: 'stock.putaway.rule', 'product_id', 'Putaway Rules' -
qty_availableFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'help="Current quantity of products.\nIn a context with a single Stock Location, this includes goods stored at this Location, or any of its children.\nIn a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\nstored in the Stock Location of the Warehouse of this Shop, or any of its children.\nOtherwise, this includes goods stored in any Stock Location with 'internal' type."inverse='_inverse_qty_available'search='_search_qty_available' args: 'Quantity On Hand' -
reordering_max_qtyFloatcompute='_compute_nbr_reordering_rules'compute_sudo=False -
reordering_min_qtyFloatcompute='_compute_nbr_reordering_rules'compute_sudo=False -
show_forecasted_qty_status_buttonBooleancompute='_compute_show_qty_status_button' -
show_on_hand_qty_status_buttonBooleancompute='_compute_show_qty_status_button' -
show_qty_update_buttonBooleancompute='_compute_show_qty_update_button' -
stock_move_idsOne2many → stock.moveargs: 'stock.move', 'product_id' -
stock_quant_idsOne2many → stock.quantargs: 'stock.quant', 'product_id' -
storage_category_capacity_idsOne2many → stock.storage.category.capacityargs: 'stock.storage.category.capacity', 'product_id', 'Storage Category Capacity' -
valid_eanBooleancompute='_compute_valid_ean' args: 'Barcode is valid EAN' -
virtual_availableFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'help="Forecast quantity (computed as Quantity On Hand - Outgoing + Incoming)\nIn a context with a single Stock Location, this includes goods stored in this location, or any of its children.\nIn a context with a single Warehouse, this includes goods stored in the Stock Location of this Warehouse, or any of its children.\nOtherwise, this includes goods stored in any Stock Location with 'internal' type."search='_search_virtual_available' args: 'Forecasted Quantity'
-
action_open_product_lot(self) -
action_open_quants(self) -
action_product_forecast_report(self) -
action_view_orderpoints(self) -
action_view_related_putaway_rules(self) -
action_view_routes(self) -
action_view_stock_move_lines(self) -
action_view_storage_category_capacity(self) -
fields_get(self, allfields=None, attributes=None)@api.model -
filter_has_routes(self)Return products with route_ids or whose categ_id has total_route_ids. -
get_components(self) -
get_total_routes(self) -
view_header_get(self, view_id, view_type)@api.model -
write(self, vals)
New fields (2)
-
methodCharhelp='FIFO, LIFO...'required=Truetranslate=True args: 'Method' -
nameCharrequired=Truetranslate=True args: 'Name'
No public methods.
New fields (11)
-
allowed_uom_idsMany2many → uom.uomcompute='_compute_allowed_uom_ids' args: 'uom.uom' -
company_idMany2one → res.companyargs: 'res.company' -
date_plannedDatetimecompute='_compute_date_planned'help='Date at which the replenishment should take place.'precompute=Truereadonly=Falserequired=Truestore=True args: 'Scheduled Date' -
forecast_uom_idMany2onerelated='product_id.uom_id' -
forecasted_quantityFloatcompute='_compute_forecasted_quantity'string='Forecasted Quantity' -
product_has_variantsBooleandefault=Falserequired=True args: 'Has variants' -
product_idMany2one → product.productrequired=Truestring='Product' args: 'product.product' -
product_tmpl_idMany2one → product.templaterequired=Truestring='Product Template' args: 'product.template' -
product_uom_idMany2one → uom.uomdomain="[('id', 'in', allowed_uom_ids)]"required=Truestring='Unity of measure' args: 'uom.uom' -
quantityFloatdefault=1required=True args: 'Quantity' -
warehouse_idMany2one → stock.warehousecheck_company=Truerequired=Truestring='Warehouse' args: 'stock.warehouse'
-
default_get(self, fields)@api.model -
launch_replenishment(self)
New fields (29)
-
description_pickingTexttranslate=True args: 'Description on Picking' -
description_pickinginTexttranslate=True args: 'Description on Receptions' -
description_pickingoutTexttranslate=True args: 'Description on Delivery Orders' -
has_available_route_idsBooleancompute='_compute_has_available_route_ids'default=<expr> args: 'Routes can be selected on this product' -
incoming_qtyFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'search='_search_incoming_qty' args: 'Incoming' -
is_storableBooleancompute='compute_is_storable'default=Falsehelp='A storable product is a product for which you manage stock.'precompute=Truereadonly=Falsestore=Truetracking=True args: 'Track Inventory' -
location_idMany2one → stock.locationstore=False args: 'stock.location', 'Location' -
lot_sequence_idMany2one → ir.sequencedefault=<expr>help='Technical Field: The Ir.Sequence record that is used to generate serial/lot numbers for this product' args: 'ir.sequence', 'Serial/Lot Numbers Sequence' -
nbr_moves_inIntegercompute='_compute_nbr_moves'compute_sudo=Falsehelp='Number of incoming stock moves in the past 12 months' -
nbr_moves_outIntegercompute='_compute_nbr_moves'compute_sudo=Falsehelp='Number of outgoing stock moves in the past 12 months' -
nbr_reordering_rulesIntegercompute='_compute_nbr_reordering_rules'compute_sudo=False args: 'Reordering Rules' -
next_serialCharcompute='_compute_next_serial' -
outgoing_qtyFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'search='_search_outgoing_qty' args: 'Outgoing' -
property_stock_inventoryMany2one → stock.locationcheck_company=Truecompany_dependent=Truedomain="[('usage', '=', 'inventory'), '|', ('company_id', '=', False), ('company_id', '=', allowed_company_ids[0])]"help='This stock location will be used, instead of the default one, as the source location for stock moves generated when you do an inventory.' args: 'stock.location', 'Inventory Location' -
property_stock_productionMany2one → stock.locationcheck_company=Truecompany_dependent=Truedomain="[('usage', '=', 'production'), '|', ('company_id', '=', False), ('company_id', '=', allowed_company_ids[0])]"help='This stock location will be used, instead of the default one, as the source location for stock moves generated by manufacturing orders.' args: 'stock.location', 'Production Location' -
qty_availableFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'inverse='_inverse_qty_available'search='_search_qty_available' args: 'Quantity On Hand' -
reordering_max_qtyFloatcompute='_compute_nbr_reordering_rules'compute_sudo=False -
reordering_min_qtyFloatcompute='_compute_nbr_reordering_rules'compute_sudo=False -
responsible_idMany2one → res.userscheck_company=Truecompany_dependent=Truedefault=<expr>help='This user will be responsible of the next activities related to logistic operations for this product.'string='Responsible' args: 'res.users' -
route_from_categ_idsMany2manyrelated='categ_id.total_route_ids'related_sudo=Falsestring='Category Routes' -
route_idsMany2many → stock.routedepends_context=['company', 'allowed_companies']domain=[('product_selectable', '=', True)]help='Depending on the modules installed, this will allow you to define the route of the product: whether it will be bought, manufactured, replenished on order, etc.' args: 'stock.route', 'stock_route_product', 'product_id', 'route_id', 'Routes' -
sale_delayIntegerdefault=0help="Delivery lead time, in days. It's the number of days, promised to the customer, between the confirmation of the sales order and the delivery." args: 'Customer Lead Time' -
serial_prefix_formatCharcompute='_compute_serial_prefix_format'help=SERIAL_PREFIX_FORMAT_HELP_TEXTinverse='_inverse_serial_prefix_format' args: 'Custom Lot/Serial' -
show_forecasted_qty_status_buttonBooleancompute='_compute_show_qty_status_button' -
show_on_hand_qty_status_buttonBooleancompute='_compute_show_qty_status_button' -
show_qty_update_buttonBooleancompute='_compute_show_qty_update_button' -
trackingSelectioncompute='_compute_tracking'default='none'help='Ensure the traceability of a storable product in your warehouse.'precompute=Truereadonly=Falserequired=Truestore=Truestring='Tracking' args: [('serial', 'By Unique Serial Number'), ('lot', 'By Lots'), ('none', 'By Quantity')] -
virtual_availableFloatcompute='_compute_quantities'compute_sudo=Falsedigits='Product Unit'search='_search_virtual_available' args: 'Forecasted Quantity' -
warehouse_idMany2one → stock.warehousestore=False args: 'stock.warehouse', 'Warehouse'
-
action_open_product_lot(self) -
action_open_quants(self) -
action_open_routes_diagram(self) -
action_product_tmpl_forecast_report(self) -
action_view_orderpoints(self) -
action_view_related_putaway_rules(self) -
action_view_stock_move_lines(self) -
action_view_storage_category_capacity(self) -
compute_is_storable(self)@api.depends('type') -
copy(self, default=None) -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (7)
-
company_idMany2one → res.companyreadonly=True args: 'res.company' -
dateDatereadonly=Truestring='Date' -
product_idMany2one → product.productreadonly=Truestring='Product' args: 'product.product' -
product_qtyFloatreadonly=Truestring='Quantity' -
product_tmpl_idMany2one → product.templatereadonly=True args: 'product.template' -
stateSelectionreadonly=Truestring='State' args: [('forecast', 'Forecasted Stock'), ('in', 'Forecasted Receipts'), ('out', 'Forecasted Deliveries')] -
warehouse_idMany2one → stock.warehousereadonly=True args: 'stock.warehouse'
-
init(self)Because we can transfer a product from a warehouse to another one thanks to a stock move, we need to generate some fake stock moves before processing all of them. That way, in case of an interwarehouse transfer, we will have an outgoing stock move for the source warehouse and an incoming stock move for the destination one. To do so, we select all relevant SM (incoming, outgoing and interwarehouse), then we duplicate all these SM and edit the values: - product_qty is kept if the SM is not the duplicated one or if the SM is an interwarehouse one otherwise, we set the value to 0 (this allows us to filter it out during the SM processing) - the source warehouse is kept if the SM is not the duplicated one - the dest warehouse is kept if the SM is not the duplicated one and is not an interwarehouse OR the SM is the duplicated one and is an interwarehouse
New fields (0)
No new fields.
Public methods (3)-
action_assign(self, move_ids, qtys, in_ids)Assign picking move(s) [i.e. link] to other moves (i.e. make them MTO) :param move_id ids: the ids of the moves to make MTO :param qtys list: the quantities that are being assigned to the move_ids (in same order as move_ids) :param in_ids ids: the ids of the moves that are to be assigned to move_ids -
action_unassign(self, move_id, qty, in_ids)Unassign moves [i.e. unlink] from a move (i.e. make non-MTO) :param move_id id: the id of the move to make non-MTO :param qty float: the total quantity that is being unassigned from move_id :param in_ids ids: the ids of the moves that are to be unassigned from move_id -
get_report_data(self, docids, data)@api.model
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (8)
-
annual_inventory_dayIntegerdefault=31help='Day of the month when the annual inventory should occur. If zero or negative, then the first day of the month will be selected instead.\n If greater than the last day of a month, then the last day of the month will be selected instead.'string='Day of the month' -
annual_inventory_monthSelectiondefault='12'help='Annual inventory month for products not in a location with a cyclic inventory date. Set to no month if no automatic annual inventory.'string='Annual Inventory Month' args: [('1', 'January'), ('2', 'February'), ('3', 'March'), ('4', 'April'), ('5', 'May'), ('6', 'June'), ('7', 'July'), ('8', 'August'), ('9', 'September'), ('10', 'October'), ('11', 'November'), ('12', 'December')] -
horizon_daysFloatdefault=365help="Configure your horizon to trigger reordering rules earlier to get\n a head start on replenishment and avoid delays, or trigger it just-in-time\n ('0 days') to avoid overstocking."required=Truestring='Replenishment Horizon' -
internal_transit_location_idMany2one → stock.locationcheck_company=Trueondelete='restrict' args: 'stock.location', 'Internal Transit Location' -
stock_confirmation_typeSelectiondefault='sms' args: [('sms', 'SMS')] -
stock_mail_confirmation_template_idMany2one → mail.templatedefault=_default_confirmation_mail_templatedomain="[('model', '=', 'stock.picking')]"help='Email sent to the customer once the order is done.'string='Email Template confirmation picking' args: 'mail.template' -
stock_move_email_validationBooleandefault=False args: 'Email Confirmation picking' -
stock_text_confirmationBooleanargs: 'Stock Text Confirmation'
-
create(self, vals_list)@api.model_create_multi -
create_missing_inventory_loss_location(self)@api.model -
create_missing_production_location(self)@api.model -
create_missing_scrap_location(self)@api.model -
create_missing_scrap_sequence(self)@api.model -
create_missing_transit_location(self)@api.model -
create_missing_warehouse(self)@api.modelThis hook is used to add a warehouse on the first company of the database
New fields (38)
-
annual_inventory_dayIntegerreadonly=Falserelated='company_id.annual_inventory_day' -
annual_inventory_monthSelectionreadonly=Falserelated='company_id.annual_inventory_month' -
barcode_separatorCharconfig_parameter='stock.barcode_separator'help='Character(s) used to separate data contained within an aggregate barcode (i.e. a barcode containing multiple barcode encodings)' args: 'Separator' -
group_lot_on_delivery_slipBooleangroup='base.group_user,base.group_portal'implied_group='stock.group_lot_on_delivery_slip' args: 'Display Lots & Serial Numbers on Delivery Slips' -
group_stock_adv_locationBooleanhelp='Add and customize route operations to process product moves in your warehouse(s): e.g. unload > quality control > stock for incoming products, pick > pack > ship for outgoing products. \n You can also set putaway strategies on warehouse locations in order to send incoming products into specific child locations straight away (e.g. specific bins, racks).'implied_group='stock.group_adv_location' args: 'Multi-Step Routes' -
group_stock_lot_print_gs1Booleanimplied_group='stock.group_stock_lot_print_gs1' args: 'Print GS1 Barcodes for Lots & Serial Numbers' -
group_stock_multi_locationsBooleanhelp='Store products in specific locations of your warehouse (e.g. bins, racks) and to track inventory accordingly.'implied_group='stock.group_stock_multi_locations' args: 'Storage Locations' -
group_stock_production_lotBooleangroup='base.group_user,base.group_portal'implied_group='stock.group_production_lot' args: 'Lots & Serial Numbers' -
group_stock_reception_reportBooleanimplied_group='stock.group_reception_report' args: 'Reception Report' -
group_stock_sign_deliveryBooleanimplied_group='stock.group_stock_sign_delivery' args: 'Signature' -
group_stock_tracking_lotBooleanimplied_group='stock.group_tracking_lot' args: 'Packages' -
group_stock_tracking_ownerBooleanimplied_group='stock.group_tracking_owner' args: 'Consignment' -
group_warning_stockBooleanimplied_group='stock.group_warning_stock' args: 'Warnings for Stock' -
horizon_daysFloatreadonly=Falserelated='company_id.horizon_days' -
module_deliveryBooleanargs: 'Delivery Methods' -
module_delivery_bpostBooleanargs: 'bpost Connector' -
module_delivery_dhlBooleanargs: 'DHL Express Connector' -
module_delivery_easypostBooleanargs: 'Easypost Connector' -
module_delivery_enviaBooleanargs: 'Envia.com Connector' -
module_delivery_fedex_restBooleanargs: 'FedEx Connector' -
module_delivery_sendcloudBooleanargs: 'Sendcloud Connector' -
module_delivery_shiprocketBooleanargs: 'Shiprocket Connector' -
module_delivery_starshipitBooleanargs: 'Starshipit Connector' -
module_delivery_ups_restBooleanargs: 'UPS Connector' -
module_delivery_usps_restBooleanargs: 'USPS Connector' -
module_product_expiryBooleanhelp='Track following dates on lots & serial numbers: best before, removal, end of life, alert. \n Such dates are set automatically at lot/serial number creation based on values set on the product (in days).' args: 'Expiration Dates' -
module_quality_controlBooleanargs: 'Quality' -
module_quality_control_worksheetBooleanargs: 'Quality Worksheet' -
module_stock_barcodeBooleanargs: 'Barcode Scanner' -
module_stock_barcode_barcodelookupBooleanargs: 'Stock Barcode Database' -
module_stock_dropshippingBooleanargs: 'Dropshipping' -
module_stock_fleetBooleanargs: 'Dispatch Management System' -
module_stock_picking_batchBooleanargs: 'Batch, Wave & Cluster Transfers' -
module_stock_smsBooleanargs: 'SMS Confirmation' -
replenish_on_orderBooleancompute='_compute_replenish_on_order'inverse='_inverse_replenish_on_order' args: 'Replenish on Order (MTO)' -
stock_confirmation_typeSelectionreadonly=Falserelated='company_id.stock_confirmation_type'string='Stock Text Validation type' -
stock_move_email_validationBooleanreadonly=Falserelated='company_id.stock_move_email_validation' -
stock_text_confirmationBooleanreadonly=Falserelated='company_id.stock_text_confirmation'string='Stock Text Validation with stock move'
-
onchange_adv_location(self)@api.onchange('group_stock_adv_location') -
set_values(self)
New fields (3)
-
picking_warn_msgTextargs: 'Message for Stock Picking' -
property_stock_customerMany2one → stock.locationcheck_company=Truecompany_dependent=Truedomain="['|', ('company_id', '=', False), ('company_id', '=', allowed_company_ids[0])]"help='The stock location used as destination when sending goods to this contact.'string='Customer Location' args: 'stock.location' -
property_stock_supplierMany2one → stock.locationcheck_company=Truecompany_dependent=Truedomain="['|', ('company_id', '=', False), ('company_id', '=', allowed_company_ids[0])]"help='The stock location used as source when receiving goods from this contact.'string='Vendor Location' args: 'stock.location'
-
action_view_stock_serial(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (3)
-
backorder_confirmation_line_idsOne2many → stock.backorder.confirmation.linestring='Backorder Confirmation Lines' args: 'stock.backorder.confirmation.line', 'backorder_confirmation_id' -
pick_idsMany2many → stock.pickingargs: 'stock.picking', 'stock_picking_backorder_rel' -
show_transfersBoolean
-
default_get(self, fields)@api.model -
process(self) -
process_cancel_backorder(self)
New fields (3)
-
backorder_confirmation_idMany2one → stock.backorder.confirmationargs: 'stock.backorder.confirmation', 'Immediate Transfer' -
picking_idMany2one → stock.pickingargs: 'stock.picking', 'Transfer' -
to_backorderBooleanargs: 'To Backorder'
No public methods.
New fields (0)
No new fields.
Public methods (3)-
action_reserve_linked_picks(self, move_id)@api.model -
action_unreserve_linked_picks(self, move_id)@api.model -
get_report_values(self, docids, data=None)@api.model
New fields (0)
No new fields.
Public methods (1)-
get_report_values(self, docids, data=None)@api.model
New fields (3)
-
counting_dateDatetimedefault=fields.Datetime.nowhelp='Date at which the resulting moves will be dated.' -
inventory_adjustment_nameChardefault='Physical Inventory'string='Inventory Reason' -
quant_idsMany2many → stock.quantargs: 'stock.quant'
-
action_apply(self)
New fields (2)
-
quant_idsMany2many → stock.quantstring='Quants' args: 'stock.quant', 'stock_conflict_quant_rel' -
quant_to_fix_idsMany2many → stock.quantstring='Conflicts' args: 'stock.quant'
-
action_keep_counted_quantity(self) -
action_keep_difference(self)
New fields (1)
-
quant_idsMany2many → stock.quantargs: 'stock.quant'
-
action_reset(self) -
action_set(self)
New fields (25)
-
activeBooleandefault=Truehelp='By unchecking the active field, you may hide a location without deleting it.' args: 'Active' -
barcodeCharcopy=False args: 'Barcode' -
child_idsOne2many → stock.locationargs: 'stock.location', 'location_id', 'Contains' -
child_internal_location_idsMany2many → stock.locationcompute='_compute_child_internal_location_ids'help="This location (if it's internal) and all its descendants filtered by type=Internal."recursive=Truestring='Internal locations among descendants' args: 'stock.location' -
company_idMany2one → res.companydefault=<expr>help='Let this field empty if this location is shared between companies'index=True args: 'res.company', 'Company' -
complete_nameCharcompute='_compute_complete_name'recursive=Truestore=True args: 'Full Location Name' -
cyclic_inventory_frequencyIntegerdefault=0help=' When different than 0, inventory count date for products stored at this location will be automatically set at the defined frequency.' args: 'Inventory Frequency' -
forecast_weightFloatcompute='_compute_weight' args: 'Forecasted Weight' -
incoming_move_line_idsOne2many → stock.move.lineargs: 'stock.move.line', 'location_dest_id' -
is_emptyBooleancompute='_compute_is_empty'search='_search_is_empty' args: 'Is Empty' -
last_inventory_dateDatehelp='Date of the last inventory at this location.'readonly=True args: 'Last Inventory' -
location_idMany2one → stock.locationcheck_company=Truehelp="The parent location that includes this location. Example : The 'Dispatch Zone' is the 'Gate 1' parent location."index=True args: 'stock.location', 'Parent Location' -
nameCharrequired=True args: 'Location Name' -
net_weightFloatcompute='_compute_weight' args: 'Net Weight' -
next_inventory_dateDatecompute='_compute_next_inventory_date'help='Date for next planned inventory based on cyclic schedule.'store=True args: 'Next Expected' -
outgoing_move_line_idsOne2many → stock.move.lineargs: 'stock.move.line', 'location_id' -
parent_pathCharindex=True -
putaway_rule_idsOne2many → stock.putaway.ruleargs: 'stock.putaway.rule', 'location_in_id', 'Putaway Rules' -
quant_idsOne2many → stock.quantargs: 'stock.quant', 'location_id' -
removal_strategy_idMany2one → product.removalhelp='Defines the default method used for suggesting the exact location (shelf) where to take the products from, which lot etc. for this location. This method can be enforced at the product category level, and a fallback is made on the parent locations if none is set here.\n\nFIFO: products/lots that were stocked first will be moved out first.\nLIFO: products/lots that were stocked last will be moved out first.\nClosest Location: products/lots closest to the target location will be moved out first.\nLeast Packages: products/lots that were stocked in package with least amount of qty will be moved out first.\nFEFO: products/lots with the closest removal date will be moved out first (the availability of this method depends on the "Expiration Dates" setting).' args: 'product.removal', 'Removal Strategy' -
replenish_locationBooleancompute='_compute_replenish_location'copy=Falsehelp='Trigger replenishment suggestions for this location when required'readonly=Falsestore=True args: 'Replenishments' -
storage_category_idMany2one → stock.storage.categorycheck_company=Trueindex='btree_not_null'string='Storage Category' args: 'stock.storage.category' -
usageSelectiondefault='internal'help="* Vendor: Virtual location representing the source location for products coming from your vendors\n* Virtual: Virtual location used to create a hierarchical structure for your warehouse by aggregating its child locations. Can't directly contain products\n* Internal: Physical locations inside your warehouses,\n* Customer: Virtual location representing the destination location for products sent to your customers\n* Inventory Loss: Virtual location serving as the counterpart for inventory operations done to correct stock levels (Physical inventories)\n* Production: Virtual counterpart location for production operations. I.e. This location consumes components and produces finished products\n* Transit: Counterpart location that should be used for inter-company or inter-warehouses operations"index=Truerequired=Truestring='Location Type' args: [('supplier', 'Vendor'), ('view', 'Virtual'), ('internal', 'Internal'), ('customer', 'Customer'), ('inventory', 'Inventory Loss'), ('production', 'Production'), ('transit', 'Transit')] -
warehouse_idMany2one → stock.warehousecompute='_compute_warehouse_id'store=True args: 'stock.warehouse' -
warehouse_view_idsOne2many → stock.warehousereadonly=True args: 'stock.warehouse', 'view_location_id'
-
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
default_get(self, fields)@api.model -
name_create(self, name)@api.model -
should_bypass_reservation(self) -
unlink(self) -
write(self, vals)
New fields (14)
-
company_idMany2one → res.companycompute='_compute_company_id'index=Truereadonly=Falsestore=True args: 'res.company', 'Company' -
delivery_countIntegercompute='_compute_delivery_ids' args: 'Delivery order count' -
delivery_idsMany2many → stock.pickingcompute='_compute_delivery_ids'string='Transfers' args: 'stock.picking' -
display_completeBooleancompute='_compute_display_complete' -
location_idMany2one → stock.locationcompute='_compute_single_location'domain="[('usage', '!=', 'view')]"group_expand='_read_group_location_id'inverse='_set_single_location'readonly=Falsestore=True args: 'stock.location', 'Location' -
lot_propertiesPropertiescopy=Truedefinition='product_id.lot_properties_definition' args: 'Properties' -
nameCharcompute='_compute_name'help='Unique Lot/Serial Number'index='trigram'precompute=Truereadonly=Falserequired=Truestore=True args: 'Lot/Serial Number' -
noteHtmlstring='Description' -
partner_idsMany2many → res.partnercompute='_compute_partner_ids'search='_search_partner_ids' args: 'res.partner' -
product_idMany2one → product.productcheck_company=Truedomain="[('tracking', '!=', 'none'), ('is_storable', '=', True)] + ([('product_tmpl_id', '=', context['default_product_tmpl_id'])] if context.get('default_product_tmpl_id') else [])"index=Truerequired=Truetracking=True args: 'product.product', 'Product' -
product_qtyFloatcompute='_product_qty'search='_search_product_qty' args: 'On Hand Quantity' -
product_uom_idMany2one → uom.uomrelated='product_id.uom_id' args: 'uom.uom', 'Unit' -
quant_idsOne2many → stock.quantreadonly=True args: 'stock.quant', 'lot_id', 'Quants' -
refCharhelp="Internal reference number in case it differs from the manufacturer's lot/serial number" args: 'Internal Reference'
-
action_lot_open_quants(self) -
action_lot_open_transfers(self) -
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
default_get(self, fields)@api.model -
generate_lot_names(self, first_lot, count)@api.modelGenerate `lot_names` from a string. -
write(self, vals)
New fields (74)
-
additionalBooleandefault=False args: "Whether the move was added after the picking's confirmation" -
allowed_uom_idsMany2many → uom.uomcompute='_compute_allowed_uom_ids' args: 'uom.uom' -
availabilityFloatcompute='_compute_product_availability'help='Quantity in stock that can still be reserved for this move'readonly=True args: 'Forecasted Quantity' -
company_idMany2one → res.companydefault=<expr>index=Truerequired=True args: 'res.company', 'Company' -
dateDatetimedefault=fields.Datetime.nowhelp='Scheduled date until move is done, then date of actual move processing'index=Truerequired=True args: 'Date Scheduled' -
date_deadlineDatetimecopy=Falsehelp='In case of outgoing flow, validate the transfer before this date to allow to deliver at promised date to the customer.\n In case of incoming flow, validate the transfer before this date in order to have these products in stock at the date promised by the supplier'readonly=True args: 'Deadline' -
delay_alert_dateDatetimecompute='_compute_delay_alert_date'help='Process at this date to be on time'store=True args: 'Delay Alert Date' -
description_pickingTextcompute='_compute_description_picking'compute_sudo=Trueinverse='_inverse_description_picking'string='Description Of Picking' -
description_picking_manualTextreadonly=True -
display_assign_serialBooleancompute='_compute_display_assign_serial' -
display_import_lotBooleancompute='_compute_display_assign_serial' -
forecast_availabilityFloatcompute='_compute_forecast_information'compute_sudo=Truedigits='Product Unit' args: 'Forecast Availability' -
forecast_expected_dateDatetimecompute='_compute_forecast_information'compute_sudo=True args: 'Forecasted Expected date' -
has_lines_without_result_packageBooleancompute='_compute_has_lines_without_result_package' -
has_trackingSelectionrelated='product_id.tracking'string='Product with Tracking' -
inventory_nameCharreadonly=True -
is_date_editableBooleancompute='_compute_is_date_editable' args: 'Is Date Editable' -
is_initial_demand_editableBooleancompute='_compute_is_initial_demand_editable' args: 'Is initial demand editable' -
is_inventoryBooleanargs: 'Inventory' -
is_lockedBooleancompute='_compute_is_locked'readonly=True -
is_quantity_done_editableBooleancompute='_compute_is_quantity_done_editable' args: 'Is quantity done editable' -
is_storableBooleanrelated='product_id.is_storable' -
location_dest_idMany2one → stock.locationcompute='_compute_location_dest_id'help='The operations brings product to this location'index=Trueinverse='_set_location_dest_id'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Intermediate Location' -
location_dest_usageSelectionrelated='location_dest_id.usage'string='Destination Location Type' -
location_final_idMany2one → stock.locationbypass_search_access=Truecheck_company=Truehelp='The operation brings the products to the intermediate location.But this operation is part of a chain of operations targeting the final location.'index=Truereadonly=Falsestore=True args: 'stock.location', 'Final Location' -
location_idMany2one → stock.locationbypass_search_access=Truecheck_company=Truecompute='_compute_location_id'help='The operation takes and suggests products from this location.'index=Trueprecompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Source Location' -
location_usageSelectionrelated='location_id.usage'string='Source Location Type' -
lot_idsMany2many → stock.lotcompute='_compute_lot_ids'inverse='_set_lot_ids'readonly=Falsestring='Serial Numbers' args: 'stock.lot' -
move_dest_idsMany2many → stock.movecopy=Falsehelp='Optional: next stock move when chaining them' args: 'stock.move', 'stock_move_move_rel', 'move_orig_id', 'move_dest_id', 'Destination Moves' -
move_line_idsOne2many → stock.move.lineargs: 'stock.move.line', 'move_id' -
move_lines_countIntegercompute='_compute_move_lines_count' -
move_orig_idsMany2many → stock.movecopy=Falsehelp='Optional: previous stock move when chaining them' args: 'stock.move', 'stock_move_move_rel', 'move_dest_id', 'move_orig_id', 'Original Move' -
never_product_template_attribute_value_idsMany2many → product.template.attribute.valuestring='Never attribute Values' args: 'product.template.attribute.value', 'template_attribute_value_stock_move_rel', 'move_id', 'template_attribute_value_id' -
next_serialCharargs: 'First SN/Lot' -
next_serial_countIntegerargs: 'Number of SN/Lots' -
orderpoint_idMany2one → stock.warehouse.orderpointindex=True args: 'stock.warehouse.orderpoint', 'Original Reordering Rule' -
originCharargs: 'Source Document' -
origin_returned_move_idMany2one → stock.movecheck_company=Truecopy=Falsehelp='Move that created the return move'index=True args: 'stock.move', 'Origin return move' -
package_idsOne2many → stock.packagecompute='_compute_package_ids'string='Packages' args: 'stock.package' -
packaging_uom_idMany2one → uom.uomcompute='_compute_packaging_uom_id'help='Packaging unit from sale or purchase orders'precompute=Truestore=True args: 'uom.uom', 'Packaging' -
packaging_uom_qtyFloatcompute='_compute_packaging_uom_qty'help='Quantity in the packaging unit'store=True args: 'Packaging Quantity' -
partner_idMany2one → res.partnercompute='_compute_partner_id'help='Optional address where goods are to be delivered, specifically used for allotment'index='btree_not_null'readonly=Falsestore=True args: 'res.partner', 'Destination Address ' -
pickedBooleancompute='_compute_picked'copy=Falsedefault=Falsehelp="This checkbox is just indicative, it doesn't validate or generate any product moves."inverse='_inverse_picked'readonly=Falsestore=True args: 'Picked' -
picking_codeSelectionreadonly=Truerelated='picking_id.picking_type_id.code' -
picking_idMany2one → stock.pickingcheck_company=Trueindex=True args: 'stock.picking', 'Transfer' -
picking_type_idMany2one → stock.picking.typecheck_company=Truecompute='_compute_picking_type_id'readonly=Falsestore=True args: 'stock.picking.type', 'Operation Type' -
price_unitFloatcopy=False args: 'Unit Price' -
prioritySelectioncompute='_compute_priority'default='0'store=True args: PROCUREMENT_PRIORITIES, 'Priority' -
procure_methodSelectioncopy=Falsedefault='make_to_stock'help='By default, the system will take from the stock in the source location and passively wait for availability. The other possibility allows you to directly create a procurement on the source location (and thus ignore its current stock) to gather products. If we want to chain moves and have this one to wait for the previous, this second option should be chosen.'required=Truestring='Supply Method' args: [('make_to_stock', 'Default: Take From Stock'), ('make_to_order', 'Advanced: Apply Procurement Rules')] -
procurement_valuesJsonhelp='Dummy field to store procurement values to propagate them to later steps'store=False -
product_category_idMany2one → product.categoryrelated='product_id.categ_id' args: 'product.category', 'Product Category' -
product_idMany2one → product.productcheck_company=Truedomain="[('type', '=', 'consu')]"index=Truerequired=True args: 'product.product', 'Product' -
product_qtyFloatcompute='_compute_product_qty'compute_sudo=Truedigits=0help='Quantity in the default UoM of the product'inverse='_set_product_qty'store=True args: 'Real Quantity' -
product_tmpl_idMany2one → product.templaterelated='product_id.product_tmpl_id' args: 'product.template', 'Product Template' -
product_uomMany2one → uom.uomcompute='_compute_product_uom'domain="[('id', 'in', allowed_uom_ids)]"precompute=Truereadonly=Falserequired=Truestore=True args: 'uom.uom', 'Unit' -
product_uom_qtyFloatdefault=0digits='Product Unit'help='This is the quantity of product that is planned to be moved.Lowering this quantity does not generate a backorder.Changing this quantity on assigned moves affects the product reservation, and should be done with care.'required=True args: 'Demand' -
propagate_cancelBooleandefault=Truehelp='If checked, when this move is cancelled, cancel the linked move too' args: 'Propagate cancel and split' -
quantityFloatcompute='_compute_quantity'digits='Product Unit'inverse='_set_quantity'store=True args: 'Quantity' -
referenceCharcompute='_compute_reference'store=Truestring='Reference' -
reference_idsMany2many → stock.referencestring='References' args: 'stock.reference', 'stock_reference_move_rel', 'move_id', 'reference_id' -
reservation_dateDatecompute='_compute_reservation_date'help='Computes when a move should be reserved'store=True args: 'Date to Reserve' -
restrict_partner_idMany2one → res.partnercheck_company=Trueindex='btree_not_null' args: 'res.partner', 'Owner ' -
returned_move_idsOne2many → stock.movehelp='Optional: all returned moves created from this move' args: 'stock.move', 'origin_returned_move_id', 'All returned moves' -
route_idsMany2many → stock.routehelp='Preferred route' args: 'stock.route', 'stock_route_move', 'move_id', 'route_id', 'Destination route' -
rule_idMany2one → stock.rulecheck_company=Truehelp='The stock rule that created this stock move'ondelete='restrict' args: 'stock.rule', 'Stock Rule' -
scrap_idMany2one → stock.scrapcheck_company=Trueindex='btree_not_null'readonly=True args: 'stock.scrap', 'Scrap operation' -
sequenceIntegerdefault=10 args: 'Sequence' -
show_details_visibleBooleancompute='_compute_show_details_visible' args: 'Details Visible' -
show_lots_m2oBooleancompute='_compute_show_info' args: 'Show lot_id' -
show_lots_textBooleancompute='_compute_show_info' args: 'Show lot_name' -
show_operationsBooleanrelated='picking_id.picking_type_id.show_operations' -
show_quantBooleancompute='_compute_show_info' args: 'Show Quant' -
stateSelectioncopy=Falsedefault='draft'help="* New: The stock move is created but not confirmed.\n* Waiting Another Move: A linked stock move should be done before this one.\n* Waiting: The stock move is confirmed but the product can't be reserved.\n* Available: The product of the stock move is reserved.\n* Done: The product has been transferred and the transfer has been confirmed."index=Truereadonly=Truestring='Status' args: [('draft', 'New'), ('waiting', 'Waiting Another Move'), ('confirmed', 'Waiting'), ('partially_available', 'Partially Available'), ('assigned', 'Available'), ('done', 'Done'), ('cancel', 'Cancelled')] -
warehouse_idMany2one → stock.warehousehelp='the warehouse to consider for the route selection on the next procurement (if any).' args: 'stock.warehouse', 'Warehouse'
-
action_add_packages(self)Opens a list of suitable packages to add to a picking. -
action_generate_lot_line_vals(self, context_data, mode, first_lot, count, lot_text)@api.model -
action_open_reference(self)Open the form view of the move's reference document, if one exists, otherwise open form view of self -
action_product_forecast_report(self) -
action_show_details(self)Returns an action that will open a form view (in a popup) allowing to work on all the move lines of a particular move. This form view is used when "show operations" is not checked on the picking type. -
create(self, vals_list)@api.model_create_multi -
default_get(self, fields)@api.model -
split_lots(self, lots)@api.model -
unlink(self) -
write(self, vals)
New fields (44)
-
allowed_uom_idsMany2many → uom.uomcompute='_compute_allowed_uom_ids' args: 'uom.uom' -
company_idMany2one → res.companyindex=Truereadonly=Truerequired=Truestring='Company' args: 'res.company' -
consume_line_idsMany2many → stock.move.lineargs: 'stock.move.line', 'stock_move_line_consume_rel', 'consume_line_id', 'produce_line_id' -
dateDatetimedefault=fields.Datetime.nowhelp="Creation date of this move line until updated due to: quantity being increased, 'picked' status has updated, or move line is done."required=True args: 'Date' -
description_pickingTextrelated='move_id.description_picking' -
is_entire_packBooleanargs: 'Is added through entire package' -
is_inventoryBooleanrelated='move_id.is_inventory' -
is_lockedBooleanreadonly=Truerelated='move_id.is_locked' -
location_dest_idMany2one → stock.locationcheck_company=Truecompute='_compute_location_id'domain="[('usage', '!=', 'view')]"index=Trueprecompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'To' -
location_dest_usageSelectionrelated='location_dest_id.usage'string='Destination Location Type' -
location_idMany2one → stock.locationcheck_company=Truecompute='_compute_location_id'domain="[('usage', '!=', 'view')]"index=Trueprecompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'From' -
location_usageSelectionrelated='location_id.usage'string='Source Location Type' -
lot_idMany2one → stock.lotcheck_company=Truedomain="[('product_id', '=', product_id)]"index=True args: 'stock.lot', 'Lot/Serial Number' -
lot_nameCharargs: 'Lot/Serial Number Name' -
lots_visibleBooleancompute='_compute_lots_visible' -
move_idMany2one → stock.movecheck_company=Trueindex=True args: 'stock.move', 'Stock Operation' -
move_partner_idMany2onereadonly=Truerelated='move_id.partner_id' -
originCharrelated='move_id.origin'string='Source' -
owner_idMany2one → res.partnercheck_company=Truehelp='When validating the transfer, the products will be taken from this owner.'index='btree_not_null' args: 'res.partner', 'From Owner' -
package_history_idMany2one → stock.package.historyindex='btree_not_null'string='Package History' args: 'stock.package.history' -
package_idMany2one → stock.packagecheck_company=Truedomain="[('location_id', '=', location_id)]"ondelete='restrict' args: 'stock.package', 'Source Package' -
pickedBooleancompute='_compute_picked'copy=Falsereadonly=Falsestore=True args: 'Picked' -
picking_codeSelectionreadonly=Truerelated='picking_type_id.code' -
picking_idMany2one → stock.pickingbypass_search_access=Truecheck_company=Truehelp='The stock operation where the packing has been made'index=True args: 'stock.picking', 'Transfer' -
picking_location_dest_idMany2onerelated='picking_id.location_dest_id' -
picking_location_idMany2onerelated='picking_id.location_id' -
picking_partner_idMany2onereadonly=Truerelated='picking_id.partner_id' -
picking_type_idMany2one → stock.picking.typecompute='_compute_picking_type_id'search='_search_picking_type_id' args: 'stock.picking.type', 'Operation type' -
picking_type_use_create_lotsBooleanreadonly=Truerelated='picking_type_id.use_create_lots' -
picking_type_use_existing_lotsBooleanreadonly=Truerelated='picking_type_id.use_existing_lots' -
produce_line_idsMany2many → stock.move.lineargs: 'stock.move.line', 'stock_move_line_consume_rel', 'produce_line_id', 'consume_line_id' -
product_category_nameCharrelated='product_id.categ_id.complete_name'string='Product Category' -
product_idMany2one → product.productcheck_company=Truedomain="[('type', '!=', 'service')]"index=Trueondelete='cascade' args: 'product.product', 'Product' -
product_uom_idMany2one → uom.uomcompute='_compute_product_uom_id'domain="[('id', 'in', allowed_uom_ids)]"precompute=Truereadonly=Falserequired=Truestore=True args: 'uom.uom', 'Unit' -
quant_idMany2one → stock.quantstore=False args: 'stock.quant', 'Pick From' -
quantityFloatcompute='_compute_quantity'copy=Falsedigits='Product Unit'readonly=Falsestore=True args: 'Quantity' -
quantity_product_uomFloatcompute='_compute_quantity_product_uom'copy=Falsedigits='Product Unit'store=True args: 'Quantity in Product UoM' -
referenceCharrelated='move_id.reference' -
result_package_dest_nameCharrelated='result_package_id.dest_complete_name' args: 'Destination Package Name' -
result_package_idMany2one → stock.packagecheck_company=Truedomain="['|', '|', ('location_id', '=', location_dest_id), ('id', '=', package_id), '&', ('location_id', '=', False), '|', ('move_line_ids', '=', False), ('move_line_ids.location_dest_id', '=', location_dest_id)]"help='If set, the operations are packed into this package'ondelete='restrict'required=False args: 'stock.package', 'Destination Package' -
scheduled_dateDatetimerelated='move_id.date' args: 'Scheduled Date' -
scrap_idMany2onerelated='move_id.scrap_id' -
stateSelectionrelated='move_id.state'store=True -
trackingSelectionreadonly=Truerelated='product_id.tracking'
-
action_open_reference(self) -
action_put_in_pack(self, *, package_id=False, package_type_id=False, package_name=False) -
action_revert_inventory(self) -
create(self, vals_list)@api.model_create_multi -
get_move_line_quant_match(self, move_id, dirty_move_line_ids, dirty_quant_ids) -
unlink(self) -
write(self, vals)
New fields (3)
-
orderpoint_idsMany2many → stock.warehouse.orderpointargs: 'stock.warehouse.orderpoint' -
predefined_dateSelectiondefault='day'string='Snooze for' args: [('day', '1 Day'), ('week', '1 Week'), ('month', '1 Month'), ('custom', 'Custom')] -
snoozed_untilDateargs: 'Snooze Date'
-
action_snooze(self)
New fields (24)
-
all_children_package_idsOne2many → stock.packagecompute='_compute_all_children_package_ids'search='_search_all_children_package_ids' args: 'stock.package' -
child_package_dest_idsOne2many → stock.packageargs: 'stock.package', 'package_dest_id', 'Assigned Contained Packages' -
child_package_idsOne2many → stock.packagestring='Contained Packages' args: 'stock.package', 'parent_package_id' -
company_idMany2one → res.companycompute='_compute_package_info'index=Truereadonly=Truerecursive=Truestore=True args: 'res.company', 'Company' -
complete_nameCharcompute='_compute_complete_name'recursive=Truestore=True args: 'Full Package Name' -
contained_quant_idsOne2many → stock.quantcompute='_compute_contained_quant_ids'search='_search_contained_quant_ids' args: 'stock.quant' -
content_descriptionCharcompute='_compute_content_description' args: 'Contents' -
dest_complete_nameCharcompute='_compute_dest_complete_name'recursive=True args: 'Package Name At Destination' -
json_popoverCharcompute='_compute_json_popover' args: 'JSON data for popover widget' -
location_dest_idMany2one → stock.locationcompute='_compute_location_dest_id'search='_search_location_dest_id' args: 'stock.location', 'Destination location' -
location_idMany2one → stock.locationcompute='_compute_package_info'index=Truereadonly=Falserecursive=Truestore=True args: 'stock.location', 'Location' -
move_line_idsOne2many → stock.move.linecompute='_compute_move_line_ids'search='_search_move_line_ids' args: 'stock.move.line' -
nameCharcopy=Falseindex='trigram'required=True args: 'Package Reference' -
outermost_package_idMany2one → stock.packagecompute='_compute_outermost_package_id'recursive=Truesearch='_search_outermost_package_id' args: 'stock.package', 'Outermost Destination Container' -
owner_idMany2one → res.partnercompute='_compute_owner_id'compute_sudo=Truereadonly=Truesearch='_search_owner' args: 'res.partner', 'Owner' -
pack_dateDatedefault=fields.Date.today args: 'Pack Date' -
package_dest_idMany2one → stock.packageindex='btree_not_null' args: 'stock.package', 'Destination Container' -
package_type_idMany2one → stock.package.typeindex=True args: 'stock.package.type', 'Package Type' -
parent_package_idMany2one → stock.packageindex='btree_not_null' args: 'stock.package', 'Container' -
parent_pathCharindex=True -
picking_idsMany2many → stock.pickingcompute='_compute_picking_ids'help='Transfers in which the Package is set as Destination Package'search='_search_picking_ids'string='Transfers' args: 'stock.picking' -
quant_idsOne2many → stock.quantdomain=['|', ('quantity', '!=', 0), ('reserved_quantity', '!=', 0)]readonly=True args: 'stock.quant', 'package_id', 'Bulk Content' -
shipping_weightFloathelp='Total weight of the package.'string='Shipping Weight' -
valid_ssccBooleancompute='_compute_valid_sscc' args: 'Package name is valid SSCC'
-
action_add_to_picking(self) -
action_put_in_pack(self, *, package_id=False, package_type_id=False, package_name=False) -
action_remove_package(self)Removes all packages in self from the destination container tree. For move lines directly linked to a package (through result_package_id) - If the entire package is moved, remove the move lines entirely from the picking - Otherwise, just unset the packages as destination package -
action_view_picking(self) -
create(self, vals_list)@api.model_create_multi -
unpack(self)Unpacks quants directly inside the container, and remove contained packages from this package. -
write(self, vals)
New fields (3)
-
filtered_locationOne2many → stock.locationcomodel_name='stock.location'compute='_compute_filtered_location' -
location_dest_idMany2one → stock.locationrequired=True args: 'stock.location', 'Destination location' -
move_line_idsMany2many → stock.move.linerequired=True args: 'stock.move.line', 'Products'
-
action_done(self)
New fields (13)
-
company_idMany2one → res.companydefault=<expr>required=True args: 'res.company', 'Company' -
location_dest_idMany2one → stock.locationargs: 'stock.location', 'Destination Location' -
location_idMany2one → stock.locationargs: 'stock.location', 'Origin Location' -
move_line_idsOne2many → stock.move.linerequired=Truestring='Move Lines' args: 'stock.move.line', 'package_history_id' -
outermost_dest_idMany2one → stock.packageargs: 'stock.package', 'Outermost Destination Container' -
package_idMany2one → stock.packageondelete='cascade'required=True args: 'stock.package', 'Package' -
package_nameCharrequired=True args: 'Package Name' -
package_type_idMany2one → stock.package.typerelated='package_id.package_type_id' args: 'stock.package.type' -
parent_dest_idMany2one → stock.packageargs: 'stock.package', 'Destination Container' -
parent_dest_nameCharargs: 'Destination Container Name' -
parent_orig_idMany2one → stock.packageargs: 'stock.package', 'Origin Container' -
parent_orig_nameCharargs: 'Origin Container Name' -
picking_idsMany2many → stock.pickingstring='Transfers' args: 'stock.picking'
-
action_show_package(self)
New fields (17)
-
barcodeCharcopy=False args: 'Barcode' -
base_weightFloathelp='Weight of the package type'string='Weight' -
company_idMany2one → res.companyindex=True args: 'res.company', 'Company' -
has_quantsBooleancompute='_compute_has_quants' args: 'Has Contents' -
heightFloathelp='Packaging Height' args: 'Height' -
length_uom_nameCharcompute='_compute_length_uom_name'default=_get_default_length_uomstring='Length unit of measure label' -
max_weightFloathelp='Maximum weight shippable in this packaging' args: 'Max Weight' -
nameCharrequired=True args: 'Package Type' -
package_useSelectiondefault='disposable'help="Reusable boxes are used for batch picking and emptied afterwards to be reused. In the barcode application, scanning a reusable box will add the products in this box.\n Disposable boxes aren't reused, when scanning a disposable box in the barcode application, the contained products are added to the transfer."required=Truestring='Package Use' args: [('disposable', 'Disposable Box'), ('reusable', 'Reusable Box (totes)')] -
packaging_lengthFloathelp='Packaging Length' args: 'Length' -
route_idsMany2many → stock.routedomain="[('package_type_selectable', '=', True)]"string='Routes' args: 'stock.route' -
sequenceIntegerdefault=1help='The first in the sequence is the default one.' args: 'Sequence' -
sequence_codeCharreadonly=Falserelated='sequence_id.code' args: 'Sequence Prefix' -
sequence_idMany2one → ir.sequencecheck_company=Truecopy=False args: 'ir.sequence', 'Reference Sequence' -
storage_category_capacity_idsOne2many → stock.storage.category.capacitycopy=True args: 'stock.storage.category.capacity', 'package_type_id', 'Storage Category Capacity' -
weight_uom_nameCharcompute='_compute_weight_uom_name'default=_get_default_weight_uomstring='Weight unit of measure label' -
widthFloathelp='Packaging Width' args: 'Width'
-
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (57)
-
backorder_idMany2one → stock.pickingcheck_company=Truecopy=Falsehelp='If this shipment was split, then this field links to the shipment which contains the already processed part.'index='btree_not_null'readonly=True args: 'stock.picking', 'Back Order of' -
backorder_idsOne2many → stock.pickingargs: 'stock.picking', 'backorder_id', 'Back Orders' -
company_idMany2one → res.companyindex=Truereadonly=Truerelated='picking_type_id.company_id'store=Truestring='Company' args: 'res.company' -
date_deadlineDatetimecompute='_compute_date_deadline'help='In case of outgoing flow, validate the transfer before this date to allow to deliver at promised date to the customer.\n In case of incoming flow, validate the transfer before this date in order to have these products in stock at the date promised by the supplier'store=True args: 'Deadline' -
date_doneDatetimecopy=Falsehelp='Date at which the transfer has been processed or cancelled.' args: 'Date of Transfer' -
delay_alert_dateDatetimecompute='_compute_delay_alert_date'search='_search_delay_alert_date' args: 'Delay Alert Date' -
has_deadline_issueBooleancompute='_compute_has_deadline_issue'default=Falsehelp='Is late or will be late depending on the deadline and scheduled date'store=True args: 'Is late' -
has_scrap_moveBooleancompute='_has_scrap_move' args: 'Has Scrap Moves' -
has_trackingBooleancompute='_compute_has_tracking' -
is_date_editableBooleancompute='_compute_is_date_editable' args: 'Is Scheduled Date Editable' -
is_lockedBooleancopy=Falsedefault=Truehelp='When the picking is not done this allows changing the initial demand. When the picking is done this allows changing the done quantities.' -
is_signedBooleancompute='_compute_is_signed' args: 'Is Signed' -
json_popoverCharcompute='_compute_json_popover' args: 'JSON data for the popover widget' -
location_dest_idMany2one → stock.locationcheck_company=Truecompute='_compute_location_id'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Destination Location' -
location_idMany2one → stock.locationcheck_company=Truecompute='_compute_location_id'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Source Location' -
lot_idMany2one → stock.lotreadonly=Truerelated='move_line_ids.lot_id' args: 'stock.lot', 'Lot/Serial Number' -
move_idsOne2many → stock.movecopy=Truestring='Stock Moves' args: 'stock.move', 'picking_id' -
move_line_idsOne2many → stock.move.lineargs: 'stock.move.line', 'picking_id', 'Operations' -
move_typeSelectioncompute='_compute_move_type'help='It specifies goods to be deliver partially or all at once'precompute=Truereadonly=Falserequired=Truestore=True args: [('direct', 'As soon as possible'), ('one', 'When all products are ready')], 'Shipping Policy' -
nameCharcopy=Falsedefault='/'index='trigram'readonly=True args: 'Reference' -
noteHtmlargs: 'Notes' -
originCharhelp='Reference of the document'index='trigram' args: 'Source Document' -
owner_idMany2one → res.partnercheck_company=Truehelp='When validating the transfer, the products will be assigned to this owner.'index='btree_not_null' args: 'res.partner', 'Assign Owner' -
package_history_idsMany2many → stock.package.historycopy=Falsestring='Transfered Packages' args: 'stock.package.history' -
packages_countIntegercompute='_compute_packages_count' args: 'Packages Count' -
partner_country_idMany2one → res.countryrelated='partner_id.country_id' args: 'res.country' -
partner_idMany2one → res.partnercheck_company=Trueindex='btree_not_null' args: 'res.partner', 'Contact' -
picking_propertiesPropertiescopy=Truedefinition='picking_type_id.picking_properties_definition' args: 'Properties' -
picking_type_codeSelectionreadonly=Truerelated='picking_type_id.code' -
picking_type_entire_packsBooleanrelated='picking_type_id.show_entire_packs' -
picking_type_idMany2one → stock.picking.typedefault=_default_picking_type_idindex=Truerequired=Truetracking=True args: 'stock.picking.type', 'Operation Type' -
picking_warning_textTextcompute='_compute_picking_warning_text'help='Internal instructions for the partner or its parent company as set by the user.' args: 'Picking Instructions' -
printedBooleancopy=False args: 'Printed' -
prioritySelectiondefault='0'help='Products will be reserved first for the transfers with the highest priorities.'string='Priority' args: PROCUREMENT_PRIORITIES -
product_idMany2one → product.productreadonly=Truerelated='move_ids.product_id' args: 'product.product', 'Product' -
products_availabilityCharcompute='_compute_products_availability'help='Latest product availability status of the picking'string='Product Availability' -
products_availability_stateSelectioncompute='_compute_products_availability'search='_search_products_availability_state' args: [('available', 'Available'), ('expected', 'Expected'), ('late', 'Late')] -
reference_idsMany2many → stock.referencereadonly=Truerelated='move_ids.reference_ids'string='References' args: 'stock.reference' -
return_countIntegercompute='_compute_return_count'compute_sudo=False args: '# Returns' -
return_idMany2one → stock.pickingcheck_company=Truecopy=Falsehelp='If this picking was created as a return of another picking, this field links to the original picking.'index='btree_not_null'readonly=True args: 'stock.picking', 'Return of' -
return_idsOne2many → stock.pickingargs: 'stock.picking', 'return_id', 'Returns' -
scheduled_dateDatetimecompute='_compute_scheduled_date'default=fields.Datetime.nowhelp='Scheduled time for the first part of the shipment to be processed. Setting manually a value here would set it as expected date for all the stock moves.'index=Trueinverse='_set_scheduled_date'store=Truetracking=True args: 'Scheduled Date' -
search_date_categorySelectionreadonly=Truesearch='_search_date_category'store=Falsestring='Date Category' args: [('before', 'Before'), ('yesterday', 'Yesterday'), ('today', 'Today'), ('day_1', 'Tomorrow'), ('day_2', 'The day after tomorrow'), ('after', 'After')] -
shipping_volumeFloatcompute='_compute_shipping_volume' args: 'Volume for Shipping' -
shipping_weightFloatcompute='_compute_shipping_weight'digits='Stock Weight'help="Total weight of packages and products not in a package. Packages with no shipping weight specified will default to their products' total weight. This is the weight used to compute the cost of the shipping."readonly=Falsestore=True args: 'Weight for Shipping' -
show_allocationBooleancompute='_compute_show_allocation'help='Technical Field used to decide whether the button "Allocation" should be displayed.' -
show_check_availabilityBooleancompute='_compute_show_check_availability'help='Technical field used to compute whether the button "Check Availability" should be displayed.' -
show_lots_textBooleancompute='_compute_show_lots_text' -
show_next_pickingsBooleancompute='_compute_show_next_pickings' -
show_operationsBooleanrelated='picking_type_id.show_operations' -
signatureImageattachment=Truecopy=Falsehelp='Signature' args: 'Signature' -
stateSelectioncompute='_compute_state'copy=Falsehelp=' * Draft: The transfer is not confirmed yet. Reservation doesn\'t apply.\n * Waiting another operation: This transfer is waiting for another operation before being ready.\n * Waiting: The transfer is waiting for the availability of some products.\n(a) The shipping policy is "As soon as possible": no product could be reserved.\n(b) The shipping policy is "When all products are ready": not all the products could be reserved.\n * Ready: The transfer is ready to be processed.\n(a) The shipping policy is "As soon as possible": at least one product has been reserved.\n(b) The shipping policy is "When all products are ready": all product have been reserved.\n * Done: The transfer has been processed.\n * Cancelled: The transfer has been cancelled.'index=Truereadonly=Truestore=Truestring='Status'tracking=True args: [('draft', 'Draft'), ('waiting', 'Waiting Another Operation'), ('confirmed', 'Waiting'), ('assigned', 'Ready'), ('done', 'Done'), ('cancel', 'Cancelled')] -
use_create_lotsBooleanrelated='picking_type_id.use_create_lots' -
use_existing_lotsBooleanrelated='picking_type_id.use_existing_lots' -
user_idMany2one → res.userscopy=Falsedefault=<expr>domain=<expr>tracking=True args: 'res.users', 'Responsible' -
warehouse_address_idMany2one → res.partnerrelated='picking_type_id.warehouse_id.partner_id' args: 'res.partner' -
weight_bulkFloatcompute='_compute_bulk_weight'help='Total weight of products which are not in a package.' args: 'Bulk Weight'
-
action_add_entire_packs(self, package_ids) -
action_assign(self)Check availability of picking moves. This has the effect of changing the state and reserve quants on available moves, and may also impact the state of the picking as it is computed based on move's states. @return: True -
action_cancel(self) -
action_confirm(self) -
action_detailed_operations(self) -
action_next_transfer(self) -
action_open_label_layout(self) -
action_open_label_type(self) -
action_picking_move_tree(self) -
action_put_in_pack(self, *, package_id=False, package_type_id=False, package_name=False) -
action_see_move_scrap(self) -
action_see_package_histories(self) -
action_see_packages(self) -
action_see_returns(self) -
action_split_transfer(self) -
action_toggle_is_locked(self) -
action_view_reception_report(self) -
button_scrap(self) -
button_validate(self) -
calculate_date_category(self, datetime)@api.modelAssigns given datetime to one of the following categories: - "before" - "yesterday" - "today" - "day_1" (tomorrow) - "day_2" (the day after tomorrow) - "after" The categories are based on current user's timezone (e.g. "today" will last between 00:00 and 23:59 local time). The datetime itself is assumed to be in UTC. If the datetime is falsy, this function returns "". -
create(self, vals_list)@api.model_create_multi -
date_category_to_domain(self, field_name, date_category)@api.modelGiven a date category, returns a list of tuples of operator and value that can be used in a domain to filter records based on their scheduled date. Args: date_category (str): The date category to use for the computation. Allowed values are: * "before" * "yesterday" * "today" * "day_1" * "day_2" * "after" Returns: a list of tuples: each tuple consists of an operator and a value that can be used in a domain to filter records based on their scheduled date. The operator can be "<" or ">=". The value is a datetime object. If an incorrect date category is passed, this method returns None. -
do_print_picking(self) -
do_unreserve(self) -
get_action_click_graph(self)@api.model -
get_action_picking_tree_incoming(self)@api.model -
get_action_picking_tree_internal(self)@api.model -
get_action_picking_tree_outgoing(self)@api.model -
get_empty_list_help(self, help_message)@api.model -
should_print_delivery_address(self) -
unlink(self) -
write(self, vals)
New fields (49)
-
activeBooleandefault=True args: 'Active' -
auto_print_delivery_slipBooleanhelp='If this checkbox is ticked, Odoo will automatically print the delivery slip of a picking when it is validated.' args: 'Auto Print Delivery Slip' -
auto_print_lot_labelsBooleanhelp='If this checkbox is ticked, Odoo will automatically print the lot/SN labels of a picking when it is validated.' args: 'Auto Print Lot/SN Labels' -
auto_print_package_labelBooleanhelp='If this checkbox is ticked, Odoo will automatically print the package label when "Put in Pack" button is used.' args: 'Auto Print Package Label' -
auto_print_packagesBooleanhelp='If this checkbox is ticked, Odoo will automatically print the packages and their contents of a picking when it is validated.' args: 'Auto Print Packages' -
auto_print_product_labelsBooleanhelp='If this checkbox is ticked, Odoo will automatically print the product labels of a picking when it is validated.' args: 'Auto Print Product Labels' -
auto_print_reception_reportBooleanhelp='If this checkbox is ticked, Odoo will automatically print the reception report of a picking when it is validated and has assigned moves.' args: 'Auto Print Reception Report' -
auto_print_reception_report_labelsBooleanhelp='If this checkbox is ticked, Odoo will automatically print the reception report labels of a picking when it is validated.' args: 'Auto Print Reception Report Labels' -
auto_print_return_slipBooleanhelp='If this checkbox is ticked, Odoo will automatically print the return slip of a picking when it is validated.' args: 'Auto Print Return Slip' -
auto_show_reception_reportBooleanhelp='If this checkbox is ticked, Odoo will automatically show the reception report (if there are moves to allocate to) when validating.' args: 'Show Reception Report at Validation' -
barcodeCharcopy=False args: 'Barcode' -
codeSelectiondefault='incoming'required=True args: [('incoming', 'Receipt'), ('outgoing', 'Delivery'), ('internal', 'Internal Transfer')], 'Type of Operation' -
colorIntegerargs: 'Color' -
company_idMany2one → res.companydefault=<expr>index=Truerequired=True args: 'res.company', 'Company' -
count_move_readyIntegercompute='_compute_move_count' -
count_pickingIntegercompute='_compute_picking_count' -
count_picking_backordersIntegercompute='_compute_picking_count' -
count_picking_draftIntegercompute='_compute_picking_count' -
count_picking_lateIntegercompute='_compute_picking_count' -
count_picking_readyIntegercompute='_compute_picking_count' -
count_picking_waitingIntegercompute='_compute_picking_count' -
create_backorderSelectiondefault='ask'help='When validating a transfer:\n * Ask: users are asked to choose if they want to make a backorder for remaining products\n * Always: a backorder is automatically created for the remaining products\n * Never: remaining products are cancelled'required=True args: [('ask', 'Ask'), ('always', 'Always'), ('never', 'Never')], 'Create Backorder' -
default_location_dest_idMany2one → stock.locationcheck_company=Truecompute='_compute_default_location_dest_id'help='This is the default destination location when this operation is manually created. However, it is possible to change it afterwards or that the routes use another one by default.'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Destination Location' -
default_location_src_idMany2one → stock.locationcheck_company=Truecompute='_compute_default_location_src_id'help='This is the default source location when this operation is manually created. However, it is possible to change it afterwards or that the routes use another one by default.'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Source Location' -
favorite_user_idsMany2many → res.usersargs: 'res.users', 'picking_type_favorite_user_rel', 'picking_type_id', 'user_id' -
hide_reservation_methodBooleancompute='_compute_hide_reservation_method' -
is_favoriteBooleancompute='_compute_is_favorite'compute_sudo=Trueinverse='_inverse_is_favorite'search='_search_is_favorite'string='Show Operation in Overview' -
kanban_dashboard_graphTextcompute='_compute_kanban_dashboard_graph' -
lot_label_formatSelectiondefault='4x12_lots'string='Lot Label Format to auto-print' args: [('4x12_lots', '4 x 12 - One per lot/SN'), ('4x12_units', '4 x 12 - One per unit'), ('zpl_lots', 'ZPL Labels - One per lot/SN'), ('zpl_units', 'ZPL Labels - One per unit')] -
move_typeSelectiondefault='direct'help='It specifies goods to be transferred partially or all at once'required=True args: [('direct', 'As soon as possible'), ('one', 'When all products are ready')], 'Shipping Policy' -
nameCharrequired=Truetranslate=True args: 'Operation Type' -
package_label_to_printSelectiondefault='pdf' args: [('pdf', 'PDF'), ('zpl', 'ZPL')], 'Package Label to Print' -
picking_properties_definitionPropertiesDefinitionargs: 'Picking Properties' -
print_labelBooleancompute='_compute_print_label'help='Check this box if you want to generate shipping label in this operation.'readonly=Falsestore=True args: 'Generate Shipping Labels' -
product_label_formatSelectiondefault='2x7xprice'string='Product Label Format to auto-print' args: [('dymo', 'Dymo'), ('2x7xprice', '2 x 7 with price'), ('4x7xprice', '4 x 7 with price'), ('4x12', '4 x 12'), ('4x12xprice', '4 x 12 with price'), ('zpl', 'ZPL Labels'), ('zplxprice', 'ZPL Labels with price')] -
reservation_days_beforeIntegerhelp='Maximum number of days before scheduled date that products should be reserved.' args: 'Days' -
reservation_days_before_priorityIntegerhelp='Maximum number of days before scheduled date that priority picking products should be reserved.' args: 'Days when starred' -
reservation_methodSelectiondefault='at_confirm'help='How products in transfers of this operation type should be reserved.'required=True args: [('at_confirm', 'At Confirmation'), ('manual', 'Manually'), ('by_date', 'Before scheduled date')], 'Reservation Method' -
return_picking_type_idMany2one → stock.picking.typecheck_company=Trueindex='btree_not_null' args: 'stock.picking.type', 'Operation Type for Returns' -
sequenceIntegerhelp="Used to order the 'All Operations' kanban view" args: 'Sequence' -
sequence_codeCharrequired=True args: 'Sequence Prefix' -
sequence_idMany2one → ir.sequencecheck_company=Truecopy=False args: 'ir.sequence', 'Reference Sequence' -
set_package_typeBooleandefault=Falsehelp='If ticked, you will be able to select which package or package type to use in a put in pack' args: 'Set Package Type' -
show_entire_packsBooleandefault=Falsehelp='If ticked, packages to move will be directly displayed in Barcode instead of the products they contain' args: 'Move Entire Packages' -
show_operationsBooleandefault=Falsehelp='If this checkbox is ticked, the pickings lines will represent detailed stock operations. If not, the picking lines will represent an aggregate of detailed stock operations.' args: 'Show Detailed Operations' -
show_picking_typeBooleancompute='_compute_show_picking_type' -
use_create_lotsBooleancompute='_compute_use_create_lots'default=Truehelp='If this is checked only, it will suppose you want to create new Lots/Serial Numbers, so you can provide them in a text field. 'readonly=Falsestore=True args: 'Create New Lots/Serial Numbers' -
use_existing_lotsBooleancompute='_compute_use_existing_lots'default=Truehelp='If this is checked, you will be able to choose the Lots/Serial Numbers. You can also decide to not put lots in this operation type. This means it will create stock with no lot or not put a restriction on the lot taken. 'readonly=Falsestore=True args: 'Use Existing Lots/Serial Numbers' -
warehouse_idMany2one → stock.warehousecheck_company=Truecompute='_compute_warehouse_id'ondelete='cascade'readonly=Falsestore=True args: 'stock.warehouse', 'Warehouse'
-
action_redirect_to_barcode_installation(self)@api.model -
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
get_action_picking_tree_backorder(self) -
get_action_picking_tree_late(self) -
get_action_picking_tree_ready(self) -
get_action_picking_tree_waiting(self) -
get_action_picking_type_moves_analysis(self) -
get_action_picking_type_ready_moves(self) -
get_stock_picking_action_picking_type(self) -
write(self, vals)
New fields (7)
-
location_dest_idMany2one → stock.locationargs: 'stock.location', 'Destination' -
move_line_idsMany2many → stock.move.linestring='Move lines' args: 'stock.move.line' -
origin_package_idsMany2many → stock.packagecompute='_compute_origin_package_ids' args: 'stock.package' -
package_idsMany2many → stock.packagestring='Packages' args: 'stock.package' -
package_type_idMany2one → stock.package.typeargs: 'stock.package.type', 'Package Type' -
package_type_sequence_idMany2onerelated='package_type_id.sequence_id' -
result_package_idMany2one → stock.packageargs: 'stock.package', 'Package'
-
action_put_in_pack(self)
New fields (10)
-
activeBooleandefault=True args: 'Active' -
category_idMany2one → product.categorydefault=_default_category_iddomain=[('filter_for_stock_putaway_rule', '=', True)]index='btree_not_null'ondelete='cascade' args: 'product.category', 'Product Category' -
company_idMany2one → res.companydefault=<expr>index=Truerequired=True args: 'res.company', 'Company' -
location_in_idMany2one → stock.locationcheck_company=Truedefault=_default_location_iddomain="[('child_ids', '!=', False)]"index=Trueondelete='cascade'required=True args: 'stock.location', 'When product arrives in' -
location_out_idMany2one → stock.locationcheck_company=Truedomain="[('id', 'child_of', location_in_id)]"ondelete='cascade'required=True args: 'stock.location', 'Store to sublocation' -
package_type_idsMany2many → stock.package.typecheck_company=Truestring='Package Type' args: 'stock.package.type' -
product_idMany2one → product.productcheck_company=Truedefault=_default_product_iddomain="[('product_tmpl_id', '=', context.get('active_id', False))] if context.get('active_model') == 'product.template' else [('type', '!=', 'service')]"index='btree_not_null'ondelete='cascade' args: 'product.product', 'Product' -
sequenceIntegerhelp='Give to the more specialized category, a higher priority to have them in top of the list.' args: 'Priority' -
storage_category_idMany2one → stock.storage.categorycheck_company=Truecompute='_compute_storage_category'ondelete='cascade'readonly=Falsestore=True args: 'stock.storage.category', 'Storage Category' -
sublocationSelectiondefault='no' args: [('no', 'No'), ('last_used', 'Last Used'), ('closest_location', 'Closest Location')]
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (29)
-
available_quantityFloatcompute='_compute_available_quantity'digits='Product Unit'help="On hand quantity which hasn't been reserved on a transfer, in the default unit of measure of the product" args: 'Available Quantity' -
company_idMany2onereadonly=Truerelated='location_id.company_id'store=Truestring='Company' -
cyclic_inventory_frequencyIntegerrelated='location_id.cyclic_inventory_frequency' -
in_dateDatetimedefault=fields.Datetime.nowreadonly=Truerequired=True args: 'Incoming Date' -
inventory_dateDatecompute='_compute_inventory_date'help='Next date the On Hand Quantity should be counted.'readonly=Falsestore=True args: 'Scheduled' -
inventory_diff_quantityFloatcompute='_compute_inventory_diff_quantity'digits='Product Unit'help="Indicates the gap between the product's theoretical quantity and its counted quantity."readonly=Truestore=True args: 'Difference' -
inventory_quantityFloatdigits='Product Unit'help="The product's counted quantity." args: 'Counted' -
inventory_quantity_auto_applyFloatcompute='_compute_inventory_quantity_auto_apply'digits='Product Unit'groups='stock.group_stock_manager'inverse='_set_inventory_quantity' args: 'Inventoried Quantity' -
inventory_quantity_setBooleancompute='_compute_inventory_quantity_set'readonly=Falsestore=True -
is_favoriteBooleanrelated='product_tmpl_id.is_favorite' -
is_outdatedBooleancompute='_compute_is_outdated'search='_search_is_outdated' args: 'Quantity has been moved since last count' -
last_count_dateDatecompute='_compute_last_count_date'help='Last time the Quantity was Updated' -
location_idMany2one → stock.locationbypass_search_access=Truedomain=<expr>index=Trueondelete='restrict'required=True args: 'stock.location', 'Location' -
lot_idMany2one → stock.lotcheck_company=Truedomain=<expr>index=Trueondelete='restrict' args: 'stock.lot', 'Lot/Serial Number' -
lot_propertiesPropertiesdefinition='product_id.lot_properties_definition'readonly=Truerelated='lot_id.lot_properties' -
on_handBooleansearch='_search_on_hand'store=False args: 'On Hand' -
owner_idMany2one → res.partnercheck_company=Truehelp='This is the owner of the quant'index='btree_not_null' args: 'res.partner', 'Owner' -
package_idMany2one → stock.packagecheck_company=Truedomain="['|', ('location_id', '=', location_id), '&', ('location_id', '=', False), ('quant_ids', '=', False)]"help='The package containing this quant'index=Trueondelete='restrict' args: 'stock.package', 'Package' -
product_categ_idMany2onerelated='product_tmpl_id.categ_id' -
product_idMany2one → product.productcheck_company=Truedomain=<expr>index=Trueondelete='restrict'required=True args: 'product.product', 'Product' -
product_tmpl_idMany2one → product.templaterelated='product_id.product_tmpl_id'string='Product Template' args: 'product.template' -
product_uom_idMany2one → uom.uomreadonly=Truerelated='product_id.uom_id' args: 'uom.uom', 'Unit' -
quantityFloatdigits='Product Unit'help='Quantity of products in this quant, in the default unit of measure of the product'readonly=True args: 'Quantity' -
reserved_quantityFloatdefault=0.0digits='Product Unit'help='Quantity of reserved products in this quant, in the default unit of measure of the product'readonly=Truerequired=True args: 'Reserved Quantity' -
sn_duplicatedBooleancompute='_compute_sn_duplicated'help='If the same SN is in another Quant'string='Duplicated Serial Number' -
storage_category_idMany2onerelated='location_id.storage_category_id' -
trackingSelectionreadonly=Truerelated='product_id.tracking' -
user_idMany2one → res.usersdomain=<expr>help='User assigned to do product count.' args: 'res.users', 'Assigned To' -
warehouse_idMany2one → stock.warehouserelated='location_id.warehouse_id' args: 'stock.warehouse'
-
action_apply_all(self) -
action_apply_inventory(self, date=None) -
action_clear_inventory_quantity(self) -
action_inventory_history(self) -
action_reset(self) -
action_set_inventory_quantity(self) -
action_set_inventory_quantity_zero(self) -
action_stock_quant_relocate(self) -
action_view_inventory(self)@api.modelSimilar to _get_quants_action except specific for inventory adjustments (i.e. inventory counts). -
action_view_orderpoints(self) -
action_view_quants(self)@api.model -
action_view_stock_moves(self) -
check_location_id(self)@api.constrains('location_id') -
check_lot_id(self)@api.constrains('lot_id') -
check_product_id(self)@api.constrains('product_id') -
check_quantity(self) -
copy(self, default=None) -
create(self, vals_list)@api.model_create_multiOverride to handle the "inventory mode" and create a quant as superuser the conditions are met. -
get_aggregate_barcodes(self)Generates and aggregates quants' barcodes. This method uses the config parameters `stock.agg_barcode_max_length` to determine the length limit of a single aggregate barcode (400 by default) and `stock.barcode_separator` to determine which character to use to separate individual encodings (this method can't work without this parameter and will return an empty list.) Depending on the number of quants, those parameters and the length of their barcode encodings, there can be one or more aggregate barcodes. :return: list -
get_import_templates(self)@api.model -
move_quants(self, location_dest_id=False, package_dest_id=False, message=False, unpack=False, up_to_parent_packages=False)Directly move a stock.quant to another location and/or package by creating a stock.move. :param location_dest_id: `stock.location` destination location for the quants :param package_dest_id: `stock.package` destination package for the quants :param message: String to fill the reference field on the generated stock.move :param unpack: set to True when needing to unpack the quant :param up_to_parent_packages: `stock.package` that are the upper limit to keep the parents -
name_create(self, name)@api.model -
write(self, vals)Override to handle the "inventory mode" and create the inventory move.
New fields (9)
-
company_idMany2onerelated='quant_ids.company_id' -
dest_location_idMany2one → stock.locationdomain="[('usage', '=', 'internal'), ('company_id', '=', company_id)]" args: 'stock.location' -
dest_package_idMany2one → stock.packagecompute='_compute_dest_package_id'domain='dest_package_id_domain'store=True args: 'stock.package' -
dest_package_id_domainCharcompute='_compute_dest_package_id_domain' -
is_multi_locationBooleancompute='_compute_is_multi_location' -
is_partial_packageBooleancompute='_compute_is_partial_package' -
messageTextargs: 'Reason for relocation' -
partial_package_namesCharcompute='_compute_is_partial_package' -
quant_idsMany2many → stock.quantargs: 'stock.quant'
-
action_relocate_quants(self)
New fields (1)
-
inventory_datetimeDatetimedefault=fields.Datetime.nowhelp='Choose a date to get the inventory at that date' args: 'Inventory at Date'
-
open_at_date(self)
New fields (3)
-
move_idsMany2many → stock.movestring='Stock Moves' args: 'stock.move', 'stock_reference_move_rel', 'reference_id', 'move_id' -
nameCharreadonly=Truerequired=True args: 'Reference' -
picking_idsMany2many → stock.pickingcompute='_compute_picking_ids'readonly=Truestring='Transfers' args: 'stock.picking'
No public methods.
New fields (2)
-
allowed_route_idsMany2many → stock.routecompute='_compute_allowed_route_ids' args: 'stock.route' -
route_idMany2one → stock.routecheck_company=Truehelp="Apply specific route for the replenishment instead of product's default routes."string='Preferred Route' args: 'stock.route'
No public methods.
New fields (12)
-
based_onSelectiondefault='one_month'help='Estimate the sales volume for the period based on past period or order the forecasted quantity for that period.'required=Trueselection=[('one_week', 'Last 7 days'), ('one_month', 'Last 30 days'), ('three_months', 'Last 3 months'), ('one_year', 'Last 12 months'), ('last_year', 'Same month last year'), ('last_year_2', 'Next month last year'), ('last_year_3', 'After next month last year'), ('last_year_quarter', 'Last year quarter')]string='Based on' -
json_lead_daysCharcompute='_compute_json_lead_days' -
json_replenishment_graphCharcompute='_compute_json_replenishment_graph' -
orderpoint_idMany2one → stock.warehouse.orderpointargs: 'stock.warehouse.orderpoint' -
percent_factorIntegerdefault=100required=True -
product_idMany2one → product.productrelated='orderpoint_id.product_id' args: 'product.product' -
product_max_qtyFloatreadonly=Falserelated='orderpoint_id.product_max_qty'related_sudo=Falserequired=True args: 'Max' -
product_min_qtyFloatreadonly=Falserelated='orderpoint_id.product_min_qty'related_sudo=Falserequired=True args: 'Min' -
product_uom_nameCharrelated='orderpoint_id.product_uom_name' -
qty_to_orderFloatrelated='orderpoint_id.qty_to_order' -
warehouseinfo_idsOne2manyrelated='orderpoint_id.warehouse_id.resupply_route_ids' -
wh_replenishment_option_idsOne2many → stock.replenishment.optioncompute='_compute_wh_replenishment_options' args: 'stock.replenishment.option', 'replenishment_info_id'
No public methods.
New fields (10)
-
free_qtyFloatcompute='_compute_free_qty' -
lead_timeCharcompute='_compute_lead_time' -
location_idMany2one → stock.locationrelated='warehouse_id.lot_stock_id' args: 'stock.location' -
product_idMany2one → product.productargs: 'product.product' -
qty_to_orderFloatrelated='replenishment_info_id.qty_to_order' -
replenishment_info_idMany2one → stock.replenishment.infoargs: 'stock.replenishment.info' -
route_idMany2one → stock.routeargs: 'stock.route' -
uomCharrelated='product_id.uom_name' -
warehouse_idMany2one → stock.warehouserelated='route_id.supplier_wh_id' args: 'stock.warehouse' -
warning_messageCharcompute='_compute_warning_message'
-
order_all(self) -
order_avbl(self) -
select_route(self)
New fields (4)
-
inventory_dateDatedefault=fields.Datetime.nowhelp='Choose a date to get the inventory at that date'required=True args: 'Scheduled at' -
quant_idsMany2many → stock.quantargs: 'stock.quant' -
show_expected_quantityBooleancompute='_compute_show_expected_quantity'help='If the user can see the expected quantity or not'inverse='_set_show_expected_quantity' -
user_idMany2one → res.usersdomain=<expr>string='Assign to' args: 'res.users'
-
action_request_count(self)
New fields (4)
-
company_idMany2onerelated='picking_id.company_id' -
picking_idMany2one → stock.pickingargs: 'stock.picking' -
picking_type_codeSelectionreadonly=Truerelated='picking_id.picking_type_code' -
product_return_movesOne2many → stock.return.picking.linecompute='_compute_moves_locations'precompute=Truereadonly=Falsestore=True args: 'stock.return.picking.line', 'wizard_id', 'Moves'
-
action_create_exchanges(self)Create a return for the active picking, then create a return of the return for the exchange picking and open it. -
action_create_returns(self) -
action_create_returns_all(self)Create a return matching the total delivered quantity and open it. -
default_get(self, fields)@api.model
New fields (6)
-
move_idMany2one → stock.moveargs: 'stock.move', 'Move' -
move_quantityFloatrelated='move_id.quantity'string='Move Quantity' -
product_idMany2one → product.productrequired=Truestring='Product' args: 'product.product' -
quantityFloatdefault=1digits='Product Unit'required=True args: 'Quantity' -
uom_idMany2one → uom.uomcompute='_compute_uom_id'string='Unit' args: 'uom.uom' -
wizard_idMany2one → stock.return.pickingstring='Wizard' args: 'stock.return.picking'
No public methods.
New fields (15)
-
activeBooleandefault=Truehelp='If the active field is set to False, it will allow you to hide the route without removing it.' args: 'Active' -
categ_idsMany2many → product.categorycopy=False args: 'product.category', 'stock_route_categ', 'route_id', 'categ_id', 'Product Categories' -
company_idMany2one → res.companydefault=<expr>help='Leave this field empty if this route is shared between all companies'index=True args: 'res.company', 'Company' -
nameCharrequired=Truetranslate=True args: 'Route' -
package_type_selectableBooleanhelp='When checked, the route will be selectable on package types' args: 'Applicable on Package Type' -
product_categ_selectableBooleanhelp='When checked, the route will be selectable on the Product Category.' args: 'Applicable on Product Category' -
product_idsMany2many → product.templatecheck_company=Truecopy=False args: 'product.template', 'stock_route_product', 'route_id', 'product_id', 'Products' -
product_selectableBooleandefault=Truehelp='When checked, the route will be selectable in the Inventory tab of the Product form.' args: 'Applicable on Product' -
rule_idsOne2many → stock.rulecopy=True args: 'stock.rule', 'route_id', 'Rules' -
sequenceIntegerdefault=0 args: 'Sequence' -
supplied_wh_idMany2one → stock.warehouseindex='btree_not_null' args: 'stock.warehouse', 'Supplied Warehouse' -
supplier_wh_idMany2one → stock.warehouseargs: 'stock.warehouse', 'Supplying Warehouse' -
warehouse_domain_idsOne2many → stock.warehousecompute='_compute_warehouses' args: 'stock.warehouse' -
warehouse_idsMany2many → stock.warehousecopy=Falsedomain="[('id', 'in', warehouse_domain_ids)]" args: 'stock.warehouse', 'stock_route_warehouse', 'route_id', 'warehouse_id', 'Warehouses' -
warehouse_selectableBooleanhelp='When a warehouse is selected for this route, this route should be seen as the default route when products pass through this warehouse.' args: 'Applicable on Warehouse'
-
copy_data(self, default=None) -
write(self, vals)
New fields (22)
-
actionSelectiondefault='pull'index=Truerequired=Trueselection=[('pull', 'Pull From'), ('push', 'Push To'), ('pull_push', 'Pull & Push')]string='Action' -
activeBooleandefault=Truehelp='If unchecked, it will allow you to hide the rule without removing it.' args: 'Active' -
autoSelectiondefault='manual'help="The 'Manual Operation' value will create a stock move after the current one. With 'Automatic No Step Added', the location is replaced in the original move."required=Truestring='Automatic Move' args: [('manual', 'Manual Operation'), ('transparent', 'Automatic No Step Added')] -
company_idMany2one → res.companydefault=<expr>domain="[('id', '=?', route_company_id)]"index=True args: 'res.company', 'Company' -
delayIntegerdefault=0help='The expected date of the created transfer will be computed based on this lead time.' args: 'Lead Time' -
location_dest_from_ruleBooleandefault=Falsehelp='When set to True the destination location of the stock.move will be the rule.Otherwise, it takes it from the picking type.' args: 'Destination location origin from rule' -
location_dest_idMany2one → stock.locationcheck_company=Trueindex=Truerequired=True args: 'stock.location', 'Destination Location' -
location_src_idMany2one → stock.locationcheck_company=Trueindex=True args: 'stock.location', 'Source Location' -
nameCharhelp='This field will fill the packing origin and the name of its moves'required=Truetranslate=True args: 'Name' -
partner_address_idMany2one → res.partnercheck_company=Truehelp='Address where goods should be delivered. Optional.' args: 'res.partner', 'Partner Address' -
picking_type_code_domainJsoncompute='_compute_picking_type_code_domain' -
picking_type_idMany2one → stock.picking.typecheck_company=Truedomain="[('code', 'in', picking_type_code_domain)] if picking_type_code_domain else []"required=True args: 'stock.picking.type', 'Operation Type' -
procure_methodSelectiondefault='make_to_stock'help='Take From Stock: the products will be taken from the available stock of the source location.\nTrigger Another Rule: the system will try to find a stock rule to bring the products in the source location. The available stock will be ignored.\nTake From Stock, if Unavailable, Trigger Another Rule: the products will be taken from the available stock of the source location.If there is no stock available, the system will try to find a rule to bring the products in the source location.'required=Truestring='Supply Method' args: [('make_to_stock', 'Take From Stock'), ('make_to_order', 'Trigger Another Rule'), ('mts_else_mto', 'Take From Stock, if unavailable, Trigger Another Rule')] -
propagate_cancelBooleandefault=Falsehelp='When ticked, if the move created by this rule is cancelled, the next move will be cancelled too.' args: 'Cancel Next Move' -
propagate_carrierBooleandefault=Falsehelp='When ticked, carrier of shipment will be propagated.' args: 'Propagation of carrier' -
push_domainCharargs: 'Push Applicability' -
route_company_idMany2onerelated='route_id.company_id'string='Route Company' -
route_idMany2one → stock.routeindex=Trueondelete='cascade'required=True args: 'stock.route', 'Route' -
route_sequenceIntegercompute_sudo=Truerelated='route_id.sequence'store=True args: 'Route Sequence' -
rule_messageHtmlcompute='_compute_action_message' -
sequenceIntegerdefault=20 args: 'Sequence' -
warehouse_idMany2one → stock.warehousecheck_company=Trueindex=True args: 'stock.warehouse', 'Warehouse'
-
copy_data(self, default=None) -
default_get(self, fields)@api.model -
run(self, procurements, raise_user_error=True)@api.modelFulfil `procurements` with the help of stock rules. Procurements are needs of products at a certain location. To fulfil these needs, we need to create some sort of documents (`stock.move` by default, but extensions of `_run_` methods allow to create every type of documents). :param procurements: the description of the procurement :type procurements: list of `~odoo.addons.stock.models.stock_rule.ProcurementGroup.Procurement` :param raise_user_error: will raise either an UserError or a ProcurementException :type raise_user_error: boolan, optional :raises UserError: if `raise_user_error` is True and a procurement isn't fulfillable :raises ProcurementException: if `raise_user_error` is False and a procurement isn't fulfillable -
run_scheduler(self, use_new_cursor=False, company_id=False)@api.modelCall the scheduler in order to check the running procurements (super method), to check the minimum stock rules and the availability of moves. This function is intended to be run for all the companies at the same time, so we run functions as SUPERUSER to avoid intercompanies and access rights issues.
New fields (4)
-
product_has_variantsBooleandefault=Falserequired=True args: 'Has variants' -
product_idMany2one → product.productrequired=Truestring='Product' args: 'product.product' -
product_tmpl_idMany2one → product.templaterequired=Truestring='Product Template' args: 'product.template' -
warehouse_idsMany2many → stock.warehousehelp='Show the routes that apply on selected warehouses.'required=Truestring='Warehouses' args: 'stock.warehouse'
-
default_get(self, fields)@api.model -
print_report(self)
New fields (19)
-
allowed_uom_idsMany2many → uom.uomcompute='_compute_allowed_uom_ids' args: 'uom.uom' -
company_idMany2one → res.companydefault=<expr>required=Truestring='Company' args: 'res.company' -
date_doneDatetimereadonly=True args: 'Date' -
location_idMany2one → stock.locationcheck_company=Truecompute='_compute_location_id'domain="[('usage', '=', 'internal')]"precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Source Location' -
lot_idMany2one → stock.lotcheck_company=Truedomain="[('product_id', '=', product_id)]" args: 'stock.lot', 'Lot/Serial' -
move_idsOne2many → stock.moveargs: 'stock.move', 'scrap_id' -
nameCharcopy=Falsedefault=<expr>readonly=Truerequired=True args: 'Reference' -
originCharstring='Source Document' -
owner_idMany2one → res.partnercheck_company=True args: 'res.partner', 'Owner' -
package_idMany2one → stock.packagecheck_company=True args: 'stock.package', 'Package' -
picking_idMany2one → stock.pickingcheck_company=True args: 'stock.picking', 'Picking' -
product_idMany2one → product.productcheck_company=Truedomain="[('type', '=', 'consu')]"required=True args: 'product.product', 'Product' -
product_uom_idMany2one → uom.uomcompute='_compute_product_uom_id'domain="[('id', 'in', allowed_uom_ids)]"precompute=Truereadonly=Falserequired=Truestore=True args: 'uom.uom', 'Unit' -
scrap_location_idMany2one → stock.locationcheck_company=Truecompute='_compute_scrap_location_id'domain="[('usage', '=', 'inventory')]"precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Scrap Location' -
scrap_qtyFloatcompute='_compute_scrap_qty'default=1.0digits='Product Unit'readonly=Falserequired=Truestore=True args: 'Quantity' -
scrap_reason_tag_idsMany2many → stock.scrap.reason.tagcomodel_name='stock.scrap.reason.tag'string='Scrap Reason' -
should_replenishBooleanhelp='Trigger replenishment for scrapped products'string='Replenish Quantities' -
stateSelectiondefault='draft'readonly=Truestring='Status'tracking=True args: [('draft', 'Draft'), ('done', 'Done')] -
trackingSelectionreadonly=Truerelated='product_id.tracking'string='Product Tracking'
-
action_get_stock_move_lines(self) -
action_get_stock_picking(self) -
action_validate(self) -
check_available_qty(self) -
do_replenish(self, values=False) -
do_scrap(self)
New fields (3)
-
colorChardefault='#3C3C3C'string='Color' -
nameCharrequired=Truestring='Name'translate=True -
sequenceIntegerdefault=10
No public methods.
New fields (9)
-
allow_new_productSelectiondefault='mixed'required=True args: [('empty', 'If the location is empty'), ('same', 'If all products are same'), ('mixed', 'Allow mixed products')] -
capacity_idsOne2many → stock.storage.category.capacitycopy=True args: 'stock.storage.category.capacity', 'storage_category_id' -
company_idMany2one → res.companyargs: 'res.company', 'Company' -
location_idsOne2many → stock.locationargs: 'stock.location', 'storage_category_id' -
max_weightFloatdigits='Stock Weight' args: 'Max Weight' -
nameCharrequired=True args: 'Storage Category' -
package_capacity_idsOne2many → stock.storage.category.capacitycompute='_compute_storage_capacity_ids'inverse='_set_storage_capacity_ids' args: 'stock.storage.category.capacity' -
product_capacity_idsOne2many → stock.storage.category.capacitycompute='_compute_storage_capacity_ids'inverse='_set_storage_capacity_ids' args: 'stock.storage.category.capacity' -
weight_uom_nameCharcompute='_compute_weight_uom_name'string='Weight unit'
-
copy_data(self, default=None)
New fields (6)
-
company_idMany2one → res.companyrelated='storage_category_id.company_id' args: 'res.company', 'Company' -
package_type_idMany2one → stock.package.typecheck_company=Trueindex='btree_not_null'ondelete='cascade' args: 'stock.package.type', 'Package Type' -
product_idMany2one → product.productcheck_company=Truedomain="[('product_tmpl_id', '=', context.get('active_id', False))] if context.get('active_model') == 'product.template' else [('id', '=', context.get('default_product_id', False))] if context.get('default_product_id') else [('is_storable', '=', True)]"index='btree_not_null'ondelete='cascade' args: 'product.product', 'Product' -
product_uom_idMany2onerelated='product_id.uom_id' -
quantityFloatrequired=True args: 'Quantity' -
storage_category_idMany2one → stock.storage.categoryindex=Trueondelete='cascade'required=True args: 'stock.storage.category'
No public methods.
New fields (0)
No new fields.
Public methods (4)-
get_lines(self, line_id=False, **kw)@api.model -
get_main_lines(self, given_context=None)@api.model -
get_pdf(self, line_data=None) -
get_pdf_lines(self, line_data=[])
New fields (28)
-
activeBooleandefault=True args: 'Active' -
codeCharhelp='Short name used to identify your warehouse'required=Truesize=5 args: 'Short Name' -
company_idMany2one → res.companydefault=<expr>help='The company is automatically set from your user preferences.'readonly=Truerequired=True args: 'res.company', 'Company' -
delivery_route_idMany2one → stock.routecopy=Falseondelete='restrict' args: 'stock.route', 'Delivery Route' -
delivery_stepsSelectiondefault='ship_only'help='Default outgoing route to follow'required=True args: [('ship_only', 'Deliver (1 step)'), ('pick_ship', 'Pick then Deliver (2 steps)'), ('pick_pack_ship', 'Pick, Pack, then Deliver (3 steps)')], 'Outgoing Shipments' -
in_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'In Type' -
int_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Internal Type' -
lot_stock_idMany2one → stock.locationcheck_company=Truedomain="[('usage', '=', 'internal'), ('company_id', '=', company_id)]"required=True args: 'stock.location', 'Location Stock' -
mto_pull_idMany2one → stock.rulecopy=False args: 'stock.rule', 'MTO rule' -
nameChardefault=_default_namerequired=True args: 'Warehouse' -
out_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Out Type' -
pack_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Pack Type' -
partner_idMany2one → res.partnercheck_company=Truedefault=<expr> args: 'res.partner', 'Address' -
pick_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Pick Type' -
qc_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Quality Control Type' -
reception_route_idMany2one → stock.routecopy=Falseondelete='restrict' args: 'stock.route', 'Receipt Route' -
reception_stepsSelectiondefault='one_step'help='Default incoming route to follow'required=True args: [('one_step', 'Receive and Store (1 step)'), ('two_steps', 'Receive then Store (2 steps)'), ('three_steps', 'Receive, Quality Control, then Store (3 steps)')], 'Incoming Shipments' -
resupply_route_idsOne2many → stock.routecopy=Falsehelp='Routes will be created for these resupply warehouses and you can select them on products and product categories' args: 'stock.route', 'supplied_wh_id', 'Resupply Routes' -
resupply_wh_idsMany2many → stock.warehousehelp='Routes will be created automatically to resupply this warehouse from the warehouses ticked' args: 'stock.warehouse', 'stock_wh_resupply_table', 'supplied_wh_id', 'supplier_wh_id', 'Resupply From' -
route_idsMany2many → stock.routecheck_company=Truecopy=Falsedomain="[('warehouse_selectable', '=', True), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"help='Defaults routes through the warehouse' args: 'stock.route', 'stock_route_warehouse', 'warehouse_id', 'route_id', 'Routes' -
sequenceIntegerdefault=10help='Gives the sequence of this line when displaying the warehouses.' -
store_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Storage Type' -
view_location_idMany2one → stock.locationcheck_company=Truedomain="[('usage', '=', 'view'), ('company_id', '=', company_id)]"index=Truerequired=True args: 'stock.location', 'View Location' -
wh_input_stock_loc_idMany2one → stock.locationcheck_company=True args: 'stock.location', 'Input Location' -
wh_output_stock_loc_idMany2one → stock.locationcheck_company=True args: 'stock.location', 'Output Location' -
wh_pack_stock_loc_idMany2one → stock.locationcheck_company=True args: 'stock.location', 'Packing Location' -
wh_qc_stock_loc_idMany2one → stock.locationcheck_company=True args: 'stock.location', 'Quality Control Location' -
xdock_type_idMany2one → stock.picking.typecheck_company=Truecopy=False args: 'stock.picking.type', 'Cross Dock Type'
-
action_view_all_routes(self) -
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
create_resupply_routes(self, supplier_warehouses) -
get_current_warehouses(self) -
get_rules_dict(self)Define the rules source/destination locations, picking_type and action needed for each warehouse route configuration. -
unlink(self) -
write(self, vals)
New fields (33)
-
activeBooleandefault=Truehelp='If the active field is set to False, it will allow you to hide the orderpoint without removing it.' args: 'Active' -
allowed_location_idsOne2many → stock.locationcomodel_name='stock.location'compute='_compute_allowed_location_ids' -
allowed_replenishment_uom_idsMany2many → uom.uomcompute='_compute_allowed_replenishment_uom_ids' args: 'uom.uom' -
company_idMany2one → res.companydefault=<expr>index=Truerequired=True args: 'res.company', 'Company' -
days_to_orderFloatcompute='_compute_days_to_order'help='Numbers of days in advance that replenishments demands are created.' -
deadline_dateDatecompute='_compute_deadline_date'help='Date before which you should order to avoid falling below the minimum. If you have nothing to order while a deadline is found, it may be because a future arrival is expected after the minimum quantity is reached (potential stockout). Check the Forecast Report.'readonly=Truestore=True args: 'Deadline' -
effective_route_idMany2one → stock.routecompute='_compute_effective_route_id'help='Either the route set directly or the one computed to be used by this replenishment'search='_search_effective_route_id'store=False args: 'stock.route' -
lead_daysFloatcompute='_compute_lead_days' -
lead_horizon_dateDatecompute='_compute_lead_days' -
location_idMany2one → stock.locationcheck_company=Truecompute='_compute_location_id'index=Trueondelete='cascade'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.location', 'Location' -
nameCharcopy=Falsedefault=<expr>readonly=Truerequired=True args: 'Name' -
product_category_idMany2one → product.categoryname='Product Category'related='product_id.categ_id' args: 'product.category' -
product_idMany2one → product.productcheck_company=Truedomain="[('product_tmpl_id', '=', context.get('active_id', False))] if context.get('active_model') == 'product.template' else [('id', '=', context.get('default_product_id', False))] if context.get('default_product_id') else [('is_storable', '=', True)]"index=Trueondelete='cascade'required=True args: 'product.product', 'Product' -
product_max_qtyFloatcompute='_compute_product_max_qty'default=0.0digits='Product Unit'help='Stock level to reach when replenishing.'readonly=Falserequired=Truestore=True args: 'Max Quantity' -
product_min_qtyFloatdefault=0.0digits='Product Unit'help='The minimum Stock level that will trigger a replenishment.'required=True args: 'Min Quantity' -
product_tmpl_idMany2one → product.templaterelated='product_id.product_tmpl_id' args: 'product.template' -
product_uomMany2one → uom.uomrelated='product_id.uom_id' args: 'uom.uom', 'Unit' -
product_uom_nameCharreadonly=Truerelated='product_uom.display_name'string='Product unit of measure label' -
qty_forecastFloatcompute='_compute_qty'digits='Product Unit'readonly=True args: 'Forecast' -
qty_on_handFloatcompute='_compute_qty'digits='Product Unit'readonly=True args: 'On Hand' -
qty_to_orderFloatcompute='_compute_qty_to_order'digits='Product Unit'inverse='_inverse_qty_to_order'search='_search_qty_to_order' args: 'To Order' -
qty_to_order_computedFloatcompute='_compute_qty_to_order_computed'digits='Product Unit'store=True args: 'To Order Computed' -
qty_to_order_manualFloatdigits='Product Unit' args: 'To Order Manual' -
replenishment_uom_idMany2one → uom.uomdomain="[('id', 'in', allowed_replenishment_uom_ids)]"help='The procurement quantity will be rounded up to a multiple of this unit/packaging. If it is not set, it is not rounded.' args: 'uom.uom', 'Multiple' -
replenishment_uom_id_placeholderCharcompute='_compute_replenishment_uom_id_placeholder' -
route_idMany2one → stock.routedomain="['|', ('product_selectable', '=', True), ('rule_ids.action', 'in', ['buy', 'manufacture'])]"inverse='_inverse_route_id'string='Route' args: 'stock.route' -
route_id_placeholderCharcompute='_compute_route_id_placeholder' -
rule_idsMany2many → stock.rulecompute='_compute_rules'string='Rules used' args: 'stock.rule' -
show_supply_warningBooleancompute='_compute_show_supply_warning' -
snoozed_untilDatehelp='Hidden until next scheduler.' args: 'Snoozed' -
triggerSelectiondefault='auto'required=Truestring='Trigger' args: [('auto', 'Auto'), ('manual', 'Manual')] -
unwanted_replenishBooleancompute='_compute_unwanted_replenish' args: 'Unwanted Replenish' -
warehouse_idMany2one → stock.warehousecheck_company=Truecompute='_compute_warehouse_id'index=Trueondelete='cascade'precompute=Truereadonly=Falserequired=Truestore=True args: 'stock.warehouse', 'Warehouse'
-
action_open_orderpoints(self)@api.model -
action_product_forecast_report(self) -
action_remove_manual_qty_to_order(self) -
action_replenish(self, force_to_max=False) -
action_replenish_auto(self) -
action_stock_replenishment_info(self) -
create(self, vals_list)@api.model_create_multi -
get_horizon_days(self)Return the value for Horizon. This can be (in order of priority): - the value set in context in the replenishment view - the value set on the company of the all the records in self. There should be at most 1 company_id on self. - the value set on the company of the user if all else fail. -
write(self, vals)
New fields (5)
-
location_idMany2one → stock.locationdomain="[('usage', '=', 'internal')]"required=True args: 'stock.location', 'Location' -
product_idMany2one → product.productrequired=True args: 'product.product', 'Product' -
product_uom_nameCharrequired=True args: 'Unit' -
quant_idsMany2many → stock.quantcompute='_compute_quant_ids' args: 'stock.quant' -
quantityFloatrequired=Truestring='Quantity'
-
action_done(self)
New fields (1)
-
scrap_idMany2one → stock.scrapargs: 'stock.scrap', 'Scrap'
-
action_cancel(self) -
action_done(self)
New fields (2)
-
package_type_idMany2one → stock.package.typestring='Package Type' args: 'stock.package.type' -
route_idsMany2manyhelp='Routes propagated from the package type'related='package_type_id.route_ids'string='Routes'
-
write(self, vals)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…