[MERGE] Merged Multicompany branch

bzr revid: jvo@tinyerp.com-20091130062207-7yxysaq03yypk2be
This commit is contained in:
GPA(OpenERP),VRA(OpenERP) 2009-11-30 11:52:07 +05:30 committed by Jay (Open ERP)
parent 2a53bbee47
commit d549927afc
19 changed files with 306 additions and 21 deletions

View File

@ -63,6 +63,7 @@
<field domain="[('type','&lt;&gt;','view'), ('company_id', '=', parent.company_id)]" name="account_analytic_id" groups="base.group_user"/>
<newline/>
<field name="price_subtotal"/>
<field name="company_id" groups="base.group_multi_company"/>
<field colspan="4" name="invoice_line_tax_id" context="{'type':parent.type}" domain="[('parent_id','=',False),('company_id', '=', parent.company_id)]"/>
</page>
<page string="Notes">
@ -288,7 +289,7 @@
</group>
</page>
<page string="Other Info">
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line)" widget="selection"/>
<field name="company_id" on_change="onchange_company_id(company_id,partner_id,type,invoice_line)" widget="selection" groups="base.group_multi_company"/>
<field name="fiscal_position" groups="base.group_extended,base.group_user" widget="selection"/>
<newline/>
<field name="date_due" select="1"/>

View File

