diff --git a/addons/document/document.py b/addons/document/document.py
index cd3d667f8bf..4acef4d3ab8 100644
--- a/addons/document/document.py
+++ b/addons/document/document.py
@@ -242,6 +242,7 @@ class document_directory(osv.osv):
_description = 'Document directory'
_columns = {
'name': fields.char('Name', size=64, required=True, select=1),
+ 'company_id': fields.many2one('res.company', 'Company'),
'write_date': fields.datetime('Date Modified', readonly=True),
'write_uid': fields.many2one('res.users', 'Last Modification User', readonly=True),
'create_date': fields.datetime('Date Created', readonly=True),
@@ -269,6 +270,7 @@ class document_directory(osv.osv):
'user_id': lambda self,cr,uid,ctx: uid,
'domain': lambda self,cr,uid,ctx: '[]',
'type': lambda *args: 'directory',
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'document.directory', c),
'ressource_id': lambda *a: 0
}
_sql_constraints = [
diff --git a/addons/document/security/document_security.xml b/addons/document/security/document_security.xml
index 52b4e6de990..cddf24cddea 100644
--- a/addons/document/security/document_security.xml
+++ b/addons/document/security/document_security.xml
@@ -10,5 +10,17 @@
+
+
+ Document Directory multi-company
+
+
+
+
+
+
+ ['|','|',('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
diff --git a/addons/purchase/security/purchase_security.xml b/addons/purchase/security/purchase_security.xml
index 4cf0414b27d..84b9a87ff05 100644
--- a/addons/purchase/security/purchase_security.xml
+++ b/addons/purchase/security/purchase_security.xml
@@ -9,5 +9,28 @@
Purchase / User
+
+
+ Purchase Order multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
+
+ Purchase Order Line multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index f8dd5899b68..dc20c6aed4f 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -257,6 +257,7 @@ class sale_order(osv.osv):
'company_id': fields.many2one('res.company','Company'),
}
_defaults = {
+ 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'sale.order', c),
'picking_policy': lambda *a: 'direct',
'date_order': lambda *a: time.strftime('%Y-%m-%d'),
'order_policy': lambda *a: 'manual',
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml
index 4faf2990fa9..cd95e9398bf 100644
--- a/addons/sale/security/sale_security.xml
+++ b/addons/sale/security/sale_security.xml
@@ -25,5 +25,17 @@
['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+ Sale Order Line multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
+
diff --git a/addons/stock/security/stock_security.xml b/addons/stock/security/stock_security.xml
index bdb7c4eed74..793e06c90cb 100644
--- a/addons/stock/security/stock_security.xml
+++ b/addons/stock/security/stock_security.xml
@@ -17,5 +17,50 @@
+
+ Warehouse multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
+
+
+ Location multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
+
+
+ Inventory Line multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
+
+
+ Inventory multi-company
+
+
+
+
+
+
+ ['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]
+
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 3055ac49d0c..7b7f5c0f389 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -130,7 +130,8 @@ class stock_location(osv.osv):
_columns = {
'name': fields.char('Location Name', size=64, required=True, translate=True),
'active': fields.boolean('Active'),
- 'usage': fields.selection([('supplier', 'Supplier Location'), ('view', 'View'), ('internal', 'Internal Location'), ('customer', 'Customer Location'), ('inventory', 'Inventory'), ('procurement', 'Requisition'), ('production', 'Production')], 'Location Type', required=True),
+ 'company_id': fields.many2one('res.company','Company',required=True),
+ 'usage': fields.selection([('supplier', 'Supplier Location'), ('view', 'View'), ('internal', 'Internal Location'), ('customer', 'Customer Location'), ('inventory', 'Inventory'), ('procurement', 'Procurement'), ('production', 'Production')], 'Location Type', required=True),
'allocation_method': fields.selection([('fifo', 'FIFO'), ('lifo', 'LIFO'), ('nearest', 'Nearest')], 'Allocation Method', required=True),
'complete_name': fields.function(_complete_name, method=True, type='char', size=100, string="Location Name"),
@@ -174,6 +175,7 @@ class stock_location(osv.osv):
'allocation_method': lambda *a: 'fifo',
'chained_location_type': lambda *a: 'none',
'chained_auto_packing': lambda *a: 'manual',
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.location', c)
'posx': lambda *a: 0,
'posy': lambda *a: 0,
'posz': lambda *a: 0,
@@ -1347,10 +1349,12 @@ class stock_inventory(osv.osv):
'inventory_line_id': fields.one2many('stock.inventory.line', 'inventory_id', 'Inventories', readonly=True, states={'draft': [('readonly', False)]}),
'move_ids': fields.many2many('stock.move', 'stock_inventory_move_rel', 'inventory_id', 'move_id', 'Created Moves'),
'state': fields.selection( (('draft', 'Draft'), ('done', 'Done'), ('cancel','Cancelled')), 'State', readonly=True),
+ 'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'state': lambda *a: 'draft',
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.inventory', c)
}
#
@@ -1417,7 +1421,8 @@ class stock_inventory_line(osv.osv):
'location_id': fields.many2one('stock.location', 'Location', required=True),
'product_id': fields.many2one('product.product', 'Product', required=True),
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
- 'product_qty': fields.float('Quantity')
+ 'product_qty': fields.float('Quantity'),
+ 'company_id': fields.related('inventory_id','company_id',type='many2one',object='res.company',string='Company')
}
def on_change_product_id(self, cr, uid, ids, location_id, product, uom=False):
@@ -1442,12 +1447,15 @@ class stock_warehouse(osv.osv):
_columns = {
'name': fields.char('Name', size=60, required=True),
# 'partner_id': fields.many2one('res.partner', 'Owner'),
+ 'company_id': fields.many2one('res.company','Company',required=True),
'partner_address_id': fields.many2one('res.partner.address', 'Owner Address'),
'lot_input_id': fields.many2one('stock.location', 'Location Input', required=True),
'lot_stock_id': fields.many2one('stock.location', 'Location Stock', required=True),
'lot_output_id': fields.many2one('stock.location', 'Location Output', required=True),
}
-
+ _defaults = {
+ 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.inventory', c)
+ }
stock_warehouse()
@@ -1500,4 +1508,4 @@ class stock_picking_move_wizard(osv.osv_memory):
stock_picking_move_wizard()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: