diff --git a/calebasse/cv2helper.py b/calebasse/cv2helper.py
new file mode 100644
index 00000000..70410466
--- /dev/null
+++ b/calebasse/cv2helper.py
@@ -0,0 +1,76 @@
+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
diff --git a/calebasse/dossiers/templates/dossiers/cv2.html b/calebasse/dossiers/templates/dossiers/cv2.html
index 4224a357..d9d4bd73 100644
--- a/calebasse/dossiers/templates/dossiers/cv2.html
+++ b/calebasse/dossiers/templates/dossiers/cv2.html
@@ -13,14 +13,18 @@
{{ beneficiaire.ident.nomUsuel }}
{% if beneficiaire.ident.nomPatronymique %} {{ beneficiaire.ident.nomPatronymique }}{% endif %}
{{ beneficiaire.ident.prenomUsuel }}
- {% if beneficiaire.ident.naissance.dateEnCarte %}{{ beneficiaire.ident.naissance.dateEnCarte }}{% else %}{{ beneficiaire.ident.naissance.date }}{% endif %}
+ {% if beneficiaire.ident.naissance.dateEnCarte %}{{ beneficiaire.ident.naissance.dateEnCarte|date:"SHORT_DATE_FORMAT" }}{% else %}{{ beneficiaire.ident.naissance.date|date:"SHORT_DATE_FORMAT" }}{% endif %}
{{ beneficiaire.ident.nir }}
{% if beneficiaire.ident.adresse %}
{% if beneficiaire.ident.adresse.ligne1 %}- {{ beneficiaire.ident.adresse.ligne1 }}
{% endif %}
+ {% if beneficiaire.ident.adresse.ligne2 %}- {{ beneficiaire.ident.adresse.ligne2 }}
{% endif %}
+ {% if beneficiaire.ident.adresse.ligne3 %}- {{ beneficiaire.ident.adresse.ligne3 }}
{% endif %}
+ {% if beneficiaire.ident.adresse.ligne4 %}- {{ beneficiaire.ident.adresse.ligne4 }}
{% endif %}
+ {% if beneficiaire.ident.adresse.ligne5 %}- {{ beneficiaire.ident.adresse.ligne5 }}
{% endif %}
{% endif %}
{{ beneficiaire.ident.rangDeNaissance }}
{% if beneficiaire.ident.nirCertifie %} {{ beneficiaire.ident.nirCertifie }}{% endif %}
- {% if beneficiaire.ident.dateCertification %} {{ beneficiaire.ident.dateCertification }}{% endif %}
+ {% if beneficiaire.ident.dateCertification %} {{ beneficiaire.ident.dateCertification|date:"SHORT_DATE_FORMAT" }}{% endif %}
{% else %}
Problème de lecture du bloc identification.
{% endif %}
@@ -37,10 +41,10 @@
{% if beneficiaire.amo.infoCompl %} {{ beneficiaire.amo.infoCompl }}{% endif %}
{{ beneficiaire.amo.centreCarte }}
{% if beneficiaire.amo.listePeriodesDroits %}
- {% for element in beneficiaire.amo.listePeriodesDroits.get_element %}- {{ element.debut }} - {{ element.fin }}
{% endfor %}
+ {% for element in beneficiaire.amo.listePeriodesDroits.get_element %}- {{ element.debut|date:"SHORT_DATE_FORMAT" }} - {{ element.fin|date:"SHORT_DATE_FORMAT" }}
{% endfor %}
{% endif %}
{{ beneficiaire.amo.medecinTraitant }}
- {% if beneficiaire.amo.service %} {{ beneficiaire.amo.codeService }} - {{ beneficiaire.amo.periodeService.debut }} - {{ beneficiaire.amo.periodeService.fin }}{% endif %}
+ {% if beneficiaire.amo.service %} {{ beneficiaire.amo.codeService }} - {{ beneficiaire.amo.periodeService.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.amo.periodeService.fin|date:"SHORT_DATE_FORMAT" }}{% endif %}
{% else %}
Problème de lecture du bloc amo.
{% endif %}
@@ -54,7 +58,7 @@
{% if beneficiaire.mutuelle.numIdent %} {{ beneficiaire.mutuelle.numIdent }}{% endif %}
{% if beneficiaire.mutuelle.services %} {{ beneficiaire.mutuelle.services.typeService }} - {{ beneficiaire.mutuelle.services.servicesAssocies }}{% endif %}
{% if beneficiaire.mutuelle.listePeriodes %}
- {% for element in beneficiaire.mutuelle.listePeriodes.get_element %}- {{ element.debut }} - {{ element.fin }}
{% endfor %}
+ {% for element in beneficiaire.mutuelle.listePeriodes.get_element %}- {{ element.debut|date:"SHORT_DATE_FORMAT" }} - {{ element.fin|date:"SHORT_DATE_FORMAT" }}
{% endfor %}
{% endif %}
{% if beneficiaire.mutuelle.indicTraitement %} {{ beneficiaire.mutuelle.indicTraitement }}{% endif %}
{% if beneficiaire.mutuelle.codeSTS %} {{ beneficiaire.mutuelle.codeSTS }}{% endif %}
@@ -68,7 +72,7 @@
{% if beneficiaire.amc.numComplEDI %} {{ beneficiaire.amc.numCompleEDI }}{% endif %}
{% if beneficiaire.amc.numAdherent %} {{ beneficiaire.amc.numAdherent }}{% endif %}
{% if beneficiaire.amc.indicTraitement %} {{ beneficiaire.amc.indicTraitement }}{% endif %}
- {% if beneficiaire.amc.validiteDonnees %} {{ beneficiaire.amc.validiteDonnees.debut }} - {{ beneficiaire.amc.validiteDonnees.fin }}{% endif %}
+ {% if beneficiaire.amc.validiteDonnees %} {{ beneficiaire.amc.validiteDonnees.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.amc.validiteDonnees.fin|date:"SHORT_DATE_FORMAT" }}{% endif %}
{% if beneficiaire.amc.codeRoutageFlux %} {{ beneficiaire.amc.codeRoutageFlux }}{% endif %}
{% if beneficiaire.amc.identHote %} {{ beneficiaire.amc.identHote }}{% endif %}
{% if beneficiaire.amc.nomDomaine %} {{ beneficiaire.amc.nomDomaine }}{% endif %}
@@ -81,7 +85,7 @@
{% if beneficiaire.cmu %}
Couverture Maladie Universelle
{% if beneficiaire.cmu.typeCMU %} {{ beneficiaire.cmu.typeCMU }}{% endif %}
- {% if beneficiaire.cmu.periode %} {{ beneficiaire.cmu.periode.debut }} - {{ beneficiaire.cmu.periode.fin }}{% endif %}
+ {% if beneficiaire.cmu.periode %} {{ beneficiaire.cmu.periode.debut|date:"SHORT_DATE_FORMAT" }} - {{ beneficiaire.cmu.periode.fin|date:"SHORT_DATE_FORMAT" }}{% endif %}
{% endif %}
diff --git a/calebasse/dossiers/views.py b/calebasse/dossiers/views.py
index 2a150f5b..a47505a0 100644
--- a/calebasse/dossiers/views.py
+++ b/calebasse/dossiers/views.py
@@ -37,13 +37,12 @@ from calebasse.facturation.invoice_header import render_to_pdf_file
from calebasse.decorators import validator_only
+from calebasse import cv2helper
+
from ..utils import get_service_setting, is_validator, get_last_file
logger = logging.getLogger('calebasse.dossiers')
-if settings.CV2PARSER:
- from cv2parser import cvitale
-
class NewPatientRecordView(cbv.FormView, cbv.ServiceViewMixin):
form_class = forms.NewPatientRecordForm
template_name = 'dossiers/patientrecord_new.html'
@@ -378,7 +377,7 @@ class ReadCV2View(cbv.FormView):
prefix=reader_identifier, suffix='.xml')
ctx['cv'] = None
try:
- ctx['cv'] = cvitale.parse(filename)
+ ctx['cv'] = cv2helper.parse(filename)
except Exception, e:
logger.warning("%s" % str(e))
try: