Repository
odoo/odoo · module folder
Module version
1.2
Category
Supply Chain/Purchase
Folder size
3.34 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-08-21 04:11:31
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Laurent Smet, Jorge Pinna Puissant, Arnold Moyaux, Julien Castiaux, Victor Feyens, Andrea Grazioso (agr-odoo), William Henrotin, Anh Thao Pham (pta), svs-odoo, Prakash Prajapati, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, william-andre, JF Aubert, David (dafr), John Laterre (jol), Aurelien van Delft (avd), Mathieu Walravens, luvi, Elias Regopoulos, Habib (ayh), Louis Wicket (wil), alsh-odoo, Adrien Widart (awt), Victor Piryns (pivi), Djamel Touati, Pieter Claeys (clpi), clesgow, Dylan Kiss (dyki), Odoo, Martin Maes, Paweł Fertyk, Sarah Bellefroid, kdeb@odoo.com, Walid (wasa), lase@odoo.com, Quentin Wolfs, Ethan Vincent, Cyril Dutrieux (cydu), kcv-odoo, nihp-odoo, Chrysanthe (chgo), mano-odoo, Stéphane Diez, kawkb, dhha-odoo, Léo Gizard, Hesham Saleh, Julien Schwanen, David Van Droogenbroeck (DROD), pkgu-odoo, Mohammad Abdulmoneim (abdu), djameltouati, Shrey Mehta, MaximeNoirhomme, plha-odoo, Krzysztof Magusiak (krma), Omar (OSAH), krip-odoo, joseph, Guillaume V, bhna-odoo, Junqi, agbr-odoo, Lulu Grimalkin (lugr), rare-odoo, sawer, Lancelot Semal, adip-odoo, steji, Ayush Modi, Amr Elkhatieb, Robert Smith (rosm), daiduongnguyen-odoo, srap-odoo, Zachary (zavan), tpma-odoo, msho-odoo, lase, Do Anh Duy, hapt-odoo, Youssef, jeanschoenlaub, Abhishek Yadav
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
account_payment_purchase_stock, ddmrp, delivery_purchase, despatch_advice_import, intrastat_product, l10n_in_purchase_stock, l10n_ro_stock_price_difference, mrp_multi_level, pms_purchase, procurement_purchase_no_grouping, purchase_auto_bill_on_receipt, purchase_delivery_split_date, purchase_landed_cost, purchase_mrp, purchase_order_approved, purchase_order_import, purchase_order_line_sequence, purchase_order_owner, purchase_partner_incoterm, purchase_reception_status, purchase_repair, purchase_report_shipping_address, purchase_request, purchase_requisition_stock, purchase_stock_date_done_revaluation, purchase_stock_price_unit_sync, sale_purchase_stock, spreadsheet_dashboard_purchase_stock_oca, stock_landed_costs, stock_picking_return_refund_option, stock_request_purchase, supplier_calendar, test_main_flows, tms_purchase
Description

Code Analysis