@ -314,9 +314,7 @@ class account_invoice(osv.osv):
'state': lambda *a: 'draft',
'journal_id': _get_journal,
'currency_id': _get_currency,
'company_id': lambda self, cr, uid, context: \
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.invoice', c),
'reference_type': lambda *a: 'none',
'check_total': lambda *a: 0.0,
}
@ -1079,7 +1077,7 @@ class account_invoice_line(osv.osv):
'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]),
'note': fields.text('Notes'),
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account'),
'company_id': fields.related('invoice_id','company_id',type='many2one',object='res.company',string='Company')
'company_id': fields.related('invoice_id','company_id',type='many2one',relation='res.company',string='Company')
}
_defaults = {
'quantity': lambda *a: 1,

View File

@ -46,6 +46,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.move'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="account_move_comp_rule_group"/>
</record>
@ -59,6 +60,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.move.line'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="account_move_line_comp_rule_group"/>
</record>
<record id="journal_period_comp_rule_group" model="ir.rule.group">
@ -70,6 +72,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.journal.period'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|','|',('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="journal_period_comp_rule_group"/>
</record>
@ -82,6 +85,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.journal'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|','|',('company_id','=',False),('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="journal_comp_rule_group"/>
</record>
<record id="analytic_journal_comp_rule_group" model="ir.rule.group">
@ -93,6 +97,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.analytic.journal'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="analytic_journal_comp_rule_group"/>
</record>
<record id="analytic_journal_comp_rule_group1" model="ir.rule.group">
@ -105,6 +110,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.analytic.journal'),('name','=','company_id')]"/>
<field name="operator">=</field>
<field name="operand">False</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="analytic_journal_comp_rule_group1"/>
</record>
@ -117,6 +123,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.period'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="period_comp_rule_group"/>
</record>
@ -130,6 +137,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.fiscalyear'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="fiscal_year_comp_rule_group"/>
</record>
@ -142,6 +150,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.account'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="account_comp_rule_group"/>
</record>
@ -154,6 +163,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.tax'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="tax_comp_rule_group"/>
</record>
@ -166,6 +176,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.tax.code'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="tax_code_comp_rule_group"/>
</record>
@ -178,6 +189,7 @@
<field model="ir.model.fields" name="field_id" search="[('model','=','account.invoice'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="rule_group" ref="invoice_comp_rule_group"/>
</record>

View File

@ -49,7 +49,7 @@ class account_budget_post(osv.osv):
}
_defaults = {
'sequence': lambda *a: 1,
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.budget.post', c)
}
_order = "sequence, name"

View File

@ -133,9 +133,7 @@ class account_voucher(osv.osv):
'type': _get_type,
'reference_type': lambda *a: 'none',
'journal_id':_get_journal,
'company_id': lambda self, cr, uid, context: \
self.pool.get('res.users').browse(cr, uid, uid,
context=context).company_id.id,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.voucher', c),
'currency_id': _get_currency,
}

41
addons/debian/po/sl.po Normal file
View File

@ -0,0 +1,41 @@
# Slovenian translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
"PO-Revision-Date: 2009-11-26 12:58+0000\n"
"Last-Translator: Simon Vidmar <Unknown>\n"
"Language-Team: Slovenian <sl@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2009-11-27 04:51+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. Type: string
#. Description
#: ../openerp-server.templates:1001
msgid "Dedicated system account for the Open ERP server:"
msgstr "Posebni sistemski račun za strežnik OpenERP:"
#. Type: string
#. Description
#: ../openerp-server.templates:1001
msgid ""
"The Open ERP server must use a dedicated account for its operation so that "
"the system's security is not compromised by running it with superuser "
"privileges."
msgstr ""
"Strežnik OpenERP mora uporabljati posebni račun zato, da varnost strežnika "
"ni ogrožena pri delovanju s posebnimi sistemskimi pravicami."
#. Type: string
#. Description
#: ../openerp-server.templates:1001
msgid "Please choose that account's username."
msgstr "Prosim, izberite uporabniško ime tega računa."

View File

@ -63,12 +63,14 @@ class mrp_workcenter(osv.osv):
help="Complete this only if you want automatic analytic accounting entries on production orders."),
'costs_journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal'),
'costs_general_account_id': fields.many2one('account.account', 'General Account', domain=[('type','<>','view')]),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
'active': lambda *a: 1,
'type': lambda *a: 'machine',
'time_efficiency': lambda *a: 1.0,
'capacity_per_cycle': lambda *a: 1.0,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.workcenter', c)
}
mrp_workcenter()
@ -199,7 +201,8 @@ class mrp_bom(osv.osv):
'revision_ids': fields.one2many('mrp.bom.revision', 'bom_id', 'BoM Revisions'),
'revision_type': fields.selection([('numeric','numeric indices'),('alpha','alphabetical indices')], 'Index type'),
'child_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many')
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
'active': lambda *a: 1,
@ -207,6 +210,7 @@ class mrp_bom(osv.osv):
'product_qty': lambda *a: 1.0,
'product_rounding': lambda *a: 1.0,
'type': lambda *a: 'normal',
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.bom', c)
}
_order = "sequence"
_sql_constraints = [
@ -442,6 +446,7 @@ class mrp_production(osv.osv):
'sale_name': fields.function(_sale_name_calc, method=True, type='char', string='Sale Name'),
'sale_ref': fields.function(_sale_ref_calc, method=True, type='char', string='Sale Ref'),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
'priority': lambda *a: '1',
@ -449,6 +454,7 @@ class mrp_production(osv.osv):
'date_planned': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'product_qty': lambda *a: 1.0,
'name': lambda x,y,z,c: x.pool.get('ir.sequence').get(y,z,'mrp.production') or '/',
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.production', c),
}
_order = 'date_planned asc, priority desc';
def unlink(self, cr, uid, ids, context=None):
@ -825,6 +831,7 @@ class mrp_procurement(osv.osv):
help='When a procurement is created the state is set to \'Draft\'.\n If the procurement is confirmed, the state is set to \'Confirmed\'.\
\nAfter confirming the state is set to \'Running\'.\n If any exception arises in the order then the state is set to \'Exception\'.\n Once the exception is removed the state becomes \'Ready\'.\n It is in \'Waiting\'. state when the procurement is waiting for another one to finish.'),
'note' : fields.text('Note'),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
'state': lambda *a: 'draft',
@ -832,6 +839,7 @@ class mrp_procurement(osv.osv):
'date_planned': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'close_move': lambda *a: 0,
'procure_method': lambda *a: 'make_to_order',
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'mrp.procurement', c)
}
def unlink(self, cr, uid, ids, context=None):
@ -1191,7 +1199,8 @@ class stock_warehouse_orderpoint(osv.osv):
"a requisition to bring the virtual stock to the Max Quantity."),
'qty_multiple': fields.integer('Qty Multiple', required=True,
help="The requisition quantity will by rounded up to this multiple."),
'procurement_id': fields.many2one('mrp.procurement', 'Purchase Order')
'procurement_id': fields.many2one('mrp.procurement', 'Purchase Order'),
'company_id': fields.many2one('res.company','Company',required=True),
}
_defaults = {
'active': lambda *a: 1,
@ -1199,6 +1208,7 @@ class stock_warehouse_orderpoint(osv.osv):
'qty_multiple': lambda *a: 1,
'name': lambda x,y,z,c: x.pool.get('ir.sequence').get(y,z,'mrp.warehouse.orderpoint') or '',
'product_uom': lambda sel, cr, uid, context: context.get('product_uom', False),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.warehouse.orderpoint', c)
}
def onchange_warehouse_id(self, cr, uid, ids, warehouse_id, context={}):
if warehouse_id:

