[IMP]add sequence file and sequence for analytic account and changes in form view extend type field and made changes in project of account for view an hr_timsheet_invoice and made on change for partner and template ids

bzr revid: sgo@tinyerp.com-20120528091910-jw8804dxj4hlbjaa
This commit is contained in:
Sanjay Gohel (Open ERP) 2012-05-28 14:49:10 +05:30
parent 099c4e574a
commit 22dce01949
12 changed files with 91 additions and 82 deletions

View File

@ -557,7 +557,7 @@
<!--
Sequence for analytic account
-->
<record id="seq_type_analytic_account" model="ir.sequence.type">
<field name="name">Analytic account</field>
<field name="code">account.analytic.account</field>
@ -567,7 +567,7 @@
<field name="code">account.analytic.account</field>
<field eval="3" name="padding"/>
<field eval="2708" name="number_next"/>
</record>
</record>-->
<!--
Invoice requests (deprecated)

View File

@ -3,102 +3,85 @@
<data noupdate="1">
<record id="analytic_root" model="account.analytic.account">
<field name="name" model="res.company" use="name" search="[]"/>
<field name="code">0</field>
</record>
<record id="analytic_absences" model="account.analytic.account">
<field name="name">Leaves</field>
<field name="code">1</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_internal" model="account.analytic.account">
<field name="name">Internal</field>
<field name="code">2</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_our_super_product" model="account.analytic.account">
<field name="name">Our Super Product</field>
<field name="code">100</field>
<field name="state">open</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_project_1" model="account.analytic.account">
<field name="name">Project 1</field>
<field name="code">101</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_project_2" model="account.analytic.account">
<field name="name">Project 2</field>
<field name="code">102</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_root"/>
</record>
<record id="analytic_journal_trainings" model="account.analytic.account">
<field name="name">Training</field>
<field name="code">4</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_in_house" model="account.analytic.account">
<field name="name">In House</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_journal_trainings"/>
</record>
<record id="analytic_online" model="account.analytic.account">
<field name="name">Online</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_journal_trainings"/>
</record>
<record id="analytic_support" model="account.analytic.account">
<field name="name">Support</field>
<field name="code">support</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_partners" model="account.analytic.account">
<field name="name">Partners</field>
<field name="code">partners</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_support"/>
</record>
<record id="analytic_customers" model="account.analytic.account">
<field name="name">Customers</field>
<field name="code">customers</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_support"/>
</record>
<record id="analytic_support_internal" model="account.analytic.account">
<field name="name">Internal</field>
<field name="code">3</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_support"/>
</record>
<record id="analytic_integration" model="account.analytic.account">
<field name="name">Integration</field>
<field name="code">integration</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_consultancy" model="account.analytic.account">
<field name="name">Consultancy</field>
<field name="code">4</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_super_product_trainings" model="account.analytic.account">
<field name="name">Training</field>
<field name="code">5</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_our_super_product"/>
</record>
<record id="analytic_seagate_p1" model="account.analytic.account">
<field name="name">Seagate P1</field>
<field name="code">1</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field>
<field name="state">open</field>
@ -106,7 +89,6 @@
</record>
<record id="analytic_seagate_p2" model="account.analytic.account">
<field name="name">Seagate P2</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="state">open</field>
@ -114,14 +96,12 @@
</record>
<record id="analytic_magasin_bml_1" model="account.analytic.account">
<field name="name">Magasin BML 1</field>
<field name="code">3</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_15"/>
</record>
<record id="analytic_integration_c2c" model="account.analytic.account">
<field name="name">CampToCamp</field>
<field name="code">7</field>
<field name="type">normal</field>
<field eval="str(time.localtime()[0] - 1) + '-08-07'" name="date_start"/>
<field eval="time.strftime('%Y-12-31')" name="date"/>
@ -131,28 +111,24 @@
</record>
<record id="analytic_agrolait" model="account.analytic.account">
<field name="name">Agrolait</field>
<field name="code">3</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_agrolait"/>
</record>
<record id="analytic_asustek" model="account.analytic.account">
<field name="name">Asustek</field>
<field name="code">4</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="partner_id" ref="base.res_partner_asus"/>
</record>
<record id="analytic_distripc" model="account.analytic.account">
<field name="name">DistriPC</field>
<field name="code">7</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_4"/>
</record>
<record id="analytic_sednacom" model="account.analytic.account">
<field name="name">Sednacom</field>
<field name="code">2</field>
<field eval="str(time.localtime()[0] - 1) + '-05-09'" name="date_start"/>
<field eval="time.strftime('%Y-05-08')" name="date"/>
<field name="parent_id" ref="analytic_partners"/>
@ -162,7 +138,6 @@
</record>
<record id="analytic_thymbra" model="account.analytic.account">
<field name="name">Thymbra</field>
<field name="code">3</field>
<field eval="time.strftime('%Y-02-01')" name="date_start"/>
<field eval="time.strftime('%Y-07-01')" name="date"/>
<field name="type">normal</field>
@ -172,7 +147,6 @@
</record>
<record id="analytic_leclerc" model="account.analytic.account">
<field name="name">Leclerc</field>
<field name="code">10</field>
<field eval="time.strftime('%Y-04-24')" name="date_start"/>
<field eval="str(time.localtime()[0] + 1) + '-04-24'" name="date"/>
<field name="type">normal</field>
@ -181,7 +155,6 @@
</record>
<record id="analytic_desertic_hispafuentes" model="account.analytic.account">
<field name="name">Desertic - Hispafuentes</field>
<field name="code">12</field>
<field eval="time.strftime('%Y-02-01')" name="date_start"/>
<field eval="str(time.localtime()[0] + 1) + '-02-01'" name="date"/>
<field name="type">normal</field>
@ -190,14 +163,12 @@
</record>
<record id="analytic_tiny_at_work" model="account.analytic.account">
<field name="name">OpenERP SA AT Work</field>
<field name="code">15</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
</record>
<record id="analytic_partners_camp_to_camp" model="account.analytic.account">
<field name="name">Camp to Camp</field>
<field name="code">21</field>
<field eval="time.strftime('%Y-%m-%d', time.localtime(time.time() - 365 * 86400))" name="date_start"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field name="type">normal</field>
@ -207,67 +178,56 @@
</record>
<record id="analytic_project_2_support" model="account.analytic.account">
<field name="name">Support</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_2"/>
</record>
<record id="analytic_project_2_development" model="account.analytic.account">
<field name="name">Development</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_2"/>
</record>
<record id="analytic_project_1_trainings" model="account.analytic.account">
<field name="name">Training</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_1"/>
</record>
<record id="analytic_project_1_development" model="account.analytic.account">
<field name="name">Development</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_project_1"/>
</record>
<record id="analytic_administratif" model="account.analytic.account">
<field name="name">Administrative</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_commercial_marketing" model="account.analytic.account">
<field name="name">Commercial &amp; Marketing</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_our_super_product_development" model="account.analytic.account">
<field name="name">Our Super Product Development</field>
<field name="code">3</field>
<field name="type">view</field>
<field name="parent_id" ref="analytic_internal"/>
</record>
<record id="analytic_stable" model="account.analytic.account">
<field name="name">Stable</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_our_super_product_development"/>
</record>
<record id="analytic_trunk" model="account.analytic.account">
<field name="name">Trunk</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_our_super_product_development"/>
</record>
<record id="analytic_paid" model="account.analytic.account">
<field name="name">Paid</field>
<field name="code">1</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_absences"/>
</record>
<record id="analytic_unpaid" model="account.analytic.account">
<field name="name">Unpaid</field>
<field name="code">2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_absences"/>
</record>

