[MERGE]: Merged with lp:openobject-addons

bzr revid: atp@tinyerp.com-20120925051541-np2wlz7jmfg127r0
This commit is contained in:
Atul Patel (OpenERP) 2012-09-25 10:45:41 +05:30
commit 679c4284d0
21 changed files with 187 additions and 105 deletions

View File

@ -601,7 +601,7 @@ class account_account(osv.osv):
if not default: if not default:
default = {} default = {}
default = default.copy() default = default.copy()
default['code'] = (account['code'] or '') + '(copy)' default.update(code=_("%s (copy)") % (account['code'] or ''))
if not local: if not local:
done_list = [] done_list = []
if account.id in done_list: if account.id in done_list:
@ -782,9 +782,10 @@ class account_journal(osv.osv):
if not default: if not default:
default = {} default = {}
default = default.copy() default = default.copy()
default['code'] = (journal['code'] or '') + '(copy)' default.update(
default['name'] = (journal['name'] or '') + '(copy)' code=_("%s (copy)") % (journal['code'] or ''),
default['sequence_id'] = False name=_("%s (copy)") % (journal['name'] or ''),
sequence_id=False)
return super(account_journal, self).copy(cr, uid, id, default, context=context) return super(account_journal, self).copy(cr, uid, id, default, context=context)
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):

View File

@ -736,7 +736,7 @@ class account_move_line(osv.osv):
WHERE debit > 0 AND credit > 0 WHERE debit > 0 AND credit > 0
ORDER BY last_reconciliation_date""") ORDER BY last_reconciliation_date""")
ids = cr.fetchall() ids = cr.fetchall()
ids = len(ids) and list(ids[0]) or [] ids = len(ids) and [x[0] for x in ids] or []
return self.pool.get('res.partner').name_get(cr, uid, ids, context=context) return self.pool.get('res.partner').name_get(cr, uid, ids, context=context)
def reconcile_partial(self, cr, uid, ids, type='auto', context=None, writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False): def reconcile_partial(self, cr, uid, ids, type='auto', context=None, writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False):

View File

