diff options
| author | Vijaykumar Baladaniya <vba@tinyerp.com> | 2012-07-09 18:31:13 +0530 |
|---|---|---|
| committer | Vijaykumar Baladaniya <vba@tinyerp.com> | 2012-07-09 18:31:13 +0530 |
| commit | be2e95656aaa113addea2b510fcdcf2f890eaaa4 (patch) | |
| tree | abcb3dd4ef350a1b8ad0eaffdd2b9a1cb91521af /addons/analytic_contract_project | |
| parent | b982ea278b33132def3927417b7a854b98b5028a (diff) | |
| parent | 3925f76ce85854e5d4834902a05f57bcfc5ace85 (diff) | |
[MERGE]merged with trunk-survey-layout-tta
bzr revid: vba@tinyerp.com-20120709130113-3lchipgil9oqpglg
Diffstat (limited to 'addons/analytic_contract_project')
4 files changed, 272 insertions, 0 deletions
diff --git a/addons/analytic_contract_project/__init__.py b/addons/analytic_contract_project/__init__.py new file mode 100644 index 00000000000..dd60ac32096 --- /dev/null +++ b/addons/analytic_contract_project/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +import analytic_contract_project + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/analytic_contract_project/__openerp__.py b/addons/analytic_contract_project/__openerp__.py new file mode 100644 index 00000000000..ccf712dc987 --- /dev/null +++ b/addons/analytic_contract_project/__openerp__.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +{ + "name" : "Contract On Project", + "version": "1.1", + "author" : "OpenERP SA", + "website" : "http://www.openerp.com", + "depends" : ["project", "account_analytic_analysis"], + "description": """ + Add "Contract Data" in project view. + """, + "init_xml" : [], + "update_xml": ["analytic_contract_project_view.xml"], + 'demo_xml': [], + 'installable': True, + 'auto_install': True, +} +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/analytic_contract_project/analytic_contract_project.py b/addons/analytic_contract_project/analytic_contract_project.py new file mode 100644 index 00000000000..6221617637e --- /dev/null +++ b/addons/analytic_contract_project/analytic_contract_project.py @@ -0,0 +1,83 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import fields, osv +from tools.translate import _ + +class project_project(osv.osv): + _inherit = 'project.project' + + _defaults = { + 'use_timesheets': True, + } + + def open_sale_order_lines(self,cr,uid,ids,context=None): + account_ids = [x.analytic_account_id.id for x in self.browse(cr, uid, ids, context=context)] + return self.pool.get('account.analytic.account').open_sale_order_lines(cr, uid, account_ids, context=context) + + def open_timesheets_to_invoice(self,cr,uid,ids,context=None): + if context is None: + context = {} + analytic_account_id = self.browse(cr, uid, ids[0], context=context).analytic_account_id.id + context.update({'search_default_account_id': analytic_account_id, 'default_account_id': analytic_account_id, 'search_default_to_invoice': 1}) + return { + 'type': 'ir.actions.act_window', + 'name': _('Timesheet Lines to Invoice'), + 'view_type': 'form', + 'view_mode': 'tree,form', + 'context': context, + 'domain' : [('invoice_id','=',False),('to_invoice','!=',False), ('journal_id.type', '=', 'general')], + 'res_model': 'account.analytic.line', + 'nodestroy': True, + } + + def open_timesheets(self, cr, uid, ids, context=None): + """ open Timesheets view """ + project = self.browse(cr, uid, ids[0], context) + try: + journal_id = self.pool.get('ir.model.data').get_object(cr, uid, 'hr_timesheet', 'analytic_journal').id + except ValueError: + journal_id = False + view_context = { + 'search_default_account_id': [project.analytic_account_id.id], + 'default_account_id': project.analytic_account_id.id, + 'default_journal_id': journal_id, + } + return { + 'type': 'ir.actions.act_window', + 'name': _('Bill Tasks Works'), + 'res_model': 'account.analytic.line', + 'view_type': 'form', + 'view_mode': 'tree,form', + 'context': view_context, + 'nodestroy': True, + } +project_project() + +class task(osv.osv): + _inherit = "project.task" + + def create(self, cr, uid, vals, context=None): + task_id = super(task, self).create(cr, uid, vals, context=context) + task_browse = self.browse(cr, uid, task_id, context=context) + self.pool.get('account.analytic.account').message_append_note(cr, uid, [task_browse.project_id.analytic_account_id.id], body=_("Task <em>%s</em> has been <b>created</b>.") % (task_browse.name), context=context) + return task_id +task() diff --git a/addons/analytic_contract_project/analytic_contract_project_view.xml b/addons/analytic_contract_project/analytic_contract_project_view.xml new file mode 100644 index 00000000000..0e61fe08d01 --- /dev/null +++ b/addons/analytic_contract_project/analytic_contract_project_view.xml @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> + <data> + + <record id="project_account_analytic_account_form" model="ir.ui.view"> + <field name="name">project.project.form.inherit</field> + <field name="model">project.project</field> + <field name="type">form</field> + <field name="inherit_id" ref="project.edit_project"/> + <field eval="18" name="priority"/> + <field name="arch" type="xml"> + <xpath expr='//page[@name="team"]' position='after'> + <page string="Contract Data"> + <group> + <group string="Validity"> + <label for="date_start" string="Duration"/> + <div name="duration"> + <field name="date_start" class="oe_inline"/> - <field name="date" class="oe_inline"/> + </div> + <label for="quantity_max"/> + <div> + <field name="quantity_max" class="oe_inline"/> + <field name="company_uom_id" readonly="1" class="oe_inline"/> / Remaining: + <field name="remaining_hours" class="oe_inline"/> + <field name="company_uom_id" readonly="1" class="oe_inline"/> + </div> + </group> + <group string="Invoice Options"> + <field name="manager_id" /> + <field name="pricelist_id" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/> + <field name="to_invoice" widget="selection" attrs="{'invisible': [('invoice_on_timesheets','=',0)]}"/> + </group> + </group> + <separator name="toinvoice" string="Invoicing"/> + <table width="100%%"> + <tr> + <th></th> + <th></th> + <th><label string="Est.Tot"/></th> + <th><label string="Invoiced"/></th> + <th><label string="Remaining"/></th> + <th><label string="To Invoice"/></th> + <th></th> + </tr><tr> + <td> + <label for="fix_price_invoices"/> + </td><td> + <field name="fix_price_invoices" class="oe_inline"/> + </td><td> + <field class="oe_inline" name="amount_max" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/> + </td><td> + <field class="oe_inline" name="ca_invoiced" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/> + </td><td> + <field class="oe_inline" name="remaining_ca" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/> + </td><td> + <field class="oe_inline" name="fix_price_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/> + </td><td> + <button name="%(account_analytic_analysis.action_sales_order)d" string="All Sales" type="action" context="{'default_partner_id': [partner_id], 'search_default_partner_id': [partner_id], 'default_project_id': analytic_account_id, 'search_default_project_id': analytic_account_id}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/> + <button name="open_sale_order_lines" string="Lines To Invoice" type="object" context="{'default_partner_id': [partner_id],'default_project_id': analytic_account_id,'search_default_uninvoiced': 1,'search_default_project_id': analytic_account_id,'search_default_partner_id': [partner_id]}" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/></td> + </tr><tr attrs="{'invisible':[('use_timesheets','=',False)]}"> + <td> + <label for="invoice_on_timesheets"/> + </td><td> + <field name="invoice_on_timesheets"/> + </td><td> + <field class="oe_inline" name="hours_qtt_est" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/> + </td><td> + <field class="oe_inline" name="timesheet_ca_invoiced" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/> + </td><td> + <field class="oe_inline" name="remaining_hours_to_invoice" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/> + </td><td> + <field class="oe_inline" name="ca_to_invoice" attrs="{'invisible': [('fix_price_invoices','=',False)]}"/> + </td><td> + <button name="%(hr_timesheet.act_hr_timesheet_line_evry1_all_form)d" string="All Timesheets" type="action" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}" context="{'default_account_id': analytic_account_id,'search_default_account_id': analytic_account_id}"/> + <button name="open_timesheets_to_invoice" string="Timesheets to Invoice" type="object" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/> + </td> + </tr><tr name="total"> + <th> + <label string="Total"/> + </th><td> + </td><td> + <field name="est_total" class="oe_inline" attrs="{'invisible': [('invoice_on_timesheets','=',False)]}"/> + </td><td> + <field name="invoiced_total" class="oe_inline"/> + </td><td> + <field name="remaining_total" class="oe_inline"/> + </td><td> + <field name="toinvoice_total" class="oe_inline"/> + </td><td> + </td> + </tr> + </table> + <separator string="Terms and Conditions" name="description"/> + <field name="description"/> + </page> + </xpath> + </field> + </record> + + <record id="project_invoice_form" model="ir.ui.view"> + <field name="name">Inherit project form : Invoicing Data</field> + <field name="model">project.project</field> + <field name="type">form</field> + <field name="inherit_id" ref="project.edit_project"/> + <field name="arch" type="xml"> + <xpath expr='//tr[@name="use_tasks_row"]' position='after'> + <tr> + <td><group><field name="use_timesheets"/></group></td> + <td><button icon="terp-gtk-go-back-rtl" name="open_timesheets" string="Timesheets" type="object" attrs="{'invisible':[('use_timesheets','=', 0)]}"/></td> + </tr> + </xpath> + </field> + </record> + + <record id="contract_inherited_form" model="ir.ui.view"> + <field name="name">Inherit contract form : adding UoM</field> + <field name="model">account.analytic.account</field> + <field name="type">form</field> + <field name="inherit_id" ref="analytic.view_account_analytic_account_form"/> + <field name="priority">50</field> + <field name="arch" type="xml"> + <xpath expr='//field[@name="remaining_hours"]' position='after'> + <field name="company_uom_id" readonly="1" class="oe_inline"/> + </xpath> + </field> + </record> + </data> +</openerp> |