View File

@ -82,31 +82,27 @@
<field name="arch" type="xml">
<form layout="manual">
<sheet string="Analytic account" layout="auto">
<group colspan="4" col="6">
<field name="name" colspan="4"/>
<field name="code"/>
<field name="parent_id" on_change="on_change_parent(parent_id)"/>
<field name="company_id" on_change="on_change_company(company_id)" select="2" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
<field name="type" select="2"/>
</group>
<notebook colspan="4">
<page string="Account Data">
<group colspan="2" col="2">
<separator colspan="2" string="Contacts"/>
<field name="partner_id"/>
<field name="user_id"/>
</group>
<group colspan="2" col="2" name="contract">
<separator colspan="2" string="Contract Data"/>
<field name="date_start"/>
<field name="date"/>
<field name="quantity_max"/>
</group>
</page>
<page string="Description">
<field colspan="4" name="description" nolabel="1"/>
</page>
</notebook>
<group colspan="4" col="4" class="oe_form_group_label_border">
<field name="name" string="Contract/Project Name"/>
<field name="partner_id"/>
<field name="code"/>
<field name="user_id"/>
<field name="company_id" on_change="on_change_company(company_id)" select="2" widget="selection" groups="base.group_multi_company" attrs="{'required': [('type','&lt;&gt;','view')]}"/>
<field name="type" select="2"/>
<field name="parent_id" on_change="on_change_parent(parent_id)" attrs="{'invisible': [('type','in',['contract','template'])]}"/>
</group>
<notebook colspan="4">
<page string="Contract Information" name="contract_page">
<group colspan="2" col="2" name="contract" class="oe_form_group_label_border">
<separator colspan="2" string="Validity"/>
<field name="date_start"/>
<field name="date"/>
</group>
<group colspan="2" col="2" name="project" class="oe_form_group_label_border">
<separator colspan="2" string="Project" name="project_sep" invisible="1"/>
</group>
</page>
</notebook>
</sheet>
</form>
</field>

View File

@ -381,7 +381,23 @@ class account_analytic_account(osv.osv):
digits_compute=dp.get_precision('Account')),
'month_ids': fields.function(_analysis_all, multi='analytic_analysis', type='many2many', relation='account_analytic_analysis.summary.month', string='Month'),
'user_ids': fields.function(_analysis_all, multi='analytic_analysis', type="many2many", relation='account_analytic_analysis.summary.user', string='User'),
'template_id':fields.many2one('account.analytic.account', 'Template Of Contract'),
}
def on_change_template(self, cr, uid, id, template_id):
if not template_id:
return {}
res = {'value':{}}
template = self.browse(cr, uid, template_id)
if template.date_start:
res['value']['date_start'] = str(template.date_start)
if template.date:
res['value']['date'] = str(template.date)
res['value']['quantity_max'] = template.quantity_max
res['value']['remaining_hours'] = template.remaining_hours
res['value']['to_invoice'] = template.to_invoice.id
res['value']['pricelist_id'] = template.pricelist_id.id
res['value']['description'] = template.description
return res
account_analytic_account()

View File

@ -62,8 +62,8 @@
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_has_partner':1, 'search_default_user_id':uid, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1, 'search_default_renew':1}</field>
<field name="domain">[('type','=','normal')]</field>
<field name="context">{'search_default_user_id':uid, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1, 'search_default_renew':1}</field>
<field name="domain">[('type','=','normal'),('partner_id', '!=', False)]</field>
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
<field name="help">You will find here the contracts to be renewed because the deadline is passed or the working hours are higher than the allocated hours. OpenERP automatically sets these analytic accounts to the pending state, in order to raise a warning during the timesheets recording. Salesmen should review all pending accounts and reopen or close the according to the negotiation with the customer.</field>
</record>
@ -74,8 +74,8 @@
<field name="res_model">account.analytic.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
<field name="context">{'search_default_has_partner':1, 'search_default_user_id':uid, 'search_default_draft':1, 'search_default_pending':1, 'search_default_open':1}</field>
<field name="domain">[('type','=','normal')]</field>
<field name="context">{'default_type':'contract'}</field>
<field name="domain">[('type','=','contract'),('partner_id', '!=', False)]</field>
<field name="search_view_id" ref="view_account_analytic_account_overdue_search"/>
</record>
<menuitem id="base.menu_sales" name="Sales"

View File

@ -36,6 +36,9 @@
<field name="inherit_id" ref="account.view_account_analytic_account_form"/>
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<xpath expr='//field[@name="parent_id"]' position='after'>
<field name="template_id" on_change="on_change_template(template_id)" domain="[('type','=','template')]" attrs="{'invisible': [('type','in',['view', 'normal','template'])]}" context="{'default_type' : 'template'}"/>
</xpath>
<notebook position="inside">
<page string="Invoice Analysis">
<separator colspan="4" string="Work Done Stats"/>
@ -110,6 +113,18 @@
</field>
</field>
</record>
<record id="template_of_contract_action" model="ir.actions.act_window">
<field name="name">Template Of contract</field>
<field name="type">ir.actions.act_window</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">[('type','=','template')]</field>
<field name="context">{'search_default_type':'template','default_type' : 'template'}</field>
</record>
<menuitem action="template_of_contract_action" id="menu_template_of_contract_action" parent="base.menu_base_config" />
</data>
</openerp>

View File

@ -37,6 +37,7 @@ that have no counterpart in the general financial accounts.
"init_xml" : [],
"update_xml": ['security/analytic_security.xml',
"security/ir.model.access.csv",
"analytic_sequence.xml",
],
'demo_xml': [
],

