</record>
<act_window id="action_merge_opportunities"
++ multi="True"
key2="client_action_multi" name="Merge Opportunities"
res_model="crm.merge.opportunity" src_model="crm.lead"
view_mode="form" target="new" view_type="form" />
</data>
--</openerp>
++</openerp>
class hr_job(osv.osv):
+ def _no_of_employee(self, cr, uid, ids, name, args, context=None):
+ res = {}
- for emp in self.browse(cr, uid, ids):
- res[emp.id] = len(emp.employee_ids or [])
++ for job in self.browse(cr, uid, ids, context):
++ res[job.id] = len(job.employee_ids or [])
++ return res
++
++ def _no_of_recruitement(self, cr, uid, ids, name, args, context=None):
++ res = {}
++ for job in self.browse(cr, uid, ids, context):
++ res[job.id] = job.expected_employees - job.no_of_employee
+ return res
+
_name = "hr.job"
_description = "Job Description"
_columns = {
'name': fields.char('Job Name', size=128, required=True, select=True),
-- 'expected_employees': fields.integer('Expected Employees', help='Required number of Employees'),
- 'no_of_employee': fields.function(_no_of_employee, method=True, string='No of Employees', type='integer', help='Number of Employees selected'),
- 'no_of_employee': fields.integer('No of Employees', help='Number of employee there are already in the department'),
- 'no_of_recruitment': fields.integer('No of Recruitment', readonly=True),
++ 'expected_employees': fields.integer('Expected Employees', help='Required number of Employees in total for that job.'),
++ 'no_of_employee': fields.function(_no_of_employee, method=True, string="No of Employee", help='Number of employee with that job.'),
++ 'no_of_recruitment': fields.function(_no_of_recruitement, method=True, string='Expected in Recruitment', readonly=True),
'employee_ids': fields.one2many('hr.employee', 'job_id', 'Employees'),
'description': fields.text('Job Description'),
'requirements': fields.text('Requirements'),
_defaults = {
'expected_employees': 1,
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'hr.job', context=c),
- 'state': 'open'
+ 'state': 'open',
- 'no_of_recruitment': 1,
}
+ def on_change_expected_employee(self, cr, uid, ids, expected_employee, no_of_employee, context=None):
+ if context is None:
+ context = {}
+ result={}
+ if expected_employee:
+ result['no_of_recruitment'] = expected_employee - no_of_employee
+ return {'value': result}
+
def job_old(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'old'})
return True
<field name="name" />
<field name="department_id" />
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
- <field name="expected_employees"/>
+ <field name="expected_employees" on_change="on_change_expected_employee(expected_employees,no_of_employee)"/>
- <field name="no_of_employee" on_change="on_change_expected_employee(expected_employees,no_of_employee)"/>
+ <field name="no_of_employee"/>
+ <field name="no_of_recruitment"/>
</group>
<newline/>
<notebook colspan="4">
context = {}
self.write(cr, uid, ids,{'state':'cancel'}, context=context)
return True
-
+
+ def write(self, cr, uid, ids, vals, context=None):
+ if context is None:
+ context = {}
+ if 'date' in vals:
- new_vals = {}
++ new_vals = {'date_deadline': vals.get('date')}
+ obj_hr_eval_iterview = self.pool.get('hr.evaluation.interview')
- current_record = self.browse(cr, uid, ids, context=context)[0]
- survey_requests = current_record.survey_request_ids
- new_vals.update({'date_deadline':vals.get('date')})
- if survey_requests:
- for survey_req in survey_requests:
- obj_hr_eval_iterview.write(cr, uid, survey_req.id, new_vals,context=context)
++ for evalutation in self.browse(cr, uid, ids, context=context):
++ for survey_req in evalutation.survey_request_ids:
++ obj_hr_eval_iterview.write(cr, uid, [survey_req.id], new_vals, context=context)
+ return super(hr_evaluation, self).write(cr, uid, ids, vals, context=context)
+
hr_evaluation()
class survey_request(osv.osv):
applicant = self.browse(cr, uid, ids)[0]
if applicant.job_id :
emp_id = employee_obj.create(cr,uid,{'name':applicant.name,'job_id':applicant.job_id.id})
-- job_data = job_obj.browse(cr,uid, applicant.job_id.id)
- expected_emp = job_data['expected_employees'] - 1
- if expected_emp == 0:
- job_obj.write(cr,uid, [applicant.job_id.id],{'state':'old'})
- job_obj.write(cr,uid, [applicant.job_id.id],{'expected_employees':expected_emp})
- no_of_emp = job_data['no_of_employee'] + 1
- no_of_recruit = job_data['no_of_recruitment'] - 1
- job_obj.write(cr,uid, [applicant.job_id.id],{'no_of_employee':no_of_emp,'no_of_recruitment':no_of_recruit})
return res
def case_reset(self, cr, uid, ids, *args):
# Model definition
#
class purchase_order(osv.osv):
+
- def fields_view_get(self, cr, uid, view_id=None, view_type='form',
- context=None, toolbar=False, submenu=False):
- """
- Changes the view dynamically
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param context: A standard dictionary
- @return: New arch of view.
- """
- if not context:
- context={}
- res = super(purchase_order, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
- if view_type == 'form':
- if res['toolbar']['action'] and res['toolbar']['action'][0]['res_model']=='purchase.order.group':
- res['toolbar']['action']=[]
- return res
-
def _calc_amount(self, cr, uid, ids, prop, unknow_none, unknow_dict):
res = {}
for order in self.browse(cr, uid, ids):
res_model="purchase.order.group"
src_model="purchase.order"
view_mode="form"
-- target="new"
++ target="new"
++ multi="True"
key2="client_action_multi"
groups="base.group_extended"
id="action_view_purchase_order_group"/>
class sale_order(osv.osv):
_name = "sale.order"
_description = "Sale Order"
-
+
- def fields_view_get(self, cr, uid, view_id=None, view_type='form',
- context=None, toolbar=False, submenu=False):
- """
- Changes the view dynamically
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param context: A standard dictionary
- @return: New arch of view.
- """
- if not context:
- context={}
- res = super(sale_order, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
- if view_type == 'form':
- if res['toolbar']['action'] and res['toolbar']['action'][0]['res_model']=='sale.make.invoice':
- res['toolbar']['action']=[]
- return res
-
def copy(self, cr, uid, id, default=None, context=None):
if context is None:
context = {}
<field name="view_mode">form</field>
<field name="view_id" ref="view_sale_order_make_invoice"/>
<field name="target">new</field>
++ <field name="multi">True</field>
</record>
<record model="ir.values" id="sale_order_make_invoice">
'state': 'draft',
'company_id': lambda self,cr,uid,c: self.pool.get('res.company')._company_default_get(cr, uid, 'stock.inventory', context=c)
}
-
+
- def fields_view_get(self, cr, uid, view_id=None, view_type='form',
- context=None, toolbar=False, submenu=False):
- """
- Changes the view dynamically
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param context: A standard dictionary
- @return: New arch of view.
- """
- if not context:
- context={}
- res = super(stock_inventory, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
- if view_type == 'form':
- if res['toolbar']['action'] and res['toolbar']['action'][0]['res_model']=='stock.fill.inventory':
- res['toolbar']['action']=[]
- return res
-
def _inventory_line_hook(self, cr, uid, inventory_line, move_vals):
""" Creates a stock move from an inventory line
@param inventory_line:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
-- <record id="view_stock_fill_inventory" model="ir.ui.view">
++ <record id="view_stock_fill_inventory" model="ir.ui.view">
<field name="name">Import Inventory</field>
<field name="model">stock.fill.inventory</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Import Inventory">
-- <separator string="Import current product inventory from the following location" colspan="4" />
-- <field name="location_id"/>
-- <newline/>
-- <field name="recursive"/>
-- <newline/>
-- <field name="set_stock_zero"/>
-- <separator string="" colspan="4" />
-- <button special="cancel" string="_Cancel" icon='gtk-cancel'/>
-- <button name="fill_inventory" string="Fill Inventory" type="object" icon="gtk-ok"/>
++ <separator string="Import current product inventory from the following location" colspan="4" />
++ <field name="location_id"/>
++ <newline/>
++ <field name="recursive"/>
++ <newline/>
++ <field name="set_stock_zero"/>
++ <separator string="" colspan="4" />
++ <button special="cancel" string="_Cancel" icon='gtk-cancel'/>
++ <button name="fill_inventory" string="Fill Inventory" type="object" icon="gtk-ok"/>
</form>
</field>
-- </record>
++ </record>
-- <act_window name="Import Inventory"
-- res_model="stock.fill.inventory"
-- src_model="stock.inventory"
-- view_mode="form"
-- target="new"
-- context="{'search_default_in_location':1}"
++ <act_window name="Import Inventory"
++ res_model="stock.fill.inventory"
++ src_model="stock.inventory"
++ view_mode="form"
++ target="new"
++ multi="False"
++ context="{'search_default_in_location':1}"
key2="client_action_multi"
-- id="action_view_stock_fill_inventory"/>
++ id="action_view_stock_fill_inventory"/>
</data>
</openerp>
res_model="stock.inventory.merge"
src_model="stock.inventory"
view_mode="form"
++ multi="True"
target="new"
key2="client_action_multi"
id="action_view_stock_merge_inventories"/>