Views touched (27)
XML IDNameModelTypeStatus
exception_on_po exception_on_po ir.ui.view qweb New
product_supplierinfo_replenishment_tree_view product.supplierinfo.replenishment.list.view product.supplierinfo list Inherits product.product_supplierinfo_tree_view
product_view_kanban_catalog_purchase_only product.view.kanban.catalog.purchase_stock product.product kanban Inherits purchase.product_view_kanban_catalog_purchase_only
product_view_search_catalog purchase.view.search.catalog.inherit.purchase_stock product.product search Inherits purchase.product_view_search_catalog
purchase_help_message_template purchase_help_message_template ir.ui.view qweb Inherits stock.help_message_template
purchase_order_line_view_form_inherit purchase.order.line.form.inherit purchase.order.line form Inherits purchase.purchase_order_line_form2
purchase_order_view_form_inherit purchase.order.form.inherit purchase.order form Inherits purchase.purchase_order_form
purchase_order_view_tree_inherit purchase.order.list.inherit purchase.order list Inherits purchase.purchase_order_view_tree
purchase_report_stock_rule purchase_report_stock_rule ir.ui.view qweb Inherits stock.report_stock_rule
purchase_report_view_search purchase.report.search.stock purchase.report search Inherits purchase.view_purchase_order_search
report_purchaseorder_document report_purchaseorder_document ir.ui.view qweb Inherits purchase.report_purchaseorder_document
report_purchasequotation_document report_purchasequotation_document ir.ui.view qweb Inherits purchase.report_purchasequotation_document
res_config_settings_view_form_purchase res.config.settings.view.form.inherit.purchase res.config.settings form Inherits purchase.res_config_settings_view_form_purchase
res_config_settings_view_form_stock res.config.settings.view.form.inherit.purchase.stock res.config.settings form Inherits stock.res_config_settings_view_form
res_partner_view_purchase_buttons_inherit res.partner.purchase.stock.form.inherit res.partner form Inherits purchase.view_partner_property_form
stock_move_purchase stock.move.form stock.move form Inherits stock.view_move_form
stock_production_lot_view_form stock.production.lot.view.form stock.lot form Inherits stock.view_production_lot_form
stock_reference_purchase_view_form stock.reference.purchase stock.reference form Inherits stock.stock_reference_form_view
vendor_delay_report_filter vendor.delay.report.search vendor.delay.report search New
vendor_delay_report_view_graph vendor.delay.report.view.graph vendor.delay.report graph New
view_picking_form purchase.stock.view.picking.form stock.picking form Inherits stock.view_picking_form
view_product_replenish_form_inherit_stock product.replenish.form.inherit.stock product.replenish form Inherits stock.view_product_replenish
view_stock_replenishment_info_stock_purchase_inherit stock.replenishment.information.purchase.stock.inherit stock.replenishment.info Inherits stock.view_stock_replenishment_info
view_stock_rule_form_stock_inherit_purchase_stock stock.rule.form.stock.inherit.purchase_stock stock.rule form Inherits stock.view_stock_rule_form
view_warehouse_inherited Stock Warehouse Inherited stock.warehouse Inherits stock.view_warehouse
view_warehouse_orderpoint_tree_editable_inherited_mrp stock.warehouse.orderpoint.list.editable.inherit.mrp stock.warehouse.orderpoint list Inherits stock.view_warehouse_orderpoint_tree_editable
warehouse_orderpoint_search_inherit stock.warehouse.orderpoint.search.inherit stock.warehouse.orderpoint search Inherits stock.stock_reorder_report_search
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (28)

New fields (0)

No new fields.

