Repository
odoo/odoo · module folder
Module version
1.0
Category
Sales/Sales
Folder size
2.41 MB
License
LGPL-3
Application
No
Auto-installable
Yes
Website
None
Last tracking update
2026-08-20 22:13:22
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Aaron Bohy, Arnold Moyaux, Julien Castiaux, Victor Feyens, Andrea Grazioso (agr-odoo), William Henrotin, svs-odoo, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, JF Aubert, David (dafr), Aurelien van Delft (avd), Adrien Widart (awt), Djamel Touati, Pieter Claeys (clpi), clesgow, Levi Siuzdak (sile), Dylan Kiss (dyki), Mayurrajsinh Rathod, Odoo, Anita (anko), Paweł Fertyk, adda-odoo, Walid (wasa), lase@odoo.com, Quentin Wolfs, Ethan Vincent, AMZIL Ayoub, kcv-odoo, Louis Gobert, nihp-odoo, Chrysanthe (chgo), Quang Nguyen, Hussein Ebrahim(hyhe), Mathieu Coutant, Stéphane Diez, kawkb, dhha-odoo, gteboul, sben-odoo, David Van Droogenbroeck (DROD), pkgu-odoo, Mohammad Abdulmoneim (abdu), djameltouati, Michaël Mattiello, Shrey Mehta, MaximeNoirhomme, chha-odoo, plha-odoo, Krzysztof Magusiak (krma), kukor-odoo, Akash Pandey, krip-odoo, joseph, utma-odoo, Hadi El Yakhni, Ester Andreetto, nsirjacobs, bhna-odoo, agbr-odoo, Lulu Grimalkin (lugr), rare-odoo, Lancelot Semal, assh-odoo, Robert Smith (rosm), Merlin Guillaume, srap-odoo, Léo Gizard (legi), Kev-Roche, Abo Taha, hapt-odoo
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
fieldservice_sale_stock, hotel, intrastat_product, l10n_in_sale_stock, l10n_mx_cfdi_comex, l10n_pt_stock_invoicexpress, partner_delivery_zone, partner_invoicing_mode_at_shipping, partner_shipping_policy, repair, sale_cancel_restrict, sale_elaboration, sale_gelato_stock, sale_manual_delivery, sale_mrp, sale_order_line_date, sale_order_priority, sale_order_type, sale_order_warehouse_header, sale_partner_delay, sale_partner_incoterm, sale_product_multi_add, sale_project_stock, sale_purchase_stock, sale_stock_delivery_address, sale_stock_delivery_state, sale_stock_margin, sale_stock_partner_warehouse, sale_stock_picking_blocking, sale_stock_picking_note, sale_stock_product_expiry, sale_stock_product_pack, sale_stock_reference_by_line, shopify_connector, shopify_connector_pos, stock_delivery, stock_picking_report_valued, stock_picking_return_refund_option, website_sale_one_time_delivery_address, website_sale_stock, website_sale_stock_picking_policy
Description
Manage sales quotations and orders
==================================

This module makes the link between the sales and warehouses management applications.

Preferences
-----------
* Shipping: Choice of delivery at once or partial delivery
* Invoicing: choose how invoices will be paid
* Incoterms: International Commercial terms

Code Analysis

