[IMP] l10n_in_hr_payroll : improve onchange event

bzr revid: pat@tinyerp.com-20120709114112-4vxp86voy9ys106d
This commit is contained in:
Ankita Patel (OpenERP) 2012-07-09 17:11:12 +05:30
parent c06b2854f7
commit 3ce1e711c5
3 changed files with 44 additions and 5 deletions

View File

@ -278,7 +278,7 @@ class hr_payslip(osv.osv):
\n* If the payslip is confirmed then state is set to \'Done\'.\
\n* When user cancel payslip the state is \'Rejected\'.'),
# 'line_ids': fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Line', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'line_ids': one2many_mod2('hr.payslip.line', 'slip_id', 'Payslip Lines', readonly=True, states={'draft':[('readonly',False)]}),
'line_ids': fields.one2many('hr.payslip.line', 'slip_id', 'Payslip Lines', readonly=True, states={'draft':[('readonly',False)]}),
'company_id': fields.many2one('res.company', 'Company', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'worked_days_line_ids': fields.one2many('hr.payslip.worked_days', 'payslip_id', 'Payslip Worked Days', required=False, readonly=True, states={'draft': [('readonly', False)]}),
'input_line_ids': fields.one2many('hr.payslip.input', 'payslip_id', 'Payslip Inputs', required=False, readonly=True, states={'draft': [('readonly', False)]}),

View File

@ -726,7 +726,7 @@
<header>
<button name="close_payslip_run" type="object" string="Close" states="draft" class="oe_highlight"/>
<button name="%(action_hr_payslip_by_employees)d" type="action" states="draft" string="Generate Payslips" class="oe_highlight"/>
<button string="Set to Draft" name="draft_payslip_run" type="object" states="close" />
<button name="draft_payslip_run" string="Set to Draft" type="object" states="close" />
<field name="state" widget="statusbar"/>
</header>
<sheet>

View File

@ -109,7 +109,7 @@ class payroll_advice(osv.osv):
_name = 'hr.payroll.advice'
_description = 'Bank Advice'
_columns = {
'name':fields.char('Name', size=32, readonly=True, required=True, states={'draft': [('readonly', False)]},),
'name':fields.char('Name', size=32, required=True, readonly=True, states={'draft': [('readonly', False)]},),
'note': fields.text('Description'),
'date': fields.date('Date', readonly=True, required=True, states={'draft': [('readonly', False)]}, help="Advice Date is used to search Payslips"),
'state':fields.selection([
@ -211,6 +211,45 @@ class payroll_advice(osv.osv):
payroll_advice()
class hr_payslip_run(osv.osv):
_inherit = 'hr.payslip.run'
_description = 'Payslip Batches'
_columns = {
}
def close_payslip_run(self, cr, uid, ids, context=None):
payslip_pool = self.pool.get('hr.payslip')
payslip_run_pool = self.pool.get('hr.payslip.run')
advice_line_pool = self.pool.get('hr.payroll.advice.line')
advice_pool = self.pool.get('hr.payroll.advice')
payslip_line_pool = self.pool.get('hr.payslip.line')
for advice in self.browse(cr, uid, ids, context=context):
for slip in advice.slip_ids:
if slip.id:
line = payslip_line_pool.browse(cr, uid, ids, context=context)[0]
advice_line = advice_pool.browse(cr, uid, ids, context=context)[0]
adv = {
'advice_id': advice.id,
'name': slip.employee_id.name,
'employee_id': slip.employee_id.id,
}
advice_record = advice_pool.create(cr, uid, adv, context=context)
advice_line = {
'advice_id': advice.id,
'name': slip.employee_id.name,
'employee_id': slip.employee_id.id,
}
adviceline_record = advice_line_pool.create(cr, uid, advice_line, context=context)
payslip_record = payslip_pool.write(cr, uid, ids, {'advice_id': advice.id, 'name': slip.employee_id.name, 'employee_id': slip.employee_id.id}, context=context)
return super(hr_payslip_run, self).close_payslip_run(cr, uid, ids, context=context)
return True
hr_payslip_run()
class payroll_advice_line(osv.osv):
'''
Bank Advice Lines
@ -220,7 +259,7 @@ class payroll_advice_line(osv.osv):
_columns = {
'advice_id': fields.many2one('hr.payroll.advice', 'Bank Advice'),
'name': fields.char('Bank Account No.', size=32, required=True),
'employee_id': fields.many2one('hr.employee', 'Employee', required=True),
'employee_id': fields.many2one('hr.employee', required=True, 'Employee'),
'bysal': fields.float('By Salary', digits_compute=dp.get_precision('Payroll')),
'company_id': fields.related('advice_id', 'company_id', type='many2one', required=False, relation='res.company', string='Company', store=True),
}
@ -252,4 +291,4 @@ class res_company(osv.osv):
res_company()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: