Package it.pdor.generatorePdA.domain

Examples of it.pdor.generatorePdA.domain.Finanziamento


  public static Finanziamento getFinanziamentoCompleto(Date dataRiferimento, Mutuo mutuo,
      GruppoDatiFinanziari gdf, List<PianoAmmortamento> oldPiano){
   
    SimpleDateFormat sdf_mese = new SimpleDateFormat("MM");
   
    Finanziamento fin = new Finanziamento();
   
    fin.setDataRiferimento(dataRiferimento);
    fin.setDataDecorrenzaMutuo(mutuo.getDataDecorrenza());
    fin.setDataPrimaIndicizzazione(gdf.getDataPrimaIndicizzazione());
    if( gdf.getDataPrimaIndicizzazione() == null )
      fin.setMesePrimoPeriodoIndicizzazione(null);
    else
      fin.setMesePrimoPeriodoIndicizzazione(Integer.valueOf(sdf_mese.format(gdf.getDataPrimaIndicizzazione())));
//    fin.setPeriodicitaIndicizzazione(6); //Non so bene dove prendere sto dato
    fin.setTassoInteresse(gdf.getTassoPeriodale().doubleValue()*12/gdf.getCodicePeriodicita().intValue()/100);//gdf.getTassoInteressi());
    fin.setTassoPeriodale(gdf.getTassoPeriodale()/100);
    fin.setTipoPeriodicita(gdf.getCodicePeriodicita());
    fin.setTassoStorico(gdf.getValoreTassoStorico());
    fin.setTipoGenerazionePiano(gdf.getCodiceTipoGenerazionepiano());
    fin.setTipoRata(gdf.getCodiceTipoRata());
    fin.setNumeroRate(gdf.getTotaleRate());
    fin.setDataPrimaScadenza(gdf.getDataScadenzaPrimaRata());
    fin.setDataScadenzaPrimaRata(gdf.getDataScadenzaPrimaRata());
    fin.setFlagFineMese(gdf.getFlagFineMese());
    fin.setImportoRichiesto(gdf.getImportoRichiesto());
    fin.setImportoRataSoloInteressi(0.00);
    fin.setFlagArrotondamento(gdf.getFlagArrotondamento());
    fin.setImportoDeliberato(gdf.getImportoDeliberato());
    fin.setFlagEscludiCosti(false);
    fin.setFlagVisualizzaCosti(true);
   
    fin.setTipoTasso(gdf.getCodiceTipoTasso());
    fin.setImportoRataNominale(gdf.getImportoRataOriginale());
    fin.setMaxNumeroRateMutuoCostante(gdf.getNumeroMaxRateAggiuntive());
   
    fin.setImportoRataRendimento(null);
    fin.setImportoFinanziato(gdf.getImportoFinanziato());
    fin.setTassoRendimento(NumberUtils.checkNull(gdf.getTassoRendimento())/100);
    fin.setImportoCommissioniInterne(gdf.getImportoSpeseInterne());
    fin.setCodProdotto(mutuo.getCodiceProdotto());
   
    fin.setDataUltimaIndicizzazione(gdf.getDataUltimaIndicizzazione());
   
    fin.setTaeg(gdf.getTaeg());
    fin.setTaegLordo(gdf.getTaegLordo());
   
    //TODO: controllare se ci sono tutte le spese
    List<Spesa> spese = new  ArrayList<Spesa>(0);

//    {
//      Spesa s = new Spesa();
//      s.setCodiceSpesa(CostantiSpese.SPESE_INCASSO.value());
//      s.setFlagFinanziata(gdf.getFlagFinanziatoSpeseIncasso());
//      s.setFlagTrattenuta(gdf.getFlagTrattenutoSpeseIncasso());
//      s.setFlagTaeg(gdf.getFlagTaegSpeseIncasso());
////      s.setFlagTaegLordo("S");
//      s.setImporto(gdf.getImportoSpeseIncasso());
////      s.setImportoFisso(0.00);
////      s.setFlagNoTabelle("N");
//      s.setBaseSpesa(TipiBaseSpesa.FINANZIATO.value());
////      s.setPremioPercentuale(gdf.getImportoSpeseIncasso()/100);
//      spese.add(s);
//    }
   
    fin.setSpese(spese);
   
    List<Rata> pam = new ArrayList<Rata>(0);
    Collections.sort(oldPiano, new PianoAmmortamentoComparator("rataId.progressivoRata",true));
    for(PianoAmmortamento pa : oldPiano ){
      Rata r = GestionePraticaUtility.rataPamToRata(pa);
      pam.add(r);
    }
   
    fin.setPam(pam);
   
    return fin;
  }
