You can invoice them before they are delivered.
+
+
Invoice after delivery, based on quantities delivered, not ordered.
+
+
+
+ product.product.sale.order
+ product.product
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ product.template.sale.order.button
+ product.template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Products
+ ir.actions.act_window
+ product.template
+ kanban,tree,form,activity
+
+
+ {"search_default_filter_to_sell":1, "sale_multi_pricelist_product_template": 1}
+
+
+ Create a new product
+
+ You must define a product for everything you sell or purchase,
+ whether it's a storable product, a consumable or a service.
+
+
+
+
diff --git a/addons/sale/views/res_config_settings_views.xml b/addons/sale/views/res_config_settings_views.xml
index bbf000397bb..c3ad55b67b1 100644
--- a/addons/sale/views/res_config_settings_views.xml
+++ b/addons/sale/views/res_config_settings_views.xml
@@ -8,7 +8,11 @@
-
+
Product Catalog
@@ -446,11 +450,4 @@
{'module' : 'sale_management', 'bin_size': False}
-
-
diff --git a/addons/sale/views/res_partner_views.xml b/addons/sale/views/res_partner_views.xml
index 9a283f83f99..048e2effe80 100644
--- a/addons/sale/views/res_partner_views.xml
+++ b/addons/sale/views/res_partner_views.xml
@@ -1,87 +1,91 @@
-
- Quotations and Sales
- sale.order
- tree,form,graph
- {'search_default_partner_id': active_id, 'default_partner_id': active_id}
-
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
-
- res.partner.kanban.saleorder.inherit
- res.partner
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Quotations and Sales
+ sale.order
+ tree,form,graph
+ {'search_default_partner_id': active_id, 'default_partner_id': active_id}
+
+
+
+ Create a new quotation, the first step of a new sale!
+
+ Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
+
+
+
-
- res.partner.view.buttons
- res.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ res.partner.kanban.saleorder.inherit
+ res.partner
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
-
- res.partner.view.form.payment.defaultcreditcard
- res.partner
-
-
-
- sales_team.group_sale_salesman
+
+ res.partner.view.buttons
+ res.partner
+
+
+
+
+
+
+
-
-
-
-
- res.partner.view.form.property.inherit
- res.partner
-
-
-
- account.group_account_invoice, sales_team.group_sale_salesman
+
+
+
+
+
+
-
- account.group_account_invoice, sales_team.group_sale_salesman
-
-
- account.group_account_invoice, sales_team.group_sale_salesman
-
+
+
+
+
+
+ res.partner.view.form.payment.defaultcreditcard
+ res.partner
+
+
+
+ sales_team.group_sale_salesman
+
+
+
+
+
+ res.partner.view.form.property.inherit
+ res.partner
+
+
+
+ account.group_account_invoice, sales_team.group_sale_salesman
+
+
+ account.group_account_invoice, sales_team.group_sale_salesman
-
+
+ account.group_account_invoice, sales_team.group_sale_salesman
+
+
+
+
diff --git a/addons/sale/views/sale_menus.xml b/addons/sale/views/sale_menus.xml
new file mode 100644
index 00000000000..47699e5a74f
--- /dev/null
+++ b/addons/sale/views/sale_menus.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
diff --git a/addons/sale/views/sale_onboarding_views.xml b/addons/sale/views/sale_onboarding_views.xml
index b913649b966..55d6dc20826 100644
--- a/addons/sale/views/sale_onboarding_views.xml
+++ b/addons/sale/views/sale_onboarding_views.xml
@@ -23,7 +23,7 @@
-
+
Sample Quotation
Send a quotation to test the customer portal.
diff --git a/addons/sale/views/sale_order_line_views.xml b/addons/sale/views/sale_order_line_views.xml
new file mode 100644
index 00000000000..6852a63f2cd
--- /dev/null
+++ b/addons/sale/views/sale_order_line_views.xml
@@ -0,0 +1,111 @@
+
+
+
+
+ sale.order.line.tree
+ sale.order.line
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.line.form.readonly
+ sale.order.line
+
+
+
+
+
+
+ sale.order.line.select
+ sale.order.line
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.line.kanban
+ sale.order.line
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/sale/views/sale_order_views.xml b/addons/sale/views/sale_order_views.xml
new file mode 100644
index 00000000000..9aa0d5c72dd
--- /dev/null
+++ b/addons/sale/views/sale_order_views.xml
@@ -0,0 +1,903 @@
+
+
+
+
+
+
+ sale.order.activity
+ sale.order
+
+
+
+
+
+
+
+
+
+
+ sale.order.calendar
+ sale.order
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.graph
+ sale.order
+
+
+
+
+
+
+
+
+
+ sale.order.pivot
+ sale.order
+
+
+
+
+
+
+
+
+
+ sale.order.kanban
+ sale.order
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.tree
+ sale.order
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.tree
+ sale.order
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.tree
+ sale.order
+
+ primary
+
+
+ /sales/sale_quotation_onboarding_panel
+
+
+
+
+
+ sale.order.form
+ sale.order
+
+
+
+
+
+
+ sale.order.form
+ sale.order
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.list.select
+ sale.order
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.search.inherit.quotation
+ sale.order
+ primary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sale.order.search.inherit.sale
+ sale.order
+ primary
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Sales Orders
+ ir.actions.act_window
+ sale.order
+ tree,kanban,form,calendar,pivot,graph,activity
+
+ {}
+ [('state', 'not in', ('draft', 'sent', 'cancel'))]
+
+
+ Create a new quotation, the first step of a new sale!
+
+ Once the quotation is confirmed, it becomes a sales order. You will be able to create an invoice and collect the payment.
+
+
+
+
+
+
+ tree
+
+
+
+
+
+
+ kanban
+
+
+
+
+
+
+ form
+
+
+
+
+
+
+ calendar
+
+
+
+
+
+
+ pivot
+
+
+
+
+
+
+ graph
+
+
+
+
+
+ Quotations
+ ir.actions.act_window
+ sale.order
+
+ tree,kanban,form,calendar,pivot,graph,activity
+
+ {'search_default_my_quotation': 1}
+
+
+ Create a new quotation, the first step of a new sale!
+
+ Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
+
+
+
+
+
+ Quotations
+ ir.actions.act_window
+ sale.order
+ tree,kanban,form,calendar,pivot,graph,activity
+
+ {'search_default_my_quotation': 1}
+
+
+ Create a new quotation, the first step of a new sale!
+
+ Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
+
+
+
+
+
+
+ tree
+
+
+
+
+
+
+ kanban
+
+
+
+
+
+
+ form
+
+
+
+
+
+
+ calendar
+
+
+
+
+
+
+ pivot
+
+
+
+
+
+
+ graph
+
+
+
+
+
+ Orders to Invoice
+ ir.actions.act_window
+ sale.order
+ tree,form,calendar,graph,pivot,kanban,activity
+ {'create': False}
+ [('invoice_status','=','to invoice')]
+
+
+
+ No orders to invoice found
+
+ You can select all orders and invoice them in batch,
+ or check every order and invoice them one by one.
+
+
+
+
+
+ Orders to Upsell
+ ir.actions.act_window
+ sale.order
+ tree,form,calendar,graph,pivot,kanban,activity
+ [('invoice_status','=','upselling')]
+ {'create': False}
+
+
+
+ No orders to upsell found.
+
+ An order is to upsell when delivered quantities are above initially
+ ordered quantities, and the invoicing policy is based on ordered quantities.
+
+ As an example, if you sell pre-paid hours of services, Odoo recommends you
+ to sell extra hours when all ordered hours have been consumed.
+
+
+
+
+
+
+
+ Mark Quotation as Sent
+
+
+ form,list
+ code
+ action = records.action_quotation_sent()
+
+
+
diff --git a/addons/sale/views/sale_portal_templates.xml b/addons/sale/views/sale_portal_templates.xml
index 30c7b3e9d1b..2ede5480e1c 100644
--- a/addons/sale/views/sale_portal_templates.xml
+++ b/addons/sale/views/sale_portal_templates.xml
@@ -40,9 +40,6 @@
Quotations
-
- There are currently no quotations for your account.
-
@@ -59,8 +56,10 @@
- Cancelled
- Expired
+
+ Cancelled
+
+ Expired
@@ -68,6 +67,7 @@
+ There are currently no quotations for your account.
@@ -78,9 +78,6 @@
Sales Orders
-
- There are currently no orders for your account.
-
@@ -109,6 +106,7 @@
+ There are currently no orders for your account.
@@ -177,14 +175,21 @@
- Salesperson
+
+ Salesperson
+
-
+
@@ -208,9 +213,15 @@
By signing this proposal, I agree to the following terms:
- Accepted on the behalf of:
- For an amount of:
- With payment terms:
+
+ Accepted on the behalf of:
+
+
+ For an amount of:
+
+
+ With payment terms:
+
@@ -231,9 +242,15 @@
By paying this proposal, I agree to the following terms:
- Accepted on the behalf of:
- For an amount of:
- With payment terms:
+
+ Accepted on the behalf of:
+
+
+ For an amount of:
+
+
+ With payment terms:
+
@@ -265,8 +282,12 @@
@@ -276,8 +297,12 @@
×
Thank You!
- Your order has been confirmed.
- Your order has been signed but still needs to be paid to be confirmed.
+
+ Your order has been confirmed.
+
+
+ Your order has been signed but still needs to be paid to be confirmed.
+
Your order has been signed.
@@ -380,19 +405,29 @@
-
Invoicing and Shipping Address:
-
Invoicing Address:
-
+
+
+ Invoicing and Shipping Address:
+
+
+ Invoicing Address:
+
+
+
+
+
+
+ Shipping Address:
+
+
-
-
-
-
+
Invoices
@@ -406,8 +441,12 @@
Date:
-
Paid
-
Waiting Payment
+
+ Paid
+
+
+ Waiting Payment
+
@@ -425,7 +464,9 @@
Products
Quantity
- Unit Price
+
+ Unit Price
+
Disc.%
@@ -449,7 +490,9 @@
-
+
+
+
@@ -494,17 +537,15 @@
-
-
-
- Subtotal
-
-
-
-
+
+
+ Subtotal
+
+
+
@@ -526,7 +567,7 @@
-
+
Terms & Conditions
@@ -539,7 +580,7 @@
-
+
Payment terms
diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml
deleted file mode 100644
index 8f3c246b2b0..00000000000
--- a/addons/sale/views/sale_views.xml
+++ /dev/null
@@ -1,1382 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Products
- ir.actions.act_window
- product.template
- kanban,tree,form,activity
-
-
- {"search_default_filter_to_sell":1, "sale_multi_pricelist_product_template": 1}
-
-
- Create a new product
-
- You must define a product for everything you sell or purchase,
- whether it's a storable product, a consumable or a service.
-
-
-
-
-
- product.template.product.website.form
- product.template
-
-
-
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.activity
- sale.order
-
-
-
-
-
-
-
-
-
-
- sale.order.calendar
- sale.order
-
-
-
-
-
-
-
-
-
-
-
- sale.order.graph
- sale.order
-
-
-
-
-
-
-
-
- sale.order.pivot
- sale.order
-
-
-
-
-
-
-
-
-
-
- sale.order.kanban
- sale.order
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.tree
- sale.order
- 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.tree
- sale.order
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.tree
- sale.order
-
- primary
-
-
- /sales/sale_quotation_onboarding_panel
-
-
-
-
-
- sale.order.form
- sale.order
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %
-
-
-
-
-
-
-
- days
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Expected:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.form
- sale.order
-
-
-
-
-
-
-
-
-
-
-
- sale.order.list.select
- sale.order
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.search.inherit.quotation
- sale.order
- primary
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.search.inherit.sale
- sale.order
- primary
-
-
-
-
-
-
-
-
-
-
-
-
-
- Sales Orders
- ir.actions.act_window
- sale.order
- tree,kanban,form,calendar,pivot,graph,activity
-
- {}
- [('state', 'not in', ('draft', 'sent', 'cancel'))]
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
-
- Sales Order
- ir.actions.act_window
- sale.order
- form,tree,kanban,calendar,pivot,graph,activity
-
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
-
-
- tree
-
-
-
-
-
-
- kanban
-
-
-
-
-
-
- form
-
-
-
-
-
-
- calendar
-
-
-
-
-
-
- pivot
-
-
-
-
-
-
- graph
-
-
-
-
-
-
-
- Orders to Invoice
- ir.actions.act_window
- sale.order
- tree,form,calendar,graph,pivot,kanban,activity
- {'create': False}
- [('invoice_status','=','to invoice')]
-
-
-
- No orders to invoice found
-
- You can select all orders and invoice them in batch,
- or check every order and invoice them one by one.
-
-
-
-
-
- Mark Quotation as Sent
-
-
- form,list
- code
- action = records.action_quotation_sent()
-
-
-
- Accrued Revenue Entry
- ir.actions.act_window
- account.accrued.orders.wizard
- form
-
-
- new
-
-
-
-
-
-
-
- Orders to Upsell
- ir.actions.act_window
- sale.order
- tree,form,calendar,graph,pivot,kanban,activity
- [('invoice_status','=','upselling')]
- {'create': False}
-
-
-
- No orders to upsell found.
-
- An order is to upsell when delivered quantities are above initially
- ordered quantities, and the invoicing policy is based on ordered quantities.
-
- As an example, if you sell pre-paid hours of services, Odoo recommends you
- to sell extra hours when all ordered hours have been consumed.
-
-
-
-
-
-
-
- Quotations
- ir.actions.act_window
- sale.order
-
- tree,kanban,form,calendar,pivot,graph,activity
-
- {'search_default_my_quotation': 1}
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
-
- Quotations
- ir.actions.act_window
- sale.order
- tree,kanban,form,calendar,pivot,graph,activity
-
- {'search_default_my_quotation': 1}
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
-
-
- tree
-
-
-
-
-
-
- kanban
-
-
-
-
-
-
- form
-
-
-
-
-
-
- calendar
-
-
-
-
-
-
- pivot
-
-
-
-
-
-
- graph
-
-
-
-
-
-
-
- sale.order.line.tree
- sale.order.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.line.form.readonly
- sale.order.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.line.select
- sale.order.line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sale.order.line.kanban
- sale.order.line
-
-
-
-
-
-
-
-
-
-
-
-
- product.product.sale.order
- product.product
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- product.template.sale.order.button
- product.template
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- product.template.invoice.policy
- product.template
- 15
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- account.move.groupby
- account.move
-
-
-
-
-
-
-
-
-
-
-
-
- account.move.tree.inherit.sale
- account.move
-
-
-
-
-
-
-
-
-
-
- Account Invoice
- account.move
-
-
-
-
- product.group_discount_per_so_line
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- account.invoice.report.view.tree.inherit.sale
- account.invoice.report
-
-
-
-
-
-
-
-
-
-
- Sales Orders
- ir.actions.act_window
- sale.order
- tree,form,calendar,graph,kanban,pivot
-
- [('state','not in',('draft','sent','cancel'))]
- {
- 'search_default_team_id': [active_id],
- 'default_team_id': active_id,
- }
-
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
- Sales Orders
- ir.actions.act_window
- sale.order
- tree,form,calendar,graph,kanban,pivot
-
- [('invoice_status','=','to invoice')]
- {
- 'search_default_team_id': [active_id],
- 'default_team_id': active_id,
- }
-
-
-
- Quotations
- ir.actions.act_window
- sale.order
-
- tree,form,calendar,graph,kanban,pivot
- {
- 'search_default_team_id': [active_id],
- 'default_team_id': active_id,
- 'show_address': 1,
- }
-
- []
-
-
-
- Create a new quotation, the first step of a new sale!
-
- Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
- Invoices
- account.move
- tree,form,kanban
-
- [
- ('state', '=', 'posted'),
- ('move_type', 'in', ['out_invoice', 'out_refund'])]
- {
- 'search_default_team_id': [active_id],
- 'default_team_id': active_id,
- 'default_move_type':'out_invoice',
- 'move_type':'out_invoice',
- 'journal_type': 'sale',
- }
-
-
-
-
- Create a customer invoice
-
- Create invoices, register payments and keep track of the discussions with your customers.
-
-
-
-
-
- 1
- tree
-
-
-
-
- 2
- form
-
-
-
-
-
- Quotations Analysis
- sale.report
- graph
- [('state','=','draft'),('team_id', '=', active_id)]
- {'search_default_order_month':1}
- This report performs analysis on your quotations. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.
-
-
-
- Sales Analysis
- sale.report
- graph
- [('state','not in',('draft','cancel'))]
- {
- 'search_default_Sales': 1,
- 'search_default_filter_date': 1,
- 'search_default_team_id': [active_id]}
- This report performs analysis on your sales orders. Analysis check your sales revenues and sort it by different group criteria (salesman, partner, product, etc.) Use this report to perform analysis on sales not having invoiced yet. If you want to analyse your turnover, you should use the Invoice Analysis report in the Accounting application.
-
-
-
- Invoices Analysis
- account.invoice.report
- graph
- [('state', 'not in', ['draft', 'cancel'])]
- {'search_default_month':1, 'search_default_team_id': [active_id]}
- From this report, you can have an overview of the amount invoiced to your customer. The search tool can also be used to personalise your Invoices reports and so, match this analysis to your needs.
-
-
diff --git a/addons/sale/wizard/__init__.py b/addons/sale/wizard/__init__.py
index 34ae33af786..d2b9385c1d2 100644
--- a/addons/sale/wizard/__init__.py
+++ b/addons/sale/wizard/__init__.py
@@ -4,6 +4,6 @@
from . import account_payment_register
from . import mail_compose_message
from . import payment_acquirer_onboarding_wizard
+from . import payment_link_wizard
from . import sale_make_invoice_advance
from . import sale_order_cancel
-from . import sale_payment_link
diff --git a/addons/sale/wizard/account_accrued_orders_wizard_views.xml b/addons/sale/wizard/account_accrued_orders_wizard_views.xml
new file mode 100644
index 00000000000..86fb34f6ef8
--- /dev/null
+++ b/addons/sale/wizard/account_accrued_orders_wizard_views.xml
@@ -0,0 +1,14 @@
+
+
+
+
+ Accrued Revenue Entry
+ ir.actions.act_window
+ account.accrued.orders.wizard
+ form
+
+
+ new
+
+
+
diff --git a/addons/sale/wizard/sale_payment_link.py b/addons/sale/wizard/payment_link_wizard.py
similarity index 100%
rename from addons/sale/wizard/sale_payment_link.py
rename to addons/sale/wizard/payment_link_wizard.py
diff --git a/addons/sale/wizard/sale_payment_link_views.xml b/addons/sale/wizard/payment_link_wizard_views.xml
similarity index 100%
rename from addons/sale/wizard/sale_payment_link_views.xml
rename to addons/sale/wizard/payment_link_wizard_views.xml
diff --git a/addons/sale_management/__manifest__.py b/addons/sale_management/__manifest__.py
index ec9fd4ecb68..f53e83797a4 100644
--- a/addons/sale_management/__manifest__.py
+++ b/addons/sale_management/__manifest__.py
@@ -38,17 +38,24 @@ The Dashboard for the Sales Manager will include
'website': 'https://www.odoo.com/app/sales',
'depends': ['sale', 'digest'],
'data': [
- 'security/sale_management_security.xml',
+ # TODO VFE add data validation on manifest loading
+ # We were loading digest_data twice...
'data/digest_data.xml',
- 'views/sale_portal_templates.xml',
- 'views/sale_order_template_views.xml',
+
'security/ir.model.access.csv',
- 'views/res_config_settings_views.xml',
- 'data/digest_data.xml',
- 'views/sale_management_views.xml',
- 'views/digest_views.xml',
- 'views/sale_order_views.xml',
+ 'security/sale_management_security.xml',
+
'report/sale_report_templates.xml',
+
+ # Define SO template views & actions before their place of use
+ 'views/sale_order_template_views.xml',
+
+ 'views/digest_views.xml',
+ 'views/res_config_settings_views.xml',
+ 'views/sale_order_views.xml',
+ 'views/sale_portal_templates.xml',
+
+ 'views/sale_management_menus.xml',
],
'demo': [
'data/sale_order_template_demo.xml',
diff --git a/addons/sale_management/views/digest_views.xml b/addons/sale_management/views/digest_views.xml
index 15ec910aed2..23dd96166cd 100644
--- a/addons/sale_management/views/digest_views.xml
+++ b/addons/sale_management/views/digest_views.xml
@@ -1,18 +1,20 @@
+
digest.digest.view.form.inherit.sale.order
digest.digest
10
-
+
Sales
sales_team.group_sale_salesman_all_leads
-
-
+
+
-
+
+
diff --git a/addons/sale_management/views/res_config_settings_views.xml b/addons/sale_management/views/res_config_settings_views.xml
index 03c9d6d3e88..635e32e0551 100644
--- a/addons/sale_management/views/res_config_settings_views.xml
+++ b/addons/sale_management/views/res_config_settings_views.xml
@@ -47,4 +47,15 @@
+
+ res.config.settings.view.form.inherit.sale.management
+ res.config.settings
+
+
+
+ app_settings_block
+
+
+
+
diff --git a/addons/sale_management/views/sale_management_menus.xml b/addons/sale_management/views/sale_management_menus.xml
new file mode 100644
index 00000000000..dc9a2010733
--- /dev/null
+++ b/addons/sale_management/views/sale_management_menus.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/addons/sale_management/views/sale_management_views.xml b/addons/sale_management/views/sale_management_views.xml
deleted file mode 100644
index a099504ed27..00000000000
--- a/addons/sale_management/views/sale_management_views.xml
+++ /dev/null
@@ -1,63 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- res.config.settings.view.form.inherit.sale.management
- res.config.settings
-
-
-
- app_settings_block
-
-
-
-
-
diff --git a/addons/sale_management/views/sale_order_template_views.xml b/addons/sale_management/views/sale_order_template_views.xml
index a27a12f2cef..cccbed28706 100644
--- a/addons/sale_management/views/sale_order_template_views.xml
+++ b/addons/sale_management/views/sale_order_template_views.xml
@@ -144,6 +144,4 @@
-
-
diff --git a/addons/sale_management/views/sale_order_views.xml b/addons/sale_management/views/sale_order_views.xml
index ddffddf1cf7..4b353512fdf 100644
--- a/addons/sale_management/views/sale_order_views.xml
+++ b/addons/sale_management/views/sale_order_views.xml
@@ -1,17 +1,20 @@
+
- sale.order.form.payment
+ sale.order.form.inherit.sale_management
sale.order
-
-
-
+
+
-
+
@@ -39,7 +42,11 @@
-
+
@@ -63,47 +70,43 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
-
-
+
-
-
-
- Create a new quotation, the first step of a new sale!
-
-
- Once the quotation is confirmed by the customer, it becomes a sales order. You will be able to create an invoice and collect the payment.
-
-
-
-
-
diff --git a/addons/sale_project/views/product_views.xml b/addons/sale_project/views/product_views.xml
index 73ae817211e..14ee5f6ba6a 100644
--- a/addons/sale_project/views/product_views.xml
+++ b/addons/sale_project/views/product_views.xml
@@ -4,7 +4,7 @@
product.template.inherit.sale.projectform
product.template
-
+
diff --git a/addons/sale_timesheet/views/product_views.xml b/addons/sale_timesheet/views/product_views.xml
index 09080b4fa98..fdadf529ab9 100644
--- a/addons/sale_timesheet/views/product_views.xml
+++ b/addons/sale_timesheet/views/product_views.xml
@@ -3,7 +3,7 @@
product.template.timesheet.form
product.template
-
+
False