View File

@ -109,6 +109,7 @@
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="active" select="2"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">
<page string="Workcenter">
@ -235,6 +236,7 @@
<field name="product_id" on_change="onchange_product_id(product_id, name)" select="1"/>
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<newline/>
<field name="product_uom"/>
@ -457,10 +459,9 @@
<field name="product_qty"/>
<field name="product_uom"/>
<button type="action" name="%(mrp.wizard_change_production_qty)d" string="Change Qty" states="ready,confirmed,in_production" icon="gtk-ok"/>
<newline/>
<label string="" colspan="2"/>
<field name="product_uos_qty" groups="product.group_uos"/>
<field name="product_uos" groups="product.group_uos"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">
@ -697,6 +698,7 @@
<separator colspan="2" string="References"/>
<field name="name" select="1" string="Requisition Reason"/>
<field name="origin" select="2"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Planification"/>
@ -843,6 +845,7 @@
<field name="active" select="1"/>
<field name="warehouse_id" on_change="onchange_warehouse_id(warehouse_id)" select="1" widget="selection"/>
<field name="location_id" select="2"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
<field name="product_id" on_change="onchange_product_id(product_id)" select="1"/>
<field name="product_uom"/>
<field name="product_min_qty"/>

View File

@ -15,6 +15,71 @@
<field eval="[(6,0,[ref('group_mrp_manager')])]" name="groups_id"/>
</record>
<!-- Multi -->
<record model="ir.rule.group" id="mrp_procurement_rule_group">
<field name="name">mrp_procurement multi-company</field>
<field name="model_id" search="[('model','=','mrp.procurement')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="mrp_procurement_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','mrp.procurement'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="rule_group" ref="mrp_procurement_rule_group"/>
</record>
<record model="ir.rule.group" id="stock_warehouse_orderpoint_rule_group">
<field name="name">stock_warehouse.orderpoint multi-company</field>
<field name="model_id" search="[('model','=','stock.warehouse.orderpoint')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="stock_warehouse_orderpoint_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','stock.warehouse.orderpoint'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="rule_group" ref="stock_warehouse_orderpoint_rule_group"/>
</record>
<record model="ir.rule.group" id="mrp_production_rule_group">
<field name="name">mrp_production multi-company</field>
<field name="model_id" search="[('model','=','mrp.production')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="mrp_production_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','mrp.production'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="rule_group" ref="mrp_production_rule_group"/>
</record>
<record model="ir.rule.group" id="mrp_workcenter_rule_group">
<field name="name">mrp_workcenter multi-company</field>
<field name="model_id" search="[('model','=','mrp.workcenter')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="mrp_workcenter_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','mrp.workcenter'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="rule_group" ref="mrp_workcenter_rule_group"/>
</record>
<record model="ir.rule.group" id="mrp_bom_rule_group">
<field name="name">mrp_bom multi-company</field>
<field name="model_id" search="[('model','=','mrp.bom')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="mrp_bom_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','mrp.bom'),('name','=','company_id')]"/>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="rule_group" ref="mrp_bom_rule_group"/>
</record>
</data>
</openerp>

View File

