Examples of RataComparator


Examples of it.pdor.generatorePdA.domain.RataComparator

    Finanziamento fin = GestionePraticaUtility.getFinanziamentoCompleto(null, mutuo, gdf, listaRate);

    fin = generatorePdAFacade.ricalcolaPianoIas(fin, fin.getPam());

    Collections.sort(listaRate, new PianoAmmortamentoComparator("dataScadenzaRata", true));
    Collections.sort(fin.getPam(), new RataComparator("dtScadRata", true));

    for (PianoAmmortamento r : listaRate) {
      for (Rata rpda : fin.getPam()) {
        if (r.getDataScadenzaRata().equals(rpda.getDtScadRata()) && r.getTipoRata().equals(rpda.getTipoRata())) {
          r.setQuotaCapitaleIas(rpda.getQuotaCapitaleIas());
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

      tassoCalcolo = finanziamento.getTassoPeriodale() * 100 * 12;
      tassoCalcolo = tassoCalcolo / finanziamento.getTipoPeriodicita();
      log.debug("TASSO CALCOLO MIO=" + tassoCalcolo);
      //Cerco la prima rata in posizione 1 successiva al movimento
      Rata primaRataSuccessiva = null;
      Collections.sort(finanziamento.getPam(), new RataComparator("dtScadRata", true));
      for (Rata r : finanziamento.getPam()) {
        if ("I".equals(r.getTipoRata())
            && (r.getDtScadRata().equals(
                nuovaMovimento.getDataValuta()) || //modificato il 28/12/2009
                r.getDtScadRata().after(
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

        rata.setPgrRataPrec(0);
        rateDaNonRicalcolare.add(rata);
      }
    }   
   
    Collections.sort(rateDaNonRicalcolare, new RataComparator("dtScadRata", true));
   
    for(int i = 0 ;i < rateDaNonRicalcolare.size() ; i ++ ){
      if(rateDaNonRicalcolare.get(i).getTipoRata().equals("I") &&
         (i+1)!=rateDaNonRicalcolare.get(i).getProgressivoRata()){
        rateDaNonRicalcolare.get(i).setPgrRataPrec(rateDaNonRicalcolare.get(i).getProgressivoRata());
      }else{
        rateDaNonRicalcolare.get(i).setPgrRataPrec(0);
      }
      rateDaNonRicalcolare.get(i).setProgressivoRata(i+1);
    }
   
    Date dataDecorrenza = new Date(finanziamento.getDataDecorrenzaMutuo().getTime());
    dataRimborsoAttuale = DateUtility.setMeseGiorno(dataDecorrenza,
                          finanziamento.getModalitaRimborso().getMesePrimoRimborso(),
                          finanziamento.getModalitaRimborso().getGiornoPrimoRimborso());
    while(!dataRimborsoAttuale.after(finanziamento.getDataRiferimento())){
      dataRimborsoAttuale = DateUtils.addMonths(dataRimborsoAttuale,finanziamento.getModalitaRimborso().getPeriodicitaRimborso());
    }
    Double nuovoInteressiPerIndicizzazione=0d;
    Double nuovoInteressiContrattuali=0d;   
    Double nuovoRimborsoMinimo=0d;
    Double nuovoDebitoResiduo=finanziamento.getImportoFinanziato()-totaleRimborsiEffettuati;
    Double vecchioDebitoResiduo=finanziamento.getImportoFinanziato()-totaleRimborsiEffettuati;
    Double nuovoImportoRata=0d;
    boolean rataInPeriodoInd=false;
   
    String tipoRicalcolo=getMediaOPercentuali(finanziamento);
    if(tipoRicalcolo.equals("M")){
      nuovoRimborsoMinimo=calcoloRimborsoMedio(finanziamento);
    }
   
    log.debug("tipoRicalcolo :"+ tipoRicalcolo);
    log.debug("rimborso minimo :"+ nuovoRimborsoMinimo);
    List<Rata> rateDaAggiungere = new ArrayList<Rata>(0);
    int progRata = rateDaNonRicalcolare==null?0:rateDaNonRicalcolare.size();
    double dietimiInEccesso = 0.0;
   
    Collections.sort(rateDaRicalcolare, new RataComparator("dtScadRata", true));
    for(Rata rataRicalc : rateDaRicalcolare){     
      rataInPeriodoInd=false;
      progRata++;
      log.debug("ciclo in rateDaRicalcolare " + progRata);
      log.debug("dataRimborsoAttuale" + sdf.format(dataRimborsoAttuale) + " dataScadRata " + sdf.format(rataRicalc.getDtScadRata()));
      Rata rata = new Rata();
      rata.setDtScadRata(rataRicalc.getDtScadRata());
      if(dataRimborsoAttuale.before(rataRicalc.getDtScadRata())){
        if(tipoRicalcolo.equals("P")){
          if(finanziamento.isRicalcoloTaegDatiRimbGrad()){
            if("I".equals( finanziamento.getFlagIpoteca())){
              nuovoRimborsoMinimo = calcoloRimborsoPercentuale(finanziamento,dataRimborsoAttuale)
            }else{
              nuovoRimborsoMinimo = 0d;
            }
          }else{
            nuovoRimborsoMinimo = calcoloRimborsoPercentuale(finanziamento,dataRimborsoAttuale);
          }
        }
        log.debug("nuovoDebitoResiduo " + nuovoDebitoResiduo);
        log.debug("nuovoRimborsoMinimo " + nuovoRimborsoMinimo);
        if( (nuovoDebitoResiduo.doubleValue() - (nuovoRimborsoMinimo.doubleValue() + rimborsoAVista.doubleValue()) > 0&& !fineCalcolo){
          if(nuovoRimborsoMinimo+rimborsoAVista>0){           
            log.debug("primo if ");
            rata.setProgressivoRata(progRata);
            rata.setPgrRataPrec(0);
            rata.setDtScadRata(dataRimborsoAttuale);
            rata.setQuotaInteressi(0d);
            rata.setQuotaDietimi(0d);
            rata.setQuotaSpese(0d);
            rata.setQuotaCapitale(nuovoRimborsoMinimo+rimborsoAVista);
            rata.setImpRata(nuovoRimborsoMinimo+rimborsoAVista);
            rata.setCodiceFormaPagamento(rataRicalc.getCodiceFormaPagamento());
            rata.setNumeroIndirizzo(rataRicalc.getNumeroIndirizzo());
           
            //Mi porto dietro i dati del risconto 05/11/2010
            rata.setQuotaRisconto(rataRicalc.getQuotaRisconto());
            rata.setRiscontoCalcolato(rataRicalc.getRiscontoCalcolato());
           
            if(finanziamento.getModalitaRimborso().getTipoGenerazionePiano().equals("I")){
              rata.setCodicePosizioneRata(0);
            }else{
              rata.setCodicePosizioneRata(2);
            }
            nuovoDebitoResiduo -=(nuovoRimborsoMinimo+rimborsoAVista);
           
            rata.setCapitaleResiduo(nuovoDebitoResiduo);
            rata.setTipoRata("C");
           
            rimborsoAVista=0d;
            progRata++;
           
            dataIndicizzazione = dataPrimaIndicizzazione;
            while(dataIndicizzazione.before(dataRimborsoAttuale)){
              dataIndicizzazione = DateUtils.addMonths(dataIndicizzazione, finanziamento.getPeriodicitaIndicizzazione());
            }
            if(!rataRicalc.getDtScadRata().after(dataIndicizzazione) || finanziamento.getTipoPeriodicita() == 1 ){
              rataInPeriodoInd=true;
            }else{
              rataInPeriodoInd=false;
            }
            rateDaAggiungere.add(rata);
          }
         
        }else if(!fineCalcolo){
          if(nuovoDebitoResiduo>1d){
            log.debug("not fine calcolo ");
            rata.setProgressivoRata(progRata);
            rata.setPgrRataPrec(0);
            rata.setDtScadRata(dataRimborsoAttuale);
            rata.setQuotaInteressi(0d);
            rata.setQuotaDietimi(0d);
            rata.setQuotaSpese(0d);
            rata.setQuotaCapitale(nuovoDebitoResiduo-1d);
            rata.setImpRata(nuovoDebitoResiduo-1d);
            rata.setCodiceFormaPagamento(rataRicalc.getCodiceFormaPagamento());
            rata.setNumeroIndirizzo(rataRicalc.getNumeroIndirizzo());
            if(finanziamento.getModalitaRimborso().getTipoGenerazionePiano().equals("I")){
              rata.setCodicePosizioneRata(0);
            }else{
              rata.setCodicePosizioneRata(2);
            }
           
            //Mi porto dietro i dati del risconto 05/11/2010
            rata.setQuotaRisconto(rataRicalc.getQuotaRisconto());
            rata.setRiscontoCalcolato(rataRicalc.getRiscontoCalcolato());
           
            nuovoDebitoResiduo =1d;
            rimborsoAVista=0d;
           
            rata.setCapitaleResiduo(nuovoDebitoResiduo);
            rata.setTipoRata("C");                     
           
            progRata++;
           
            dataIndicizzazione = dataPrimaIndicizzazione;
            while(dataIndicizzazione.before(dataRimborsoAttuale)){
              dataIndicizzazione = DateUtils.addMonths(dataIndicizzazione, finanziamento.getPeriodicitaIndicizzazione());
            }
            if(!rataRicalc.getDtScadRata().after(dataIndicizzazione|| finanziamento.getTipoPeriodicita() == 1){
              rataInPeriodoInd=true;
            }else{
              rataInPeriodoInd=false;
            }
            rateDaAggiungere.add(rata);
          }
          fineCalcolo=true;
        }
        dataRimborsoAttuale= DateUtils.addMonths(dataRimborsoAttuale, finanziamento.getModalitaRimborso().getPeriodicitaRimborso());       
      }
      if(!rataInPeriodoInd){
        nuovoInteressiContrattuali=RoundUtils.round2Cifre(nuovoDebitoResiduo * finanziamento.getTassoPeriodale());
        nuovoInteressiPerIndicizzazione=RoundUtils.round2Cifre(nuovoDebitoResiduo * tassoCalcolo);
      }else{
        nuovoInteressiContrattuali=RoundUtils.round2Cifre(vecchioDebitoResiduo * finanziamento.getTassoPeriodale());
        nuovoInteressiPerIndicizzazione=RoundUtils.round2Cifre(vecchioDebitoResiduo * tassoCalcolo);
      }
      nuovoImportoRata=nuovoInteressiPerIndicizzazione+(rataRicalc.getQuotaDietimi()==null?0:rataRicalc.getQuotaDietimi());

      if(rataRicalc.getProgressivoRata()!=progRata){
        rataRicalc.setPgrRataPrec(rataRicalc.getProgressivoRata());
      }else{
        rataRicalc.setPgrRataPrec(0);
      }
      rataRicalc.setProgressivoRata(progRata);
     
      //20110225: cambiato per ripetere la modifica al calcolo fatta il 18/03/2009 da giangy
      if(rataRicalc.getCodicePosizioneRata() == null || rataRicalc.getCodicePosizioneRata() == 1 ) {
//      if(rataRicalc.getCodicePosizioneRata() == null || rataRicalc.getCodicePosizioneRata() < 2 ) {
       
      //luisa e alberto 20101029
        /*
         * 0 = rata di capitale fittizio
         * 1 = rata di interessi NON indicizzati 
         */
        if(!rataInPeriodoInd){
          rataRicalc.setCapitaleResiduo(nuovoDebitoResiduo);
          vecchioDebitoResiduo = nuovoDebitoResiduo;
        }else{
          rataRicalc.setCapitaleResiduo(vecchioDebitoResiduo);
        }

        if( nuovoInteressiPerIndicizzazione + NumberUtils.checkNull(rataRicalc.getQuotaDietimi()) <0 ){
          nuovoImportoRata = 0.0;
          dietimiInEccesso += nuovoInteressiPerIndicizzazione + NumberUtils.checkNull(rataRicalc.getQuotaDietimi());
          rataRicalc.setQuotaDietimi(-1 * nuovoInteressiPerIndicizzazione);
        }else{
          if( dietimiInEccesso + nuovoInteressiPerIndicizzazione + NumberUtils.checkNull(rataRicalc.getQuotaDietimi()) >=0 ){
            nuovoImportoRata = dietimiInEccesso + nuovoInteressiPerIndicizzazione + NumberUtils.checkNull(rataRicalc.getQuotaDietimi());
            rataRicalc.setQuotaDietimi(NumberUtils.checkNull(rataRicalc.getQuotaDietimi())+dietimiInEccesso);
            dietimiInEccesso = 0.0;
          }else{
            nuovoImportoRata = 0.0;
            dietimiInEccesso += nuovoInteressiPerIndicizzazione + NumberUtils.checkNull(rataRicalc.getQuotaDietimi());
            rataRicalc.setQuotaDietimi(-1 * nuovoInteressiPerIndicizzazione);
          }
        }
       
        rataRicalc.setQuotaCapitale(0d);
        rataRicalc.setQuotaInteressi(nuovoInteressiContrattuali);
        rataRicalc.setQuotaIndicizzo(nuovoInteressiPerIndicizzazione-nuovoInteressiContrattuali);
        rataRicalc.setImpRata(nuovoImportoRata+rataRicalc.getQuotaSpese());
       
        if(nuovoImportoRata <= 0d) {
          //Albe 20110228: perch� aggionra la rata anzich� rataRicalc??? lo cambio...
          rataRicalc.setCodicePosizioneRata(1);
          if(RoundUtils.round2Cifre(rataRicalc.getQuotaInteressi()) <= 0d &&
            RoundUtils.round2Cifre(rataRicalc.getQuotaIndicizzo()) <= 0d) {
            //non caricare rate con importi a zero!
            rataRicalc.setQuotaInteressi(0.01d);
            rataRicalc.setQuotaIndicizzo(-0.01d);
          }
        }
        //la parte qui sotto � SBAGLIATA!!!!!
        /*if((nuovoImportoRata+rataRicalc.getQuotaSpese()) <= 0d ){
          rataRicalc.setCodicePosizioneRata(0);
        }else{
          if(rataRicalc.getCodicePosizioneRata() != null && rataRicalc.getCodicePosizioneRata() == 0){
            rataRicalc.setCodicePosizioneRata(1);
          }
        }*/
      }// else {
        /*
         * 0 = rata di capitale fittizio
         * 2 = rata indicizzata (tipoRata = I)
         * 3 = disposizione (tipoRata = I)
         * 4 = distinta in banca (tipoRata = I)
         * 5 = pagata (tipoRata = I oppure C - I = interessi, C = capitale)
         */
//        if(nuovoImportoRata <= 0d) {
//          rata.setCodicePosizioneRata(0);
//        }
      //}
    }//end ciclo for
   
    Rata ultimaRata = new Rata();
    progRata++;
    ultimaRata.setProgressivoRata(progRata);
    ultimaRata.setPgrRataPrec(0);
    ultimaRata.setDtScadRata(rateDaRicalcolare.get(rateDaRicalcolare.size()-1).getDtScadRata());
    ultimaRata.setQuotaInteressi(0d);
    ultimaRata.setQuotaDietimi(0d);
    ultimaRata.setQuotaCapitale(nuovoDebitoResiduo);
    ultimaRata.setImpRata(nuovoDebitoResiduo);
    ultimaRata.setQuotaSpese(0d);
    ultimaRata.setCapitaleResiduo(0d);
    ultimaRata.setTipoRata("C");
    ultimaRata.setCodiceFormaPagamento(rateDaRicalcolare.get(rateDaRicalcolare.size()-1).getCodiceFormaPagamento());
    ultimaRata.setNumeroIndirizzo(rateDaRicalcolare.get(rateDaRicalcolare.size()-1).getNumeroIndirizzo());
   
    //Mi porto dietro i dati del risconto 05/11/2010
    ultimaRata.setQuotaRisconto(rateDaRicalcolare.get(rateDaRicalcolare.size()-1).getQuotaRisconto());
    ultimaRata.setRiscontoCalcolato(rateDaRicalcolare.get(rateDaRicalcolare.size()-1).getRiscontoCalcolato());
   
    if(finanziamento.getModalitaRimborso().getTipoGenerazionePiano().equals("I")){
      ultimaRata.setCodicePosizioneRata(0);
    }
   
    finanziamento.setRateNonRicalcolate(rateDaNonRicalcolare);
   
    rateDaRicalcolare.addAll(rateDaNonRicalcolare);
    rateDaRicalcolare.addAll(rateDaAggiungere);
    rateDaRicalcolare.add(ultimaRata);
   
    Collections.sort(rateDaRicalcolare, new RataComparator("dtScadRata", true));
   
    finanziamento.setPam(rateDaRicalcolare);
   
    finanziamento.setRateRicalcolate(new ArrayList<Rata>(rateDaRicalcolare));
    finanziamento.getRateRicalcolate().removeAll(rateDaNonRicalcolare);
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

    log.info("Tracnhe Mutuo Graduato - Dietimi importo = "+totaleDietimi);
   
    rateDaRicalcolare.addAll(rateDaNonRicalcolare);
    rateDaRicalcolare.addAll(rateCapitale);
   
    Collections.sort(rateDaRicalcolare, new RataComparator("dtScadRata", true));
   
    fin.setPam(rateDaRicalcolare);
   
    return fin;
  }
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

 
  @Override
  public Finanziamento ricalcolaPianoAmmortamento(
      Finanziamento finanziamento, MovimentoRimborsoTrad nuovoMovimento) {

    RataComparator rataComparator = new RataComparator("dtScadRata",true);
   
    //Prendo le rate successive alla nuova tranche
    List<Rata> rateDaRicalcolare = new ArrayList<Rata>(0);
    List<Rata> rateDaNonRicalcolare = new ArrayList<Rata>(0);
   
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

  @Override
  public Finanziamento ricalcolaPianoPerStorno(Finanziamento finanziamento,
      MovimentoRimborsoTrad movimentoPda) {

    RataComparator rataComparator = new RataComparator("dtScadRata",true);
   
    //Suddivido le rate in base alla data di addebito dietimi
    //devo ricalcolare tutte le rate successive inclusa rata add dietimi
    List<Rata> rateDaRicalcolare = new ArrayList<Rata>(0);
    List<Rata> rateDaNonRicalcolare = new ArrayList<Rata>(0);
   
//    for(Rata rata : finanziamento.getPam()){     
//      if(rata.getDtScadRata().before(movimentoPda.getDataRataAddDietimi()) ){
//        rateDaNonRicalcolare.add(rata);
//      }else{
//        rateDaRicalcolare.add(rata);
//      }
//    }
    for(Rata rata : finanziamento.getPam()){     
      if(rata.getDtScadRata().after(finanziamento.getDataRiferimento()) ){
        rateDaRicalcolare.add(rata);
      }else{
        rateDaNonRicalcolare.add(rata);
      }
    }
   
    //Rimuovo la data di capitale relativa all'incasso da stornare
    //Ordino discendente in quanto la rata di capitale da stornare � sicuramente l'ultima
    Collections.sort(rateDaNonRicalcolare, new RataComparator("progressivoRata",false));
    Rata rataEliminata = null;
    for( Rata r : rateDaNonRicalcolare ){
      if( r.getDtScadRata().equals(movimentoPda.getDataMovimento())
          && "C".equals(r.getTipoRata())
          && r.getImpRata().doubleValue() == movimentoPda.getImportoMovimento().doubleValue() ){
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

   * @return
   */
  @Override
  public Finanziamento ricalcolaPianoAmmortamentoRegolare(Finanziamento finanziamento, Movimento nuovoMovimento ) {
   
    RataComparator rataComparator = new RataComparator("dtScadRata",true);
   
    //Prendo le rate successive alla nuova tranche
    List<Rata> rateDaRicalcolare = new ArrayList<Rata>(0);
    List<Rata> rateDaNonRicalcolare = new ArrayList<Rata>(0);
   
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

 
  @Override
  public Finanziamento ricalcolaPianoAmmortamento(
      Finanziamento finanziamento, MovimentoRimborsoTrad nuovoMovimento) {
   
    RataComparator rataComparator = new RataComparator("dtScadRata",true);
   
    //Suddivido le rate in da NON ricalcolare e in da ricalcolare
    List<Rata> rateDaRicalcolare = new ArrayList<Rata>(0);
    List<Rata> rateDaNonRicalcolare = new ArrayList<Rata>(0);
   
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

 
  @Override
  public Finanziamento ricalcolaPianoPerStorno(Finanziamento finanziamento,
      MovimentoRimborsoTrad movimentoPda) {
   
    RataComparator rataComparator = new RataComparator("dtScadRata",true);
   
    //Suddivido le rate in base alla data di addebito dietimi
    //devo ricalcolare tutte le rate successive inclusa rata add dietimi
    List<Rata> rateDaRicalcolare = new ArrayList<Rata>(0);
    List<Rata> rateDaNonRicalcolare = new ArrayList<Rata>(0);
   
//    Rata rataAddDietimi = null;
   
    for(Rata rata : finanziamento.getPam()){     
      if(rata.getDtScadRata().before(movimentoPda.getDataRataAddDietimi()) ){
        rateDaNonRicalcolare.add(rata);
      }else{
        rateDaRicalcolare.add(rata);
      }
    }
   
    //---------------------------------------------------------------
    //Rimuovo la data di capitale relativa all'incasso da stornare
    //Ordino discendente in quanto la rata di capitale da stornare � sicuramente l'ultima
    Collections.sort(rateDaNonRicalcolare, new RataComparator("progressivoRata",false));
    Rata rataEliminata = null;
    for( Rata r : rateDaNonRicalcolare ){
      if( r.getDtScadRata().equals(movimentoPda.getDataMovimento())
          && "C".equals(r.getTipoRata())
          && r.getImpRata().doubleValue() == movimentoPda.getImportoMovimento().doubleValue() ){
View Full Code Here

Examples of it.pdor.generatorePdA.domain.RataComparator

    Date dataScadenzaSpese = null;
   
    if( sIncasso != null && "A".equals(sIncasso.getBaseSpesa()) ){
      //Se le spese sono su base annuale recupero la rata di addebito spese
      //Ordino descending
      RataComparator rc = new RataComparator("dtScadRata", false);
      Collections.sort(rateDaNonRicalcolare, rc);
      for(Rata r : rateDaNonRicalcolare ){
        if( r.getQuotaSpese().doubleValue() != 0.0 ){
          //Essendo le spese su base annuale a partire dal basso prendo la scadenza
          //della rata che ha le spese valorizzate
          dataScadenzaSpese = r.getDtScadRata();
          break;
        }
      }
      rc.setAscending(true);
      //Riordino in ascending
      Collections.sort(rateDaNonRicalcolare, rc);
    }
   
    //Commissioni di gestione
    Spesa sGest = null;
    if( fin.getSpese() != null )
      for(Spesa s : fin.getSpese() )
        if( CostantiSpese.COMMISSIONI_DI_GESTIONE.value().equals(s.getCodiceSpesa()) )
          sGest = s;
   
    Date dataScadenzaCommissioni = null;
   
    if( sGest != null && "A".equals(sGest.getBaseSpesa()) ){
      //Se le spese sono su base annuale recupero la rata di addebito spese
      //Ordino descending
      RataComparator rc = new RataComparator("dtScadRata", false);
      Collections.sort(rateDaNonRicalcolare, rc);
      for(Rata r : rateDaNonRicalcolare ){
        if( r.getQuotaSpese().doubleValue() != 0.0 ){
          //Essendo le spese su base annuale a partire dal basso prendo la scadenza
          //della rata che ha le spese valorizzate
          dataScadenzaCommissioni = r.getDtScadRata();
          break;
        }
      }
      rc.setAscending(true);
      //Riordino in ascending
      Collections.sort(rateDaNonRicalcolare, rc);
    }
   
   
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.