View Full Code Here


      GruppoDatiFinanziari gdf, List<PianoAmmortamento> oldPiano, Movimento tranche ){
   
    SimpleDateFormat sdf_mese = new SimpleDateFormat("MM");
   
   
    Finanziamento fin = new Finanziamento();
   
    fin.setDataRiferimento(tranche.getDataMovimento());
    if(gdf.getDataTrasformazione() != null) fin.setDataDecorrenzaMutuo(gdf.getDataTrasformazione());
    else fin.setDataDecorrenzaMutuo(mutuo.getDataDecorrenza());
    fin.setDataPrimaIndicizzazione(gdf.getDataPrimaIndicizzazione());
    if( gdf.getDataPrimaIndicizzazione() == null )
      fin.setMesePrimoPeriodoIndicizzazione(null);
    else
      fin.setMesePrimoPeriodoIndicizzazione(Integer.valueOf(sdf_mese.format(gdf.getDataPrimaIndicizzazione())));
//    fin.setPeriodicitaIndicizzazione(6); //Non so bene dove prendere sto dato
    fin.setTassoInteresse(gdf.getTassoPeriodale().doubleValue()*12/gdf.getCodicePeriodicita().intValue()/100);//gdf.getTassoInteressi());
    fin.setTassoPeriodale(gdf.getTassoPeriodale()/100);
    fin.setTipoPeriodicita(gdf.getCodicePeriodicita());
    fin.setTassoStorico(gdf.getValoreTassoStorico());
    fin.setTipoGenerazionePiano(gdf.getCodiceTipoGenerazionepiano());
    fin.setTipoRata(gdf.getCodiceTipoRata());
    fin.setNumeroRate(gdf.getTotaleRate());
    fin.setDataPrimaScadenza(gdf.getDataScadenzaPrimaRata());
    fin.setDataScadenzaPrimaRata(gdf.getDataScadenzaPrimaRata());
    fin.setFlagFineMese(gdf.getFlagFineMese());
    fin.setImportoRichiesto(gdf.getImportoRichiesto());
    fin.setImportoRataSoloInteressi(0.00);
    fin.setFlagArrotondamento(gdf.getFlagArrotondamento());
    fin.setImportoDeliberato(gdf.getImportoDeliberato());
    fin.setFlagEscludiCosti(false);
    fin.setFlagVisualizzaCosti(true);
   
    fin.setTipoTasso(gdf.getCodiceTipoTasso());
    fin.setImportoRataNominale(gdf.getImportoRataOriginale());
    fin.setMaxNumeroRateMutuoCostante(gdf.getNumeroMaxRateAggiuntive());
   
    fin.setImportoRataRendimento(null);
    fin.setImportoFinanziato(gdf.getImportoFinanziato());
    fin.setTassoRendimento(NumberUtils.checkNull(gdf.getTassoRendimento())/100);
    fin.setImportoCommissioniInterne(gdf.getImportoSpeseInterne());
    fin.setCodProdotto(mutuo.getCodiceProdotto());
   
    fin.setDataUltimaIndicizzazione(gdf.getDataUltimaIndicizzazione());
   
    fin.setTaeg(gdf.getTaeg());
    fin.setTaegLordo(gdf.getTaegLordo());
   
    //TODO: controllare se ci sono tutte le spese
    List<Spesa> spese = new  ArrayList<Spesa>(0);
   
    if (tranche instanceof TrancheMutuoSal) {
      Spesa s = new Spesa();
      s.setCodiceSpesa(CostantiSpese.IMPOSTA_SOSTITUTIVA.value());
      s.setFlagFinanziata(gdf.getFlagFinanziatoImpostaSostitutiva());
      s.setFlagTrattenuta(gdf.getFlagTaegImpostaSostitutiva());
      s.setFlagTaeg(gdf.getFlagTaegImpostaSostitutiva());
//      s.setFlagTaegLordo("S");
      //s.setImporto(tranche.get);
//      s.setImportoFisso(0.00);
//      s.setFlagNoTabelle("N");
      s.setBaseSpesa(TipiBaseSpesa.FINANZIATO.value());
      s.setPremioPercentuale(((TrancheMutuoSal)tranche).getPercentualeImpostaSostitutiva()/100);
      spese.add(s);
     
      s = new Spesa();
      s.setCodiceSpesa(CostantiSpese.RESIDUO_COMMISSIONI.value());
      s.setFlagFinanziata("S");
      s.setFlagTrattenuta("S");
      s.setFlagTaeg("S");
      s.setFlagTaegLordo("S");
      s.setImporto(((TrancheMutuoSal)tranche).getImportoSpese());
      spese.add(s);
     
      s = new Spesa();
      s.setCodiceSpesa(CostantiSpese.SPESE_PERIZIA.value());
      s.setFlagFinanziata("S");
      s.setFlagTrattenuta("S");
      s.setFlagTaeg("S");
      s.setFlagTaegLordo("S");
      s.setImporto(((TrancheMutuoSal)tranche).getImportoSpesePerizia());
      spese.add(s);
     
      s = new Spesa();
      s.setCodiceSpesa(CostantiSpese.ASSICURAZIONE_INCENDIO.value());
      s.setFlagFinanziata("S");
      s.setFlagTrattenuta("S");
      s.setFlagTaeg("S");
      s.setFlagTaegLordo("S");
      s.setImporto(((TrancheMutuoSal)tranche).getImportoAssicurazioneCasa());
      spese.add(s);
    }
//    {
//      Spesa s = new Spesa();
//      s.setCodiceSpesa(CostantiSpese.SPESE_INCASSO.value());
//      s.setFlagFinanziata(gdf.getFlagFinanziatoSpeseIncasso());
//      s.setFlagTrattenuta(gdf.getFlagTrattenutoSpeseIncasso());
//      s.setFlagTaeg(gdf.getFlagTaegSpeseIncasso());
////      s.setFlagTaegLordo("S");
//      s.setImporto(gdf.getImportoSpeseIncasso());
////      s.setImportoFisso(0.00);
////      s.setFlagNoTabelle("N");
//      s.setBaseSpesa(TipiBaseSpesa.FINANZIATO.value());
////      s.setPremioPercentuale(gdf.getImportoSpeseIncasso()/100);
//      spese.add(s);
//    }
   
    fin.setSpese(spese);
   
    List<Rata> pam = new ArrayList<Rata>(0);
    Collections.sort(oldPiano, new PianoAmmortamentoComparator("rataId.progressivoRata",true));
    for(PianoAmmortamento pa : oldPiano ){
      Rata r = GestionePraticaUtility.rataPamToRata(pa);
      pam.add(r);
    }
   
    fin.setPam(pam);
   
    if (tranche instanceof MovimentoRimborsoGraduato) {
      MovimentoRimborsoGraduato rimbgrad = (MovimentoRimborsoGraduato) tranche;
      if(rimbgrad.getDataRicalcolo() != null)
        fin.setDataRiferimento(rimbgrad.getDataRicalcolo());
    }
   
    return fin;
  }
