shift_extension.py
1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -*- coding: utf-8 -*-
# Copyright (C) 2016-Today: La Louve (<http://www.lalouve.net/>)
# @author: La Louve
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html
from openerp import api, fields, models
from dateutil.relativedelta import relativedelta
class ShiftExtension(models.Model):
_inherit = 'shift.extension'
@api.onchange('type_id', 'partner_id', 'date_start')
def onchange_type_id(self):
'''
@Function to suggest the end date for the member
'''
for extension in self:
extension.date_stop = self.suggest_extension_date_stop(
extension_type=extension.type_id,
partner=extension.partner_id,
date_start=extension.date_start)
@api.model
def suggest_extension_date_stop(self, extension_type, partner, date_start):
'''
@Function to suggest the date stop for the extensions
'''
date_stop = False
if extension_type and date_start:
if extension_type.extension_method == 'fixed_duration':
date_start = fields.Date.from_string(date_start)
date_stop = date_start +\
relativedelta(days=extension_type.duration)
elif partner and extension_type.extension_method == \
'to_next_regular_shift':
# Get next shift date
_next_shift_time, next_shift_date = \
partner.get_next_shift_date()
date_stop = next_shift_date
return date_stop