[ADD] added access rights for Analytic Accounting group including menus.

[REM] Extended group for analytic related menus.
[FIX] Analytic Entries date Order.
[FIX] Assigning sale price with proper sign in product_id onchange in analytic line.

bzr revid: vra@tinyerp.com-20100907115728-n09gkjycdr32ej77
This commit is contained in:
vra
2010-09-07 17:27:28 +05:30
parent 59f2e4dcbd
commit 039ef25d0d
10 changed files with 68 additions and 23 deletions
+19 -5
View File
@@ -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 {}
+3 -3
View File
@@ -19,11 +19,11 @@
<menuitem id="menu_finance_legal_statement" name="Legal Reports" parent="menu_finance_reporting"/>
<menuitem id="menu_finance_management_belgian_reports" name="Belgian Reports" parent="menu_finance_reporting"/>
<menuitem id="menu_finance_configuration" name="Configuration" parent="menu_finance" sequence="13" groups="base.group_system"/>
<menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration"/>
<menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration" groups="base.group_extended"/>
<menuitem id="menu_finance_accounting" name="Financial Accounting" parent="menu_finance_configuration" groups="base.group_system"/>
<menuitem id="menu_analytic_accounting" name="Analytic Accounting" parent="menu_finance_configuration" groups="base.group_system"/>
<menuitem id="menu_analytic" parent="menu_analytic_accounting" name="Accounts" groups="base.group_extended"/>
<menuitem id="menu_low_level" name="Low Level" parent="menu_finance_accounting" groups="base.group_extended"/>
<menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="30"/>
<menuitem id="menu_configuration_misc" name="Miscellaneous" parent="menu_finance_configuration" sequence="30" groups="base.group_system"/>
<menuitem id="base.menu_action_currency_form" parent="menu_configuration_misc" sequence="20"/>
<menuitem id="menu_finance_generic_reporting" name="Generic Reporting" parent="menu_finance_reporting" sequence="100" groups="base.group_system,group_account_manager"/>
<menuitem id="menu_finance_entries" name="Accounting" parent="menu_finance" sequence="4"
+3 -2
View File
@@ -25,6 +25,7 @@
<field name="arch" type="xml">
<search string="Analytic Account">
<group col="8" colspan="4">
<filter icon="terp-go-today" string="Overpassed Account" domain="[('date','&lt;',time.strftime('%%Y-%%m-%%d'))]" help="Overpassed Account"/>
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="Pending Accounts"/>
<filter icon="terp-camera_test" string="Current" domain="[('state','=','open')]" help="Current Accounts"/>
<separator orientation="vertical"/>
@@ -174,7 +175,7 @@
<field name="name"/>
<field name="journal_id"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" sum="Total quantity"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)"/>
<field domain="[('type','=','normal')]" name="account_id" groups="base.group_extended"/>
<field invisible="True" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="amount" sum="Total amount"/>
@@ -259,7 +260,7 @@
<field name="date" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="journal_id"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)"/>
<field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
<field invisible="True" name="general_account_id"/>
<field name="amount"/>
@@ -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"/>
</data>
</openerp>
@@ -107,7 +107,7 @@
<field name="help">A tool search lets you know statistics on your analytics records that match your needs.</field>
</record>
<menuitem action="action_analytic_entries_report" id="menu_action_analytic_entries_report" parent="account.menu_finance_statistic_report_statement" sequence="4" groups="base.group_extended"/>
<menuitem action="action_analytic_entries_report" id="menu_action_analytic_entries_report" parent="account.menu_finance_statistic_report_statement" sequence="4"/>
</data>
</openerp>
+1 -1
View File
@@ -13,7 +13,7 @@
<field name="name">Accounting / Manager</field>
</record>
<record model="res.groups" context="{'noadmin':True}" id="group_accounting_accountant">
<record model="res.groups" id="group_accounting_accountant">
<field name="name">Accounting / Accountant and Manager</field>
</record>
+31 -7
View File
@@ -2,27 +2,51 @@
<openerp><data>
<record id="menu_action_analytic_account_tree2" model="ir.ui.menu">
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="account_analytic_def_account" model="ir.ui.menu">
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="next_id_40" model="ir.ui.menu">
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_action_analytic_entries_report" model="ir.ui.menu">
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_analytic_accounting" model="ir.ui.menu">
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="account_analytic_journal_entries" model="ir.ui.menu">
<field eval="[(6,0,[ref('analytic.group_analytic_accounting')])]" name="groups_id"/>
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="account_def_analytic_journal" model="ir.ui.menu">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_finance_configuration" model="ir.ui.menu">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_finance_reporting" model="ir.ui.menu">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_finance_generic_reporting" model="ir.ui.menu">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_finance_charts" model="ir.ui.menu">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record id="menu_finance_entries" model="ir.ui.menu">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
</data></openerp>
@@ -196,7 +196,7 @@
parent="account.menu_analytic_accounting"
name="Multi Plans"
id="menu_account_analytic_multi_plan_action"
/>
groups="analytic.group_analytic_accounting"/>
<menuitem
parent="menu_account_analytic_multi_plan_action"
id="menu_account_analytic_plan_action"
@@ -8,7 +8,7 @@
<field name="domain_force">[('company_id','=',user.company_id.id)]</field>
</record>
<record id="group_analytic_accounting" model="res.groups">
<record id="group_analytic_accounting" context="{'noadmin':True}" model="res.groups">
<field name="name">Analytic Accounting</field>
</record>
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_account_analytic_line_analytic_accounting account.analytic.line analytic.model_account_analytic_line analytic.group_analytic_accounting 1 1 1 1
3 access_account_analytic_account_analytic_accounting account.analytic.account analytic.model_account_analytic_account analytic.group_analytic_accounting 1 1 1 1
4 access_account_analytic_journal_analytic_accounting account.analytic.journal account.model_account_analytic_journal analytic.group_analytic_accounting 1 1 1 1
5 access_account_account_analytic_accounting account.account account.model_account_account analytic.group_analytic_accounting 1 0 0 0
6 access_product_template_analytic_accounting product.template product.model_product_template analytic.group_analytic_accounting 1 0 0 0
7 access_product_product_analytic_accounting product.product product.model_product_product analytic.group_analytic_accounting 1 0 0 0
8 access_product_category_analytic_accounting product.category product.model_product_category analytic.group_analytic_accounting 1 0 0 0