View Full Code Here

 
  @Override
  public void ricalcolaPianoIas(Mutuo mutuo, GruppoDatiFinanziari gdf, List<PianoAmmortamento> listaRate) {

    // TODO: non so nel caso di ricalcolo ias se la data riferimneto serve
    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());
          r.setQuotaInteressiIas(rpda.getQuotaInteressiIas());
          r.setCapitaleResiduoIas(rpda.getCapitaleResiduoIas());
          break;
        }
      }
    }

    gdf.setImportoFinanziatoIas(fin.getImportoFinanziatoIas());
    gdf.setTassoIas(fin.getTassoIas());
  }
View Full Code Here

    GruppoDatiFinanziari nuoviDatifin = new GruppoDatiFinanziari();

    // Traduco i dati di gestione pratica in finanziamento per il
    // generatorePam
    Finanziamento fin = GestionePraticaUtility.getFinanziamentoProSal(mutuo, datiFinanziari,
        new ArrayList<PianoAmmortamento>(datiFinanziari.getPianoAmmortamento()), incassoDaStornare);
    List<RataPiano> ratePiano = getRateStartup(mutuo.getNumeroMutuo());
    for (RataPiano rp : ratePiano) {
      if (rp.getSoloInteressiBoolean()) {
        fin.setNumeroRateSoloInteressi(rp.getTotaleRate());
      }
    }

    if ("COST".equals(mutuo.getCodiceProdotto())) {
      // Se sono un mutuo a rata costante allora vado a caricarmi le spese
      // di incasso
      // per capire su quale base devo essere calcolate e addebitate
      Segnalatore segn = getSegnalatore(mutuo.getNumeroMutuo());
      TestataTabellaFinanziaria ttf = getTestataTabellaFinanziaria(segn.getNumeroTabellaFinanziaria());
      Spesa spesa = new Spesa();
      try {
        spesa.setBaseSpesa(ttf.getBaseSpeseIncasso());
        spesa.setImportoFisso(ttf.getImportoFissoSpeseIncasso());
      } catch (Exception e) {
        spesa.setBaseSpesa("F");
        spesa.setImportoFisso(0.0);
      }
      spesa.setCodiceSpesa(CostantiSpese.SPESE_INCASSO.value());
      fin.getSpese().add(spesa);

      Spesa spGest = new Spesa();
      try {
        spGest.setBaseSpesa(ttf.getBaseCommissioniGestione());
        spGest.setImportoFisso(ttf.getImportoFissoCommissioniGestione());
      } catch (Exception e) {
        spGest.setBaseSpesa("F");
        spGest.setImportoFisso(0.0);
      }
      spGest.setCodiceSpesa(CostantiSpese.COMMISSIONI_DI_GESTIONE.value());
      fin.getSpese().add(spGest);
    } else if ("GRAD".equals(mutuo.getCodiceProdotto())) {
      // carico i dati rimborsi grad
      DatiRimborsoGraduati drg = getDatiRimborsoGraduati(mutuo.getNumeroMutuo());
      fin.setDatiRimborsoGraduati(GestionePraticaUtility.datiRimborsoGraduatoToRimborsoGraduatoPdA(drg, mutuo));

      // List<MovimentoRimborsoGraduato> listaRimborsi =
      // getRimborsiGraduato(mutuo.getNumeroMutuo());
      Segnalatore segnalatore = getSegnalatore(mutuo.getNumeroMutuo());
      ModalitaRimborso mr = getModalitaRimborso(drg.getCodiceModalitaRimborso(), mutuo.getCodiceProdotto(),
          segnalatore.getNumeroSoggetto());

      // Li traduco negli oggetti per il generatorePdA
      fin.setModalitaRimborso(GestionePraticaUtility.modalitaRimborsoToModalitaRimborsoPdA(mr));

      List<PercentualeRicalcoloGraduato> listaPercRicGrad = getPercentualiRicalcoloGraduato(tipoFormaGiuridica,
          mr);
      fin.setPercentualiRicalcoloGraduati(GestionePraticaUtility.percRicGradToRicRimbGradPdA(listaPercRicGrad));

      // List<MovimentoRimborsoGraduato> listaRimbGrad =
      // getRimborsiGraduato(mutuo.getNumeroMutuo());
      List<MovimentoRimborsoGraduato> listaRimbGrad = getRimborsiGraduato(mutuo.getNumeroMutuo(), mutuo
          .getDatiFinanziariAttuali().getNrDatiFinanziari());
      fin.setMovimentiRimborso(GestionePraticaUtility.traduciListaMovRimbGradInMovRimbGradPdA(listaRimbGrad));
      // Attenzione... mi ritrovo gi� nella lista il movimento di
      // storno....
      // se c'� lo tolgo...
      for (it.pdor.generatorePdA.domain.MovimentoRimborsoGraduato mrgPda : fin.getMovimentiRimborso()) {
        log.info("mrgPda.getProgressivoMovimento(): " + mrgPda.getProgressivoMovimento());
        log.info("incassoDaStornare.getRiferimentoMovimentoStorno(): "
            + incassoDaStornare.getRiferimentoMovimentoStorno());
        if (mrgPda.getProgressivoMovimento() == incassoDaStornare.getRiferimentoMovimentoStorno()) {
          fin.getMovimentiRimborso().remove(mrgPda);

          break;
        }
      }

      fin.setTipoCalcolo("P");
      fin.setTotaliPam(new TotaliPianoAmmortamento());
    }

    // carico su il periodo di indicizzazione
    ParametroIndicizzo parmIndic = getParametroIndicizzazione(datiFinanziari.getCodiceTipoCalcoloIndicizzazione(),
        datiFinanziari.getCodiceModalitaCalcoloIndicizzazione());

    fin.setPeriodicitaIndicizzazione(parmIndic != null ? parmIndic.getPeriodicita() : 0);

    it.pdor.generatorePdA.domain.Movimento movimentoPda = GestionePraticaUtility
        .movimentoToMovimentoPdA(incassoDaStornare);

    Finanziamento nuovoFin = generatorePdAFacade.ricalcolaPianoPerStorno(fin, movimentoPda);

    List<PianoAmmortamento> nuovoPam = new ArrayList<PianoAmmortamento>(0);

    for (Rata r : nuovoFin.getPam()) {
      PianoAmmortamento pa = GestionePraticaUtility.rataToRataPam(r);
      pa.getRataId().setProgressivoRata(r.getProgressivoRata());
      pa.setNumeroMutuo(mutuo.getNumeroMutuo());
      nuovoPam.add(pa);
    }
View Full Code Here

      if(tassi.size() == 0){
        throw new TassoUsuraException(messages.getMessage("gestionePratica.inserimentoTranche.tassoUsuraNonCensito"));
      }else if(tassi.size() > 1){
        throw new TassoUsuraException(messages.getMessage("gestionePratica.inserimentoTranche.piuTassiUsura"));
      }else{
        Finanziamento fin = new Finanziamento();
        fin.setTipoGenerazionePiano("L");
        fin.setTaeg(tranche.getTaeg());
        fin.setTassoUsura(tassi.get(0).getTassoRiferimento());
        try {
          generatorePdAFacade.controllaTassoUsura(fin);
        } catch (CalculationErrorException e) {
          e.printStackTrace();
          throw new TassoUsuraException(e.getMessage());
View Full Code Here

    // Recupero i dati finanziari (e pam) validi alla data della tranche.
    GruppoDatiFinanziari gdf = getDatiFinanziariAllaData(mutuo.getNumeroMutuo(), nuovoMovimento.getDataMovimento());

    // Traduco i dati di gestione pratica in finanziamento per il
    // generatorePam
    Finanziamento fin = GestionePraticaUtility.getFinanziamentoProSal(mutuo, gdf, new ArrayList<PianoAmmortamento>(
        gdf.getPianoAmmortamento()), nuovoMovimento);
   
    if (nuovoMovimento instanceof MovRimbTrad) {
      // Se sono nel caso di rimborso tradizionali e costanti la data
      // riferimento deve essere
      // la data valuta e non la data movimento (per i graduati in un
      // altro punto correggo)
      MovRimbTrad movTrad = (MovRimbTrad) nuovoMovimento;
      fin.setDataRiferimento(movTrad.getDataValuta());
    }

    List<RataPiano> ratePiano = getRateStartup(mutuo.getNumeroMutuo());
    for (RataPiano rp : ratePiano) {
      if (rp.getSoloInteressiBoolean()) {
        fin.setNumeroRateSoloInteressi(rp.getTotaleRate());
      }
    }

    // carico su il periodo di indicizzazione
    ParametroIndicizzo parmIndic = getParametroIndicizzazione(gdf.getCodiceTipoCalcoloIndicizzazione(),
        gdf.getCodiceModalitaCalcoloIndicizzazione());
    fin.setPeriodicitaIndicizzazione(parmIndic != null ? NumberUtils.checkNull(parmIndic.getPeriodicita()) : 0);

    if ("COST".equals(mutuo.getCodiceProdotto())) {
      // Se sono un mutuo a rata costante allora vado a caricarmi le spese
      // di incasso
      // per capire su quale base devo essere calcolate e addebitate
      Segnalatore segn = getSegnalatore(mutuo.getNumeroMutuo());
      TestataTabellaFinanziaria ttf = getTestataTabellaFinanziaria(segn.getNumeroTabellaFinanziaria());
      Spesa spesa = new Spesa();
      try {
        spesa.setBaseSpesa(ttf.getBaseSpeseIncasso());
        spesa.setImportoFisso(ttf.getImportoFissoSpeseIncasso());
      } catch (Exception e) {
        spesa.setBaseSpesa("F");
        spesa.setImportoFisso(0.0);
      }
      spesa.setCodiceSpesa(CostantiSpese.SPESE_INCASSO.value());
      fin.getSpese().add(spesa);

      Spesa spGest = new Spesa();
      try {
        spGest.setBaseSpesa(ttf.getBaseCommissioniGestione());
        spGest.setImportoFisso(ttf.getImportoFissoCommissioniGestione());
      } catch (Exception e) {
        spGest.setBaseSpesa("F");
        spGest.setImportoFisso(0.0);
      }
      spGest.setCodiceSpesa(CostantiSpese.COMMISSIONI_DI_GESTIONE.value());
      fin.getSpese().add(spGest);
    }

    it.pdor.generatorePdA.domain.Movimento movimentoPda = GestionePraticaUtility
        .movimentoToMovimentoPdA(nuovoMovimento);

    if (TipiPiano.GRADUATO.value().equals(gdf.getCodiceTipoRata())) {
      // carico i dati rimborsi grad
      DatiRimborsoGraduati drg = getDatiRimborsoGraduati(mutuo.getNumeroMutuo());
      fin.setDatiRimborsoGraduati(GestionePraticaUtility.datiRimborsoGraduatoToRimborsoGraduatoPdA(drg, mutuo));

      // List<MovimentoRimborsoGraduato> listaRimborsi =
      // getRimborsiGraduato(mutuo.getNumeroMutuo());
      Segnalatore segnalatore = getSegnalatore(mutuo.getNumeroMutuo());
      ModalitaRimborso mr = getModalitaRimborso(drg.getCodiceModalitaRimborso(), mutuo.getCodiceProdotto(),
          segnalatore.getNumeroSoggetto());

      // Li traduco negli oggetti per il generatorePdA
      fin.setModalitaRimborso(GestionePraticaUtility.modalitaRimborsoToModalitaRimborsoPdA(mr));

      List<PercentualeRicalcoloGraduato> listaPercRicGrad = getPercentualiRicalcoloGraduato(tipoFormaGiuridica,
          mr);
      fin.setPercentualiRicalcoloGraduati(GestionePraticaUtility.percRicGradToRicRimbGradPdA(listaPercRicGrad));

      // List<MovimentoRimborsoGraduato> listaRimbGrad =
      // getRimborsiGraduato(mutuo.getNumeroMutuo());
      List<MovimentoRimborsoGraduato> listaRimbGrad = getRimborsiGraduato(mutuo.getNumeroMutuo(), mutuo
          .getDatiFinanziariAttuali().getNrDatiFinanziari());
      fin.setMovimentiRimborso(GestionePraticaUtility.traduciListaMovRimbGradInMovRimbGradPdA(listaRimbGrad));

      //BARBARA Aggiunto per calcolo dietimi
      Date dataPrimaInd = new Date(fin.getDataPrimaIndicizzazione().getTime());
      DateUtility.setMeseGiorno(dataPrimaInd, parmIndic.getMesePrimoPeriodo(), 1);
      dataPrimaInd = DateUtility.getUltimoDelMese(dataPrimaInd);
      fin.setDataPrimaIndicizzazione(dataPrimaInd);

    }

    // Chiamo il generatore di piani ammortamento...
    Finanziamento nuovoFin = generatorePdAFacade.ricalcolaPianoAmmortamento(fin, movimentoPda);

    nuovoMovimento.setDataRataAddebitoDietimi(movimentoPda.getDataRataAddDietimi());
    nuovoMovimento.setImportoDietimi(RoundUtils.round2Cifre(movimentoPda.getImportoDietimi()));
    nuovoMovimento.setDataRataCalcoloDietimi(movimentoPda.getDataRataCalcoloDietimi());
    nuovoMovimento.setNumeroGiorniDietimi(movimentoPda.getNumeroGiorniDietimi());
    nuovoMovimento.setTassoDietimi(RoundUtils.round5Cifre(movimentoPda.getTassoCalcoloDietimi()));

    if (nuovoMovimento instanceof MovRimbTrad) {
      ((MovRimbTrad) nuovoMovimento).setImportoDietimiPf(((MovimentoRimborsoTrad) movimentoPda)
          .getImportoDietimiPf());
    } else if (nuovoMovimento instanceof MovimentoRimborsoGraduato) {
      ((MovimentoRimborsoGraduato) nuovoMovimento)
          .setImportoDietimiPf(((it.pdor.generatorePdA.domain.MovimentoRimborsoGraduato) movimentoPda)
              .getImportoDietimiPf());
    }

    // ------------
    // Recupero il nuovo piano tenendo conto che le rate con posizione > 2 o
    // = 0 non sono ricalcolate...
    List<PianoAmmortamento> nuovoPam = new ArrayList<PianoAmmortamento>(0);

    for (Rata r : nuovoFin.getPam()) {
      PianoAmmortamento pa = GestionePraticaUtility.rataToRataPam(r);
      pa.getRataId().setProgressivoRata(r.getProgressivoRata());
      pa.setNumeroMutuo(mutuo.getNumeroMutuo());
      nuovoPam.add(pa);
    }
View Full Code Here

    Mutuo mutuo = datiFin.getMutuo();

    // Traduco i dati di gestione pratica in finanziamento per il
    // generatorePam
    Finanziamento fin = GestionePraticaUtility.getFinanziamento(datiFin, spese, importoRate);

    // Chiamo il generatore di piani ammortamento...
    Finanziamento nuovoFin = generatorePdAFacade.generaPianoAmmortamento(fin);

    if (TipiPiano.GRADUATO.value().equals(datiFin.getCodiceTipoRata())) {
      nuovoFin.setDataPrimaIndicizzazione(datiFin.getDataPrimaIndicizzazione());
      nuovoFin.setDataRiferimento(datiFin.getDataInizioValidita());
      SimpleDateFormat sdf_mese = new SimpleDateFormat("MM");
      nuovoFin.setMesePrimoPeriodoIndicizzazione(Integer.valueOf(sdf_mese.format(nuovoFin
          .getDataPrimaIndicizzazione())));

      ParametroIndicizzo parmIndic = getParametroIndicizzazione(datiFin.getCodiceTipoCalcoloIndicizzazione(),
          datiFin.getCodiceModalitaCalcoloIndicizzazione());
      nuovoFin.setPeriodicitaIndicizzazione(parmIndic != null ? NumberUtils.checkNull(parmIndic.getPeriodicita())
          : 0);

      // carico i dati rimborsi grad
      nuovoFin.setDatiRimborsoGraduati(GestionePraticaUtility.datiRimborsoGraduatoToRimborsoGraduatoPdA(drg,
          mutuo));

      Segnalatore segnalatore = getSegnalatore(mutuo.getNumeroMutuo());
      ModalitaRimborso mr = getModalitaRimborso(drg.getCodiceModalitaRimborso(), datiFin.getCodiceProdotto(),
          segnalatore.getNumeroSoggetto());

      // Li traduco negli oggetti per il generatorePdA
      nuovoFin.setModalitaRimborso(GestionePraticaUtility.modalitaRimborsoToModalitaRimborsoPdA(mr));

      List<PercentualeRicalcoloGraduato> listaPercRicGrad = getPercentualiRicalcoloGraduato(tipoFormaGiuridica,
          mr);
      nuovoFin.setPercentualiRicalcoloGraduati(GestionePraticaUtility
          .percRicGradToRicRimbGradPdA(listaPercRicGrad));

      nuovoFin.setTipoCalcolo("P");

      nuovoFin.setTassoInteresse(datiFin.getTassoPeriodale().doubleValue() * 12 / datiFin.getCodicePeriodicita());

      nuovoFin = generatorePdAFacade.rigeneraPianoAmmortamentoGraduati(nuovoFin);

      nuovoFin = generatorePdAFacade.calcolaTaeg(nuovoFin);
    }
    nuovoFin = generatorePdAFacade.ricalcolaPianoIas(nuovoFin);

    List<PianoAmmortamento> nuovoPam = new ArrayList<PianoAmmortamento>(0);
    for (Rata r : nuovoFin.getPam()) {
      PianoAmmortamento pa = GestionePraticaUtility.rataToRataPam(r);
      pa.setNumeroMutuo(mutuo.getNumeroMutuo());
      pa.setTassoApplicato(fin.getTassoPeriodale() * 12 / fin.getTipoPeriodicita());
      nuovoPam.add(pa);
    }
View Full Code Here

      //TODO: devo aggiungere altre spese?
     
     
      // Traduco i dati di gestione pratica in finanziamento per il$
      // generatorePam
      Finanziamento fin = GestionePraticaUtility.getFinanziamento(datiFin, spese, importoRate);

      List<MovimentoRimborsoGraduato> listaRimbGrad = getRimborsiGraduato(mutuo.getNumeroMutuo(), datiFin.getNrDatiFinanziari());
      fin.setMovimentiRimborso(GestionePraticaUtility.traduciListaMovRimbGradInMovRimbGradPdA(listaRimbGrad));
     
      List<Legame> legami = getLegamiPerMutuoRapporto(mutuo.getNumeroMutuo(),
          CodiceRapporto.CODICE_RAPPORTO_MUTUATARIO.getValue());
      for (Legame l : legami) {
        if( null == l.getDataFineValidita() ){
          tipoFormaGiuridica = connettoreAnagraficaService.getFormaGiuridicaSoggetto(l.getNumeroSoggetto());
        }
      }
     
      fin.setDataPrimaIndicizzazione(datiFin.getDataPrimaIndicizzazione());
     
      fin.setDataRiferimento(new Date());
//      fin.setDataRiferimento(datiFin.getDataInizioValidita());
//      SimpleDateFormat sdf_mese = new SimpleDateFormat("MM");
//      fin.setMesePrimoPeriodoIndicizzazione(Integer.valueOf(sdf_mese.format(fin
//          .getDataPrimaIndicizzazione())));
      ParametroIndicizzo parmInd = gestionePraticaDao.getParametroIndicizzazione(datiFin.getCodiceTipoCalcoloIndicizzazione(), datiFin.getCodiceModalitaCalcoloIndicizzazione());
      if( parmInd != null ){
        fin.setMesePrimoPeriodoIndicizzazione(parmInd.getMesePrimoPeriodo());
      }

      ParametroIndicizzo parmIndic = getParametroIndicizzazione(datiFin.getCodiceTipoCalcoloIndicizzazione(),
          datiFin.getCodiceModalitaCalcoloIndicizzazione());
      fin.setPeriodicitaIndicizzazione(parmIndic != null ? NumberUtils.checkNull(parmIndic.getPeriodicita())
          : 0);

      // carico i dati rimborsi grad
      fin.setDatiRimborsoGraduati(GestionePraticaUtility.datiRimborsoGraduatoToRimborsoGraduatoPdA(drg,
          mutuo));

      Segnalatore segnalatore = getSegnalatore(mutuo.getNumeroMutuo());
      ModalitaRimborso mr = getModalitaRimborso(drg.getCodiceModalitaRimborso(), datiFin.getCodiceProdotto(),
          segnalatore.getNumeroSoggetto());

      if( mr == null )
        throw new ModalitaRimborsoException();
      // Li traduco negli oggetti per il generatorePdA
      fin.setModalitaRimborso(GestionePraticaUtility.modalitaRimborsoToModalitaRimborsoPdA(mr));

     
      List<PercentualeRicalcoloGraduato> listaPercRicGrad = getPercentualiRicalcoloGraduato(tipoFormaGiuridica,
          mr);
//      fin.setPercentualiRicalcoloGraduati(GestionePraticaUtility
//          .percRicGradToRicRimbGradPdA(listaPercRicGrad));
//ALBE 11/03/2011 le percentuali vengono poi divise per 100 nel generatorePdA...
      List<PercentualiRicalcoloGraduato> percGradPdA = new ArrayList<PercentualiRicalcoloGraduato>(0);
      for( PercentualeRicalcoloGraduato prg : listaPercRicGrad ){
        PercentualiRicalcoloGraduato p = new PercentualiRicalcoloGraduato();
        p.setCategoria(prg.getCodiceCategoria());
        p.setFormaGiuridica(prg.getTipoFormaGiuridica());
        p.setNumeroMesiRimborsoFacoltativi(prg.getNumeroMesiRimborsoFacoltativo());
        p.setPercentuale(prg.getPercentuale());
        p.setPeriodicitaRimborso(prg.getPeriodicitaRimborso());
        p.setProgressivoValore(prg.getProgressivoValore());
        percGradPdA.add(p);
      }
      fin.setPercentualiRicalcoloGraduati(percGradPdA);
         
      fin.setTipoCalcolo(tipoCalcolo);

      fin.setTassoInteresse(tassoDiCalcolo);
     
      if( mrg != null ){
        fin.setDataRiferimento(mrg.getDataMovimento());
        fin.setProgressivoMovimento(mrg.getProgressivoMovimento());
      }
     
      Finanziamento nuovoFin = generatorePdAFacade.rigeneraPianoAmmortamentoGraduati(fin);
//      if( !"D".equals(tipoCalcolo) ){
//        nuovoFin = generatorePdAFacade.calcolaTaeg(nuovoFin);
//        nuovoFin = generatorePdAFacade.ricalcolaPianoIas(nuovoFin);
//      }
     
      List<PianoAmmortamento> nuovoPam = new ArrayList<PianoAmmortamento>(0);
      for (Rata r : nuovoFin.getPam()) {
        PianoAmmortamento pa = GestionePraticaUtility.rataToRataPam(r);
        pa.setNumeroMutuo(mutuo.getNumeroMutuo());
//        pa.setTassoApplicato(fin.getTassoPeriodale() * 12 / fin.getTipoPeriodicita());
        nuovoPam.add(pa);
      }
View Full Code Here

      gdf.setImportoLiquidato(datifin.getImportoRichiesto());
      gdf.setImportoFinanziato(datifin.getImportoRichiesto());
      gdf.setImportoDeliberato(datifin.getImportoRichiesto());
      gdf.setImportoArrotondamento(null);
      // Aggiorno l'IAS sul pam e sui datifin
      Finanziamento fin = new Finanziamento();
      fin.setCodProdotto(gdf.getCodiceProdotto());
      fin.setImportoFinanziato(gdf.getImportoFinanziato());
      fin.setSpese(new ArrayList<Spesa>());

      List<Rata> pianoPerFin = new ArrayList<Rata>();
      for (PianoAmmortamento pa : piano) {
        pianoPerFin.add(GestionePraticaUtility.rataPamToRata(pa));
      }
      fin.setPam(pianoPerFin);
      fin = generatorePdAFacade.ricalcolaPianoIas(fin);

      gdf.setImportoFinanziatoIas(fin.getImportoFinanziatoIas());
      gdf.setTassoIas(RoundUtils.round5Cifre(fin.getTassoIas() * 100));
      // Aggiorno il pam dopo il calcolo IAS
      List<PianoAmmortamento> nuovoPam = new ArrayList<PianoAmmortamento>(0);
      for (Rata r : fin.getPam()) {
        PianoAmmortamento pa = GestionePraticaUtility.rataToRataPam(r);
        pa.setNumeroMutuo(datifin.getMutuo().getNumeroMutuo());
        nuovoPam.add(pa);
      }
      gdf.setPianoAmmortamento(new HashSet<PianoAmmortamento>());
      gdf.getPianoAmmortamento().addAll(nuovoPam);

      // Aggiorno il numRate
      gdf.setTotaleRate(nuovoPam.size());

      // Aggiorno i tassi
      gdf.setTassoRendimento(null);
      gdf.setTassoInteressi(RoundUtils.round5Cifre(datifin.getTassoPeriodale() * 100));

      // Aggiorno i taeg
      fin.setTipoPeriodicita(gdf.getCodicePeriodicita());
      TotaliPianoAmmortamento totali = new TotaliPianoAmmortamento();
      totali.setQuotaMontante(gdf.getImportoMontante());
      fin.setTotaliPam(totali);
      fin = generatorePdAFacade.calcolaTaeg(fin);

      gdf.setTaeg(RoundUtils.round3Cifre(NumberUtils.checkNull(fin.getTaeg())));
      gdf.setTaegLordo(RoundUtils.round3Cifre(NumberUtils.checkNull(fin.getTaegLordo())));

      // Azzero le spese
      azzeraSpese(gdf);

    } catch (IllegalAccessException e) {
View Full Code Here

    Segnalatore segnalatore = mutuo.getSegnalatore().iterator().next();//getSegnalatore(mutuo.getNumeroMutuo());
    Long durata = new Long(datiFin.getCodicePeriodicita()*datiFin.getTotaleRate());
    completaSpese(spese, durata.longValue(), segnalatore, datiFin.getCodiceFormaPagamento(), assicurazioni, immobili, mutuo, mutuatari);
    // Traduco i dati di gestione pratica in finanziamento per il
    // generatorePam
    Finanziamento fin = GestionePraticaUtility.getFinanziamentoCompleto(datiFin, spese, importoRate, numeroRateSoloInteressi,isRicalcoloTaegDatiRimbGrad, flagIpoteca);

    // Chiamo il generatore di piani ammortamento...
    Finanziamento nuovoFin = generatorePdAFacade.generaPianoAmmortamento(fin);

    if (TipiPiano.GRADUATO.value().equals(datiFin.getCodiceTipoRata())
        && drg != null && datiFin.getDataPrimaIndicizzazione() != null) {
      nuovoFin.setDataPrimaIndicizzazione(datiFin.getDataPrimaIndicizzazione());
     
      //CRISTIAN, CALCOLATA LA DATA RIFERIMENTO SULLA BASE DEL CALCOLO DI GIANGI
      nuovoFin.setDataRiferimento(DateUtility.addMese(datiFin.getDataScadenzaPrimaRata(), -datiFin.getCodicePeriodicita()) );
     
      SimpleDateFormat sdf_mese = new SimpleDateFormat("MM");
      nuovoFin.setMesePrimoPeriodoIndicizzazione(Integer.valueOf(sdf_mese.format(nuovoFin
          .getDataPrimaIndicizzazione())));

      ParametroIndicizzo parmIndic = getParametroIndicizzazione(datiFin.getCodiceTipoCalcoloIndicizzazione(),
          datiFin.getCodiceModalitaCalcoloIndicizzazione());
      nuovoFin.setPeriodicitaIndicizzazione(parmIndic != null ? NumberUtils.checkNull(parmIndic.getPeriodicita())
          : 0);

      // carico i dati rimborsi grad
      nuovoFin.setDatiRimborsoGraduati(GestionePraticaUtility.datiRimborsoGraduatoToRimborsoGraduatoPdA(drg,
          mutuo));

//      Segnalatore segnalatore = getSegnalatore(mutuo.getNumeroMutuo());
      ModalitaRimborso mr = getModalitaRimborso(drg.getCodiceModalitaRimborso(), mutuo.getCodiceProdotto(),
          segnalatore.getNumeroSoggetto());

      // Li traduco negli oggetti per il generatorePdA
      nuovoFin.setModalitaRimborso(GestionePraticaUtility.modalitaRimborsoToModalitaRimborsoPdA(mr));

      List<PercentualeRicalcoloGraduato> listaPercRicGrad = getPercentualiRicalcoloGraduato(tipoFormaGiuridica,
          mr);
      nuovoFin.setPercentualiRicalcoloGraduati(GestionePraticaUtility
          .percRicGradToRicRimbGradPdA(listaPercRicGrad));

      nuovoFin.setTipoCalcolo("P");

      nuovoFin.setTassoInteresse(datiFin.getTassoPeriodale().doubleValue() * 12 / datiFin.getCodicePeriodicita());

      nuovoFin = generatorePdAFacade.rigeneraPianoAmmortamentoGraduati(nuovoFin);

      nuovoFin = generatorePdAFacade.calcolaTaeg(nuovoFin);
    }
    nuovoFin = generatorePdAFacade.ricalcolaPianoIas(nuovoFin);

    List<PianoAmmortamento> nuovoPam = new ArrayList<PianoAmmortamento>(0);
    for (Rata r : nuovoFin.getPam()) {
      PianoAmmortamento pa = GestionePraticaUtility.rataToRataPam(r);
      pa.setNumeroMutuo(mutuo.getNumeroMutuo());
      pa.setTassoApplicato(fin.getTassoPeriodale() * 12 / fin.getTipoPeriodicita());
      nuovoPam.add(pa);
    }
View Full Code Here

TOP

Related Classes of it.pdor.generatorePdA.domain.Finanziamento

Copyright © 2018 www.massapicom. 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.