summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@tinyerp.com>2010-10-05 00:56:29 +0200
committerFabien Pinckaers <fp@tinyerp.com>2010-10-05 00:56:29 +0200
commit94fd910f3c02243b09e42a7df9c19ab5f2f9a479 (patch)
tree6af5d30e8d22547ae69608f0c1ff046691c9dae7
parented47d40ae4e2f2a4cc5fbd9f8e6cfc46bacc163a (diff)
fix
bzr revid: fp@tinyerp.com-20101004225629-vidur45sz7dmg9nn
-rw-r--r--addons/account/project/project.py4
-rw-r--r--addons/account/project/project_view.xml45
-rw-r--r--addons/analytic_user_function/analytic_user_function.py4
-rw-r--r--addons/hr_timesheet/hr_timesheet.py2
-rw-r--r--addons/hr_timesheet/hr_timesheet_view.xml16
-rw-r--r--addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py2
-rw-r--r--addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml58
-rw-r--r--addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml12
-rw-r--r--addons/project/project.py1
-rw-r--r--addons/project_issue_sheet/project_issue_sheet_view.xml4
-rw-r--r--addons/project_timesheet/project_timesheet.py4
-rw-r--r--addons/project_timesheet/project_timesheet_view.xml5
12 files changed, 69 insertions, 88 deletions
diff --git a/addons/account/project/project.py b/addons/account/project/project.py
index 431d486592b..f082672310e 100644
--- a/addons/account/project/project.py
+++ b/addons/account/project/project.py
@@ -28,8 +28,8 @@ from osv import osv
class account_analytic_journal(osv.osv):
_name = 'account.analytic.journal'
_columns = {
- 'name' : fields.char('Journal name', size=64, required=True),
- 'code' : fields.char('Journal code', size=8),
+ 'name' : fields.char('Journal Name', size=64, required=True),
+ 'code' : fields.char('Journal Code', size=8),
'active' : fields.boolean('Active', help="If the active field is set to true, it will allow you to hide the analytic journal without removing it."),
'type': fields.selection([('sale','Sale'), ('purchase','Purchase'), ('cash','Cash'), ('general','General'), ('situation','Situation')], 'Type', size=32, required=True, help="Gives the type of the analytic journal. When it needs for a document (eg: an invoice) to create analytic entries, OpenERP will look for a matching journal of the same type."),
'line_ids' : fields.one2many('account.analytic.line', 'journal_id', 'Lines'),
diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml
index 0d335118d3b..fd52619fb10 100644
--- a/addons/account/project/project_view.xml
+++ b/addons/account/project/project_view.xml
@@ -172,19 +172,16 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="top" string="Analytic Entries">
- <field name="date" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)"/>
+ <field name="date"/>
+ <field name="ref" invisible="context.get('to_invoice', False)"/>
<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, 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"/>
- <field name="general_account_id"/>
- <field name="ref"/>
- <field name="currency_id" />
- <field name="amount_currency" />
- <field name="company_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" groups="base.group_multi_company"/>
+ <field name="journal_id" invisible="context.get('to_invoice', False)"/>
+ <field name="amount" sum="Total" invisible="context.get('to_invoice', False)"/>
+ <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id, journal_id)" invisible="not context.get('to_invoice', False)"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" sum="Total Quantity" invisible="not context.get('to_invoice', False)"/>
+ <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, company_id, product_uom_id)" invisible="not context.get('to_invoice', False)"/>
+ <field domain="[('type','=','normal')]" name="account_id"/>
+ <field name="general_account_id" invisible="context.get('to_invoice', False)"/>
</tree>
</field>
</record>
@@ -195,22 +192,24 @@
<field name="arch" type="xml">
<search string="Search Analytic Lines">
<group col='6' colspan='4'>
- <filter string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-sale" help="Analytic Journal Items related to a sale journal."/>
- <filter string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
- <separator orientation="vertical"/>
- <filter icon="terp-go-today" string="Overdue Accounts" domain="[('account_id.date','&lt;',time.strftime('%%Y-%%m-%%d'))]" help="Analytic Journal Items related to accounts having a past deadline."/>
+ <filter name="sales" string="Sales" domain="[('journal_id.type','=','sale')]" icon="terp-sale" help="Analytic Journal Items related to a sale journal."/>
+ <filter name="purchases" string="Purchases" domain="[('journal_id.type','=','purchase')]" icon="terp-purchase" help="Analytic Journal Items related to a purchase journal."/>
+ <filter name="others" string="Others" domain="[('journal_id.type','in',('cash','general','situation')]" icon="terp-folder-orange"/>
<separator orientation="vertical"/>
- <field name="date" select="1"/>
- <field name="name" select="1"/>
- <field name="account_id" select="1"/>
- <field name="user_id" widget="selection"/>
+ <field name="date"/>
+ <field name="name"/>
+ <field name="account_id"/>
+ <field name="user_id">
+ <filter string="My Entries" domain="[('user_id','=',uid)]" icon="terp-personal"/>
+ </field>
</group>
<newline/>
<group string="Group By..." expand="0">
- <filter string="Analytic Account" context="{'group_by':'account_id'}" groups="base.group_extended" icon="terp-folder-blue"/>
- <filter string="Analytic Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
+ <filter string="Account" context="{'group_by':'account_id'}" groups="base.group_extended" icon="terp-folder-blue"/>
+ <filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-orange"/>
+ <filter string="User" context="{'group_by':'user_id'}" icon="terp-personal"/>
<separator orientation="vertical"/>
- <filter string="General Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
+ <filter string="Fin.Account" context="{'group_by':'general_account_id'}" icon="terp-folder-green"/>
<separator orientation="vertical"/>
<filter string="Product" context="{'group_by':'product_id'}" icon="terp-accessories-archiver"/>
</group>
diff --git a/addons/analytic_user_function/analytic_user_function.py b/addons/analytic_user_function/analytic_user_function.py
index 0bb9afc3386..21fe0a7da29 100644
--- a/addons/analytic_user_function/analytic_user_function.py
+++ b/addons/analytic_user_function/analytic_user_function.py
@@ -99,7 +99,7 @@ class hr_analytic_timesheet(osv.osv):
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
amount_unit = self.on_change_unit_amount(cr, uid, ids,
- r.product_id.id, unit_amount, r.product_id.uom_id.id)['value']['amount']
+ r.product_id.id, unit_amount, False, r.product_id.uom_id.id)['value']['amount']
amount = unit_amount * amount_unit
res ['value']['amount']= - round(amount, 2)
@@ -134,7 +134,7 @@ class hr_analytic_timesheet(osv.osv):
(r.product_id.name, r.product_id.id,))
# Compute based on pricetype
amount_unit = self.on_change_unit_amount(cr, uid, ids,
- r.product_id.id, unit_amount, r.product_id.uom_id.id)['value']['amount']
+ r.product_id.id, unit_amount, False, r.product_id.uom_id.id)['value']['amount']
amount = unit_amount * amount_unit
res ['value']['amount']= - round(amount, 2)
diff --git a/addons/hr_timesheet/hr_timesheet.py b/addons/hr_timesheet/hr_timesheet.py
index ee4abdb35c4..7c4645199c2 100644
--- a/addons/hr_timesheet/hr_timesheet.py
+++ b/addons/hr_timesheet/hr_timesheet.py
@@ -57,7 +57,7 @@ class hr_analytic_timesheet(osv.osv):
return super(hr_analytic_timesheet, self).unlink(cr, uid, ids, context=context)
- def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount, unit, context=None):
+ def on_change_unit_amount(self, cr, uid, id, prod_id, unit_amount, company_id, unit, context=None):
if context is None:
context = {}
res = {'value':{}}
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index 4165f71d73f..e80bfbb7593 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -12,13 +12,13 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="bottom" string="Timesheet Lines">
- <field name="user_id" on_change="on_change_user_id(user_id)" required="1"/>
<field name="date" on_change="on_change_date(date)"/>
- <field domain="[('type','=','normal'),('state', '&lt;&gt;', 'close')]" name="account_id"/>
+ <field name="user_id" on_change="on_change_user_id(user_id)" required="1"/>
<field name="name"/>
- <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" required="1" domain="[('type','=','service')]"/>
- <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" sum="Total time"/>
- <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
+ <field domain="[('type','=','normal')]" name="account_id"/>
+ <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)" required="1" domain="[('type','=','service')]"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)" sum="Total time"/>
+ <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
<field name="amount" sum="Total cost"/>
<field name="general_account_id"/>
<field name="journal_id"/>
@@ -40,9 +40,9 @@
<page string="Information">
<group colspan="2" col="2">
<separator string="Product" colspan="2"/>
- <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" required="1" domain="[('type','=','service')]"/>
- <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
- <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
+ <field name="product_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)" required="1" domain="[('type','=','service')]"/>
+ <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
</group>
<group colspan="2" col="2">
<separator string="Accounting" colspan="2"/>
diff --git a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
index b308aa69cc8..8d0ed702c0a 100644
--- a/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
+++ b/addons/hr_timesheet/wizard/hr_timesheet_sign_in_out.py
@@ -81,7 +81,7 @@ class hr_so_project(osv.osv_memory):
if not res['product_uom_id']:
raise osv.except_osv(_('UserError'), _('No cost unit defined for this employee !'))
- up = timesheet_obj.on_change_unit_amount(cr, uid, False, res['product_id'], hour, res['product_uom_id'])['value']
+ up = timesheet_obj.on_change_unit_amount(cr, uid, False, res['product_id'], hour,False, res['product_uom_id'])['value']
res['name'] = data['info']
res['account_id'] = data['account_id'].id
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
index c7435127466..4beda0999d0 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
@@ -21,17 +21,6 @@
</field>
</record>
- <!--record id="view_account_analytic_account_form" model="ir.ui.view">
- <field name="name">account.analytic.account.form</field>
- <field name="model">account.analytic.account</field>
- <field name="inherit_id" ref="account.view_account_analytic_account_form"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="company_currency_id" position="replace">
- <field name="currency_id"/>
- </field>
- </field>
- </record-->
<record id="hr_timesheet_line_form" model="ir.ui.view">
<field name="name">hr.analytic.timesheet.form</field>
<field name="model">hr.analytic.timesheet</field>
@@ -83,13 +72,26 @@
</record>
<!-- Inherits for account analytic lines -->
+ <record id="view_account_analytic_line_search_inherit" model="ir.ui.view">
+ <field name="name">account.analytic.line.search.to_invoice</field>
+ <field name="model">account.analytic.line</field>
+ <field name="type">search</field>
+ <field name="inherit_id" ref="account.view_account_analytic_line_filter"/>
+ <field name="arch" type="xml">
+ <filter name="others" position="after">
+ <separator orientation="vertical"/>
+ <filter name="to_invoice" string="To Invoice" context="{'to_invoice': 1}" domain="[('invoice_id','=',False),('to_invoice','&lt;&gt;',False)]" icon="terp-sale"/>
+ </filter>
+ </field>
+ </record>
+
<record id="view_account_analytic_line_tree_inherit" model="ir.ui.view">
<field name="name">account.analytic.line.tree.to_invoice</field>
<field name="model">account.analytic.line</field>
<field name="type">tree</field>
<field name="inherit_id" ref="account.view_account_analytic_line_tree"/>
<field name="arch" type="xml">
- <field name="journal_id" position="after">
+ <field name="account_id" position="after">
<field name="to_invoice"/>
</field>
</field>
@@ -103,18 +105,19 @@
<field name="arch" type="xml">
<field name="product_uom_id" position="after">
<field name="to_invoice"/>
+ <field name="invoice_id"/>
</field>
</field>
</record>
<!-- Menus -->
<record id="action_hr_analytic_timesheet_open_tree" model="ir.actions.act_window">
- <field name="name">Entries to invoice</field>
+ <field name="name">Costs to Invoice</field>
<field name="res_model">account.analytic.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
- <field name="domain">[('to_invoice','&lt;&gt;',False)]</field>
- <field name="context">{"search_default_user_id":uid}</field>
+ <field name="domain">[]</field>
+ <field name="context">{'search_default_to_invoice': 1}</field>
<field name="help">OpenERP automatically group the entries to be invoiced so you can keep an eye on them on real time in one glance.</field>
</record>
<menuitem
@@ -123,31 +126,6 @@
parent="account.menu_finance_periodical_processing_billing"
sequence="1"/>
- <record id="action_hr_analytic_timesheet_tree_invoiced" model="ir.actions.act_window">
- <field name="name">Uninvoiced Entries</field>
- <field name="res_model">account.analytic.line</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('invoice_id','=',False),('to_invoice','!=',False)]</field>
- <field name="filter" eval="True"/>
- </record>
-
- <record id="action_open_analytic_accounts" model="ir.actions.act_window">
- <field name="name">Open Analytic Accounts</field>
- <field name="res_model">account.analytic.account</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('state','&lt;&gt;','close'),('type','&lt;&gt;','view')]</field>
- </record>
-
- <record id="action_open_invoice_analytic_accounts" model="ir.actions.act_window">
- <field name="name">Unclosed Invoiceable Accounts</field>
- <field name="res_model">account.analytic.account</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('state','&lt;&gt;','close'),('type','&lt;&gt;','view'),('pricelist_id','&lt;&gt;',False)]</field>
- </record>
-
<record id="view_hr_timesheet_invoice_factor_form" model="ir.ui.view">
<field name="name">hr_timesheet_invoice.factor.form</field>
<field name="model">hr_timesheet_invoice.factor</field>
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index 27c706cfe5a..807f9a60409 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -104,11 +104,11 @@
<field invisible="1" name="date"/>
<field domain="[('type','=','normal'), ('state', '&lt;&gt;', 'close')]" name="account_id" on_change="on_change_account_id(account_id)"/>
<field name="name"/>
- <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" widget="float_time"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)" widget="float_time"/>
<field name="to_invoice"/>
<field invisible="1" name="journal_id"/>
- <field invisible="1" name="product_id" domain="[('type','=','service')]" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
- <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
+ <field invisible="1" name="product_id" domain="[('type','=','service')]" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
+ <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
<field invisible="1" name="amount"/>
<field invisible="1" name="general_account_id"/>
<field invisible="1" name="user_id" required="1"/>
@@ -117,11 +117,11 @@
<field name="date"/>
<field domain="[('type','=','normal'), ('state', '&lt;&gt;', 'close')]" name="account_id" on_change="on_change_account_id(account_id)"/>
<field name="name"/>
- <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" widget="float_time"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)" widget="float_time"/>
<field name="to_invoice"/>
<field name="journal_id"/>
- <field name="product_id" domain="[('type','=','service')]" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
- <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
+ <field name="product_id" domain="[('type','=','service')]" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
+ <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
<field name="amount"/>
<field name="general_account_id"/>
<field name="user_id" required="1"/>
diff --git a/addons/project/project.py b/addons/project/project.py
index e2d3ae5241a..111c2d22267 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -190,7 +190,6 @@ class project(osv.osv):
'active': True,
'priority': 1,
'sequence': 10,
- 'warn_manager': True,
}
def _check_dates(self, cr, uid, ids):
diff --git a/addons/project_issue_sheet/project_issue_sheet_view.xml b/addons/project_issue_sheet/project_issue_sheet_view.xml
index ac842d7e018..c54412cb01b 100644
--- a/addons/project_issue_sheet/project_issue_sheet_view.xml
+++ b/addons/project_issue_sheet/project_issue_sheet_view.xml
@@ -13,13 +13,13 @@
<field name="timesheet_ids" colspan="4" nolabel="1" context="{'default_user_id' : user_id, 'default_account_id' : analytic_account_id}">
<tree editable="top" string="Timesheet">
<field name="name"/>
- <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" widget="float_time"/>
+ <field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)" widget="float_time"/>
<field name="account_id" invisible="0" domain="[('partner_id', '=', parent.partner_id)]" on_change="on_change_account_id(account_id)"/>
<field name="date"/>
<field name="user_id"/>
<field invisible="1" name="journal_id"/>
<field invisible="1" name="product_id"/>
- <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
+ <field invisible="1" name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, False, product_uom_id)"/>
<field invisible="1" name="amount"/>
<field invisible="1" name="general_account_id"/>
</tree>
diff --git a/addons/project_timesheet/project_timesheet.py b/addons/project_timesheet/project_timesheet.py
index 3c53cfe8630..370525f0ae3 100644
--- a/addons/project_timesheet/project_timesheet.py
+++ b/addons/project_timesheet/project_timesheet.py
@@ -98,7 +98,7 @@ class project_work(osv.osv):
# Compute based on pricetype
amount_unit = obj_timesheet.on_change_unit_amount(cr, uid, timeline_id,
- prod_id, amount, unit, context=context)
+ prod_id, amount, False, unit, context=context)
if amount_unit and 'amount' in amount_unit.get('value',{}):
updv = { 'amount': amount_unit['value']['amount'] }
obj_timesheet.write(cr, uid, [timeline_id], updv, context=context)
@@ -146,7 +146,7 @@ class project_work(osv.osv):
# Compute based on pricetype
amount_unit = obj.on_change_unit_amount(cr, uid, line_id.id,
prod_id=prod_id,
- unit_amount=vals_line['unit_amount'], unit=False, context=context)
+ quantity=vals_line['unit_amount'], unit=False, context=context)
if amount_unit and 'amount' in amount_unit.get('value',{}):
vals_line['amount'] = amount_unit['value']['amount']
diff --git a/addons/project_timesheet/project_timesheet_view.xml b/addons/project_timesheet/project_timesheet_view.xml
index b39cb02798e..2a1b94620a8 100644
--- a/addons/project_timesheet/project_timesheet_view.xml
+++ b/addons/project_timesheet/project_timesheet_view.xml
@@ -31,5 +31,10 @@
</xpath>
</field>
</record>
+
+ <menuitem id="menu_project_billing" name="Billing"
+ parent="base.menu_main_pm" sequence="5"/>
+ <menuitem id="menu_project_billing_line" name="Bill Tasks Work"
+ parent="menu_project_billing" action="hr_timesheet_invoice.action_hr_analytic_timesheet_open_tree"/>
</data>
</openerp>