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
|
//permet de charger un retour quotidien vers un repertoire
public boolean chargerRetourQuotidien(RetourQuotidien retourQuotidien,String repDest){
Session currentSession = HibernateUtil.currentSession();
Transaction tx = currentSession.beginTransaction();
preparerStructureFichiersSorti(retourQuotidien,repDest);
Set<DetailRetourQuotidien> details = retourQuotidien.getDetailRetourQuotidiens();
Iterator<DetailRetourQuotidien> iter = details.iterator();
DetailRetourQuotidien detailRetourQuotidien = new DetailRetourQuotidien();
FichierEnvoiDAO fichierEnvoiDAO = new FichierEnvoiDAO();
RetourQuotidienDAO retourQuotidien_DAO = new RetourQuotidienDAO();
boolean anomalie = false;
GestionFichierEnvoi gestionFichierEnvoi = new GestionFichierEnvoi();
lstFichierEnvoiNonCloture = gestionFichierEnvoi.getLstFichierEnvoiNonCloture();
DetailFichierEnvoi detailFichierEnvoi = null;
HashMap<FichierEnvoi,ArrayList<Link_LigneDetailEnvoiPrLigneRetourQuotidien>>
concordanceLigneRetQuEtLigneEnvoi = new HashMap<FichierEnvoi, ArrayList<Link_LigneDetailEnvoiPrLigneRetourQuotidien>>();
while(iter.hasNext()){
detailRetourQuotidien = iter.next();
//System.out.println("retour-quotidien:"+detailRetourQuotidien.getCode_prestation()+ " " +detailRetourQuotidien.getNumFacture() + " "+detailRetourQuotidien.getRefFichier());
FichierEnvoi fichierEnvoi = ifLigneRetourQuotidienAppartientA1FichierEnvoi(detailRetourQuotidien);
if(fichierEnvoi!=null){
//System.out.println("se trouve dans "+fichierEnvoi.getReferenceFichier());
detailFichierEnvoi = getLigneDetailEnvoiPrLigneRetourQuotidien(fichierEnvoi,detailRetourQuotidien);
//System.out.println("ligne:"+detailFichierEnvoi.getNumFacture());
if(detailFichierEnvoi.getCode_statut_retour_impaye()==DetailFichierEnvoi.STATUT_RETOUR_IMPAYE_INSTANCE
&&
detailFichierEnvoi.getCode_statut_retour_paye()==DetailFichierEnvoi.STATUT_RETOUR_PAYE_INSTANCE)
{
detailFichierEnvoi.setCode_statut_retour_paye(DetailFichierEnvoi.STATUT_RETOUR_PAYE_OK);
detailFichierEnvoi.setMontantRetour(detailRetourQuotidien.getMontantReglement());
fichierEnvoiDAO.updateFichierEnvoi(fichierEnvoi);
ajouterConcordance(concordanceLigneRetQuEtLigneEnvoi, fichierEnvoi, detailFichierEnvoi, detailRetourQuotidien);
}
else
{
//Ecrire anomalie ligne déja regle
try {
FileWriter fw=new FileWriter(cheminRetourQuotidien+"\\Anomalies\\LigneDejaRegle.txt",true);
BufferedWriter bf= new BufferedWriter (fw);
bf.write(detailRetourQuotidien.getLigne()+"\r\n");
bf.close();
} catch (Exception e) {
System.out.println("ici "+ e.toString());
}
iter.remove();
retourQuotidien.getDetailRetourQuotidiens().remove(detailRetourQuotidien);
anomalie = true;
}
}
else
{
//ecrire anomalie fichier non charge
try {
FileWriter fw=new FileWriter(cheminRetourQuotidien+"\\Anomalies\\LigneFichierInexistant.txt",true);
BufferedWriter bf= new BufferedWriter (fw);
bf.write(detailRetourQuotidien.getLigne()+"\r\n");
bf.close();
} catch (Exception e) {
System.out.println("ici "+ e.toString());
}
iter.remove();
retourQuotidien.getDetailRetourQuotidiens().remove(detailRetourQuotidien);
anomalie = true;
}
}
if(controlerUnicite(retourQuotidien.getDateRetour())==true)
retourQuotidien_DAO.saveRetourQuotidien(retourQuotidien);
else
retourQuotidien_DAO.saveDetailRetourQuotidien(retourQuotidien);
generationEncaissement(concordanceLigneRetQuEtLigneEnvoi);
tx.commit();
return anomalie;
} |