@ -441,6 +441,7 @@ class project_work(osv.osv):
'task_id': fields.many2one('project.task', 'Task', ondelete='cascade', required=True),
'hours': fields.float('Time Spent'),
'user_id': fields.many2one('res.users', 'Done by', required=True),
'company_id': fields.related('task_id','company_id',type='many2one',relation='res.company',string='Company')
}
_defaults = {
'user_id': lambda obj,cr,uid,context: uid,

View File

@ -193,6 +193,7 @@
<field name="hours" select="1" widget="float_time"/>
<field name="date" select="1"/>
<field name="user_id" select="1"/>
<field name="company_id" groups="base.group_multi_company"/>
</form>
</field>
</record>

View File

@ -449,7 +449,7 @@ class purchase_order_line(osv.osv):
'notes': fields.text('Notes'),
'order_id': fields.many2one('purchase.order', 'Order Ref', select=True, required=True, ondelete='cascade'),
'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',),
'company_id': fields.related('order_id','company_id',type='many2one',object='res.company',string='Company')
'company_id': fields.related('order_id','company_id',type='many2one',relation='res.company',string='Company')
}
_defaults = {
'product_qty': lambda *a: 1.0

View File

@ -228,7 +228,7 @@
<field colspan="4" name="name"/>
<field name="date_planned"/>
<field name="price_unit"/>
<label colspan="2"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="price_subtotal" readonly="1"/>
</page>
<page string="Notes">

View File

@ -768,7 +768,7 @@ class sale_order_line(osv.osv):
'state': fields.selection([('draft', 'Draft'), ('confirmed', 'Confirmed'), ('done', 'Done'), ('cancel', 'Cancelled'), ('exception', 'Exception')], 'State', required=True, readonly=True),
'order_partner_id': fields.related('order_id', 'partner_id', type='many2one', relation='res.partner', string='Customer'),
'salesman_id':fields.related('order_id','user_id',type='many2one',relation='res.users',string='Salesman'),
'company_id': fields.related('order_id','company_id',type='many2one',object='res.company',string='Company')
'company_id': fields.related('order_id','company_id',type='many2one',relation='res.company',string='Company')
}
_order = 'sequence, id'
_defaults = {

View File

@ -131,6 +131,7 @@
on_change="product_id_change(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, 'lang' in context and context['lang'], False, parent.date_order, product_packaging, parent.fiscal_position)"
domain="[('product_id','=',product_id)]"
groups="base.group_extended"/>
<field name="company_id" groups="base.group_multi_company"/>
<separator colspan="4" string="Manual Description"/>
<field colspan="4" name="name" select="2"/>
<field name="price_unit" select="2"/>
@ -425,7 +426,7 @@
<field name="product_uom"/>
<field name="product_id" readonly="1" select="1"/>
<field name="invoiced" select="2"/>
<field name="company_id" groups="base.group_multi_company"/>
<separator colspan="4" string="Manual Designation"/>
<field colspan="4" name="name" select="2"/>
<field name="price_unit" select="2"/>

View File

@ -17,18 +17,33 @@
<field name="groups_id" eval="[(6,0,[ref('group_stock_manager')])]"/>
</record>
<record model="ir.rule.group" id="stock_warehouse_comp_rule_group">
<!-- multi -->
<record model="ir.rule.group" id="stock_picking_rule_group">
<field name="name">stock_picking multi-company</field>
<field name="model_id" search="[('model','=','stock.picking')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="stock_picking_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','stock.picking'),('name','=','company_id')]"/>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="rule_group" ref="stock_picking_rule_group"/>
</record>
<record model="ir.rule.group" id="stock_warehouse_comp_rule_group">
<field name="name">Warehouse multi-company</field>
<field name="model_id" ref="model_stock_warehouse"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="stock_warehouse_comp_rule">
<field name="field_id" search="[('model','=','stock.warehouse'),('name','=','company_id')]" model="ir.model.fields"/>
<field name="rule_group" ref="stock_warehouse_comp_rule_group"/>
<field name="domain_force">['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule.group" id="stock_location_comp_rule_group">
<field name="name">Location multi-company</field>
<field name="model_id" ref="model_stock_location"/>
@ -40,6 +55,18 @@
<field name="domain_force">['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule.group" id="stock_move_rule_group">
<field name="name">stock_move multi-company</field>
<field name="model_id" search="[('model','=','stock.move')]" model="ir.model"/>
<field name="global" eval="True"/>
</record>
<record model="ir.rule" id="stock_move_rule">
<field model="ir.model.fields" name="field_id" search="[('model','=','stock.move'),('name','=','company_id')]"/>
<field name="domain_force">['|',('company_id','child_of',[user.company_id.id]),('company_id','=',False)]</field>
<field name="operator">child_of</field>
<field name="operand">user.company_id.id</field>
<field name="rule_group" ref="stock_move_rule_group"/>
</record>
<record model="ir.rule.group" id="stock_inventory_line_comp_rule_group">
<field name="name">Inventory Line multi-company</field>
@ -62,5 +89,6 @@
<field name="rule_group" ref="stock_inventory_comp_rule_group"/>
<field name="domain_force">['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
</openerp>

View File

@ -168,6 +168,7 @@ class stock_location(osv.osv):
'parent_right': fields.integer('Right Parent', select=1),
'stock_real_value': fields.function(_product_value, method=True, type='float', string='Real Stock Value', multi="stock"),
'stock_virtual_value': fields.function(_product_value, method=True, type='float', string='Virtual Stock Value', multi="stock"),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_defaults = {
'active': lambda *a: 1,
@ -179,7 +180,8 @@ class stock_location(osv.osv):
'posx': lambda *a: 0,
'posy': lambda *a: 0,
'posz': lambda *a: 0,
'icon': lambda *a: False
'icon': lambda *a: False,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.location', c)
}
def chained_location_get(self, cr, uid, location, partner=None, product=None, context={}):
@ -474,6 +476,7 @@ class stock_picking(osv.osv):
("2binvoiced", "To Be Invoiced"),
("none", "Not from Picking")], "Invoice Status",
select=True, required=True, readonly=True, states={'draft': [('readonly', False)]}),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_defaults = {
'name': lambda self, cr, uid, context: '/',
@ -483,6 +486,8 @@ class stock_picking(osv.osv):
'type': lambda *a: 'in',
'invoice_state': lambda *a: 'none',
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock_picking', c)
}
def copy(self, cr, uid, id, default=None, context={}):
@ -995,6 +1000,7 @@ class stock_move(osv.osv):
\nThe state is \'Waiting\' if the move is waiting for another one.'),
'price_unit': fields.float('Unit Price',
digits=(16, int(config['price_accuracy']))),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_constraints = [
(_check_tracking,
@ -1034,6 +1040,7 @@ class stock_move(osv.osv):
'product_qty': lambda *a: 1.0,
'date_planned': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.move', c)
}
def _auto_init(self, cursor, context):
@ -1376,6 +1383,7 @@ class stock_inventory(osv.osv):
'date_done': fields.datetime('Date done'),
'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'),
'company_id': fields.many2one('res.company','Company',required=True),
'state': fields.selection( (('draft', 'Draft'), ('done', 'Done'), ('cancel','Cancelled')), 'State', readonly=True),
'company_id': fields.many2one('res.company','Company',required=True),
}
@ -1482,7 +1490,7 @@ class stock_warehouse(osv.osv):
'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)
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.inventory', c),
}
stock_warehouse()

