1
|
from datetime import datetime
|
2
|
|
3
|
from django.conf import settings
|
4
|
|
5
|
|
6
|
def parse_date_ddmmyyyy(str_date):
|
7
|
fmt = '%d%m%Y'
|
8
|
return datetime.strptime(str_date, fmt)
|
9
|
|
10
|
def parse_date_yymmdd(str_date):
|
11
|
fmt = '%y%m%d'
|
12
|
return datetime.strptime(str_date, fmt)
|
13
|
|
14
|
def setter_date_ddmmyyyy(field):
|
15
|
try:
|
16
|
return parse_date_ddmmyyyy(str(field))
|
17
|
except:
|
18
|
pass
|
19
|
|
20
|
def setter_date_yymmdd(field):
|
21
|
try:
|
22
|
return parse_date_yymmdd(str(field))
|
23
|
except:
|
24
|
pass
|
25
|
|
26
|
def setter_periode(start, end):
|
27
|
try:
|
28
|
return parse_date_ddmmyyyy(str(start)), parse_date_ddmmyyyy(str(end))
|
29
|
except:
|
30
|
pass
|
31
|
|
32
|
if settings.CV2PARSER:
|
33
|
import codecs
|
34
|
import json
|
35
|
from cv2parser import cvitale
|
36
|
|
37
|
def parse(filename):
|
38
|
f = codecs.open("calebasse/tables.json", 'r',
|
39
|
encoding='ISO-8859-1')
|
40
|
tables = json.loads(f.read())
|
41
|
cv = cvitale.parse(filename)
|
42
|
if cv.tech.finValidite:
|
43
|
cv.tech.finValidite = setter_date_ddmmyyyy(cv.tech.finValidite)
|
44
|
for beneficiaire in cv.listeBenef.get_element():
|
45
|
"""
|
46
|
ident
|
47
|
"""
|
48
|
beneficiaire.ident.naissance.date = \
|
49
|
setter_date_ddmmyyyy(beneficiaire.ident.naissance.date)
|
50
|
beneficiaire.ident.naissance.dateEnCarte = \
|
51
|
setter_date_yymmdd(beneficiaire.ident.naissance.dateEnCarte)
|
52
|
beneficiaire.ident.dateCertification = \
|
53
|
setter_date_ddmmyyyy(beneficiaire.ident.dateCertification)
|
54
|
|
55
|
"""
|
56
|
amo
|
57
|
"""
|
58
|
if beneficiaire.amo.listePeriodesDroits and beneficiaire.amo.listePeriodesDroits.get_element():
|
59
|
for p in beneficiaire.amo.listePeriodesDroits.get_element():
|
60
|
if p.debut and p.fin:
|
61
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
62
|
|
63
|
if beneficiaire.amo.service and \
|
64
|
beneficiaire.amo.service.periodeService:
|
65
|
p = beneficiaire.amo.service.periodeService
|
66
|
if p.debut and p.fin:
|
67
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
68
|
beneficiaire.amo.qualBenef = \
|
69
|
tables['TABLE_QUALITE'][str(beneficiaire.amo.qualBenef)]
|
70
|
if beneficiaire.amo.infoCompl:
|
71
|
beneficiaire.amo.infoCompl = \
|
72
|
tables['TABLE_DIVERS'][str(beneficiaire.amo.infoCompl)]
|
73
|
if beneficiaire.amo.service and beneficiaire.amo.service.codeService:
|
74
|
beneficiaire.amo.service.codeService = \
|
75
|
tables['TABLE_SERVAMO'][str(beneficiaire.amo.service.codeService)]
|
76
|
"""
|
77
|
mutuelle
|
78
|
"""
|
79
|
if beneficiaire.mutuelle and beneficiaire.mutuelle.listePeriodes:
|
80
|
for p in beneficiaire.mutuelle.listePeriodes.get_element():
|
81
|
if p.debut and p.fin:
|
82
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
83
|
if beneficiaire.mutuelle and beneficiaire.mutuelle.services \
|
84
|
and beneficiaire.mutuelle.services.typeService:
|
85
|
beneficiaire.mutuelle.services.typeService = \
|
86
|
tables['TABLE_SERVMUTAMC'][str(beneficiaire.mutuelle.services.typeService)]
|
87
|
"""
|
88
|
amc
|
89
|
"""
|
90
|
if beneficiaire.amc and beneficiaire.amc.validiteDonnees:
|
91
|
p = beneficiaire.amc.validiteDonnees
|
92
|
if p.debut and p.fin:
|
93
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
94
|
"""
|
95
|
cmu
|
96
|
"""
|
97
|
if beneficiaire.cmu and beneficiaire.cmu.periode:
|
98
|
p = beneficiaire.cmu.periode
|
99
|
if p.debut and p.fin:
|
100
|
p.debut, p.fin = setter_periode(p.debut, p.fin)
|
101
|
|
102
|
f.close()
|
103
|
return cv
|