return null;
int moltiplicatore = 1;
List<Spesa> spese = finanziamento.getSpese();
SpesaTotale spesaTotale = new SpesaTotale();
boolean calcDatiFin=false;
boolean speseAnticipoFinanziate=false;
if (spese != null){
for(int i = 0 ; i < spese.size() ; i ++ ){
if(spese.get(i)!=null && spese.get(i).getFlagFinanziata()!=null &&
spese.get(i).getFlagFinanziata().equals("S")){
calcDatiFin=true;
if(spese.get(i).getFlagNoTabelle().equals("S")){
spesaTotale.setImporto( spesaTotale.getImporto() + spese.get(i).getImporto());
}else{
if(finanziamento.isFlagVisualizzaCosti() && !finanziamento.isFlagEscludiCosti()){
if( finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.ASSICURAZIONE_RISCHIO.value()) ||
finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.ASSICURAZIONE_CPI.value()) ||
finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.ASSICURAZIONE_SOLO_VITA.value())||
finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.ASSICURAZIONE_INCENDIO.value())
){
calcDatiFin=false;
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.FINANZIATO.value())){
spesaTotale.setPercentualeFinanziato(spesaTotale.getPercentualeFinanziato() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.INTERESSI.value())){
spesaTotale.setPercentualeInteressi(spesaTotale.getPercentualeInteressi() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.MONTANTE.value())){
spesaTotale.setPercentualeMontante(spesaTotale.getPercentualeMontante() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.RICHIESTO.value())){
spesaTotale.setPercentualeRichiesto(spesaTotale.getPercentualeRichiesto() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getImportoFisso()!=null && finanziamento.getSpese().get(i).getImportoFisso() > 0d){
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else{
calcDatiFin=true;
}
}
if( finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.PROVVIGIONI_PASSIVE.value()) ||
finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.RESIDUO_COMMISSIONI.value()) ||
finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.COMMISSIONI_BANCA.value())
){
calcDatiFin=false;
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.FINANZIATO.value())){
spesaTotale.setPercentualeFinanziato(spesaTotale.getPercentualeFinanziato() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.INTERESSI.value())){
spesaTotale.setPercentualeInteressi(spesaTotale.getPercentualeInteressi() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.MONTANTE.value())){
spesaTotale.setPercentualeMontante(spesaTotale.getPercentualeMontante() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.RICHIESTO.value())){
spesaTotale.setPercentualeRichiesto(spesaTotale.getPercentualeRichiesto() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.DELIBERATO.value())){
spesaTotale.setPercentualeDeliberato(spesaTotale.getPercentualeDeliberato() + finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getImportoFisso()!=null && finanziamento.getSpese().get(i).getImportoFisso() > 0d){
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}else{
calcDatiFin=true;
}
}
if(finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.SPESE_ANTICIPO.value())){
if(finanziamento.getSpese().get(i).getFlagFinanziata().equals("S")) speseAnticipoFinanziate=true;
calcDatiFin=false;
if(finanziamento.getImportoAnticipo()!=null && finanziamento.getImportoAnticipo()>0d){
if(finanziamento.getSpeseAnticipo()==null){
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.ANTICIPO.value())){
finanziamento.setSpeseAnticipo( (finanziamento.getImportoAnticipo() * finanziamento.getSpese().get(i).getPremioPercentuale())+ finanziamento.getSpese().get(i).getImportoFisso());
}else if(finanziamento.getSpese().get(i).getImportoFisso()!=null && finanziamento.getSpese().get(i).getImportoFisso()>0d){
finanziamento.setSpeseAnticipo(finanziamento.getSpese().get(i).getImportoFisso());
}else{
calcDatiFin=true;
}
}
}
}
}
if(calcDatiFin){
if(finanziamento.getSpese().get(i).getCodiceSpesa().equals(CostantiSpese.SPESE_ANTICIPO.value())){
if(finanziamento.getImportoAnticipo()==0d )continue;
}
if(finanziamento.getSpese().get(i).getFlagMoltiplicatoreRate().equals("S")){
moltiplicatore=finanziamento.getNumeroRate();
}else{
moltiplicatore=1;
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.FINANZIATO.value())){
spesaTotale.setPercentualeFinanziato(spesaTotale.getPercentualeFinanziato() + (finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) );
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.MONTANTE.value())){
spesaTotale.setPercentualeMontante(spesaTotale.getPercentualeMontante() + (finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) );
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.RICHIESTO.value())){
spesaTotale.setPercentualeRichiesto(spesaTotale.getPercentualeRichiesto() + (finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) );
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.DELIBERATO.value())){
spesaTotale.setPercentualeDeliberato(spesaTotale.getPercentualeDeliberato() + (finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) );
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.RATEALE.value())){
if(finanziamento.getTipoRata().equals(TipiPiano.REGOLARE.value())){
spesaTotale.setPercentualeRata(spesaTotale.getPercentualeRata() + (finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) );
}else if(finanziamento.getTipoRata().equals(TipiPiano.VARIABILE.value())){
spesaTotale.setPercentualeRataVariabile(finanziamento.getSpese().get(i).getPremioPercentuale());
spesaTotale.setMoltiplicaNumRateVariabile(moltiplicatore);
}
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.INTERESSI.value())){
spesaTotale.setPercentualeInteressi(spesaTotale.getPercentualeInteressi() + (finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) );
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.FISSO_STANDARD.value())){
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoGlobale());
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.NUMERO_RATA.value())){
spesaTotale.setImporto(spesaTotale.getImporto() + (finanziamento.getSpese().get(i).getImportoUnitario() * finanziamento.getNumeroRate()));
}
if(finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.ANTICIPO.value())){
if(finanziamento.getSpeseAnticipo()==null){
finanziamento.setSpeseAnticipo( (finanziamento.getImportoAnticipo() * finanziamento.getSpese().get(i).getPremioPercentuale() * moltiplicatore) + finanziamento.getSpese().get(i).getImportoFisso());
}
}
if( finanziamento.getSpese().get(i).getBaseSpesa()==null ||
!finanziamento.getSpese().get(i).getBaseSpesa().equals(TipiBaseSpesa.ANTICIPO.value())){
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpese().get(i).getImportoFisso());
}
}
}//fine else notabelle
}
}
if(speseAnticipoFinanziate){
if(finanziamento.getSpeseAnticipo()==null)finanziamento.setSpeseAnticipo(0d);
spesaTotale.setImporto(spesaTotale.getImporto() + finanziamento.getSpeseAnticipo());
}
}
finanziamento.setSpesaTotale(spesaTotale);
return finanziamento;