View File

@ -184,5 +184,115 @@
<function eval="[[]]" model="stock.inventory" name="search"/>
</function>
<!-- Multi Company -->
<record id="res_partner_tinyshop0" model="res.partner">
<field eval="0" name="customer"/>
<field eval="0" name="supplier"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Tiny Shop 1&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_partner_address_fabien0" model="res.partner.address">
<field eval="&quot;&quot;&quot;Fabien&quot;&quot;&quot;" name="name"/>
<field name="partner_id" ref="res_partner_tinyshop0"/>
<field eval="1" name="active"/>
</record>
<record id="res_company_shop0" model="res.company">
<field eval="5.0" name="security_lead"/>
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop0"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_partner_tinyshop1" model="res.partner">
<field eval="1" name="customer"/>
<field eval="0" name="supplier"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Tiny Shop 2&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_partner_address_eric0" model="res.partner.address">
<field eval="&quot;&quot;&quot;Eric&quot;&quot;&quot;" name="name"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1" name="active"/>
</record>
<record id="res_company_tinyshop0" model="res.company">
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 2&quot;&quot;&quot;" name="name"/>
</record>
<record id="stock_location_shop0" model="stock.location">
<field model="res.partner.address" name="address_id" search="[('name','=','Fabien')]"/>
<field eval="&quot;&quot;&quot;fifo&quot;&quot;&quot;" name="allocation_method"/>
<field name="location_id" ref="stock.stock_location_company"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;internal&quot;&quot;&quot;" name="usage"/>
<field eval="&quot;&quot;&quot;none&quot;&quot;&quot;" name="chained_location_type"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;manual&quot;&quot;&quot;" name="chained_auto_packing"/>
</record>
<record id="stock_location_shop1" model="stock.location">
<field model="res.partner.address" name="address_id" search="[('name','=','Eric')]"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field name="location_id" ref="stock.stock_location_company"/>
<field eval="&quot;&quot;&quot;internal&quot;&quot;&quot;" name="usage"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Shop 2&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_users_shopuser0" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_user'),ref('stock.group_stock_user')])]" name="groups_id"/>
<field model="res.partner.address" name="address_id" search="[('name','=','Fabien')]"/>
<field eval="[(6,0,[])]" name="roles_id"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;shop1&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;en_US&quot;&quot;&quot;" name="context_lang"/>
<field eval="&quot;&quot;&quot;Shop 1 User&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;shop1&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
<record id="res_users_shopuser1" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_user'),ref('stock.group_stock_user')])]" name="groups_id"/>
<field model="res.partner.address" name="address_id" search="[('name','=','Eric')]"/>
<field eval="&quot;&quot;&quot;shop2&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;Shop 2 User&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="&quot;&quot;&quot;shop2&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
<record id="stock_location_intermediatelocation0" model="stock.location">
<field name="address_id" ref="base.main_address"/>
<field name="location_id" ref="stock.stock_location_company"/>
<field eval="&quot;&quot;&quot;procurement&quot;&quot;&quot;" name="usage"/>
<field eval="&quot;&quot;&quot;Internal Shippings&quot;&quot;&quot;" name="name"/>
</record>
<record id="stock_warehouse_shop0" model="stock.warehouse">
<field name="lot_output_id" ref="stock.stock_location_output"/>
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
<field name="lot_stock_id" ref="stock_location_shop0"/>
<field name="partner_address_id" ref="res_partner_address_fabien0"/>
<field name="company_id" ref="res_company_shop0"/>
<field name="lot_input_id" ref="stock_location_shop0"/>
</record>
<record id="stock_warehouse_shop1" model="stock.warehouse">
<field name="lot_output_id" ref="stock.stock_location_output"/>
<field eval="&quot;&quot;&quot;Shop 2&quot;&quot;&quot;" name="name"/>
<field name="lot_stock_id" ref="stock_location_shop1"/>
<field name="partner_address_id" ref="res_partner_address_eric0"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field name="lot_input_id" ref="stock_location_shop1"/>
</record>
</data>
</openerp>

