from project.legacy import models as legacy
from project.rh import models as rh
+def clean_date(date):
+ if date == '2003-06-31': # date inexistante (dossier 791-1)
+ return '2003-06-30'
+ elif date:
+ return date
+ else:
+ return None
+
class Command(BaseCommand):
help = 'Importe les données du système RH legacy'
if dossiers.count() == 0:
service = None
poste_du_responsable = None
+ date_debut = None
+ date_fin = None
if dossiers.count() > 0:
except:
poste_du_responsable = None
+ # initialiser les dates du poste avec les dates du dossier
+ date_debut = clean_date(dossier.date_debut_mandat)
+ date_fin = clean_date(dossier.date_fin_mandat)
+
# Créer le poste
rh_poste = rh.Poste.objects.create(
id=poste.id_implantation_postes,
service_id=service,
supprime=False,
responsable_id=poste_du_responsable,
+ date_debut=date_debut,
+ date_fin=date_fin,
)
if service is None and poste.actif in ('0', 0, False):
def sync_dossier():
- def clean_date(date):
- if date == '2003-06-31': # date inexistante (dossier 791-1)
- return '2003-06-30'
- elif date:
- return date
- else:
- return None
-
taux_cache = {}
def get_taux(annee, devise):
taux = taux_cache.get((annee, devise))
if date_debut is not None and date_fin is not None:
q_left = (Q(**{'%s__isnull' % prefix_debut : True}) | Q(**{'%s__lte' % prefix_debut : date_debut})) & (Q(**{'%s__gte' % prefix_fin : date_debut}) & Q(**{'%s__lte' % prefix_fin : date_fin}))
q_right = (Q(**{'%s__isnull' % prefix_fin : True}) | Q(**{'%s__gte' % prefix_fin : date_fin})) & (Q(**{'%s__gte' % prefix_debut : date_debut}) & Q(**{'%s__lte' % prefix_debut : date_fin}))
- q_no_date = Q(**{'%s__isnull' % prefix_fin : True}) & Q(**{'%s__isnull' % prefix_debut : True})
+ q_both = Q(**{'%s__isnull' % prefix_fin : True}) | Q(**{'%s__lte' % prefix_fin : date_fin}) & (Q(**{'%s__isnull' % prefix_debut : True}) | Q(**{'%s__gte' % prefix_debut : date_debut}))
q_non_supprime = Q(**{'%s__exact' % prefix_debut.replace('date_debut', 'supprime') : False})
- q = (q_left | q_right | q_no_date) & q_non_supprime
+ q = (q_left | q_right | q_both) & q_non_supprime
qs = qs.filter(q).distinct()
self.params = old