1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
public Message validate(List listeValidation) throws DatabaseFailureException {
int statut = 0;
String cleDci = null;
Iterator iter = null;
Map mapDci = new HashMap();
Message message = null;
// EVOL MJE --
List listeDciMed = new ArrayList();
List listeDciMedAnciens = new ArrayList();
String EAN13_NULL = "";
String flag = "";
Medicament medicament = null;
//Medicament medicamentOld = null;
Iterator iterator = listeValidation.iterator();
if (ConstantesGestion.VALIDE == statut && !mapDci.isEmpty()) {
// Mise à jour des taux des médicaments
List listMedicament = this.dciDAO.listMedicamentByListDci(mapDci.keySet());
if (listMedicament != null) {
Map mapMed = new HashMap();
Date dateFinRbst = null;
//
CompositionDci compositionDci = null;
Dci dci = null;
//
iterator = listMedicament.iterator();
while (iterator.hasNext()) {
medicament = (Medicament) iterator.next();
MAJmedicament(medicament);
this.dciDAO.save(medicament);
if (!mapMed.containsKey(medicament.getId())) {
mapMed.put(medicament.getId(), null);
dateFinRbst = null;
iter = medicament.getCompositionDciSet().iterator();
while (iter.hasNext()) {
compositionDci = (CompositionDci) iter.next();
dci = compositionDci.getId().getDci();
String dosage = "";
if (dci.getDosage() != null) {
dosage = dci.getDosage();
}
String unite = "";
if (dci.getUniteDosage() != null) {
unite = dci.getUniteDosage().getId().toString();
}
cleDci = dci.getDciDenomination().getId()+"-"+dosage+"-"+unite+"-"+dci.getFormeAdmin().getId();
if (mapDci.containsKey(cleDci)) {
if (dci.getDateFinRbst() != null && (dateFinRbst == null || dateFinRbst.after(dci.getDateFinRbst()))) {
dateFinRbst = dci.getDateFinRbst();
}
DciBean dciBean = (DciBean) mapDci.get(cleDci);
compositionDci.getId().getDci().setId(dciBean.getId());
this.dciDAO.saveOrUpdate(compositionDci);
}
}
// calcul du taux de remboursement.
if (!medicament.getTauxRbstForce().booleanValue()) {
if (isRemboursable(medicament)) {
//if (ConstantesGestion.TAUX_REMBOURSEMENT_0.equals(medicament.getTauxRemboursement().getId().toString())) {
TauxRemboursement tauxRemboursement = new TauxRemboursement();
//medicament.setIdTauxRemboursement(dci.getTauxRemboursement().getId().toString());
tauxRemboursement.setId(new Integer(dci.getTauxRemboursement().getId().toString()));
tauxRemboursement.setLibelle(dci.getTauxRemboursement().getLibelle());
medicament.setTauxRemboursement(tauxRemboursement);
//medicament.setTauxRemboursement(tauxRemboursement);
medicament.setDateFinRbstPPM(null);
medicament.setDateFinRbstPHM(null);
medicament.setMotifFinRbstPPM(null);
medicament.setMotifFinRbstPHM(null);
this.dciDAO.saveOrUpdate(medicament);
//this.majMedicament(medicament, listeDciMed, message);
//}
} else {
if (medicament.getDateFinRbstPPM() == null && medicament.getDateFinRbstPHM() == null) {
TauxRemboursement tauxRemboursement = new TauxRemboursement();
//tauxRemboursement.setId(new Integer(ConstantesGestion.TAUX_REMBOURSEMENT_0));
//medicament.setTauxRemboursement(tauxRemboursement);
tauxRemboursement.setId(new Integer(dci.getTauxRemboursement().getId().toString()));
tauxRemboursement.setLibelle(dci.getTauxRemboursement().getLibelle());
medicament.setTauxRemboursement(tauxRemboursement);
medicament.setDateFinRbstPHM(dateFinRbst);
medicament.setDateFinRbstPPM(dateFinRbst);
MotifFinRemboursement motifFinRbst = new MotifFinRemboursement();
motifFinRbst.setId(Integer.valueOf(ConstantesGestion.MOTIF_FIN_RBST_DCI_NON_REMBOURSABLE));
medicament.setMotifFinRbstPHM(motifFinRbst);
medicament.setMotifFinRbstPPM(motifFinRbst);
//AZE
this.dciDAO.saveOrUpdate(medicament);
//this.majMedicament(medicament, listeDciMed, message);
}
}
}
// calcul du taux d'exoneration.
if (isExonere(medicament)) {
if (ConstantesGestion.TAUX_EXONERATION_0.equals(medicament.getTauxExoneration().getId().toString())) {
TauxExoneration tauxExoneration = new TauxExoneration();
tauxExoneration.setId(new Integer(ConstantesGestion.TAUX_EXONERATION));
medicament.setTauxExoneration(tauxExoneration);
this.dciDAO.saveOrUpdate(medicament);
}
}
else if (!ConstantesGestion.TAUX_EXONERATION_0.equals(medicament.getTauxExoneration().getId().toString())) {
TauxExoneration tauxExoneration = new TauxExoneration();
tauxExoneration.setId(new Integer(ConstantesGestion.TAUX_EXONERATION_0));
medicament.setTauxExoneration(tauxExoneration);
//
this.dciDAO.saveOrUpdate(medicament);
}
}
}
}
}
return message;
} |
Partager