1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- # -*- coding: utf-8 -*-
- # (c) 2016 Alfredo de la Fuente - AvanzOSC
- # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
- from openerp import models, fields, api, exceptions, _
- class WizCalculateWorkableFestive(models.TransientModel):
- _name = 'wiz.calculate.workable.festive'
- _description = 'Wizard for calculate workables and festives'
- year = fields.Integer(
- string='Employee calendar year', size=4, required=True)
- @api.model
- def default_get(self, var_fields):
- partner_calendar_obj = self.env['res.partner.calendar']
- res = super(WizCalculateWorkableFestive, self).default_get(var_fields)
- contract = self.env['hr.contract'].browse(
- self.env.context['active_id'])
- year_begin = fields.Datetime.from_string(contract.date_start).year
- cond = [('partner', '=', contract.partner.id),
- ('year', '=', year_begin)]
- calendar = partner_calendar_obj.search(cond, limit=1)
- if not calendar:
- res.update({'year': year_begin})
- else:
- if contract.date_end:
- year_end = fields.Datetime.from_string(contract.date_end).year
- if year_begin == year_end:
- res.update({'year': year_begin})
- return res
- @api.multi
- def button_calculate_workables_and_festives(self):
- self.ensure_one()
- contract = self.env['hr.contract'].browse(
- self.env.context['active_id'])
- date_begin = fields.Date.from_string(contract.date_start)
- if self.year < date_begin.year:
- raise exceptions.Warning(
- _('Year introduced less than year contract beginning'))
- if contract.date_end:
- date_end = fields.Datetime.from_string(contract.date_end)
- if self.year > date_end.year:
- raise exceptions.Warning(
- _('Year introduced more than year end contract'))
- contract._generate_calendar_from_wizard(self.year)
|