Views touched (21)
XML IDNameModelTypeStatus
exception_on_picking exception_on_picking ir.ui.view qweb New
exception_on_so exception_on_so ir.ui.view qweb New
report_delivery_document_inherit_sale_stock report_delivery_document_inherit_sale_stock ir.ui.view qweb Inherits stock.report_delivery_document
report_saleorder_document_inherit_sale_stock report_saleorder_document_inherit_sale_stock ir.ui.view qweb Inherits sale.report_saleorder_document
res_config_settings_view_form_stock res.config.settings.view.form.inherit.sale.stock.stock res.config.settings form Inherits stock.res_config_settings_view_form
res_users_view_form res.users.form.inherit res.users form Inherits base.view_users_form
res_users_view_form_preferences res.users.preferences.form.inherit res.users form Inherits base.view_users_form_simple_modif
res_users_view_simple_form res.users.simple.form.inherit res.users form Inherits base.view_users_simple_form
sale_order_tree sale.order.list.inherit.sale.stock sale.order list Inherits sale.sale_order_tree
sale_stock.portal_my_orders Portal Orders Shipping Status Column ir.ui.view qweb Inherits sale.portal_my_orders
sale_stock.sale_order_portal_content_inherit_sale_stock Orders Shipping Followup ir.ui.view qweb Inherits sale.sale_order_portal_content
sale_stock_help_message_template sale_stock_help_message_template ir.ui.view qweb Inherits stock.help_message_template
sale_stock_sale_order_view_search_inherit sale_stock.sale.order.search.inherit sale.order search Inherits sale.sale_order_view_search_inherit_sale
stock_location_route_view_form_inherit_sale_stock stock.route.form stock.route form Inherits stock.stock_location_route_form_view
stock_production_lot_view_form stock.production.lot.view.form stock.lot form Inherits stock.view_production_lot_form
stock_reference_sale_view_form stock.reference.sale stock.reference form Inherits stock.stock_reference_form_view
view_order_form_inherit_sale_stock sale.order.form.sale.stock sale.order form Inherits sale.view_order_form
view_order_line_tree_inherit_sale_stock sale.order.line.list.sale.stock.location sale.order.line list Inherits sale.view_order_line_tree
view_order_tree sale.order.list.inherit.sale.stock sale.order list Inherits sale.view_order_tree
view_picking_form sale.stock.view.picking.form stock.picking form Inherits stock.view_picking_form
view_stock_rules_report_sale Stock Rules Report Sale stock.rules.report Inherits stock.view_stock_rules_report
HTTP endpoints (2)
Route(s)HandlerAuthTypeMethodsFlags
/my/picking/pdf/<int:picking_id> SaleStockPortal.portal_my_picking_report public http ALL sudo website
/my/picking/return/pdf/<int:picking_id> SaleStockPortal.portal_my_picking_return_report public http ALL sudo website
Models touched (24)

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 (0)

No new fields.

Public methods (0)

No public methods.

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)
  • security_lead Float
    default=0.0 help='Margin of error for dates promised to customers. Products will be scheduled for procurement and delivery that many days earlier than the actual promised date, to cope with unexpected delays in the supply chain.' required=True args: 'Sales Safety Days'
Public methods (0)

No public methods.

New fields (3)
  • default_picking_policy Selection
    default='direct' default_model='sale.order' required=True args: [('direct', 'Ship products as soon as available, with back orders'), ('one', 'Ship all products at once')], 'Picking Policy'
  • security_lead Float
    readonly=False related='company_id.security_lead' string='Security Lead Time'
  • use_security_lead Boolean
    config_parameter='sale_stock.use_security_lead' help='Margin of error for dates promised to customers. Products will be scheduled for delivery that many days earlier than the actual promised date, to cope with unexpected delays in the supply chain.' string='Security Lead Time for Sales'
Public methods (0)

No public methods.

New fields (1)
  • property_warehouse_id Many2one → stock.warehouse
    check_company=True company_dependent=True string='Default Warehouse' args: 'stock.warehouse'
Public methods (2)
  • SELF_READABLE_FIELDS(self)
    @property
  • SELF_WRITEABLE_FIELDS(self)
    @property