@ -122,6 +122,14 @@
<field name="type">other</field> <field name="type">other</field>
<field name="user_type" ref="data_account_type_income"/> <field name="user_type" ref="data_account_type_income"/>
</record> </record>
<record id="usd_bnk" model="account.account">
<field name="code">X11007</field>
<field name="name">USD Bank Account - (test)</field>
<field ref="cas" name="parent_id"/>
<field name="type">liquidity</field>
<field name="user_type" ref="data_account_type_asset"/>
<field name="currency_id" ref="base.USD"/>
</record>
<record model="account.account" id="liabilities_view"> <record model="account.account" id="liabilities_view">
<field name="name">Liabilities - (test)</field> <field name="name">Liabilities - (test)</field>
@ -360,8 +368,8 @@
<field name="type">bank</field> <field name="type">bank</field>
<field name="view_id" ref="account_journal_bank_view"/> <field name="view_id" ref="account_journal_bank_view"/>
<field name="sequence_id" ref="sequence_bank_journal"/> <field name="sequence_id" ref="sequence_bank_journal"/>
<field model="account.account" name="default_debit_account_id" ref="cash"/> <field model="account.account" name="default_debit_account_id" ref="bnk"/>
<field model="account.account" name="default_credit_account_id" ref="cash"/> <field model="account.account" name="default_credit_account_id" ref="bnk"/>
<field name="analytic_journal_id" ref="sit"/> <field name="analytic_journal_id" ref="sit"/>
<field name="user_id" ref="base.user_root"/> <field name="user_id" ref="base.user_root"/>
</record> </record>
@ -412,6 +420,16 @@
<field eval="True" name="centralisation"/> <field eval="True" name="centralisation"/>
<field name="user_id" ref="base.user_root"/> <field name="user_id" ref="base.user_root"/>
</record> </record>
<record id="bank_journal_usd" model="account.journal">
<field name="name">USD Bank Journal - (test)</field>
<field name="code">TUBK</field>
<field name="type">bank</field>
<field name="view_id" ref="account_journal_bank_view"/>
<field model="account.account" name="usd_debit_account_id" ref="usd_bnk"/>
<field model="account.account" name="usd_credit_account_id" ref="usd_bnk"/>
<field name="currency_id" ref="base.USD"/>
</record>
<!-- <!--
Product income and expense accounts, default parameters Product income and expense accounts, default parameters
--> -->

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<openerp><data> <openerp>
<data>
<record id="group_account_invoice" model="res.groups"> <record id="group_account_invoice" model="res.groups">
<field name="name">Invoicing &amp; Payments</field> <field name="name">Invoicing &amp; Payments</field>
@ -7,11 +8,13 @@
<field name="users" eval="[(4, ref('base.user_root'))]"/> <field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/> <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record> </record>
<record id="group_account_user" model="res.groups"> <record id="group_account_user" model="res.groups">
<field name="name">Accountant</field> <field name="name">Accountant</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/> <field name="category_id" ref="base.module_category_accounting_and_finance"/>
<field name="implied_ids" eval="[(4, ref('group_account_invoice'))]"/> <field name="implied_ids" eval="[(4, ref('group_account_invoice'))]"/>
</record> </record>
<record id="group_account_manager" model="res.groups"> <record id="group_account_manager" model="res.groups">
<field name="name">Manager</field> <field name="name">Manager</field>
<field name="category_id" ref="base.module_category_accounting_and_finance"/> <field name="category_id" ref="base.module_category_accounting_and_finance"/>
@ -25,100 +28,107 @@
<record id="account_move_comp_rule" model="ir.rule"> <record id="account_move_comp_rule" model="ir.rule">
<field name="name">Account Entry</field> <field name="name">Account Entry</field>
<field ref="model_account_move" name="model_id"/> <field name="model_id" ref="model_account_move"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_move_line_comp_rule" model="ir.rule"> <record id="account_move_line_comp_rule" model="ir.rule">
<field name="name">Entry lines</field> <field name="name">Entry lines</field>
<field model="ir.model" name="model_id" ref="model_account_move_line"/> <field name="model_id" ref="model_account_move_line"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="journal_period_comp_rule" model="ir.rule"> <record id="journal_period_comp_rule" model="ir.rule">
<field name="name">Journal Period</field> <field name="name">Journal Period</field>
<field model="ir.model" name="model_id" ref="model_account_journal_period"/> <field name="model_id" ref="model_account_journal_period"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="journal_comp_rule" model="ir.rule"> <record id="journal_comp_rule" model="ir.rule">
<field name="name">Journal multi-company</field> <field name="name">Journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_journal"/> <field name="model_id" ref="model_account_journal"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="analytic_journal_comp_rule" model="ir.rule"> <record id="analytic_journal_comp_rule" model="ir.rule">
<field name="name">Analytic journal multi-company</field> <field name="name">Analytic journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_journal"/> <field name="model_id" ref="model_account_analytic_journal"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="period_comp_rule" model="ir.rule"> <record id="period_comp_rule" model="ir.rule">
<field name="name">Period multi-company</field> <field name="name">Period multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_period"/> <field name="model_id" ref="model_account_period"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="fiscal_year_comp_rule" model="ir.rule"> <record id="fiscal_year_comp_rule" model="ir.rule">
<field name="name">Fiscal year multi-company</field> <field name="name">Fiscal year multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_fiscalyear"/> <field name="model_id" ref="model_account_fiscalyear"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_comp_rule" model="ir.rule"> <record id="account_comp_rule" model="ir.rule">
<field name="name">Account multi-company</field> <field name="name">Account multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_account"/> <field name="model_id" ref="model_account_account"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="tax_comp_rule" model="ir.rule"> <record id="tax_comp_rule" model="ir.rule">
<field name="name">Tax multi-company</field> <field name="name">Tax multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax"/> <field name="model_id" ref="model_account_tax"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="tax_code_comp_rule" model="ir.rule"> <record id="tax_code_comp_rule" model="ir.rule">
<field name="name">Tax code multi-company</field> <field name="name">Tax code multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax_code"/> <field name="model_id" ref="model_account_tax_code"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="invoice_comp_rule" model="ir.rule"> <record id="invoice_comp_rule" model="ir.rule">
<field name="name">Invoice multi-company</field> <field name="name">Invoice multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_invoice"/> <field name="model_id" ref="model_account_invoice"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="invoice_analysis_comp_rule" model="ir.rule"> <record id="invoice_analysis_comp_rule" model="ir.rule">
<field name="name">Invoice Analysis multi-company</field> <field name="name">Invoice Analysis multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_invoice_report"/> <field name="model_id" ref="model_account_invoice_report"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="entry_analysis_comp_rule" model="ir.rule">
<field name="name">Entries Analysis multi-company</field>
<field name="model_id" ref="model_account_entries_report"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_fiscal_position_comp_rule" model="ir.rule"> <record id="account_fiscal_position_comp_rule" model="ir.rule">
<field name="name">Account fiscal Mapping company rule</field> <field name="name">Account fiscal Mapping company rule</field>
<field model="ir.model" name="model_id" ref="model_account_fiscal_position"/> <field name="model_id" ref="model_account_fiscal_position"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
<record id="account_model_comp_rule" model="ir.rule"> <record id="account_model_comp_rule" model="ir.rule">
<field name="name">Account model company rule</field> <field name="name">Account model company rule</field>
<field model="ir.model" name="model_id" ref="model_account_model"/> <field name="model_id" ref="model_account_model"/>
<field eval="True" name="global"/> <field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
@ -143,4 +153,5 @@
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record> </record>
</data></openerp> </data>
</openerp>

