diff --git a/addons/account/account_analytic_line.py b/addons/account/account_analytic_line.py index 9126a610aea..5a8ee0d4e8c 100644 --- a/addons/account/account_analytic_line.py +++ b/addons/account/account_analytic_line.py @@ -46,7 +46,7 @@ class account_analytic_line(osv.osv): 'date': lambda *a: time.strftime('%Y-%m-%d'), 'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'account.analytic.line', context=c), } - _order = 'date' + _order = 'date desc' def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False): if context is None: @@ -73,13 +73,16 @@ class account_analytic_line(osv.osv): # Compute the cost based on the price type define into company # property_valuation_price_type property def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount,company_id, - unit=False, context=None): + unit=False, journal_id=False, context=None): if context==None: context={} uom_obj = self.pool.get('product.uom') product_obj = self.pool.get('product.product') company_obj=self.pool.get('res.company') + analytic_journal_obj=self.pool.get('account.analytic.journal') + product_price_type_obj = self.pool.get('product.price.type') if prod_id: + result = 0.0 prod = product_obj.browse(cr, uid, prod_id) a = prod.product_tmpl_id.property_account_expense.id if not a: @@ -91,16 +94,27 @@ class account_analytic_line(osv.osv): (prod.name, prod.id,)) if not company_id: company_id=company_obj._company_default_get(cr, uid, 'account.analytic.line', context) - + flag = False # Compute based on pricetype - pricetype=self.pool.get('product.price.type').browse(cr, uid, company_obj.browse(cr,uid,company_id).property_valuation_price_type.id) + pricetype=product_price_type_obj.browse(cr, uid, company_obj.browse(cr,uid,company_id).property_valuation_price_type.id) + if journal_id: + journal = analytic_journal_obj.browse(cr, uid, journal_id) + if journal.type == 'sale': + product_price_type_ids = product_price_type_obj.search(cr, uid, [('field','=','list_price')], context) + if product_price_type_ids: + pricetype = product_price_type_obj.browse(cr, uid, product_price_type_ids, context)[0] # Take the company currency as the reference one + if pricetype.field == 'list_price': + flag = True amount_unit = prod.price_get(pricetype.field, context)[prod.id] amount = amount_unit*unit_amount or 1.0 prec = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account') amount = amount_unit*unit_amount or 1.0 + result = round(amount, prec) + if not flag: + result *= -1 return {'value': { - 'amount': - round(amount, prec), + 'amount': result, 'general_account_id': a, }} return {} diff --git a/addons/account/account_menuitem.xml b/addons/account/account_menuitem.xml index 4860f937966..050a12580fc 100644 --- a/addons/account/account_menuitem.xml +++ b/addons/account/account_menuitem.xml @@ -19,11 +19,11 @@ - - + + - + + @@ -174,7 +175,7 @@ - + @@ -259,7 +260,7 @@ - + diff --git a/addons/account/project/wizard/account_analytic_chart_view.xml b/addons/account/project/wizard/account_analytic_chart_view.xml index 9cc7a32633b..ebfdb1a1194 100644 --- a/addons/account/project/wizard/account_analytic_chart_view.xml +++ b/addons/account/project/wizard/account_analytic_chart_view.xml @@ -38,8 +38,7 @@ parent="account.menu_finance_charts" action="action_account_analytic_chart" id="menu_action_analytic_account_tree2" - icon="STOCK_INDENT" - groups="base.group_extended"/> + icon="STOCK_INDENT"/> diff --git a/addons/account/report/account_analytic_entries_report_view.xml b/addons/account/report/account_analytic_entries_report_view.xml index bc40e6235d7..f7e543cb22c 100644 --- a/addons/account/report/account_analytic_entries_report_view.xml +++ b/addons/account/report/account_analytic_entries_report_view.xml @@ -107,7 +107,7 @@ A tool search lets you know statistics on your analytics records that match your needs. - + diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml index 43e3e32eefd..7344c40754e 100644 --- a/addons/account/security/account_security.xml +++ b/addons/account/security/account_security.xml @@ -13,7 +13,7 @@ Accounting / Manager - + Accounting / Accountant and Manager diff --git a/addons/account/security/analytic_security.xml b/addons/account/security/analytic_security.xml index b2543f5fa05..87584a4ef28 100644 --- a/addons/account/security/analytic_security.xml +++ b/addons/account/security/analytic_security.xml @@ -2,27 +2,51 @@ - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index ae2b6612a64..e732b483730 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -196,7 +196,7 @@ parent="account.menu_analytic_accounting" name="Multi Plans" id="menu_account_analytic_multi_plan_action" - /> + groups="analytic.group_analytic_accounting"/> [('company_id','=',user.company_id.id)] - + Analytic Accounting diff --git a/addons/analytic/security/ir.model.access.csv b/addons/analytic/security/ir.model.access.csv index 0343f29f43a..73dba08900c 100644 --- a/addons/analytic/security/ir.model.access.csv +++ b/addons/analytic/security/ir.model.access.csv @@ -1 +1,8 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_account_analytic_line_analytic_accounting","account.analytic.line","analytic.model_account_analytic_line","analytic.group_analytic_accounting",1,1,1,1 +"access_account_analytic_account_analytic_accounting","account.analytic.account","analytic.model_account_analytic_account","analytic.group_analytic_accounting",1,1,1,1 +"access_account_analytic_journal_analytic_accounting","account.analytic.journal","account.model_account_analytic_journal","analytic.group_analytic_accounting",1,1,1,1 +"access_account_account_analytic_accounting","account.account","account.model_account_account","analytic.group_analytic_accounting",1,0,0,0 +"access_product_template_analytic_accounting","product.template","product.model_product_template","analytic.group_analytic_accounting",1,0,0,0 +"access_product_product_analytic_accounting","product.product","product.model_product_product","analytic.group_analytic_accounting",1,0,0,0 +"access_product_category_analytic_accounting","product.category","product.model_product_category","analytic.group_analytic_accounting",1,0,0,0