Public methods (1)
  • button_draft(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • monthly_demand Float
    compute='_compute_monthly_demand'
  • purchase_order_line_ids One2many → purchase.order.line
    string='PO Lines' args: 'purchase.order.line', 'product_id'
  • suggest_estimated_price Float
    compute='_compute_suggest_estimated_price'
  • suggested_qty Integer
    compute='_compute_suggested_quantity' search='_search_product_with_suggested_quantity'
Public methods (1)
  • get_total_routes(self)

New fields (0)

No new fields.

Public methods (2)
  • action_stock_replenishment_info(self)
  • default_get(self, fields)
    @api.model

New fields (2)
  • last_purchase_date Date
    compute='_compute_last_purchase_date' args: 'Last Purchase'
  • show_set_supplier_button Boolean
    compute='_compute_show_set_supplier_button' args: 'Show Set Supplier Button'
Public methods (1)
  • action_set_supplier(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (11)
  • default_location_dest_id_usage Selection
    help='Technical field used to display the Drop Ship Address' readonly=True related='picking_type_id.default_location_dest_id.usage' string='Destination Location Type'
  • dest_address_id Many2one → res.partner
    compute='_compute_dest_address_id' readonly=False store=True args: 'res.partner'
  • effective_date Datetime
    compute='_compute_effective_date' copy=False help='Completion date of the first receipt order.' store=True args: 'Arrival'
  • incoming_picking_count Integer
    compute='_compute_incoming_picking_count' args: 'Incoming Shipment count'
  • incoterm_location Char
    string='Incoterm Location'
  • is_shipped Boolean
    compute='_compute_is_shipped'
  • on_time_rate Float
    compute_sudo=False related='partner_id.on_time_rate'
  • picking_ids Many2many → stock.picking
    compute='_compute_picking_ids' copy=False store=True string='Receptions' args: 'stock.picking'
  • picking_type_id Many2one → stock.picking.type
    default=_default_picking_type domain="['|', ('warehouse_id', '=', False), ('warehouse_id.company_id', '=', company_id)]" help='This will determine operation type of incoming shipment' required=True args: 'stock.picking.type', 'Deliver To'
  • receipt_status Selection
    compute='_compute_receipt_status' help='Red: Late\n Orange: To process today\n Green: On time' store=True string='Receipt Status' args: [('pending', 'Not Received'), ('partial', 'Partially Received'), ('full', 'Fully Received')]
  • reference_ids Many2many → stock.reference
    copy=False string='References' args: 'stock.reference', 'stock_reference_purchase_rel', 'purchase_id', 'reference_id'
Public methods (7)
  • action_add_from_catalog(self)
  • action_purchase_order_suggest(self)
    Adds suggested products to PO, removing products with no suggested_qty, and collapsing existing po_lines into at most 1 orderline. Saves suggestion params (eg. number_of_days) to partner table.
  • action_view_picking(self)
  • button_approve(self, force=False)
  • button_cancel(self)
  • retrieve_dashboard(self)
    @api.model
  • write(self, vals)

New fields (9)
  • forecasted_issue Boolean
    compute='_compute_forecasted_issue'
  • is_storable Boolean
    related='product_id.is_storable'
  • location_final_id Many2one → stock.location
    args: 'stock.location', 'Location from procurement'
  • move_dest_ids Many2many → stock.move
    args: 'stock.move', 'stock_move_created_purchase_line_rel', 'created_purchase_line_id', 'move_id', 'Downstream moves alt'
  • move_ids One2many → stock.move
    copy=False readonly=True string='Reservation' args: 'stock.move', 'purchase_line_id'
  • orderpoint_id Many2one → stock.warehouse.orderpoint
    copy=False index='btree_not_null' ondelete='set null' args: 'stock.warehouse.orderpoint', 'Orderpoint'
  • product_description_variants Char
    args: 'Custom Description'
  • propagate_cancel Boolean
    default=True args: 'Propagate cancellation'
  • qty_received_method Selection
    ondelete={'stock_moves': _ondelete_stock_moves} selection_add=[('stock_moves', 'Stock Moves')]
Public methods (4)
  • action_product_forecast_report(self)
  • create(self, vals_list)
    @api.model_create_multi
  • unlink(self)
  • write(self, vals)

New fields (3)
  • days_to_arrival Float
    aggregator='avg' digits=(16, 2) readonly=True args: 'Effective Days To Arrival'
  • effective_date Datetime
    string='Effective Date'
  • picking_type_id Many2one → stock.warehouse
    readonly=True args: 'stock.warehouse', 'Warehouse'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • days_to_purchase Float
    help='Days needed to confirm a PO, define when a PO should be validated' string='Days to Purchase'
Public methods (0)

No public methods.

New fields (3)
  • days_to_purchase Float
    readonly=False related='company_id.days_to_purchase'
  • is_installed_sale Boolean
    string='Is the Sale Module Installed'
  • module_stock_dropshipping Boolean
    args: 'Dropshipping'
Public methods (1)
  • get_values(self)
    @api.model

New fields (7)
  • group_on Selection
    default='default' required=True string='Week Day' args: [('default', 'Expected Date'), ('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
  • group_rfq Selection
    default='default' help='Define if RFQ should be grouped together based on expected arrival, except for dropship operations.\n On Order: Replenishment needs will be grouped together except for MTO.\n Daily: Replenishment needs will be grouped if the expected arrival is the same day\n Weekly: Replenishment needs will be grouped if the expected arrival is the same week or week day\n Always: Replenishment needs will always be grouped.' required=True string='Group RFQ' args: [('default', 'On Order'), ('day', 'Daily'), ('week', 'Weekly'), ('all', 'Always')]
  • on_time_rate Float
    compute='_compute_on_time_rate' help='Over the past x days; the number of products received on time divided by the number of ordered products.x is either the System Parameter purchase_stock.on_time_delivery_days or the default 365' args: 'On-Time Delivery Rate'
  • purchase_line_ids One2many → purchase.order.line
    string='Purchase Lines' args: 'purchase.order.line', 'partner_id'
  • suggest_based_on Char
    default='30_days'
  • suggest_days Integer
    default=7
  • suggest_percent Integer
    default=100
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (2)
  • purchase_order_count Integer
    compute='_compute_purchase_order_ids' args: 'Purchase order count'
  • purchase_order_ids Many2many → purchase.order
    compute='_compute_purchase_order_ids' readonly=True store=False string='Purchase Orders' args: 'purchase.order'
Public methods (1)
  • action_view_po(self)

New fields (2)
  • created_purchase_line_ids Many2many → purchase.order.line
    copy=False args: 'purchase.order.line', 'stock_move_created_purchase_line_rel', 'move_id', 'created_purchase_line_id', 'Created Purchase Order Lines'
  • purchase_line_id Many2one → purchase.order.line
    index='btree_not_null' ondelete='set null' readonly=True args: 'purchase.order.line', 'Purchase Order Line'
Public methods (0)

No public methods.

New fields (3)
  • days_to_arrive Datetime
    compute='_compute_effective_date' copy=False search='_search_days_to_arrive'
  • delay_pass Datetime
    compute='_compute_date_order' copy=False index=True search='_search_delay_pass'
  • purchase_id Many2one → purchase.order
    readonly=True related='move_ids.purchase_line_id.order_id' string='Purchase Orders' args: 'purchase.order'
Public methods (0)

No public methods.

New fields (1)
  • purchase_ids Many2many → purchase.order
    copy=False string='Purchases' args: 'purchase.order', 'stock_reference_purchase_rel', 'reference_id', 'purchase_id'
Public methods (0)

No public methods.

New fields (2)
  • show_vendor Boolean
    compute='_compute_show_vendor'
  • supplier_id Many2one → product.supplierinfo
    string='Vendor' args: 'product.supplierinfo'
Public methods (0)

No public methods.

New fields (3)
  • show_vendor_tab Boolean
    compute='_compute_show_vendor_tab'
  • supplierinfo_id Many2one
    related='orderpoint_id.supplier_id'
  • supplierinfo_ids Many2many → product.supplierinfo
    compute='_compute_supplierinfo_ids' store=True args: 'product.supplierinfo'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • select_route(self)

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 (1)
  • action Selection
    ondelete={'buy': 'cascade'} selection_add=[('buy', 'Buy')]
Public methods (1)
  • run(self, procurements, raise_user_error=True)
    @api.model

New fields (2)
  • buy_pull_id Many2one → stock.rule
    copy=False args: 'stock.rule', 'Buy rule'
  • buy_to_resupply Boolean
    compute='_compute_buy_to_resupply' default=True help='When products are bought, they can be delivered to this warehouse' inverse='_inverse_buy_to_resupply' args: 'Buy to Resupply'
Public methods (1)
  • get_rules_dict(self)

New fields (6)
  • available_vendor Many2one → res.partner
    help="Any vendor on the product's pricelist" search='_search_available_vendor' store=False string='Available Vendor' args: 'res.partner'
  • effective_vendor_id Many2one → res.partner
    compute='_compute_effective_vendor_id' help='Either the vendor set directly or the one computed to be used by this replenishment' search='_search_effective_vendor_id' store=False args: 'res.partner'
  • show_supplier Boolean
    compute='_compute_show_supplier' args: 'Show supplier column'
  • supplier_id Many2one → product.supplierinfo
    check_company=True domain="['|', ('product_id', '=', product_id), '&', ('product_id', '=', False), ('product_tmpl_id', '=', product_tmpl_id)]" inverse='_inverse_supplier_id' string='Vendor Pricelist' args: 'product.supplierinfo'
  • supplier_id_placeholder Char
    compute='_compute_supplier_id_placeholder'
  • vendor_ids One2many
    related='product_id.seller_ids' string='Vendors'
Public methods (1)
  • action_view_purchase(self)
    This function returns an action that display existing purchase orders of given orderpoint.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (7)
  • category_id Many2one → product.category
    readonly=True args: 'product.category', 'Product Category'
  • date Datetime
    readonly=True args: 'Effective Date'
  • on_time_rate Float
    readonly=True args: 'On-Time Delivery Rate'
  • partner_id Many2one → res.partner
    readonly=True args: 'res.partner', 'Vendor'
  • product_id Many2one → product.product
    readonly=True args: 'product.product', 'Product'
  • qty_on_time Float
    readonly=True args: 'On-Time Quantity'
  • qty_total Float
    readonly=True args: 'Total Quantity'
Public methods (1)
  • init(self)

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…