View File

@ -155,7 +155,7 @@ class account_analytic_account(osv.osv):
'name': fields.char('Account Name', size=128, required=True),
'complete_name': fields.function(_complete_name_calc, type='char', string='Full Account Name'),
'code': fields.char('Code/Reference', size=24, select=True),
'type': fields.selection([('view','View'), ('normal','Normal')], 'Account Type', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
'type': fields.selection([('view','Analytic View'), ('normal','Analytic Account'),('contract','Contract or Project'),('template','Template of Project')], 'Type of Account', help='If you select the View Type, it means you won\'t allow to create journal entries using that account.'),
'description': fields.text('Description'),
'parent_id': fields.many2one('account.analytic.account', 'Parent Analytic Account', select=2),
'child_ids': fields.one2many('account.analytic.account', 'parent_id', 'Child Accounts'),
@ -197,6 +197,7 @@ class account_analytic_account(osv.osv):
_defaults = {
'type': 'normal',
'company_id': _default_company,
'code' : lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'account.analytic.account'),
'state': 'open',
'user_id': lambda self, cr, uid, ctx: uid,
'partner_id': lambda self, cr, uid, ctx: ctx.get('partner_id', False),

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<record id="seq_type_analytic_account_main" model="ir.sequence.type">
<field name="name">Analytic account</field>
<field name="code">account.analytic.account</field>
</record>
<record id="seq_analytic_account_base" model="ir.sequence">
<field name="name">Analytic account sequence</field>
<field name="code">account.analytic.account</field>
<field name="prefix">AA</field>
<field name="padding">3</field>
</record>
</data>
</openerp>

View File

@ -20,7 +20,7 @@
<field eval="2.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="account_id" model="account.analytic.account" search="[('code','=','1')]"></field>
<field name="account_id" model="account.analytic.account" ref="account.analytic_administratif"></field>
<field eval="-60.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
<field name="journal_id" ref="analytic_journal"/>
@ -33,7 +33,7 @@
<field eval="1.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="account_id" model="account.analytic.account" search="[('code','=','1')]"></field>
<field name="account_id" model="account.analytic.account" ref="account.analytic_administratif"></field>
<field eval="-30.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
<field name="journal_id" ref="analytic_journal"/>
@ -46,7 +46,7 @@
<field eval="03.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="account_id" model="account.analytic.account" search="[('code','=','1')]"></field>
<field name="account_id" model="account.analytic.account" ref="account.analytic_administratif"></field>
<field eval="-90.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
<field name="journal_id" ref="analytic_journal"/>
@ -59,7 +59,7 @@
<field eval="01.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="account_id" model="account.analytic.account" search="[('code','=','1')]"></field>
<field name="account_id" model="account.analytic.account" ref="account.analytic_administratif"></field>
<field eval="-30.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
<field name="journal_id" ref="analytic_journal"/>
@ -72,7 +72,7 @@
<field eval="01.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="account_id" model="account.analytic.account" search="[('code','=','1')]"></field>
<field name="account_id" model="account.analytic.account" ref="account.analytic_administratif"></field>
<field eval="-30.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
<field name="journal_id" ref="analytic_journal"/>

View File

@ -79,10 +79,14 @@ class account_analytic_account(osv.osv):
}
def on_change_partner_id(self, cr, uid, id, partner_id, context={}):
res={}
part = self.pool.get('res.partner').browse(cr, uid, partner_id)
pricelist = part.property_product_pricelist and part.property_product_pricelist.id or False
if pricelist:
res['pricelist_id'] = pricelist
if partner_id:
part = self.pool.get('res.partner').browse(cr, uid, partner_id,context=context)
pricelist = part.property_product_pricelist and part.property_product_pricelist.id or False
res['name'] = part.name
if part.user_id:
res['user_id'] = part.user_id.id
if pricelist:
res['pricelist_id'] = pricelist
return {'value': res}
def set_close(self, cr, uid, ids, context=None):

View File

@ -8,7 +8,7 @@
<field name="inherit_id" ref="account.view_account_analytic_account_form"/>
<field name="arch" type="xml">
<field name="partner_id" position="replace">
<field name="partner_id" on_change="on_change_partner_id(partner_id, context)"/>
<field name="partner_id" on_change="on_change_partner_id(partner_id, context)" required="True"/>
</field>
<group name="contract" position="after">
<group colspan="2" col="2" name="invoice_data">