View File

@ -107,11 +107,12 @@ class coda_bank_account(osv.osv):
if not default: if not default:
default = {} default = {}
default = default.copy() default = default.copy()
default.update({'journal_id': None}) default.update(
default['description1'] = cba['description1'] or '' journal_id=None,
default['description2'] = cba['description2'] or '' description1=cba['description1'] or '',
default['name'] = (cba['name'] or '') + ' (copy)' description2=cba['description2'] or '',
default['state'] = cba['state'] name=_("%s (copy)") % (cba['name'] or ''),
state=cba['state'])
return super(coda_bank_account, self).copy(cr, uid, id, default, context) return super(coda_bank_account, self).copy(cr, uid, id, default, context)
def onchange_state(self, cr, uid, ids, state): def onchange_state(self, cr, uid, ids, state):

View File

@ -223,9 +223,10 @@ class account_analytic_account(osv.osv):
if not default: if not default:
default = {} default = {}
analytic = self.browse(cr, uid, id, context=context) analytic = self.browse(cr, uid, id, context=context)
default['code'] = False default.update(
default['line_ids'] = [] code=False,
default['name'] = analytic['name'] + ' (' + _('copy') + ')' line_ids=[],
name=_("%s (copy)") % (analytic['name']))
return super(account_analytic_account, self).copy(cr, uid, id, default, context=context) return super(account_analytic_account, self).copy(cr, uid, id, default, context=context)
def on_change_company(self, cr, uid, id, company_id): def on_change_company(self, cr, uid, id, company_id):

View File

@ -209,7 +209,7 @@ class document_file(osv.osv):
default = {} default = {}
if 'name' not in default: if 'name' not in default:
name = self.read(cr, uid, [id], ['name'])[0]['name'] name = self.read(cr, uid, [id], ['name'])[0]['name']
default.update({'name': name + " " + _("(copy)")}) default.update(name=_("%s (copy)") % (name))
return super(document_file, self).copy(cr, uid, id, default, context=context) return super(document_file, self).copy(cr, uid, id, default, context=context)
def write(self, cr, uid, ids, vals, context=None): def write(self, cr, uid, ids, vals, context=None):

View File

@ -231,7 +231,7 @@ class document_directory(osv.osv):
if not default: if not default:
default ={} default ={}
name = self.read(cr, uid, [id])[0]['name'] name = self.read(cr, uid, [id])[0]['name']
default.update({'name': name+ " (copy)"}) default.update(name=_("%s (copy)") % (name))
return super(document_directory,self).copy(cr, uid, id, default, context=context) return super(document_directory,self).copy(cr, uid, id, default, context=context)
def _check_duplication(self, cr, uid, vals, ids=[], op='create'): def _check_duplication(self, cr, uid, vals, ids=[], op='create'):

View File

@ -215,7 +215,10 @@ class email_template(osv.osv):
if default is None: if default is None:
default = {} default = {}
default = default.copy() default = default.copy()
default['name'] = template.name + _('(copy)') default.update(
name=_("%s (copy)") % (template.name),
ref_ir_act_window=False,
ref_ir_value=False)
return super(email_template, self).copy(cr, uid, id, default, context) return super(email_template, self).copy(cr, uid, id, default, context)
def build_expression(self, field_name, sub_field_name, null_value): def build_expression(self, field_name, sub_field_name, null_value):
@ -335,7 +338,7 @@ class email_template(osv.osv):
:param bool force_send: if True, the generated mail.message is :param bool force_send: if True, the generated mail.message is
immediately sent after being created, as if the scheduler immediately sent after being created, as if the scheduler
was executed for this message only. was executed for this message only.
:returns: id of the mail.message that was created :returns: id of the mail.message that was created
""" """
if context is None: context = {} if context is None: context = {}
mail_mail = self.pool.get('mail.mail') mail_mail = self.pool.get('mail.mail')

View File