New fields (13)
  • delivery_count Integer
    compute='_compute_picking_ids' string='Delivery Orders'
  • delivery_status Selection
    compute='_compute_delivery_status' help='Blue: Not Delivered/Started\n Orange: Partially Delivered\n Green: Fully Delivered' store=True string='Delivery Status' args: [('pending', 'Not Delivered'), ('started', 'Started'), ('partial', 'Partially Delivered'), ('full', 'Fully Delivered')]
  • effective_date Datetime
    compute='_compute_effective_date' help='Completion date of the first delivery order.' store=True args: 'Effective Date'
  • expected_date Datetime
    help='Delivery date you can promise to the customer, computed from the minimum lead time of the order lines in case of Service products. In case of shipping, the shipping policy of the order will be taken into account to either use the minimum or maximum lead time of the order lines.'
  • incoterm Many2one → account.incoterms
    help='International Commercial Terms are a series of predefined commercial terms used in international transactions.' args: 'account.incoterms', 'Incoterm'
  • incoterm_location Char
    string='Incoterm Location'
  • json_popover Char
    compute='_compute_json_popover' args: 'JSON data for the popover widget'
  • late_availability Boolean
    compute='_compute_late_availability' help='True if any related picking has late availability' search='_search_late_availability' string='Late Availability'
  • picking_ids One2many → stock.picking
    string='Transfers' args: 'stock.picking', 'sale_id'
  • picking_policy Selection
    default='direct' help='If you deliver all products at once, the delivery order will be scheduled based on the greatest product lead time. Otherwise, it will be based on the shortest.' required=True string='Shipping Policy' args: [('direct', 'As soon as possible'), ('one', 'When all products are ready')]
  • show_json_popover Boolean
    compute='_compute_json_popover' args: 'Has late picking'
  • stock_reference_ids Many2many → stock.reference
    copy=False string='References' args: 'stock.reference', 'stock_reference_sale_rel', 'sale_id', 'reference_id'
  • warehouse_id Many2one → stock.warehouse
    check_company=True compute='_compute_warehouse_id' precompute=True readonly=False store=True string='Warehouse' args: 'stock.warehouse'
Public methods (2)
  • action_view_delivery(self)
  • write(self, vals)

New fields (14)
  • customer_lead Float
    compute='_compute_customer_lead' inverse='_inverse_customer_lead' precompute=True readonly=False store=True
  • display_qty_widget Boolean
    compute='_compute_qty_to_deliver'
  • forecast_expected_date Datetime
    compute='_compute_qty_at_date'
  • free_qty_today Float
    compute='_compute_qty_at_date' digits='Product Unit'
  • is_mto Boolean
    compute='_compute_is_mto'
  • is_storable Boolean
    related='product_id.is_storable'
  • move_ids One2many → stock.move
    string='Stock Moves' args: 'stock.move', 'sale_line_id'
  • qty_available_today Float
    compute='_compute_qty_at_date'
  • qty_delivered_method Selection
    selection_add=[('stock_move', 'Stock Moves')]
  • qty_to_deliver Float
    compute='_compute_qty_to_deliver' digits='Product Unit'
  • route_ids Many2many → stock.route
    domain=[('sale_selectable', '=', True)] ondelete='restrict' string='Routes' args: 'stock.route'
  • scheduled_date Datetime
    compute='_compute_qty_at_date'
  • virtual_available_at_date Float
    compute='_compute_qty_at_date' digits='Product Unit'
  • warehouse_id Many2one → stock.warehouse
    compute='_compute_warehouse_id' store=True args: 'stock.warehouse'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • has_valued_move_ids(self)
  • write(self, vals)

New fields (1)
  • warehouse_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 (2)
  • sale_order_count Integer
    compute='_compute_sale_order_ids' args: 'Sale order count'
  • sale_order_ids Many2many → sale.order
    compute='_compute_sale_order_ids' string='Sales Orders' args: 'sale.order'
Public methods (1)
  • action_view_so(self)

New fields (1)
  • sale_line_id Many2one → sale.order.line
    index='btree_not_null' args: 'sale.order.line', 'Sale Line'
Public methods (1)
  • write(self, vals)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • sale_id Many2one → sale.order
    compute='_compute_sale_id' index='btree_not_null' inverse='_set_sale_id' store=True string='Sales Order' args: 'sale.order'
Public methods (0)

No public methods.

New fields (1)
  • sale_ids Many2many → sale.order
    string='Sales' args: 'sale.order', 'stock_reference_sale_rel', 'reference_id', 'sale_id'
Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • sale_selectable Boolean
    args: 'Selectable on Sales Order Line'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • so_route_ids Many2many → stock.route
    domain="[('sale_selectable', '=', True)]" help='Choose to apply SO lines specific routes.' string='Apply specific routes' args: 'stock.route'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…