View File

@ -57,6 +57,7 @@
<form string="Lot Inventory">
<field name="name" select="1"/>
<field name="date" select="1"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
<notebook colspan="4">
<page string="General Informations">
<field colspan="4" name="inventory_line_id" nolabel="1" widget="one2many_list"/>
@ -343,6 +344,7 @@
<field name="name" select="1"/>
<field name="active" select="2"/>
<field name="usage" select="1"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
<field name="account_id" select="1"/>
<field name="location_id"/>
<field name="address_id" context="{'contact_display':'partner'}"/>
@ -424,6 +426,7 @@
<field name="lot_input_id"/>
<field name="lot_stock_id"/>
<field name="lot_output_id"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
<newline/>
<field name="partner_address_id" context="{'contact_display':'partner'}"/>
</form>
@ -529,6 +532,7 @@
<field name="name" readonly="1"/>
<field name="date"/>
<field name="min_date" select="2"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">
<page string="General Information">
@ -628,6 +632,7 @@
<field name="min_date" select="1"/>
<field name="backorder_id" select="2" readonly="1"/>
<field name="origin" select="2"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">
<page string="General Information">
@ -840,6 +845,7 @@
<field name="invoice_state"/>
<field name="backorder_id" select="2" readonly="1"/>
<field name="origin" select="2" readonly="1"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">
<page string="General Information">
@ -1025,6 +1031,7 @@
<field name="name" readonly="1" select="1"/>
<field name="min_date" select="2" readonly="1"/>
<field name="backorder_id" select="2" readonly="1"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
</group>
<notebook colspan="4">
<page string="General Information">
@ -1276,6 +1283,7 @@
<field name="product_uos" select="2"/>
<field colspan="4" name="name" select="2"/>
<field name="date"/>
<field name="company_id" select="1" groups="base.group_multi_company"/>
<field name="date_planned"/>
<field name="priority"/>
<field name="address_id" select="2" context="{'contact_display':'partner'}"/>