@ -81,10 +81,9 @@ class hr_payroll_structure(osv.osv):
""" """
if not default: if not default:
default = {} default = {}
default.update({ default.update(
'code': self.browse(cr, uid, id, context=context).code + "(copy)", code=_("%s (copy)") % (self.browse(cr, uid, id, context=context).code),
'company_id': self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id company_id=self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.id)
})
return super(hr_payroll_structure, self).copy(cr, uid, id, default, context=context) return super(hr_payroll_structure, self).copy(cr, uid, id, default, context=context)
def get_all_rules(self, cr, uid, structure_ids, context=None): def get_all_rules(self, cr, uid, structure_ids, context=None):
@ -305,7 +304,7 @@ class hr_payslip(osv.osv):
return False return False
return True return True
_constraints = [(_check_dates, "Payslip 'Date From' must be before 'Date To'.", ['date_from', 'date_to'])] _constraints = [(_check_dates, "Payslip 'Date From' must be before 'Date To'.", ['date_from', 'date_to'])]
def copy(self, cr, uid, id, default=None, context=None): def copy(self, cr, uid, id, default=None, context=None):
if not default: if not default:
@ -851,7 +850,7 @@ result = rules.NET > categories.NET * 0.10''',
""" """
:param rule_id: id of rule to compute :param rule_id: id of rule to compute
:param localdict: dictionary containing the environement in which to compute the rule :param localdict: dictionary containing the environement in which to compute the rule
:return: returns a tuple build as the base/amount computed, the quantity and the rate :return: returns a tuple build as the base/amount computed, the quantity and the rate
:rtype: (float, float, float) :rtype: (float, float, float)
""" """
rule = self.browse(cr, uid, rule_id, context=context) rule = self.browse(cr, uid, rule_id, context=context)

View File

@ -19,6 +19,7 @@
<field name="user_id" ref="base.user_root"/> <field name="user_id" ref="base.user_root"/>
<field name="update_posted" eval="True" /> <field name="update_posted" eval="True" />
<field name="entry_posted" eval="True" /> <field name="entry_posted" eval="True" />
<field name="currency" model="res.currency" ref="base.CHF" />
</record> </record>
<record id="bank_euro_journal" model="account.journal"> <record id="bank_euro_journal" model="account.journal">

View File

@ -356,7 +356,7 @@ class mrp_bom(osv.osv):
if default is None: if default is None:
default = {} default = {}
bom_data = self.read(cr, uid, id, [], context=context) bom_data = self.read(cr, uid, id, [], context=context)
default.update({'name': bom_data['name'] + ' ' + _('Copy'), 'bom_id':False}) default.update(name=_("%s (copy)") % (bom_data['name']), bom_id=False)
return super(mrp_bom, self).copy_data(cr, uid, id, default, context=context) return super(mrp_bom, self).copy_data(cr, uid, id, default, context=context)
def create(self, cr, uid, vals, context=None): def create(self, cr, uid, vals, context=None):

View File

@ -12,7 +12,7 @@
<record id="portal_stock_picking_user_rule" model="ir.rule"> <record id="portal_stock_picking_user_rule" model="ir.rule">
<field name="name">Portal Personal Delivery Orders</field> <field name="name">Portal Personal Delivery Orders</field>
<field ref="stock.model_stock_picking" name="model_id"/> <field name="model_id" ref="stock.model_stock_picking"/>
<field name="domain_force">[('partner_id','child_of',[user.partner_id.id])]</field> <field name="domain_force">[('partner_id','child_of',[user.partner_id.id])]</field>
<field name="groups" eval="[(4, ref('portal.group_portal'))]"/> <field name="groups" eval="[(4, ref('portal.group_portal'))]"/>
</record> </record>

View File

@ -727,7 +727,7 @@ class product_product(osv.osv):
context_wo_lang.pop('lang', None) context_wo_lang.pop('lang', None)
product = self.read(cr, uid, id, ['name'], context=context_wo_lang) product = self.read(cr, uid, id, ['name'], context=context_wo_lang)
default = default.copy() default = default.copy()
default['name'] = product['name'] + ' (' + _('copy') + ')' default.update(name=_("%s (copy)") % (product['name']))
if context.get('variant',False): if context.get('variant',False):
fields = ['product_tmpl_id', 'active', 'variants', 'default_code', fields = ['product_tmpl_id', 'active', 'variants', 'default_code',
@ -897,4 +897,43 @@ class pricelist_partnerinfo(osv.osv):
} }
_order = 'min_quantity asc' _order = 'min_quantity asc'
pricelist_partnerinfo() pricelist_partnerinfo()
class res_currency(osv.osv):
_inherit = 'res.currency'
def _check_main_currency_rounding(self, cr, uid, ids, context=None):
cr.execute('SELECT digits FROM decimal_precision WHERE name like %s',('Account',))
digits = cr.fetchone()
if digits and len(digits):
digits = digits[0]
main_currency = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id
for currency_id in ids:
if currency_id == main_currency.id:
if main_currency.rounding < 10 ** -digits:
return False
return True
_constraints = [
(_check_main_currency_rounding, 'Error! You cannot define a rounding factor for the company\'s main currency that is smaller than the decimal precision of \'Account\'.', ['rounding']),
]
class decimal_precision(osv.osv):
_inherit = 'decimal.precision'
def _check_main_currency_rounding(self, cr, uid, ids, context=None):
cr.execute('SELECT id, digits FROM decimal_precision WHERE name like %s',('Account',))
res = cr.fetchone()
if res and len(res):
account_precision_id, digits = res
main_currency = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id
for decimal_precision in ids:
if decimal_precision == account_precision_id:
if main_currency.rounding < 10 ** -digits:
return False
return True
_constraints = [
(_check_main_currency_rounding, 'Error! You cannot define the decimal precision of \'Account\' as greater than the rounding factor of the company\'s main currency', ['digits']),
]
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -323,7 +323,7 @@ class project(osv.osv):
default.pop('alias_id', None) default.pop('alias_id', None)
proj = self.browse(cr, uid, id, context=context) proj = self.browse(cr, uid, id, context=context)
if not default.get('name', False): if not default.get('name', False):
default['name'] = proj.name + _(' (copy)') default.update(name=_("%s (copy)") % (proj.name))
res = super(project, self).copy(cr, uid, id, default, context) res = super(project, self).copy(cr, uid, id, default, context)
self.map_tasks(cr,uid,id,res,context) self.map_tasks(cr,uid,id,res,context)
return res return res
@ -344,7 +344,7 @@ class project(osv.osv):
new_date_end = (datetime(*time.strptime(new_date_start,'%Y-%m-%d')[:3])+(end_date-start_date)).strftime('%Y-%m-%d') new_date_end = (datetime(*time.strptime(new_date_start,'%Y-%m-%d')[:3])+(end_date-start_date)).strftime('%Y-%m-%d')
context.update({'copy':True}) context.update({'copy':True})
new_id = self.copy(cr, uid, proj.id, default = { new_id = self.copy(cr, uid, proj.id, default = {
'name': proj.name +_(' (copy)'), 'name':_("%s (copy)") % (proj.name),
'state':'open', 'state':'open',
'date_start':new_date_start, 'date_start':new_date_start,
'date':new_date_end, 'date':new_date_end,
@ -694,7 +694,7 @@ class task(base_stage, osv.osv):
if not default.get('name', False): if not default.get('name', False):
default['name'] = self.browse(cr, uid, id, context=context).name or '' default['name'] = self.browse(cr, uid, id, context=context).name or ''
if not context.get('copy',False): if not context.get('copy',False):
new_name = _("%s (copy)")%default.get('name','') new_name = _("%s (copy)") % (default.get('name', ''))
default.update({'name':new_name}) default.update({'name':new_name})
return super(task, self).copy_data(cr, uid, id, default, context) return super(task, self).copy_data(cr, uid, id, default, context)

View File

@ -355,7 +355,7 @@ class project_issue(base_stage, osv.osv):
if not default: if not default:
default = {} default = {}
default = default.copy() default = default.copy()
default['name'] = issue['name'] + _(' (copy)') default.update(name=_('%s (copy)') % (issue['name']))
return super(project_issue, self).copy(cr, uid, id, default=default, return super(project_issue, self).copy(cr, uid, id, default=default,
context=context) context=context)
@ -539,7 +539,7 @@ class project(osv.osv):
def _get_alias_models(self, cr, uid, context=None): def _get_alias_models(self, cr, uid, context=None):
return [('project.task', "Tasks"), ("project.issue", "Issues")] return [('project.task', "Tasks"), ("project.issue", "Issues")]
def _issue_count(self, cr, uid, ids, field_name, arg, context=None): def _issue_count(self, cr, uid, ids, field_name, arg, context=None):
res = dict.fromkeys(ids, 0) res = dict.fromkeys(ids, 0)
issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)]) issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)])
@ -562,7 +562,7 @@ class project(osv.osv):
_constraints = [ _constraints = [
(_check_escalation, 'Error! You cannot assign escalation to the same project!', ['project_escalation_id']) (_check_escalation, 'Error! You cannot assign escalation to the same project!', ['project_escalation_id'])
] ]
project() project()
class account_analytic_account(osv.osv): class account_analytic_account(osv.osv):

View File

@ -138,7 +138,7 @@ class project_phase(osv.osv):
if default is None: if default is None:
default = {} default = {}
if not default.get('name', False): if not default.get('name', False):
default['name'] = self.browse(cr, uid, id, context=context).name + _(' (copy)') default.update(name=_('%s (copy)') % (self.browse(cr, uid, id, context=context).name))
return super(project_phase, self).copy(cr, uid, id, default, context) return super(project_phase, self).copy(cr, uid, id, default, context)
def set_draft(self, cr, uid, ids, *args): def set_draft(self, cr, uid, ids, *args):
@ -227,7 +227,7 @@ class project(osv.osv):
'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"), 'phase_ids': fields.one2many('project.phase', 'project_id', "Project Phases"),
'phase_count': fields.function(_phase_count, type='integer', string="Open Phases"), 'phase_count': fields.function(_phase_count, type='integer', string="Open Phases"),
} }
def schedule_phases(self, cr, uid, ids, context=None): def schedule_phases(self, cr, uid, ids, context=None):
context = context or {} context = context or {}
if type(ids) in (long, int,): if type(ids) in (long, int,):
@ -250,7 +250,7 @@ class project(osv.osv):
# Maybe it's better to update than unlink/create if it already exists ? # Maybe it's better to update than unlink/create if it already exists ?
p = getattr(project_gantt, 'Phase_%d' % (phase.id,)) p = getattr(project_gantt, 'Phase_%d' % (phase.id,))
self.pool.get('project.user.allocation').unlink(cr, uid, self.pool.get('project.user.allocation').unlink(cr, uid,
[x.id for x in phase.user_ids], [x.id for x in phase.user_ids],
context=context context=context
) )

View File

@ -45,24 +45,24 @@ class resource_calendar(osv.osv):
def working_hours_on_day(self, cr, uid, resource_calendar_id, day, context=None): def working_hours_on_day(self, cr, uid, resource_calendar_id, day, context=None):
"""Calculates the Working Total Hours based on Resource Calendar and """Calculates the Working Total Hours based on Resource Calendar and
given working day (datetime object). given working day (datetime object).
@param resource_calendar_id: resource.calendar browse record @param resource_calendar_id: resource.calendar browse record
@param day: datetime object @param day: datetime object
@return: returns the working hours (as float) men should work on the given day if is in the attendance_ids of the resource_calendar_id (i.e if that day is a working day), returns 0.0 otherwise @return: returns the working hours (as float) men should work on the given day if is in the attendance_ids of the resource_calendar_id (i.e if that day is a working day), returns 0.0 otherwise
""" """
res = 0.0 res = 0.0
for working_day in resource_calendar_id.attendance_ids: for working_day in resource_calendar_id.attendance_ids:
if (int(working_day.dayofweek) + 1) == day.isoweekday(): if (int(working_day.dayofweek) + 1) == day.isoweekday():
res += working_day.hour_to - working_day.hour_from res += working_day.hour_to - working_day.hour_from
return res return res
def _get_leaves(self, cr, uid, id, resource): def _get_leaves(self, cr, uid, id, resource):
"""Private Method to Calculate resource Leaves days """Private Method to Calculate resource Leaves days
@param id: resource calendar id @param id: resource calendar id
@param resource: resource id for which leaves will ew calculated @param resource: resource id for which leaves will ew calculated
@return : returns the list of dates, where resource on leave in @return : returns the list of dates, where resource on leave in
resource.calendar.leaves object (e.g.['%Y-%m-%d', '%Y-%m-%d']) resource.calendar.leaves object (e.g.['%Y-%m-%d', '%Y-%m-%d'])
""" """
@ -85,9 +85,9 @@ class resource_calendar(osv.osv):
""" """
Calculates the working Schedule from supplied from date to till hours Calculates the working Schedule from supplied from date to till hours
will be satisfied based or resource calendar id. If resource is also will be satisfied based or resource calendar id. If resource is also
given then it will consider the resource leave also and than will given then it will consider the resource leave also and than will
calculates resource working schedule calculates resource working schedule
@param dt_from: datetime object, start of working scheduled @param dt_from: datetime object, start of working scheduled
@param hours: float, total number working hours needed scheduled from @param hours: float, total number working hours needed scheduled from
start date start date
@ -187,29 +187,29 @@ class resource_calendar(osv.osv):
def interval_get(self, cr, uid, id, dt_from, hours, resource=False, byday=True): def interval_get(self, cr, uid, id, dt_from, hours, resource=False, byday=True):
"""Calculates Resource Working Internal Timing Based on Resource Calendar. """Calculates Resource Working Internal Timing Based on Resource Calendar.
@param dt_from: start resource schedule calculation. @param dt_from: start resource schedule calculation.
@param hours : total number of working hours to be scheduled. @param hours : total number of working hours to be scheduled.
@param resource: optional resource id, If supplied it will take care of @param resource: optional resource id, If supplied it will take care of
resource leave while scheduling. resource leave while scheduling.
@param byday: boolean flag bit enforce day wise scheduling @param byday: boolean flag bit enforce day wise scheduling
@return : list of scheduled working timing based on resource calendar. @return : list of scheduled working timing based on resource calendar.
""" """
res = self.interval_get_multi(cr, uid, [(dt_from.strftime('%Y-%m-%d %H:%M:%S'), hours, id)], resource, byday)[(dt_from.strftime('%Y-%m-%d %H:%M:%S'), hours, id)] res = self.interval_get_multi(cr, uid, [(dt_from.strftime('%Y-%m-%d %H:%M:%S'), hours, id)], resource, byday)[(dt_from.strftime('%Y-%m-%d %H:%M:%S'), hours, id)]
return res return res
def interval_hours_get(self, cr, uid, id, dt_from, dt_to, resource=False): def interval_hours_get(self, cr, uid, id, dt_from, dt_to, resource=False):
""" Calculates the Total Working hours based on given start_date to """ Calculates the Total Working hours based on given start_date to
end_date, If resource id is supplied that it will consider the source end_date, If resource id is supplied that it will consider the source
leaves also in calculating the hours. leaves also in calculating the hours.
@param dt_from : date start to calculate hours @param dt_from : date start to calculate hours
@param dt_end : date end to calculate hours @param dt_end : date end to calculate hours
@param resource: optional resource id, If given resource leave will be @param resource: optional resource id, If given resource leave will be
considered. considered.
@return : Total number of working hours based dt_from and dt_end and @return : Total number of working hours based dt_from and dt_end and
resource if supplied. resource if supplied.
""" """
if not id: if not id:
@ -257,7 +257,7 @@ resource_calendar()
class resource_calendar_attendance(osv.osv): class resource_calendar_attendance(osv.osv):
_name = "resource.calendar.attendance" _name = "resource.calendar.attendance"
_description = "Work Detail" _description = "Work Detail"
_columns = { _columns = {
'name' : fields.char("Name", size=64, required=True), 'name' : fields.char("Name", size=64, required=True),
'dayofweek': fields.selection([('0','Monday'),('1','Tuesday'),('2','Wednesday'),('3','Thursday'),('4','Friday'),('5','Saturday'),('6','Sunday')], 'Day of Week', required=True, select=True), 'dayofweek': fields.selection([('0','Monday'),('1','Tuesday'),('2','Wednesday'),('3','Thursday'),('4','Friday'),('5','Saturday'),('6','Sunday')], 'Day of Week', required=True, select=True),
@ -266,9 +266,9 @@ class resource_calendar_attendance(osv.osv):
'hour_to' : fields.float("Work to", required=True), 'hour_to' : fields.float("Work to", required=True),
'calendar_id' : fields.many2one("resource.calendar", "Resource's Calendar", required=True), 'calendar_id' : fields.many2one("resource.calendar", "Resource's Calendar", required=True),
} }
_order = 'dayofweek, hour_from' _order = 'dayofweek, hour_from'
_defaults = { _defaults = {
'dayofweek' : '0' 'dayofweek' : '0'
} }
@ -302,12 +302,12 @@ class resource_resource(osv.osv):
'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.resource', context=context) 'company_id': lambda self, cr, uid, context: self.pool.get('res.company')._company_default_get(cr, uid, 'resource.resource', context=context)
} }
def copy(self, cr, uid, id, default=None, context=None): def copy(self, cr, uid, id, default=None, context=None):
if default is None: if default is None:
default = {} default = {}
if not default.get('name', False): if not default.get('name', False):
default['name'] = self.browse(cr, uid, id, context=context).name + _(' (copy)') default.update(name=_('%s (copy)') % (self.browse(cr, uid, id, context=context).name))
return super(resource_resource, self).copy(cr, uid, id, default, context) return super(resource_resource, self).copy(cr, uid, id, default, context)
def generate_resources(self, cr, uid, user_ids, calendar_id, context=None): def generate_resources(self, cr, uid, user_ids, calendar_id, context=None):
@ -368,7 +368,7 @@ class resource_resource(osv.osv):
""" """
if not calendar_id: if not calendar_id:
# Calendar is not specified: working days: 24/7 # Calendar is not specified: working days: 24/7
return [('fri', '8:0-12:0','13:0-17:0'), ('thu', '8:0-12:0','13:0-17:0'), ('wed', '8:0-12:0','13:0-17:0'), return [('fri', '8:0-12:0','13:0-17:0'), ('thu', '8:0-12:0','13:0-17:0'), ('wed', '8:0-12:0','13:0-17:0'),
('mon', '8:0-12:0','13:0-17:0'), ('tue', '8:0-12:0','13:0-17:0')] ('mon', '8:0-12:0','13:0-17:0'), ('tue', '8:0-12:0','13:0-17:0')]
resource_attendance_pool = self.pool.get('resource.calendar.attendance') resource_attendance_pool = self.pool.get('resource.calendar.attendance')
time_range = "8:00-8:00" time_range = "8:00-8:00"

View File

@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n" "Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n" "Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 01:37+0100\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n"
"PO-Revision-Date: 2012-05-10 17:48+0000\n" "PO-Revision-Date: 2012-09-24 13:55+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n" "Last-Translator: Erwin <Unknown>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-08-28 05:56+0000\n" "X-Launchpad-Export-Date: 2012-09-25 04:44+0000\n"
"X-Generator: Launchpad (build 15864)\n" "X-Generator: Launchpad (build 16019)\n"
#. module: stock #. module: stock
#: field:product.product,track_outgoing:0 #: field:product.product,track_outgoing:0
@ -1179,7 +1179,7 @@ msgstr "Auteur"
#: code:addons/stock/stock.py:1332 #: code:addons/stock/stock.py:1332
#, python-format #, python-format
msgid "Delivery Order" msgid "Delivery Order"
msgstr "Leveringsbon" msgstr "Uitgaande levering"
#. module: stock #. module: stock
#: selection:stock.location,chained_auto_packing:0 #: selection:stock.location,chained_auto_packing:0
@ -1791,7 +1791,7 @@ msgstr "Voorraadwaarde rekening (inkomend)"
#. module: stock #. module: stock
#: model:stock.location,name:stock.stock_location_14 #: model:stock.location,name:stock.stock_location_14
msgid "Shelf 2" msgid "Shelf 2"
msgstr "Schap 2" msgstr "Plank 2"
#. module: stock #. module: stock
#: field:stock.report.tracklots,tracking_id:0 #: field:stock.report.tracklots,tracking_id:0

View File

@ -2300,7 +2300,11 @@ class stock_move(osv.osv):
or move.location_id.company_id != move.location_dest_id.company_id): or move.location_id.company_id != move.location_dest_id.company_id):
journal_id, acc_src, acc_dest, acc_valuation = self._get_accounting_data_for_valuation(cr, uid, move, src_company_ctx) journal_id, acc_src, acc_dest, acc_valuation = self._get_accounting_data_for_valuation(cr, uid, move, src_company_ctx)
reference_amount, reference_currency_id = self._get_reference_accounting_values_for_valuation(cr, uid, move, src_company_ctx) reference_amount, reference_currency_id = self._get_reference_accounting_values_for_valuation(cr, uid, move, src_company_ctx)
account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_valuation, acc_dest, reference_amount, reference_currency_id, context))] #returning goods to supplier
if move.location_dest_id.usage == 'supplier':
account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_valuation, acc_src, reference_amount, reference_currency_id, context))]
else:
account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_valuation, acc_dest, reference_amount, reference_currency_id, context))]
# Incoming moves (or cross-company input part) # Incoming moves (or cross-company input part)
if move.location_dest_id.company_id \ if move.location_dest_id.company_id \
@ -2308,7 +2312,11 @@ class stock_move(osv.osv):
or move.location_id.company_id != move.location_dest_id.company_id): or move.location_id.company_id != move.location_dest_id.company_id):
journal_id, acc_src, acc_dest, acc_valuation = self._get_accounting_data_for_valuation(cr, uid, move, dest_company_ctx) journal_id, acc_src, acc_dest, acc_valuation = self._get_accounting_data_for_valuation(cr, uid, move, dest_company_ctx)
reference_amount, reference_currency_id = self._get_reference_accounting_values_for_valuation(cr, uid, move, src_company_ctx) reference_amount, reference_currency_id = self._get_reference_accounting_values_for_valuation(cr, uid, move, src_company_ctx)
account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_src, acc_valuation, reference_amount, reference_currency_id, context))] #goods return from customer
if move.location_id.usage == 'customer':
account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_dest, acc_valuation, reference_amount, reference_currency_id, context))]
else:
account_moves += [(journal_id, self._create_account_move_line(cr, uid, move, acc_src, acc_valuation, reference_amount, reference_currency_id, context))]
move_obj = self.pool.get('account.move') move_obj = self.pool.get('account.move')
for j_id, move_lines in account_moves: for j_id, move_lines in account_moves:

View File

@ -94,7 +94,7 @@ class survey(osv.osv):
def copy(self, cr, uid, ids, default=None, context=None): def copy(self, cr, uid, ids, default=None, context=None):
vals = {} vals = {}
current_rec = self.read(cr, uid, ids, context=context) current_rec = self.read(cr, uid, ids, context=context)
title = current_rec.get('title') + ' (Copy)' title = _("%s (copy)") % (current_rec.get('title'))
vals.update({'title':title}) vals.update({'title':title})
vals.update({'history':[],'tot_start_survey':0,'tot_comp_survey':0}) vals.update({'history':[],'tot_start_survey':0,'tot_comp_survey':0})
return super(survey, self).copy(cr, uid, ids, vals, context=context) return super(survey, self).copy(cr, uid, ids, vals, context=context)
@ -143,7 +143,7 @@ class survey(osv.osv):
'nodestroy':True, 'nodestroy':True,
} }
return report return report
def fill_survey(self, cr, uid, ids, context=None): def fill_survey(self, cr, uid, ids, context=None):
sur_obj = self.read(cr, uid, ids,['title'], context=context) sur_obj = self.read(cr, uid, ids,['title'], context=context)
for sur in sur_obj: for sur in sur_obj:
@ -232,7 +232,7 @@ class survey_page(osv.osv):
def copy(self, cr, uid, ids, default=None, context=None): def copy(self, cr, uid, ids, default=None, context=None):
vals = {} vals = {}
current_rec = self.read(cr, uid, ids, context=context) current_rec = self.read(cr, uid, ids, context=context)
title = current_rec.get('title') + ' (Copy)' title = _("%s (copy)") % (current_rec.get('title'))
vals.update({'title':title}) vals.update({'title':title})
return super(survey_page, self).copy(cr, uid, ids, vals, context=context) return super(survey_page, self).copy(cr, uid, ids, vals, context=context)