System.out.println("@@@@CALCOLO IL PIANO PER IL MUTUO<"+numeroMutuo+">");
gestionePraticaDaoTest.deleteMutuo(numeroMutuo);
gestionePraticaDaoTest.deleteVerificaPiano(numeroMutuo);
Mutuo m = gestionePraticaFacade.getMutuo(numeroMutuo);
GruppoDatiFinanziari gdf = m.getGruppoDatiFinanziari().iterator().next();
//MUTUATARI
for ( Legame l : gestionePraticaFacade.getLegamiMutuoPerCodiceRapporto(m, CodiceRapporto.CODICE_RAPPORTO_MUTUATARIO.getValue())){
RowLegame rl = new RowLegame();
rl.setLegame(l);
listaMutuatari.add(rl);
System.out.println("@@@@MUTUATARI : <"+l.getNumeroSoggetto()+">");
}
//ASSICURAZIONI
listaAssicurazioni = m.getAssicurazioniMutuo();
for ( AssicurazioneMutuo ass : listaAssicurazioni){
if ( "I".equals(ass.getTipoAssicurazione() ) ){
assicurazioneIncendio = ass;
System.out.println("@@@@assicurazioneIncendio : <"+assicurazioneIncendio.getNumeroSoggetto()+">");
}else if ( "V".equals(ass.getTipoAssicurazione() ) ){
assicurazioneVita = ass;
System.out.println("@@@@assicurazioneVita : <"+assicurazioneVita.getNumeroSoggetto()+">");
}else if ( "R".equals(ass.getTipoAssicurazione() ) ){
assicurazioneRischio = ass;
System.out.println("@@@@assicurazioneRischio : <"+assicurazioneRischio.getNumeroSoggetto()+">");
}
}
//SPACCATURA RATE
List<RataPiano> spaccRate = new ArrayList<RataPiano>();
if ( "S".equals(gdf.getCodiceTipoGenerazionepiano()) || "L".equals(gdf.getCodiceTipoGenerazionepiano()) ){
spaccRate = gestionePraticaFacade.getRateStartup(m.getNumeroMutuo());
}
if ( "V".equals(gdf.getCodiceTipoRata()) ){
spaccRate = gestionePraticaFacade.getRateVariabiliPiano(m.getNumeroMutuo());
}
for ( RataPiano rp : spaccRate){
RowRataPiano rowSpaccatura = new RowRataPiano();
rowSpaccatura.setRataPiano(rp);
spaccaturaRate.add(rowSpaccatura);
System.out.println("@@@@spaccarura Rate : SoloInteressi<"+rowSpaccatura.getRataPiano().getSoloInteressi()+"> ImportoRate<" +rowSpaccatura.getRataPiano().getImportoRate()+ "> totaleRate <"+ rowSpaccatura.getRataPiano().getTotaleRate()+">");
}
//*************SPESE*********************
//parametriGenerali.getSpeseAnticipo() = M
listaParametriDatiFinanziariImportiLocali = gestionePraticaFacade.getElencoParametriDatiFinanziariImportiFrontEnd(m.getCodiceProdotto(),m.getDestinazioneFinalita(),m.getRiferimentoMutuoAnticipo(),"M");
for ( CalcolaParametriDatiFinanziariImporti lp : listaParametriDatiFinanziariImportiLocali){
//FORZO IL FATTO CHE TUTTI I VALORI SIANO PRESI DA FRONT END
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagEsc("S");
if ( lp.getCodiceImporto().equals("PROVV") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoProvvigioni());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegProvvigioni());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoProvvigioni());
if ( gdf.getImportoProvvigioni()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoProvvigioni());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("ASSICV") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoAssicurazioneVita());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegAssicurazioneVita());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoAssicurazioneVita());
if ( gdf.getImportoAssicurazioneVita()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoAssicurazioneVita());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("ASSICR") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoAssicurazioneRischio());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegAssicurazioneRischio());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoAssicurazioneRischio());
if ( gdf.getImportoAssicurazioneRischio()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoAssicurazioneRischio());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("ASSIC") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoAssicurazioneIncendio());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegAssicurazioneIncendio());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoAssicurazioneIncendio());
if ( gdf.getImportoAssicurazioneIncendio()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoAssicurazioneIncendio());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("SPESE") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoSpese());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegSpese());
//###E QUESTO??????
//lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gruppoDatiFinanziari.getFlagTrattenuto());
if ( gdf.getImportoSpese()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoSpese());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("SPESEINT") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoSpeseInterne());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegSpeseInterne());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoSpeseInterne());
if ( gdf.getImportoSpeseInterne()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoSpeseInterne());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("COMM") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoCommissioni());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegCommissioni());
//### E QUESTO???
//lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gruppoDatiFinanziari.getFlagTrattenuto);
if ( gdf.getImportoCommissioni()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoCommissioni());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("SPESEANT") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoSpeseAnticipo());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegSpeseAnticipo());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoSpeseAnticipo());
if ( gdf.getImportoSpeseAnticipo()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoSpeseAnticipo());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("SPESEINC") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoSpeseIncasso());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegSpeseIncasso());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoSpeseIncasso());
if ( gdf.getImportoSpeseIncasso()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoSpeseIncasso());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("BOLLOCON") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoImpostaSostitutiva());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegImpostaSostitutiva());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoImpostaSostitutiva());
if ( gdf.getImportoImpostaSostitutiva()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoImpostaSostitutiva());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("COMMGEST") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoCommissioniGestione());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegCommissioniGestione());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoCommissioniGestione());
if ( gdf.getImportoCommissioniGestione()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoCommissioniGestione());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
if ( lp.getCodiceImporto().equals("PERIZIA") ){
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagFinanziato(gdf.getFlagFinanziatoImportoPerizia());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTaeg(gdf.getFlagTaegImportoPerizia());
lp.getUnicoCalcolaParametriDatiFinanziari().setFlagTrattenuto(gdf.getFlagTrattenutoImportoPerizia());
if ( gdf.getImportoPerizia()!=null )
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(gdf.getImportoPerizia());
else
lp.getUnicoCalcolaParametriDatiFinanziari().setImporto(0);
}
}
System.out.println("@@@@getCodiceProdotto : <"+m.getCodiceProdotto()+"> getCodiceCategoria<"+ m.getCodiceCategoria()+">");
System.out.println("@@@@getTipoRata : <"+gdf.getCodiceTipoRata()+"> Generazionepiano<"+ gdf.getCodiceTipoGenerazionepiano()+">");
RowPianoAmmortamento rowPiano = new RowPianoAmmortamento();
rowPiano.setMutuo(m);
//BARBARA Aggiunto controllo perche' alcuni mutui hanno importo richiesto NULL
if (gdf.getImportoRichiesto() != null && gdf.getTassoRendimento() != null) {
if ( gdf.getImportoRichiesto()>0 &&
gdf.getTotaleRate()>0 &&
gdf.getTassoRendimento()>0){
rowPiano.setImportoRataInput(0d);
}else{
rowPiano.setImportoRataInput(gdf.getImportoRataOriginale());
}
} else {
rowPiano.setImportoRataInput(gdf.getImportoRataOriginale());
}
if ( gdf.getFlagArrotondamento() == null ||
"".equals(gdf.getFlagArrotondamento())){
gdf.setFlagArrotondamento("N");
}
rowPiano.setDatiFinanziari(gdf);
if (m.getSegnalatore().size() > 0){
rowPiano.setSegnalatore(m.getSegnalatore().iterator().next());
}
rowPiano.setListaMutuatari(listaMutuatari);
rowPiano.setAssicurazioneVita(assicurazioneVita);
rowPiano.setAssicurazioneIncendio(assicurazioneIncendio);
rowPiano.setAssicurazioneRischio(assicurazioneRischio);
rowPiano.setNumeroPianoAmmortamento(gdf.getNumeroPam());
rowPiano.setTassoRendimentoInput(gdf.getTassoRendimento());
rowPiano.setTassoInteressiInput(gdf.getTassoInteressi());
rowPiano.setSpaccatureRate(spaccaturaRate);
rowPiano.setRicalcolaPiano(true);
rowPiano.setNumeroRateInput(gdf.getTotaleRate());
//rowPiano.setPianoAmmortamento(pianoAmmortamento);
rowPiano.setVisualizzaCosti(true);
rowPiano.setListaParametriDatiFinanziariImportiLocali(listaParametriDatiFinanziariImportiLocali);
//SE RATA VARIABILI FORZO COME PARAMETRO DA PRENDERE IN CONSIDERAZIONE
//IL TASSO NOMINALE
// BARBARA Aggiunto controllo dato che importoRichiesto = 0 e va in errore
// se non ha importo o tasso.
if ("V".equals( gdf.getCodiceTipoRata() ) &&
gdf.getTassoPeriodale()!=null &&
gdf.getTassoPeriodale()>0 &&
gdf.getImportoRichiesto() != null &&
gdf.getImportoRichiesto() > 0){
//gdf.setImportoRichiesto(0d);
gdf.setTassoPeriodale(0d);
}
rowPiano.setTassoNominaleInput(gdf.getTassoPeriodale());
rowPiano.setTassoNominaleDaFrontEnd(true);
rowPiano.setTassoRendimentoInput(gdf.getTassoRendimento());
rowPiano.setTassoRendimentoDaFrontEnd(true);
System.out.println("@@@@CHIAMO pianoAmmortamentoController.calcolaPianoAmmortamento(rowPiano);");
rowPiano = pianoAmmortamentoController.calcolaPianoAmmortamento(rowPiano);
MutuoTest mTest = new MutuoTest();
//mTest.setNumeroMutuo(m.getNumeroMutuo());
BeanUtils.copyProperties(mTest,m );
GruppoDatiFinanziariTest gruppoDatiFinanziariTest = new GruppoDatiFinanziariTest();
BeanUtils.copyProperties(gruppoDatiFinanziariTest, rowPiano.getDatiFinanziari());
gruppoDatiFinanziariTest.setMutuoTest(mTest);
Set<GruppoDatiFinanziariTest> listaGruppoDatiFinanziariTest = new HashSet<GruppoDatiFinanziariTest>();
listaGruppoDatiFinanziariTest.add(gruppoDatiFinanziariTest);
mTest.setGruppoDatiFinanziari(listaGruppoDatiFinanziariTest);
System.out.println("@@@@gruppoDatiFinanziariTest getTaeg <"+gruppoDatiFinanziariTest.getTaeg()+">");
List<PianoAmmortamento> pianoCalcolato = rowPiano.getPianoAmmortamento();
// loggaPiano(pianoCalcolato);
//ASSOCIO AL MUTUO IL PIANO DI AMMORTAMENTO
Set<PianoAmmortamentoTest> pamTest = new HashSet<PianoAmmortamentoTest>();
PianoAmmortamentoTest rataTest = new PianoAmmortamentoTest();
for(PianoAmmortamento rata : pianoCalcolato){
rataTest = new PianoAmmortamentoTest();
BeanUtils.copyProperties(rataTest, rata);
RataIdTest rataIdTest = new RataIdTest();
BeanUtils.copyProperties(rataIdTest, rata.getRataId());
rataTest.setRataIdTest(rataIdTest);
rataTest.setNumeroMutuo(mTest.getNumeroMutuo());
pamTest.add(rataTest);
}
mTest.setPianoAmmortamento(pamTest);
System.out.println("@@@@CHIAMO gestionePraticaDaoTest.insertMutuo(mTest)");
nuovoMutuo = gestionePraticaDaoTest.insertMutuo(mTest);
GruppoDatiFinanziariTest gdfNuovoMutuo = nuovoMutuo.getGruppoDatiFinanziari().iterator().next();
m = null;
m = gestionePraticaFacade.getMutuo(numeroMutuo);
System.out.println("@@@@DIFFERENZE RILEVATE PER IL MUTUO <"+m.getNumeroMutuo()+">");
System.out.println("******************************************************************************************");
if (!(gdfNuovoMutuo.getImportoRataOriginale()).equals(gdf.getImportoRataOriginale() ) &&
!(gdfNuovoMutuo.getImportoRataOriginale().equals(0d) &&
gdf.getImportoRataOriginale()== null )