104 lines
3.7 KiB
Python
104 lines
3.7 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:
|
|
import codecs
|
|
import json
|
|
from cv2parser import cvitale
|
|
|
|
def parse(filename):
|
|
f = codecs.open("calebasse/tables.json", 'r',
|
|
encoding='ISO-8859-1')
|
|
tables = json.loads(f.read())
|
|
cv = cvitale.parse(filename)
|
|
if cv.tech.finValidite:
|
|
cv.tech.finValidite = setter_date_ddmmyyyy(cv.tech.finValidite)
|
|
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 and beneficiaire.amo.listePeriodesDroits.get_element():
|
|
for p in beneficiaire.amo.listePeriodesDroits.get_element():
|
|
if p.debut and p.fin:
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
|
|
if beneficiaire.amo.service and \
|
|
beneficiaire.amo.service.periodeService:
|
|
p = beneficiaire.amo.service.periodeService
|
|
if p.debut and p.fin:
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
beneficiaire.amo.qualBenef = \
|
|
tables['TABLE_QUALITE'][str(beneficiaire.amo.qualBenef)]
|
|
if beneficiaire.amo.infoCompl:
|
|
beneficiaire.amo.infoCompl = \
|
|
tables['TABLE_DIVERS'][str(beneficiaire.amo.infoCompl)]
|
|
if beneficiaire.amo.service and beneficiaire.amo.service.codeService:
|
|
beneficiaire.amo.service.codeService = \
|
|
tables['TABLE_SERVAMO'][str(beneficiaire.amo.service.codeService)]
|
|
"""
|
|
mutuelle
|
|
"""
|
|
if beneficiaire.mutuelle and beneficiaire.mutuelle.listePeriodes:
|
|
for p in beneficiaire.mutuelle.listePeriodes.get_element():
|
|
if p.debut and p.fin:
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
if beneficiaire.mutuelle and beneficiaire.mutuelle.services \
|
|
and beneficiaire.mutuelle.services.typeService:
|
|
beneficiaire.mutuelle.services.typeService = \
|
|
tables['TABLE_SERVMUTAMC'][str(beneficiaire.mutuelle.services.typeService)]
|
|
"""
|
|
amc
|
|
"""
|
|
if beneficiaire.amc and beneficiaire.amc.validiteDonnees:
|
|
p = beneficiaire.amc.validiteDonnees
|
|
if p.debut and p.fin:
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
"""
|
|
cmu
|
|
"""
|
|
if beneficiaire.cmu and beneficiaire.cmu.periode:
|
|
p = beneficiaire.cmu.periode
|
|
if p.debut and p.fin:
|
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
|
|
|
f.close()
|
|
return cv
|