diff --git a/addons/account_budget/account_budget_view.xml b/addons/account_budget/account_budget_view.xml
index 21f9cc69b8a..f6b4842b596 100644
--- a/addons/account_budget/account_budget_view.xml
+++ b/addons/account_budget/account_budget_view.xml
@@ -299,7 +299,7 @@
-
+
diff --git a/addons/account_budget/security/ir.model.access.csv b/addons/account_budget/security/ir.model.access.csv
index 131f4424568..f4174f72782 100644
--- a/addons/account_budget/security/ir.model.access.csv
+++ b/addons/account_budget/security/ir.model.access.csv
@@ -4,4 +4,4 @@ access_account_budget_post,account.budget.post,model_account_budget_post,account
access_account_budget_post_accountant,account.budget.post accountant,model_account_budget_post,account.group_account_user,1,1,1,1
access_crossovered_budget_accountant,crossovered.budget accountant,model_crossovered_budget,account.group_account_user,1,1,1,1
access_crossovered_budget_lines_accountant,crossovered.budget.lines accountant,model_crossovered_budget_lines,account.group_account_user,1,1,1,1
-access_budget,crossovered.budget.lines manager,model_crossovered_budget_lines,base.group_user,1,0,0,0
+access_budget,crossovered.budget.lines manager,model_crossovered_budget_lines,base.group_user,1,1,1,0
diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml
index 3ab9ac8a32c..56d46140d2f 100644
--- a/addons/crm/res_config_view.xml
+++ b/addons/crm/res_config_view.xml
@@ -32,12 +32,6 @@
-
diff --git a/addons/crm/security/crm_security.xml b/addons/crm/security/crm_security.xml
index 07bb3fc539c..3b382a072f4 100644
--- a/addons/crm/security/crm_security.xml
+++ b/addons/crm/security/crm_security.xml
@@ -3,18 +3,21 @@
- User - Own Leads Only
+ User: Own Leads Only
+ the user will have access to his own data in the sales application.
- User - All Leads
+ User: All Leads
+ the user will have access to all records of everyone in the sales application.
Manager
+ the user will have an access to the sales configuration as well as statistic reports.
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index c376d0518f2..a4e9abb881e 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -582,6 +582,12 @@ class sale_order(osv.osv):
result.update(view_id = res and res[1] or False)
return result
+ def test_no_product(self, cr, uid, order, context):
+ for line in order.order_line:
+ if line.product_id:
+ return False
+ return True
+
def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception'], date_inv = False, context=None):
res = False
invoices = {}
@@ -751,7 +757,10 @@ class sale_order(osv.osv):
for o in self.browse(cr, uid, ids):
if not o.order_line:
raise osv.except_osv(_('Error!'),_('You cannot confirm a sale order which has no line.'))
- if (o.order_policy == 'manual'):
+ noprod = self.test_no_product(cr, uid, o, context)
+ if noprod and o.order_policy=='picking':
+ self.write(cr, uid, [o.id], {'order_policy': 'manual'}, context=context)
+ if (o.order_policy == 'manual') or noprod:
self.write(cr, uid, [o.id], {'state': 'manual', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
else:
self.write(cr, uid, [o.id], {'state': 'progress', 'date_confirm': fields.date.context_today(self, cr, uid, context=context)})
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index af86cf9b218..651454ef73d 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -184,8 +184,8 @@
-
-
+
+
diff --git a/addons/sale/sale_workflow.xml b/addons/sale/sale_workflow.xml
index c18e271d480..5ba381043b1 100644
--- a/addons/sale/sale_workflow.xml
+++ b/addons/sale/sale_workflow.xml
@@ -196,7 +196,7 @@
- (order_policy=='prepaid')
+ order_policy=='prepaid'
diff --git a/addons/sale_journal/sale_journal.py b/addons/sale_journal/sale_journal.py
index a5e922f3644..e0b6e50f4cf 100644
--- a/addons/sale_journal/sale_journal.py
+++ b/addons/sale_journal/sale_journal.py
@@ -61,6 +61,21 @@ class picking(osv.osv):
}
picking()
+class stock_picking_in(osv.osv):
+ _inherit = "stock.picking.in"
+ _columns = {
+ 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True)
+ }
+stock_picking_in()
+
+class stock_picking_out(osv.osv):
+ _inherit = "stock.picking.out"
+ _columns = {
+ 'invoice_type_id': fields.many2one('sale_journal.invoice.type', 'Invoice Type', readonly=True)
+ }
+stock_picking_out()
+
+
class sale(osv.osv):
_inherit = "sale.order"
_columns = {
diff --git a/addons/sale_journal/sale_journal_view.xml b/addons/sale_journal/sale_journal_view.xml
index 98f2933d6f3..3dbef8aa9b3 100644
--- a/addons/sale_journal/sale_journal_view.xml
+++ b/addons/sale_journal/sale_journal_view.xml
@@ -42,7 +42,7 @@
+ parent="base.menu_sales_configuration_misc" action="action_definition_journal_invoice_type"/>
@@ -52,7 +52,7 @@
-
+
@@ -64,8 +64,8 @@
sale.order
-
-
+
+
@@ -77,8 +77,8 @@
stock.picking
-
-
+
+
@@ -90,7 +90,7 @@
stock.picking
-
+
@@ -98,10 +98,10 @@
stock.picking.journal.view.form
- stock.picking
+ stock.picking.in
-
+
@@ -109,10 +109,10 @@
stock.picking.journal.view.tree
- stock.picking
+ stock.picking.in
-
+
@@ -120,10 +120,10 @@
stock.picking.journal.view.form
- stock.picking
+ stock.picking.out
-
+
@@ -131,10 +131,10 @@
stock.picking.journal.view.tree
- stock.picking
+ stock.picking.out
-
+
@@ -148,11 +148,54 @@
-
+
+
+ sale.order.search.inherit
+ sale.order
+
+
+
+
+
+
+
+
+
+ stock.picking.internal.search.inherit
+ stock.picking
+
+
+
+
+
+
+
+
+
+ stock.picking.out.search.inherit
+ stock.picking.out
+
+
+
+
+
+
+
+
+
+ stock.picking.in.search.inherit
+ stock.picking.in
+
+
+
+
+
+
+