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
42
43
44
45
46
47
48
## Script (Python) "PaySheetTransaction_getPreavis"
##bind container=container
##bind context=context
##bind namespace=
##bind script=script
##bind subpath=traverse_subpath
##parameters=
##title=
##
# Définition des préavis selon le temps dans l'entreprise (en jours)
seuils = [ { 'limite':30 , 'preavis':'1 jour' }, # 1er mois d'essai
{ 'limite':60 , 'preavis':'1 semaine' }, # 2e mois d'essai
{ 'limite':730, 'preavis':'1 mois' }, # 2 premières années
{ 'limite':0, 'preavis':'2 mois' } ] # Après les 2 premières années
paysheet = context.getObject()
employee_object = paysheet.getDestinationSectionValue()
# Récupération de l'entreprise actuelle
currentOrg = None
if hasattr(employee_object,"default_career"):
currentOrg = employee_object["default_career"].getSubordinationValue()
if currentOrg == None:
return '???'
# Calcul du temps total dans cette entreprise
totalTime = 0
steps = employee_object.contentValues()
for step in steps:
if step.getPortalType() == "Career" and step.getId() != "default_career":
if step.getSubordinationValue() == currentOrg:
difference = step.getStopDate() - step.getStartDate()
if difference > 0:
totalTime = totalTime + difference
totalTime = int( totalTime + (DateTime() - employee_object["default_career"].getStartDate()) )
# Détermination du préavis
for i in range(len(seuils)):
if i < len(seuils)-1:
if seuils[i]['limite'] >= totalTime:
return seuils[i]['preavis']
else:
return seuils[i]['preavis']