TIP: You can type at any time to perform a new search.
Sales
sale · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.2
- Category
- Sales/Sales
- Folder size
- 15.37 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-21 16:14:25
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier ALT, Raphael Collet, Thibault Delavallée, Alexis de Lattre, odoo, Josse Colpaert, Odoo Translation Bot, Joren Van Onder, qdp-odoo, Aaron Bohy, Géry Debongnie, Laurent Smet, Alexandre Kühn, Arnold Moyaux, Julien Castiaux, Victor Feyens, Andrea Grazioso (agr-odoo), Julien Mougenot, Anh Thao Pham (pta), svs-odoo, Achraf (abz), Prakash Prajapati, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, abd-msyukyu-odoo, Arnaud Joset, William Braeckman, Benoit Socias, Miquel Raïch, william-andre, Víctor Martínez, John Laterre (jol), Antoine Vandevenne (anv), Demesmaeker, Aurelien van Delft (avd), luvi, Valentin Chevalier, Renaud Thiry, Julien Banken, Pierrot (prro), jbw-odoo, Habib (ayh), Louis Wicket (wil), alsh-odoo, Maximilien (malb), Victor Piryns (pivi), Gauthier Wala (gawa), Pieter Claeys (clpi), Andrew Gavgavian, clesgow, pash-odoo, Levi Siuzdak (sile), Dylan Kiss (dyki), Antoine Dupuis (andu), Julien Alardot (jual), Valeriya(vchu), Anita (anko), Sarah Bellefroid, Arnaud Sibille, Nicolas Viseur (vin), Walid (wasa), stefanorigano (SRI), Quentin Wolfs, Louis (loti), jorv-odoo, Maxime de Neuville, reka-odoo, yosa-odoo, Mohamed GadAlrab, Julien Carion (juca), kcv-odoo, odoostan, Tanguy Quéguineur, dere-odoo, Lina (liew), Chrysanthe (chgo), sami odoo, Junqi Wu, mano-odoo, hatr-odoo, aamo-odoo, Mathieu Coutant, Patricia Daloze (pda), Xavier Luyckx (xlu), guce, Stéphane Diez, Ryan Cen, dhha-odoo, casp-odoo, Antoine (anso), Manushi Shah, Léo Gizard, Antoine Dupuis, Pierre Pulinckx (PIPU), Hesham Saleh, dija-odoo, Maira Salazar (srma), Smit Patel, st-yes, AhmedElemary57, Trinh Ngoc Hung, David Van Droogenbroeck (DROD), Mohammad Abdulmoneim (abdu), khsr-odoo, Pierre Lamotte (pila), Pierre Pulinckx, Anton Romanova (roan), Bastien PIERRE, Michaël Mattiello, Corentin Heinix (cohe), jeep-odoo, Corentin Lombard, ppat-odoo, Valeriya (vchu), zel-odoo, Shrey Mehta, Carmine, Sherif Gabr, Mahdi Alijani (malj), bona-odoo, plha-odoo, lse-odoo, Thomas Josse (THJO), Krzysztof Magusiak (krma), nipl-odoo, Omar (OSAH), Ajit Singh, Armin-FalDiS, krip-odoo, Basioni (basm), Maeva De Keyser (MDEK), utma-odoo, Tyler Landivar (tylan), nsirjacobs, bhra-odoo, bhna-odoo, defl, aksi-odoo, Lulu Grimalkin (lugr), Yash Pathak, rare-odoo, igbe, Lancelot Semal, Laurent Smet (LAS), path-odoo, Waleed Elgamal, Amr Elkhatieb, Nisarg (nipl), assh-odoo, cro, Elliot ELCO, Leila Kerroum Balaguer, Lionel Piraux (lipi), livaios, YoussefM890, jand-odoo, Merlin Guillaume, Mazen, saurabh, pkri-odoo, Séna Nshimiyimana, Zachary (zavan), Julien (jdeh), mson-odoo, Franco Leyes, Julien Hémono, khaj-odoo, chpa-odoo, Krishna Patel, Romain ROSANO (rros), dabo-odoo, Hembert Iregui, Laura (yanla)
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- account_banking_mandate_contact, account_invoice_crm_tag, account_invoice_overdue_warn_sale, account_invoice_pricelist_sale, account_invoice_section_sale_order, account_payment_base_oca_sale, account_payment_sale, contract_sale, delivery, ebill_postfinance, edi_sale_oca, l10n_br_sales, l10n_din5008_sale, l10n_ec_sale, l10n_fi_sale, l10n_in_sale, l10n_it_edi_doi, l10n_it_edi_sale, l10n_mx_cfdi_comex, l10n_ro_account_report_invoice, mass_mailing_sale, partner_invoicing_mode, partner_sale_pivot, partnership, pms_sale, portal_sale_list_extra_info, portal_sale_personal_data_only, product_brand, product_class, product_customerinfo_sale, product_form_sale_link, product_pricelist_item_list_view, product_state_sale, product_status, product_template_multi_link, product_variant_sale_price, purchase_sale_inter_company, sale_advance_payment, sale_analytic_tag, sale_automatic_workflow, sale_cancel_reason, sale_commercial_partner, sale_commission_oca, sale_confirm_group, sale_crm, sale_delivery_state, sale_edi_ubl, sale_exception, sale_financial_risk, sale_financial_risk_info, sale_fixed_discount, sale_force_invoiced, sale_fully_invoiced, sale_gelato, sale_global_discount, sale_invoice_blocking, sale_invoice_frequency, sale_invoice_to_partner, sale_line_name_option, sale_loyalty, sale_management, sale_operating_unit, sale_order_archive, sale_order_disable_user_autosubscribe, sale_order_general_discount, sale_order_invoice_amount, sale_order_invoicing_qty_percentage, sale_order_line_description, sale_order_line_menu, sale_order_line_no_print, sale_order_line_note, sale_order_line_position, sale_order_line_price_history, sale_order_line_price_source, sale_order_line_section, sale_order_line_tag, sale_order_price_recalculation, sale_order_report_hide_tax, sale_order_report_product_image, sale_order_report_without_price, sale_order_requested_delivery, sale_order_secondary_unit, sale_order_show_full_address, sale_order_split_strategy, sale_partner_address_restrict, sale_partner_company_group, sale_partner_primeship, sale_partner_selectable_option, sale_portal_debranding, sale_pricelist_display_surcharge, sale_product_matrix, sale_product_pack, sale_product_set, sale_purchase, sale_resource_booking, sale_shipping_info_helper, sale_sms, sale_stock, sale_tier_validation, sale_transaction_form_link, sale_variant_configurator, spreadsheet_dashboard_sale, stock_buffer_sales_analysis, storage_image_product, website_sale
- Description
This module contains all the common features of Sales Management and eCommerce.
Code Analysis ⓘ
Views touched (73)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_form |
Account Invoice | account.move | form | Inherits account.view_move_form |
account_invoice_groupby_inherit |
account.move.groupby | account.move | Inherits account.view_account_invoice_filter | |
account_invoice_report_view_tree |
account.invoice.report.view.list.inherit.sale | account.invoice.report | list | Inherits account.account_invoice_report_view_tree |
account_invoice_view_tree |
account.move.list.inherit.sale | account.move | list | Inherits account.view_invoice_tree |
crm_team_salesteams_view_form |
crm.team.form | crm.team | form | Inherits sales_team.crm_team_view_form |
crm_team_view_kanban_dashboard |
crm.team.view.kanban.dashboard.inherit.sale | crm.team | kanban | Inherits sales_team.crm_team_view_kanban_dashboard |
document_tax_totals |
document_tax_totals | ir.ui.view | qweb | Inherits account.document_tax_totals_template |
mass_cancel_orders_view_form |
sale.mass.cancel.orders.form | sale.mass.cancel.orders | form | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | Inherits payment.payment_link_wizard_view_form |
payment_provider_form |
payment.provider.form.inherit.sale | payment.provider | form | Inherits payment.payment_provider_form |
portal_my_home_menu_sale |
Portal layout : sales menu entries | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
portal_my_home_sale |
Quotations / Sales Orders | ir.ui.view | qweb | Inherits portal.portal_my_home |
portal_my_orders |
My Sales Orders | ir.ui.view | qweb | New |
portal_my_quotations |
My Quotations | ir.ui.view | qweb | New |
product_document_form |
product.document.form.sale | product.document | form | Inherits product.product_document_form |
product_document_kanban |
product.document.kanban.sale | product.document | kanban | Inherits product.product_document_kanban |
product_document_list |
product.document.list.sale | product.document | list | Inherits product.product_document_list |
product_document_search |
product.document.search.sale | product.document | search | Inherits product.product_document_search |
product_form_view_sale_order_button |
product.product.sale.order | product.product | form | Inherits product.product_normal_form_view |
product_pricelist_item_form |
product.pricelist.item.view.form.inherit | product.pricelist.item | form | Inherits product.product_pricelist_item_form_view |
product_template_form_view |
product.template.form.view.inherit.sale | product.template | form | Inherits product.product_template_form_view |
product_template_form_view_sale_order_button |
product.template.sale.order.button | product.template | form | Inherits product.product_template_only_form_view |
product_template_view_form |
product.template.form.inherit.sale.product.configurator | product.template | form | Inherits product.product_template_form_view |
product_view_kanban_catalog |
product.view.kanban.catalog.inherit.sale | product.product | kanban | Inherits product.product_view_kanban_catalog |
product_view_search_catalog |
product.view.search.catalog.inherit.sale | product.product | search | Inherits product.product_view_search_catalog |
quote_document_layout_preview |
quote_document_layout_preview | ir.ui.view | qweb | New |
report_saleorder |
report_saleorder | ir.ui.view | qweb | New |
report_saleorder_document |
report_saleorder_document | ir.ui.view | qweb | New |
report_saleorder_pro_forma |
report_saleorder_pro_forma | ir.ui.view | qweb | New |
report_saleorder_raw |
report_saleorder_raw | ir.ui.view | qweb | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.sale | res.config.settings | form | Inherits base.res_config_settings_view_form |
res_config_settings_view_form_sale_inherit |
res.config.settings.view.form.inherit.sale | res.config.settings | form | Inherits account.res_config_settings_view_form |
res_partner_view_buttons |
res.partner.view.buttons | res.partner | form | Inherits base.view_partner_form |
res_partner_view_form_payment_defaultcreditcard |
res.partner.view.form.payment.defaultcreditcard | res.partner | form | Inherits payment.view_partners_form_payment_defaultcreditcard |
res_partner_view_form_property_inherit |
res.partner.view.form.property.inherit | res.partner | form | Inherits account.view_partner_property_form |
sale_order_kanban_upload |
sale.order.kanban.upload (orders) | sale.order | kanban | Inherits view_sale_order_kanban |
sale_order_line_view_form_readonly |
sale.order.line.form.readonly | sale.order.line | form | New |
sale_order_line_view_kanban |
sale.order.line.kanban | sale.order.line | kanban | New |
sale_order_line_wizard_form |
sale.order.discount.form | sale.order.discount | form | New |
sale_order_list_upload |
sale.order.tree.upload (orders) | sale.order | list | Inherits view_order_tree |
sale_order_portal_content |
Sales Order Portal Content | ir.ui.view | qweb | New |
sale_order_portal_content_totals_table |
sale_order_portal_content_totals_table | ir.ui.view | qweb | New |
sale_order_portal_pay_modal |
Sales Order Portal Pay Modal | ir.ui.view | qweb | New |
sale_order_portal_pay_modal_amount_selector |
Sales Order Portal Pay Modal Amounts Selector | ir.ui.view | qweb | New |
sale_order_portal_sign_modal |
Sales Order Portal Sign Modal | ir.ui.view | qweb | New |
sale_order_portal_template |
Sales Order | ir.ui.view | qweb | Inherits portal.portal_sidebar |
sale_order_tree |
sale.order.list | sale.order | list | New |
sale_order_view_activity |
sale.order.activity | sale.order | activity | New |
sale_order_view_search_inherit_quotation |
sale.order.search.inherit.quotation | sale.order | search | Inherits sale.view_sales_order_filter |
sale_order_view_search_inherit_sale |
sale.order.search.inherit.sale | sale.order | search | Inherits sale.view_sales_order_filter |
sale_report_graph_bar |
sale.report.graph.bar | sale.report | graph | Inherits view_order_product_graph |
sale_report_graph_pie |
sale.report.graph.pie | sale.report | graph | Inherits view_order_product_graph |
sale_report_view_tree |
sale.report.view.list | sale.report | list | New |
transaction_form_inherit_sale |
payment.transaction.form.inherit.sale.payment | payment.transaction | form | Inherits payment.payment_transaction_form |
utm_campaign_view_form |
utm.campaign.view.form | utm.campaign | form | Inherits utm.utm_campaign_view_form |
utm_campaign_view_kanban |
utm.campaign.view.kanban | utm.campaign | kanban | Inherits utm.utm_campaign_view_kanban |
view_account_invoice_report_search_inherit |
account.invoice.report.search.inherit | account.invoice.report | search | Inherits account.view_account_invoice_report_search |
view_order_form |
sale.order.form | sale.order | form | New |
view_order_line_tree |
sale.order.line.list | sale.order.line | list | New |
view_order_product_graph |
sale.report.graph | sale.report | graph | New |
view_order_product_pivot |
sale.report.pivot | sale.report | pivot | New |
view_order_product_search |
sale.report.search | sale.report | search | New |
view_order_tree |
sale.order.list (orders) | sale.order | list | Inherits sale_order_tree |
view_quotation_kanban_with_onboarding |
sale.order.kanban | sale.order | kanban | Inherits view_sale_order_kanban |
view_quotation_tree |
sale.order.list (quotes) | sale.order | list | Inherits sale_order_tree |
view_quotation_tree_with_onboarding |
sale.order.list | sale.order | list | Inherits view_quotation_tree |
view_sale_advance_payment_inv |
Invoice Orders | sale.advance.payment.inv | form | New |
view_sale_order_calendar |
sale.order.calendar | sale.order | calendar | New |
view_sale_order_graph |
sale.order.graph | sale.order | graph | New |
view_sale_order_kanban |
sale.order.kanban | sale.order | kanban | New |
view_sale_order_pivot |
sale.order.pivot | sale.order | pivot | New |
view_sales_order_filter |
sale.order.list.select | sale.order | search | New |
view_sales_order_line_filter |
sale.order.line.select | sale.order.line | search | New |
HTTP endpoints (14)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/my/orders, /my/orders/page/<int:page> |
CustomerPortal.portal_my_orders |
user | http | ALL | website |
/my/quotes, /my/quotes/page/<int:page> |
CustomerPortal.portal_my_quotes |
user | http | ALL | website |
/my/orders/<int:order_id>/download_edi |
CustomerPortal.portal_my_sale_order_download_edi |
public | http | ALL | website |
/my/orders/<int:order_id> |
CustomerPortal.portal_order_page |
public | http | ALL | website |
/my/orders/<int:order_id>/accept |
CustomerPortal.portal_quote_accept |
public | jsonrpc | ALL | sudo website |
/my/orders/<int:order_id>/decline |
CustomerPortal.portal_quote_decline |
public | http | POST | website |
/my/orders/<int:order_id>/document/<int:document_id> |
CustomerPortal.portal_quote_document |
public | http | ALL | sudo |
/my/orders/<int:order_id>/transaction |
PaymentPortal.portal_order_transaction |
public | jsonrpc | ALL | |
| (inherited route override) | SaleComboConfiguratorController.sale_combo_configurator_get_data |
user | jsonrpc | ALL | sudo |
| (inherited route override) | SaleComboConfiguratorController.sale_combo_configurator_get_price |
user | jsonrpc | ALL | |
| (inherited route override) | SaleProductConfiguratorController.sale_product_configurator_create_product |
user | jsonrpc | POST | |
| (inherited route override) | SaleProductConfiguratorController.sale_product_configurator_get_optional_products |
user | jsonrpc | ALL | |
| (inherited route override) | SaleProductConfiguratorController.sale_product_configurator_get_values |
user | jsonrpc | ALL | |
| (inherited route override) | SaleProductConfiguratorController.sale_product_configurator_update_combination |
user | jsonrpc | POST |
Models touched (28)
New fields (1)
-
business_domainSelectionondelete={'sale_order': 'cascade'}selection_add=[('sale_order', 'Sale Order')]
No public methods.
New fields (1)
-
so_lineMany2one → sale.order.linedomain=[('qty_delivered_method', '=', 'analytic')]index='btree_not_null'string='Sales Order Item' args: 'sale.order.line'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
team_idMany2one → crm.teamcomodel_name='crm.team'string='Sales Team'
No public methods.
New fields (6)
-
campaign_idMany2oneondelete='set null' -
medium_idMany2oneondelete='set null' -
sale_order_countIntegercompute='_compute_origin_so_count'compute_sudo=Truestring='Sale Order Count' -
sale_warning_textTextcompute='_compute_sale_warning_text'help='Internal warning for the partner or the products as set by the user.' args: 'Sale Warning' -
source_idMany2oneondelete='set null' -
team_idMany2one → crm.teamcompute='_compute_team_id'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"ondelete='set null'readonly=Falsestore=Truestring='Sales Team'tracking=True args: 'crm.team'
-
action_post(self) -
action_view_source_sale_orders(self) -
button_cancel(self) -
button_draft(self) -
unlink(self)
New fields (3)
-
is_downpaymentBoolean -
sale_line_idsMany2many → sale.order.linecopy=Falsereadonly=Truestring='Sales Order Lines' args: 'sale.order.line', 'sale_order_line_invoice_rel', 'invoice_line_id', 'order_line_id' -
sale_line_warn_msgTextcompute='_compute_sale_line_warn_msg'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (3)
-
invoicedFloatcompute='_compute_invoiced'help='Invoice revenue for the current month. This is the amount the sales channel has invoiced this month. It is used to compute the progression ratio of the current and target revenue on the kanban view.'readonly=Truestring='Invoiced This Month' -
invoiced_targetFloathelp='Revenue Target for the current month (untaxed total of paid invoices).'string='Invoicing Target' -
sale_order_countIntegercompute='_compute_sale_order_count'string='# Sale Orders'
-
action_primary_channel_button(self) -
update_invoiced_target(self, value)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (3)-
create(self, vals_list)@api.model_create_multi -
unlink(self) -
write(self, vals)
New fields (3)
-
amount_paidMonetaryreadonly=Truestring='Already Paid' -
confirmation_messageCharcompute='_compute_confirmation_message'string='Confirmation Message' -
prepayment_amountMonetarycurrency_field='currency_id'string='Prepayment Amount'
No public methods.
New fields (1)
-
so_reference_typeSelectiondefault='so_name'help='You can set here the communication type that will appear on sales orders.The communication will be given to the customer when they choose the payment method.'selection=[('so_name', 'Based on Document Reference'), ('partner', 'Based on Customer ID')]string='Communication'
No public methods.
New fields (2)
-
sale_order_idsMany2many → sale.ordercopy=Falsereadonly=Truestring='Sales Orders' args: 'sale.order', 'sale_order_transaction_rel', 'transaction_id', 'sale_order_id' -
sale_order_ids_nbrIntegercompute='_compute_sale_order_ids_nbr'string='# of Sales Orders'
-
action_view_sales_orders(self)@api.readonly
New fields (1)
-
sale_order_line_idMany2one → sale.order.lineindex='btree_not_null'ondelete='cascade'string='Sales Order Line' args: 'sale.order.line'
No public methods.
New fields (1)
-
attached_on_saleSelectiondefault='hidden'groups='sales_team.group_sale_salesman'help='Allows you to share the document with your customers within a sale.\nOn quote: the document will be sent to and accessible by customers at any time.\ne.g. this option can be useful to share Product description files.\nOn order confirmation: the document will be sent to and accessible by customers.\ne.g. this option can be useful to share User Manual or digital content bought on ecommerce. 'required=Trueselection=[('hidden', 'Hidden'), ('quotation', 'On quote'), ('sale_order', 'On confirmed order')]string='Sale : Visible at'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
product_catalog_product_is_in_sale_orderBooleancompute='_compute_product_is_in_sale_order'search='_search_product_is_in_sale_order' -
sales_countFloatcompute='_compute_sales_count'digits='Product Unit'string='Sold'
-
action_view_sales(self)@api.readonly
New fields (7)
-
expense_policySelectioncompute='_compute_expense_policy'default='no'help='Validated expenses, vendor bills, or stock pickings (set up to track costs) can be invoiced to the customer at either cost or sales price.'readonly=Falseselection=[('no', 'No'), ('cost', 'At cost'), ('sales_price', 'Sales price')]store=Truestring='Re-Invoice Costs' -
invoice_policySelectioncompute='_compute_invoice_policy'help='Ordered Quantity: Invoice quantities ordered by the customer.\nDelivered Quantity: Invoice quantities delivered to the customer.'precompute=Truereadonly=Falseselection=[('order', 'Ordered quantities'), ('delivery', 'Delivered quantities')]store=Truestring='Invoicing Policy'tracking=True -
optional_product_idsMany2many → product.templatecheck_company=Truecolumn1='src_id'column2='dest_id'comodel_name='product.template'help='Optional Products are suggested whenever the customer hits *Add to Cart* (cross-sell strategy, e.g. for computers: warranty, software, etc.).'relation='product_optional_rel'string='Optional Products' -
sale_line_warn_msgTextstring='Sales Order Line Warning' -
sales_countFloatcompute='_compute_sales_count'digits='Product Unit'string='Sold' -
service_typeSelectioncompute='_compute_service_type'help='Manually set quantities on order: Invoice based on the manually entered quantity, without creating an analytic account.\nTimesheets on contract: Invoice based on the tracked hours on the related timesheet.\nCreate a task and track hours: Create a task on the sales order validation and track the work hours.'precompute=Truereadonly=Falseselection=[('manual', 'Manually set quantities on order')]store=Truestring='Track Service' -
visible_expense_policyBooleancompute='_compute_visible_expense_policy'string='Re-Invoice Policy visible'
-
action_view_sales(self)@api.readonly -
get_import_templates(self)@api.model -
get_single_product_variant(self)Method used by the product configurator to check if the product is configurable or not. We need to open the product configurator if the product: - is configurable (see has_configurable_attributes) - has optional products
New fields (7)
-
downpayment_account_idMany2one → account.accountcomodel_name='account.account'domain=[('account_type', 'in', ('income', 'income_other', 'liability_current'))]help='This account will be used on Downpayment invoices.'string='Downpayment Account'tracking=True -
portal_confirmation_payBooleanstring='Online Payment' -
portal_confirmation_signBooleandefault=Truestring='Online Signature' -
prepayment_percentFloatdefault=1.0help='The percentage of the amount needed to be paid to confirm quotations.'string='Prepayment percentage' -
quotation_validity_daysIntegerdefault=30help='Days between quotation proposal and expiration. 0 days means automatic expiration is disabled'string='Default Quotation Validity' -
sale_discount_product_idMany2one → product.productcheck_company=Truecomodel_name='product.product'domain=[('type', '=', 'service'), ('invoice_policy', '=', 'order')]help='Default product used for discounts'string='Discount Product' -
sale_onboarding_payment_methodSelectionselection=[('digital_signature', 'Sign online'), ('paypal', 'PayPal'), ('stripe', 'Stripe'), ('other', 'Pay with another payment provider'), ('manual', 'Manual Payment')]string='Sale onboarding selected payment method'
No public methods.
New fields (32)
-
automatic_invoiceBooleanconfig_parameter='sale.automatic_invoice'help='The invoice is generated automatically and available in the customer portal when the transaction is confirmed by the payment provider.\nThe invoice is marked as paid and the payment is registered in the payment journal defined in the configuration of the payment provider.\nThis mode is advised if you issue the final invoice at the order and not after the delivery.'string='Automatic Invoice' -
default_invoice_policySelectiondefault='order'default_model='product.template'selection=[('order', 'Invoice what is ordered'), ('delivery', 'Invoice what is delivered')]string='Invoicing Policy' -
downpayment_account_idMany2onereadonly=Falserelated='company_id.downpayment_account_id' -
group_auto_done_settingBooleanimplied_group='sale.group_auto_done_setting'string='Lock Confirmed Sales' -
group_discount_per_so_lineBooleanimplied_group='sale.group_discount_per_so_line'string='Discounts' -
group_proforma_salesBooleanhelp='Allows you to send pro-forma invoice.'implied_group='sale.group_proforma_sales'string='Pro-Forma Invoice' -
group_warning_saleBooleanimplied_group='sale.group_warning_sale'string='Sale Order Warnings' -
invoice_mail_template_idMany2one → mail.templatecomodel_name='mail.template'config_parameter='sale.default_invoice_email_template'domain=[('model', '=', 'account.move')]help='Email sent to the customer once the invoice is available.'string='Email Template' -
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_email_templateBooleanargs: 'Specific Email' -
module_sale_amazonBooleanargs: 'Amazon Sync' -
module_sale_commissionBooleanargs: 'Commissions' -
module_sale_gelatoBooleanargs: 'Gelato' -
module_sale_loyaltyBooleanargs: 'Coupons & Loyalty' -
module_sale_marginBooleanargs: 'Margins' -
module_sale_pdf_quote_builderBooleanargs: 'PDF Quote builder' -
module_sale_product_matrixBooleanargs: 'Sales Grid Entry' -
module_sale_shopeeBooleanargs: 'Shopee Sync' -
portal_confirmation_payBooleanreadonly=Falserelated='company_id.portal_confirmation_pay' -
portal_confirmation_signBooleanreadonly=Falserelated='company_id.portal_confirmation_sign' -
prepayment_percentFloatreadonly=Falserelated='company_id.prepayment_percent' -
quotation_validity_daysIntegerreadonly=Falserelated='company_id.quotation_validity_days'
-
action_sale_start_payment_onboarding(self) -
set_values(self)
New fields (3)
-
sale_order_countIntegercompute='_compute_sale_order_count'groups='sales_team.group_sale_salesman'string='Sale Order Count' -
sale_order_idsOne2many → sale.orderargs: 'sale.order', 'partner_id', 'Sales Order' -
sale_warn_msgTextargs: 'Message for Sales Order'
-
can_edit_vat(self)Can't edit `vat` if there is (non draft) issued SO.
New fields (12)
-
advance_payment_methodSelectiondefault='delivered'help='A standard invoice is issued with all the order lines ready for invoicing,according to their invoicing policy (based on ordered or delivered quantity).'required=Trueselection=[('delivered', 'Regular invoice'), ('percentage', 'Down payment (percentage)'), ('fixed', 'Down payment (fixed amount)')]string='Create Invoice' -
amountFloathelp='The percentage of amount to be invoiced in advance.'string='Down Payment' -
amount_invoicedMonetarycompute='_compute_invoice_amounts'help='Only confirmed down payments are considered.'string='Already invoiced' -
company_idMany2one → res.companycomodel_name='res.company'compute='_compute_company_id'store=True -
consolidated_billingBooleandefault=Truehelp='Create one invoice for all orders related to same customer, same invoicing address and same delivery address.'string='Consolidated Billing' -
countIntegercompute='_compute_count'string='Order Count' -
currency_idMany2one → res.currencycomodel_name='res.currency'compute='_compute_currency_id'store=True -
deduct_down_paymentsBooleandefault=Truestring='Deduct down payments' -
display_draft_invoice_warningBooleancompute='_compute_display_draft_invoice_warning' -
fixed_amountMonetaryhelp='The fixed amount to be invoiced in advance.'string='Down Payment Amount (Fixed)' -
has_down_paymentsBooleancompute='_compute_has_down_payments'string='Has down payments' -
sale_order_idsMany2many → sale.orderdefault=<expr> args: 'sale.order'
-
create_invoices(self) -
view_draft_invoices(self)
New fields (3)
-
has_confirmed_orderBooleancompute='_compute_has_confirmed_order' -
sale_order_idsMany2many → sale.ordercomodel_name='sale.order'default=<expr>relation='sale_order_mass_cancel_wizard_rel'string='Sale orders to cancel' -
sale_orders_countIntegercompute='_compute_sale_orders_count'
-
action_mass_cancel(self)
New fields (65)
-
amount_invoicedMonetarycompute='_compute_amount_invoiced'string='Already invoiced' -
amount_paidFloatcompute='_compute_amount_paid'compute_sudo=Truehelp="Sum of transactions made in through the online payment form that are in the state 'done' or 'authorized' and linked to this order."string='Payment Transactions Amount' -
amount_taxMonetarycompute='_compute_amounts'store=Truestring='Taxes' -
amount_to_invoiceMonetarycompute='_compute_amount_to_invoice'string='Un-invoiced Balance' -
amount_totalMonetarycompute='_compute_amounts'store=Truestring='Total'tracking=4 -
amount_undiscountedFloatcompute='_compute_amount_undiscounted'digits=0string='Amount Before Discount' -
amount_untaxedMonetarycompute='_compute_amounts'store=Truestring='Untaxed Amount'tracking=5 -
authorized_transaction_idsMany2many → payment.transactioncomodel_name='payment.transaction'compute='_compute_authorized_transaction_ids'compute_sudo=Truecopy=Falsegroups='account.group_account_invoice'string='Authorized Transactions' -
campaign_idMany2oneondelete='set null' -
client_order_refCharcopy=Falsestring='Customer Reference' -
commitment_dateDatetimecopy=Falsehelp='This is the delivery date promised to the customer. If set, the delivery order will be scheduled based on this date rather than product lead times.'string='Delivery Date' -
company_idMany2one → res.companycomodel_name='res.company'default=<expr>index=Truerequired=True -
company_price_includeSelectionrelated='company_id.account_price_include' -
country_codeCharrelated='company_id.account_fiscal_country_id.code'string='Country code' -
create_dateDatetimeindex=Truereadonly=Truestring='Creation Date' -
currency_idMany2one → res.currencycomodel_name='res.currency'compute='_compute_currency_id'ondelete='restrict'precompute=Truestore=True -
currency_rateFloatcompute='_compute_currency_rate'digits=0precompute=Truestore=Truestring='Currency Rate' -
date_orderDatetimecopy=Falsedefault=fields.Datetime.nowhelp='Creation date of draft/sent orders,\nConfirmation date of confirmed orders.'required=Truestring='Order Date' -
duplicated_order_idsMany2many → sale.ordercomodel_name='sale.order'compute='_compute_duplicated_order_ids' -
expected_dateDatetimecompute='_compute_expected_date'help='Delivery date you can promise to the customer, computed from the minimum lead time of the order lines.'store=Falsestring='Expected Date' -
fiscal_position_idMany2one → account.fiscal.positioncheck_company=Truecomodel_name='account.fiscal.position'compute='_compute_fiscal_position_id'help='Fiscal positions are used to adapt taxes and accounts for particular customers or sales orders/invoices.The default value comes from the customer.'precompute=Truereadonly=Falsestore=Truestring='Fiscal Position' -
has_active_pricelistBooleancompute='_compute_has_active_pricelist' -
has_archived_productsBooleancompute='_compute_has_archived_products' -
has_authorized_transaction_idsBooleancompute='_compute_authorized_transaction_ids'compute_sudo=Truestring='Has Authorized Transactions' -
invoice_countIntegercompute='_get_invoiced'string='Invoice Count' -
invoice_idsMany2many → account.movecomodel_name='account.move'compute='_get_invoiced'copy=Falsesearch='_search_invoice_ids'string='Invoices' -
invoice_statusSelectioncompute='_compute_invoice_status'selection=INVOICE_STATUSstore=Truestring='Invoice Status' -
is_expiredBooleancompute='_compute_is_expired'string='Is Expired' -
journal_idMany2one → account.journalcheck_company=Truecompute='_compute_journal_id'domain=[('type', '=', 'sale')]help='If set, the SO will invoice in this journal; otherwise the sales journal with the lowest sequence is used.'precompute=Truereadonly=Falsestore=Truestring='Invoicing Journal' args: 'account.journal' -
lockedBooleancopy=Falsedefault=Falsehelp='Locked orders cannot be modified.'tracking=True -
medium_idMany2oneondelete='set null' -
nameCharcopy=Falsedefault=<expr>index='trigram'readonly=Falserequired=Truestring='Order Reference' -
noteHtmlcompute='_compute_note'precompute=Truereadonly=Falsestore=Truestring='Terms and conditions' -
order_lineOne2many → sale.order.linebypass_search_access=Truecomodel_name='sale.order.line'copy=Trueinverse_name='order_id'string='Order Lines' -
originCharhelp='Reference of the document that generated this sales order request'string='Source Document' -
partner_credit_warningTextcompute='_compute_partner_credit_warning' -
partner_idMany2one → res.partnerchange_default=Truecheck_company=Truecomodel_name='res.partner'index=Truerequired=Truestring='Customer'tracking=1 -
partner_invoice_idMany2one → res.partnercheck_company=Truecomodel_name='res.partner'compute='_compute_partner_invoice_id'index='btree_not_null'precompute=Truereadonly=Falserequired=Truestore=Truestring='Invoice Address' -
partner_shipping_idMany2one → res.partnercheck_company=Truecomodel_name='res.partner'compute='_compute_partner_shipping_id'index='btree_not_null'precompute=Truereadonly=Falserequired=Truestore=Truestring='Delivery Address' -
payment_term_idMany2one → account.payment.termcheck_company=Truecomodel_name='account.payment.term'compute='_compute_payment_term_id'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"precompute=Truereadonly=Falsestore=Truestring='Payment Terms' -
pending_email_template_idMany2one → mail.templatecomodel_name='mail.template'ondelete='set null'readonly=Truestring='Pending Email Template' -
preferred_payment_method_line_idMany2one → account.payment.method.linecheck_company=Truecomodel_name='account.payment.method.line'compute='_compute_preferred_payment_method_line_id'domain="[('payment_type', '=', 'inbound'), ('company_id', '=', company_id)]"precompute=Truereadonly=Falsestore=Truestring='Payment Method' -
prepayment_percentFloatcompute='_compute_prepayment_percent'help='The percentage of the amount needed that must be paid by the customer to confirm the order.'precompute=Truereadonly=Falsestore=Truestring='Prepayment percentage' -
pricelist_idMany2one → product.pricelistcheck_company=Truecomodel_name='product.pricelist'compute='_compute_pricelist_id'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"help='If you change the pricelist, only newly added lines will be affected.'precompute=Truereadonly=Falsestore=Truestring='Pricelist'tracking=1 -
referenceCharcopy=Falsehelp='The payment communication of this sale order.'string='Payment Ref.' -
require_paymentBooleancompute='_compute_require_payment'help='Request a online payment from the customer to confirm the order.'precompute=Truereadonly=Falsestore=Truestring='Online payment' -
require_signatureBooleancompute='_compute_require_signature'help='Request a online signature from the customer to confirm the order.'precompute=Truereadonly=Falsestore=Truestring='Online signature' -
sale_warning_textTextcompute='_compute_sale_warning_text'help='Internal warning for the partner or the products as set by the user.' args: 'Sale Warning' -
show_update_fposBooleanstore=Falsestring='Has Fiscal Position Changed' -
show_update_pricelistBooleanstore=Falsestring='Has Pricelist Changed' -
signatureImageattachment=Truecopy=Falsemax_height=1024max_width=1024string='Signature' -
signed_byCharcopy=Falsestring='Signed By' -
signed_onDatetimecopy=Falsestring='Signed On' -
source_idMany2oneondelete='set null' -
stateSelectioncopy=Falsedefault='draft'group_expand=Trueindex=Truereadonly=Trueselection=SALE_ORDER_STATEstring='Status'tracking=3 -
tag_idsMany2many → crm.tagcolumn1='order_id'column2='tag_id'comodel_name='crm.tag'groups='sales_team.group_sale_salesman'relation='sale_order_tag_rel'string='Tags' -
tax_calculation_rounding_methodSelectiondepends=['company_id']related='company_id.tax_calculation_rounding_method' -
tax_country_idMany2one → res.countrycomodel_name='res.country'compute='_compute_tax_country_id'compute_sudo=True -
tax_totalsBinarycompute='_compute_tax_totals'exportable=False -
team_idMany2one → crm.teamchange_default=Truecheck_company=Truecomodel_name='crm.team'compute='_compute_team_id'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"index=Trueondelete='set null'precompute=Truereadonly=Falsestore=Truestring='Sales Team'tracking=True -
terms_typeSelectionrelated='company_id.terms_type' -
transaction_idsMany2many → payment.transactioncolumn1='sale_order_id'column2='transaction_id'comodel_name='payment.transaction'copy=Falsegroups='account.group_account_invoice'readonly=Truerelation='sale_order_transaction_rel'string='Transactions' -
type_nameCharcompute='_compute_type_name'string='Type Name' -
user_idMany2one → res.userscomodel_name='res.users'compute='_compute_user_id'domain=<expr>index=Trueprecompute=Truereadonly=Falsestore=Truestring='Salesperson'tracking=2 -
validity_dateDatecompute='_compute_validity_date'copy=Falsehelp='Validity of the order, after that you will not able to sign & pay the quotation.'precompute=Truereadonly=Falsestore=Truestring='Expiration'
-
action_cancel(self)Cancel sales order and related draft invoices. -
action_confirm(self)Confirm the given quotation(s) and set their confirmation date. If the corresponding setting is enabled, also locks the Sale Order. :return: True :rtype: bool :raise: UserError if trying to confirm cancelled SO's -
action_draft(self) -
action_lock(self) -
action_open_business_doc(self)@api.readonly -
action_open_discount_wizard(self)@api.readonly -
action_preview_sale_order(self)@api.readonly -
action_quotation_send(self)Opens a wizard to compose an email, with relevant mail template loaded by default -
action_quotation_sent(self)Mark the given draft quotation(s) as sent. :raise: UserError if any given SO is not in draft state. -
action_unlock(self) -
action_update_prices(self) -
action_update_taxes(self) -
action_view_invoice(self, invoices=False)@api.readonly -
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
create_document_from_attachment(self, attachment_ids)Create the sale orders from given attachment_ids and redirect newly create order view. :param list attachment_ids: List of attachments process. :return: An action redirecting to related sale order view. :rtype: dict -
get_empty_list_help(self, help_message)@api.model -
get_import_templates(self)@api.model -
get_portal_last_transaction(self) -
message_post(self, **kwargs) -
onchange(self, values, field_names, fields_spec) -
payment_action_capture(self)Capture all transactions linked to this sale order. -
payment_action_void(self)Void all transactions linked to this sale order. -
write(self, vals)
New fields (6)
-
company_idMany2onerelated='sale_order_id.company_id' -
currency_idMany2onerelated='sale_order_id.currency_id' -
discount_amountMonetarystring='Amount' -
discount_percentageFloatstring='Percentage' -
discount_typeSelectiondefault='sol_discount'selection=[('sol_discount', 'On All Order Lines'), ('so_discount', 'Global Discount'), ('amount', 'Fixed Amount')] -
sale_order_idMany2one → sale.orderdefault=<expr>required=True args: 'sale.order'
-
action_apply_discount(self)
New fields (67)
-
allowed_uom_idsMany2many → uom.uomcompute='_compute_allowed_uom_ids' args: 'uom.uom' -
amount_invoicedMonetarycompute='_compute_amount_invoiced'compute_sudo=Truestring='Invoiced Amount' -
amount_to_invoiceMonetarycompute='_compute_amount_to_invoice'compute_sudo=Truestring='Un-invoiced Balance' -
amount_to_invoice_at_dateFloatcompute='_compute_amount_to_invoice_at_date'string='Amount' -
analytic_line_idsOne2many → account.analytic.linecomodel_name='account.analytic.line'inverse_name='so_line'string='Analytic lines' -
categ_idMany2onerelated='product_id.categ_id' -
collapse_compositionBooleancopy=Truedefault=Falsestring='Collapse Composition' -
collapse_pricesBooleancopy=Truedefault=Falsestring='Collapse Prices' -
combo_item_idMany2one → product.combo.itemcomodel_name='product.combo.item' -
company_idMany2oneindex=Trueprecompute=Truerelated='order_id.company_id'store=True -
company_price_includeSelectionrelated='company_id.account_price_include' -
currency_idMany2onedepends=['order_id.currency_id']precompute=Truerelated='order_id.currency_id'store=True -
customer_leadFloatcompute='_compute_customer_lead'help='Number of days between the order confirmation and the shipping of the products to the customer'precompute=Truereadonly=Falserequired=Truestore=Truestring='Lead Time' -
discountFloatcompute='_compute_discount'digits='Discount'precompute=Truereadonly=Falsestore=Truestring='Discount (%)' -
display_typeSelectiondefault=Falseselection=[('line_section', 'Section'), ('line_subsection', 'Subsection'), ('line_note', 'Note')] -
extra_tax_dataJson -
invoice_linesMany2many → account.move.linecolumn1='order_line_id'column2='invoice_line_id'comodel_name='account.move.line'copy=Falserelation='sale_order_line_invoice_rel'string='Invoice Lines' -
invoice_statusSelectioncompute='_compute_invoice_status'selection=[('upselling', 'Upselling Opportunity'), ('invoiced', 'Fully Invoiced'), ('to invoice', 'To Invoice'), ('no', 'Nothing to Invoice')]store=Truestring='Invoice Status' -
is_configurable_productBooleandepends=['product_template_id']related='product_template_id.has_configurable_attributes'string='Is the product configurable?' -
is_downpaymentBooleanhelp='Down payments are made when creating invoices from a sales order. They are not copied when duplicating a sales order.'string='Is a down payment' -
is_expenseBooleanhelp='Is true if the sales order line comes from an expense or a vendor bills'string='Is expense' -
is_product_archivedBooleancompute='_compute_is_product_archived' -
linked_line_idMany2one → sale.order.linecomodel_name='sale.order.line'copy=Falsedomain="[('order_id', '=', order_id)]"index=Trueondelete='cascade'string='Linked Order Line' -
linked_line_idsOne2many → sale.order.linecomodel_name='sale.order.line'inverse_name='linked_line_id'string='Linked Order Lines' -
linked_virtual_idChar -
nameTextcompute='_compute_name'precompute=Truereadonly=Falserequired=Truestore=Truestring='Description' -
order_idMany2one → sale.ordercomodel_name='sale.order'copy=Falseindex=Trueondelete='cascade'required=Truestring='Order Reference' -
order_partner_idMany2oneindex=Trueprecompute=Truerelated='order_id.partner_id'store=Truestring='Customer' -
parent_idMany2one → sale.order.linecomodel_name='sale.order.line'compute='_compute_parent_id'string='Parent Section Line' -
price_reduce_taxexclMonetarycompute='_compute_price_reduce_taxexcl'precompute=Truestore=Truestring='Price Reduce Tax excl' -
price_reduce_taxincMonetarycompute='_compute_price_reduce_taxinc'precompute=Truestore=Truestring='Price Reduce Tax incl' -
price_subtotalMonetarycompute='_compute_amount'precompute=Truestore=Truestring='Subtotal' -
price_taxFloatcompute='_compute_amount'precompute=Truestore=Truestring='Total Tax' -
price_totalMonetarycompute='_compute_amount'precompute=Truestore=Truestring='Total' -
price_unitFloatcompute='_compute_price_unit'min_display_digits='Product Price'precompute=Truereadonly=Falserequired=Truestore=Truestring='Unit Price' -
pricelist_item_idMany2one → product.pricelist.itemcomodel_name='product.pricelist.item'compute='_compute_pricelist_item_id' -
product_custom_attribute_value_idsOne2many → product.attribute.custom.valuecomodel_name='product.attribute.custom.value'compute='_compute_custom_attribute_values'copy=Trueinverse_name='sale_order_line_id'precompute=Truereadonly=Falsestore=Truestring='Custom Values' -
product_idMany2one → product.productchange_default=Truecheck_company=Truecomodel_name='product.product'domain=<expr>index='btree_not_null'ondelete='restrict'string='Product' -
product_no_variant_attribute_value_idsMany2many → product.template.attribute.valuecomodel_name='product.template.attribute.value'compute='_compute_no_variant_attribute_values'ondelete='restrict'precompute=Truereadonly=Falsestore=Truestring='Extra Values' -
product_template_attribute_value_idsMany2manydepends=['product_id']related='product_id.product_template_attribute_value_ids' -
product_template_idMany2one → product.templatecomodel_name='product.template'compute='_compute_product_template_id'domain=<expr>readonly=Falsesearch='_search_product_template_id'string='Product Template' -
product_typeSelectiondepends=['product_id']related='product_id.type' -
product_uom_idMany2one → uom.uomcomodel_name='uom.uom'compute='_compute_product_uom_id'domain='[("id", "in", allowed_uom_ids)]'ondelete='restrict'precompute=Truereadonly=Falsestore=Truestring='Unit' -
product_uom_qtyFloatcompute='_compute_product_uom_qty'default=1.0digits='Product Unit'precompute=Truereadonly=Falserequired=Truestore=Truestring='Quantity' -
product_uom_readonlyBooleancompute='_compute_product_uom_readonly' -
product_updatableBooleancompute='_compute_product_updatable'string='Can Edit Product' -
qty_deliveredFloatcompute='_compute_qty_delivered'copy=Falsedefault=0.0digits='Product Unit'readonly=Falsestore=Truestring='Delivery Quantity' -
qty_delivered_at_dateFloatcompute='_compute_qty_delivered_at_date'digits='Product Unit'string='Delivered' -
qty_delivered_methodSelectioncompute='_compute_qty_delivered_method'help='According to product configuration, the delivered quantity can be automatically computed by mechanism:\n - Manual: the quantity is set manually on the line\n - Analytic From expenses: the quantity is the quantity sum from posted expenses\n - Timesheet: the quantity is the sum of hours recorded on tasks linked to this sale line\n - Stock Moves: the quantity comes from confirmed pickings\n'precompute=Trueselection=[('manual', 'Manual'), ('analytic', 'Analytic From Expenses')]store=Truestring='Method to update delivered qty' -
qty_invoicedFloatcompute='_compute_qty_invoiced'digits='Product Unit'store=Truestring='Invoiced Quantity' -
qty_invoiced_at_dateFloatcompute='_compute_qty_invoiced_at_date'digits='Product Unit'string='Invoiced' -
qty_invoiced_postedFloatcompute='_compute_qty_invoiced_posted'digits='Product Unit'string='Invoiced Quantity (posted)' -
qty_to_invoiceFloatcompute='_compute_qty_to_invoice'digits='Product Unit'store=Truestring='Quantity To Invoice' -
sale_line_warn_msgTextcompute='_compute_sale_line_warn_msg' -
salesman_idMany2oneprecompute=Truerelated='order_id.user_id'store=Truestring='Salesperson' -
selected_combo_itemsCharstore=False -
sequenceIntegerdefault=10string='Sequence' -
service_trackingSelectiondepends=['product_id']related='product_id.service_tracking' -
stateSelectioncopy=Falseprecompute=Truerelated='order_id.state'store=Truestring='Order Status' -
tax_calculation_rounding_methodSelectionreadonly=Truerelated='company_id.tax_calculation_rounding_method'string='Tax calculation rounding method' -
tax_country_idMany2onerelated='order_id.tax_country_id' -
tax_idsMany2many → account.taxcheck_company=Truecomodel_name='account.tax'compute='_compute_tax_ids'context={'active_test': False, 'hide_original_tax_ids': True}domain="[('type_tax_use', '=', 'sale'), ('country_id', '=', tax_country_id)]"precompute=Truereadonly=Falsestore=Truestring='Taxes' -
technical_price_unitFloat -
translated_product_nameTextcompute='_compute_translated_product_name' -
untaxed_amount_invoicedMonetarycompute='_compute_untaxed_amount_invoiced'store=Truestring='Untaxed Invoiced Amount' -
untaxed_amount_to_invoiceMonetarycompute='_compute_untaxed_amount_to_invoice'store=Truestring='Untaxed Amount To Invoice' -
virtual_idChar
-
action_add_from_catalog(self)@api.readonly -
compute_uom_qty(self, new_qty, stock_move, rounding=True) -
create(self, vals_list)@api.model_create_multi -
get_parent_section_line(self) -
has_valued_move_ids(self) -
write(self, vals)
New fields (39)
-
campaign_idMany2one → utm.campaigncomodel_name='utm.campaign'readonly=Truestring='Campaign' -
categ_idMany2one → product.categorycomodel_name='product.category'readonly=Truestring='Product Category' -
commercial_partner_idMany2one → res.partnercomodel_name='res.partner'readonly=Truestring='Customer Entity' -
company_idMany2one → res.companycomodel_name='res.company'readonly=True -
country_idMany2one → res.countrycomodel_name='res.country'readonly=Truestring='Customer Country' -
currency_idMany2one → res.currencycomodel_name='res.currency'readonly=True -
dateDatetimereadonly=Truestring='Order Date' -
discountFloataggregator='avg'readonly=Truestring='Discount %' -
discount_amountMonetaryreadonly=Truestring='Discount Amount' -
industry_idMany2one → res.partner.industrycomodel_name='res.partner.industry'readonly=Truestring='Customer Industry' -
invoice_statusSelectionreadonly=Trueselection=[('upselling', 'Upselling Opportunity'), ('invoiced', 'Fully Invoiced'), ('to invoice', 'To Invoice'), ('no', 'Nothing to Invoice')]string='Order Invoice Status' -
line_invoice_statusSelectionreadonly=Trueselection=[('upselling', 'Upselling Opportunity'), ('invoiced', 'Fully Invoiced'), ('to invoice', 'To Invoice'), ('no', 'Nothing to Invoice')]string='Invoice Status' -
medium_idMany2one → utm.mediumcomodel_name='utm.medium'readonly=Truestring='Medium' -
nameCharreadonly=Truestring='Order Reference' -
nbrIntegerreadonly=Truestring='# of Lines' -
order_referenceReferenceaggregator='count_distinct'selection=[('sale.order', 'Sales Order')]string='Order' -
partner_idMany2one → res.partnercomodel_name='res.partner'readonly=Truestring='Customer' -
partner_zipCharreadonly=Truestring='Customer ZIP' -
price_subtotalMonetaryreadonly=Truestring='Untaxed Total' -
price_totalMonetaryreadonly=Truestring='Total' -
price_unitFloataggregator='avg'readonly=Truestring='Unit Price' -
pricelist_idMany2one → product.pricelistcomodel_name='product.pricelist'readonly=True -
product_idMany2one → product.productcomodel_name='product.product'readonly=Truestring='Product Variant' -
product_tmpl_idMany2one → product.templatecomodel_name='product.template'readonly=Truestring='Product' -
product_uom_idMany2one → uom.uomcomodel_name='uom.uom'readonly=Truestring='Unit' -
product_uom_qtyFloatreadonly=Truestring='Qty Ordered' -
qty_deliveredFloatreadonly=Truestring='Qty Delivered' -
qty_invoicedFloatreadonly=Truestring='Qty Invoiced' -
qty_to_deliverFloatreadonly=Truestring='Qty To Deliver' -
qty_to_invoiceFloatreadonly=Truestring='Qty To Invoice' -
source_idMany2one → utm.sourcecomodel_name='utm.source'readonly=Truestring='Source' -
stateSelectionreadonly=Trueselection=SALE_ORDER_STATEstring='Status' -
state_idMany2one → res.country.statecomodel_name='res.country.state'readonly=Truestring='Customer State' -
team_idMany2one → crm.teamcomodel_name='crm.team'readonly=Truestring='Sales Team' -
untaxed_amount_invoicedMonetaryreadonly=Truestring='Untaxed Amount Invoiced' -
untaxed_amount_to_invoiceMonetaryreadonly=Truestring='Untaxed Amount To Invoice' -
user_idMany2one → res.userscomodel_name='res.users'readonly=Truestring='Salesperson' -
volumeFloatreadonly=Truestring='Volume' -
weightFloatreadonly=Truestring='Gross Weight'
-
action_open_order(self)@api.readonly
New fields (4)
-
company_idMany2one → res.companydefault=<expr>string='Company' args: 'res.company' -
currency_idMany2one → res.currencyrelated='company_id.currency_id'string='Currency' args: 'res.currency' -
invoiced_amountIntegercompute='_compute_sale_invoiced_amount'compute_sudo=Truegroups='sales_team.group_sale_salesman'string='Revenues generated by the campaign' -
quotation_countIntegercompute='_compute_quotation_count'compute_sudo=Truegroups='sales_team.group_sale_salesman' args: 'Quotation Count'
-
action_redirect_to_invoiced(self) -
action_redirect_to_quotations(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…