77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
from datetime import datetime
|
|
|
|
from django.conf import settings
|
|
|
|
|
|
def parse_date_ddmmyyyy(str_date):
|
|
fmt = '%d%m%Y'
|
|
return datetime.strptime(str_date, fmt)
|
|
|
|
def parse_date_yymmdd(str_date):
|
|
fmt = '%y%m%d'
|
|
return datetime.strptime(str_date, fmt)
|
|
|
|
def setter_date_ddmmyyyy(field):
|
|
try:
|
|
return parse_date_ddmmyyyy(str(field))
|
|
except:
|
|
pass
|
|
|
|
def setter_date_yymmdd(field):
|
|
try:
|
|
return parse_date_yymmdd(str(field))
|
|
except:
|
|
pass
|
|
|
|
def setter_periode(start, end):
|
|
try:
|
|
return parse_date_ddmmyyyy(str(start)), parse_date_ddmmyyyy(str(end))
|
|
except:
|
|
pass
|
|
|
|
if settings.CV2PARSER:
|
|
from cv2parser import cvitale
|
|
|
|
def parse(filename):
|
|
cv = cvitale.parse(filename)
|
|
for beneficiaire in cv.listeBenef.get_element():
|
|
"""
|
|
ident
|
|
"""
|
|
beneficiaire.ident.naissance.date = \
|
|
setter_date_ddmmyyyy(beneficiaire.ident.naissance.date)
|
|
beneficiaire.ident.naissance.dateEnCarte = \
|
|
setter_date_yymmdd(beneficiaire.ident.naissance.dateEnCarte)
|
|
beneficiaire.ident.dateCertification = \
|
|
setter_date_ddmmyyyy(beneficiaire.ident.dateCertification)
|
|
"""
|
|
amo
|
|
"""
|
|
if beneficiaire.amo.listePeriodesDroits:
|
|
for p in beneficiaire.amo.listePeriodesDroits.get_element():
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
if beneficiaire.amo.service and \
|
|
beneficiaire.amo.service.periodeService:
|
|
p = beneficiaire.amo.service.periodeService
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
"""
|
|
mutuelle
|
|
"""
|
|
if beneficiaire.mutuelle and beneficiaire.mutuelle.listePeriodes:
|
|
for p in beneficiaire.mutuelle.listePeriodes.get_element():
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
"""
|
|
amc
|
|
"""
|
|
if beneficiaire.amc and beneficiaire.amc.validiteDonnees:
|
|
p = beneficiaire.amc.validiteDonnees
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
"""
|
|
cmu
|
|
"""
|
|
if beneficiaire.cmu and beneficiaire.cmu.periode:
|
|
p = beneficiaire.cmu.periode
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
|
|
return cv
|