Package it.pdor.gestionePratica.domain

Examples of it.pdor.gestionePratica.domain.GruppoDatiFinanziari


    nuovaTranche.setImportoSpeseInterne(0.0);
    nuovaTranche.setImportoSpesePerizia(0.0);
    nuovaTranche.setImportoSpesePerizia(0.0);
    nuovaTranche.setPercentualeImpostaSostitutiva(lastTranche.getPercentualeImpostaSostitutiva());

    GruppoDatiFinanziari gdf = null;
    if ("GRAD".equals(mutuo.getCodiceProdotto()))
      gdf = ricalcolaPianoAmmortamento(mutuo, nuovaTranche, formaGiuridica);
    else
      gdf = ricalcolaPianoAmmortamento(mutuo, nuovaTranche);

    // Devo salvare anche i datiSal aggiornando il numero definitivo delle
    // rate prepiano
    DatiSal datiSal = getDatiSal(mutuo.getNumeroMutuo());
    int numRatePrePian = 0;
    for (PianoAmmortamento pa : gdf.getPianoAmmortamento()) {
      if (pa.getQuotaCapitale().doubleValue() == 0.0)
        numRatePrePian++;
    }
    datiSal.setNrRatePrepiano(numRatePrePian);
    datiSal.setNrRateDef(gdf.getPianoAmmortamento().size());
    updateDatiSal(datiSal);

    // Devo salvare sia i nuovi dati finanziari che porre a S il flag
    // lastTranche sull'ultima tranche
    lastTranche.setLastTranche("S");
View Full Code Here


  // valorizzato con
  // i dati vecchi + tutti i dati nuovi...
  private GruppoDatiFinanziari generaNuoviDatiFinanziari(GruppoDatiFinanziari oldDatifin,
      List<PianoAmmortamento> nuovoPam, Finanziamento nuovoFin) {

    GruppoDatiFinanziari nuoviDatifin = new GruppoDatiFinanziari();

    try {
      PropertyUtils.copyProperties(nuoviDatifin, oldDatifin);

      nuoviDatifin.setPianoAmmortamento(new HashSet<PianoAmmortamento>());
      nuoviDatifin.getPianoAmmortamento().addAll(nuovoPam);

      // Aggiorno il numRate
      nuoviDatifin.setTotaleRate(nuovoFin.getNumeroRate());

      // Aggiorno gli importi
      nuoviDatifin.setImportoErogato(nuovoFin.getImportoErogato());
      nuoviDatifin.setImportoFinanziato(nuovoFin.getImportoFinanziato());
      nuoviDatifin.setImportoInteressi(nuovoFin.getTotaliPam().getQuotaInteressi());
      nuoviDatifin.setImportoDeliberato(nuovoFin.getImportoDeliberato());
      nuoviDatifin.setImportoMontante(nuovoFin.getTotaliPam().getQuotaMontante());
      nuoviDatifin.setImportoArrotondamento(nuovoFin.getImportoArrotondamento());
      nuoviDatifin.setImportoLiquidato(nuovoFin.getImportoErogato());
      nuoviDatifin.setImportoRataOriginale(nuovoPam.get(0).getImportoRata());

      // Aggiorno i tassi
      nuoviDatifin.setTassoPeriodale(RoundUtils.round5Cifre(nuovoFin.getTassoPeriodale()));
      nuoviDatifin.setTassoRendimento(RoundUtils.round5Cifre(nuovoFin.getTassoRendimento()));
      nuoviDatifin.setTassoInteressi(RoundUtils.round5Cifre(nuovoFin.getTassoInteresse()));
      // TODO eliminare? Non viene mai settato se non passato in input...
      nuoviDatifin.setTassoIngresso(RoundUtils.round5Cifre(nuovoFin.getTassoIngresso()));

      // Aggiorno i taeg
      nuoviDatifin.setTaeg(RoundUtils.round3Cifre(NumberUtils.checkNull(nuovoFin.getTaeg())));
      nuoviDatifin.setTaegLordo(RoundUtils.round3Cifre(NumberUtils.checkNull(nuovoFin.getTaegLordo())));

      // Aggiorno le date
      nuoviDatifin.setDataScadenzaUltimaRata(nuovoFin.getDataUltimaScadenza());

      // aggiorno i dati IAS
      nuoviDatifin.setImportoFinanziatoIas(nuovoFin.getImportoFinanziatoIas());
      nuoviDatifin.setTassoIas(RoundUtils.round5Cifre( NumberUtils.checkNull(nuovoFin.getTassoIas()) * 100));

      // aggiorno le spese
      aggiornaSpese(nuovoFin, nuoviDatifin);

    } catch (IllegalAccessException e) {
View Full Code Here

  @Override
  public GruppoDatiFinanziari aggiornaDatiFinanziariPostIncasso(GruppoDatiFinanziari nuovoGdf, Movimento incasso)
      throws DataAntecedenteDataDecorrenzaException {

    // 1: prendo i vecchi dati fin:
    GruppoDatiFinanziari oldGdf = getDatiFinanziariAllaData(nuovoGdf.getMutuo().getNumeroMutuo(),
        incasso.getDataMovimento());

    // 2: aggiorno i campi del vecchio con i nuovi dati
    oldGdf.setImportoMontante(nuovoGdf.getImportoMontante());
    oldGdf.setImportoInteressi(nuovoGdf.getImportoInteressi());
    oldGdf.setImportoFinanziatoIas(nuovoGdf.getImportoFinanziatoIas());
    oldGdf.setTassoIas(nuovoGdf.getTassoIas() * 100);

    // 3:faccio update definfin passandogli oldGdf
    gestionePraticaDao.updateDatiFinanziari(oldGdf);

    // 4a: cancello tutte le rate
    List<PianoAmmortamento> pamDaCancellare = new ArrayList<PianoAmmortamento>(oldGdf.getPianoAmmortamento());
    Collections.sort(pamDaCancellare, new PianoAmmortamentoComparator("dataScadenzaRata", true));

    for (PianoAmmortamento pa : pamDaCancellare) {
      log.debug("Cancello la rata: " + pa.getRataId().getNumeroPam() + " " + pa.getRataId().getProgressivoRata());
      gestionePraticaDao.deleteRataPianoAmmortamento(pa);
    }

    gestionePraticaDao.clearCache();

    // 4b: inserisco le rate ricalcolate
    Set<PianoAmmortamento> prova = gestionePraticaDao.getPianoAmmortamento(oldGdf.getNumeroPam());
    log.debug("Dopo aver cancellato... ho ancora un piano? " + prova.size());

    List<PianoAmmortamento> pamDaInserire = new ArrayList<PianoAmmortamento>(nuovoGdf.getPianoAmmortamento());
    Collections.sort(pamDaInserire, new PianoAmmortamentoComparator("dataScadenzaRata", true));

    for (PianoAmmortamento pa : pamDaInserire) {
      try {
        pa.getRataId().setNumeroPam(oldGdf.getNumeroPam());
        log.debug("Inserisco la rata: " + pa.getRataId().getNumeroPam() + " "
            + pa.getRataId().getProgressivoRata());
        gestionePraticaDao.insertPam(pa);
      } catch (Exception e) {
        log.error("RATA PAM e PROGRESSIVO: " + pa.getRataId().getNumeroPam() + " "
            + pa.getRataId().getProgressivoRata(), e);
        throw new RuntimeException(e);
      }
    }

    // 5: recupero i nuovi dati finanziari da db
    GruppoDatiFinanziari newGdf = getDatiFinanziariAllaData(nuovoGdf.getMutuo().getNumeroMutuo(),
        incasso.getDataMovimento());

    // 5cost: aggiorno, se necessario, il campo totaleRate dei dati
    // finanziari con il numero di rate di tipo I, li aggiorno e li tiro
    // nuovamente su
    if ("COST".equals(newGdf.getMutuo().getCodiceProdotto())) {
      newGdf.setTotaleRate(determinaNumeroRateInteressi(pamDaInserire));
      newGdf.setDataScadenzaUltimaRata(determinaDataScadenzaUltimaRataInteressi(pamDaInserire));
      log.debug("## Mutuo " + newGdf.getMutuo().getNumeroMutuo() + " COST numero rate I : "
          + determinaNumeroRateInteressi(pamDaInserire) + "  dataUltimaRata I : "
          + determinaDataScadenzaUltimaRataInteressi(pamDaInserire));
      gestionePraticaDao.updateDatiFinanziari(newGdf);
      newGdf = getDatiFinanziariAllaData(newGdf.getMutuo().getNumeroMutuo(), incasso.getDataMovimento());
    }

    // 6: ritorno i nuovi newGdf dati finanziari
    return newGdf;
  }
View Full Code Here

      totQuotaInteressi += interessi;
      totQuotaMontante += importoRata;
    }

    GruppoDatiFinanziari gdf = new GruppoDatiFinanziari();
    try {
      PropertyUtils.copyProperties(gdf, datifin);

      // Aggiorno gli importi
      gdf.setImportoInteressi(totQuotaInteressi);
      gdf.setImportoMontante(totQuotaMontante);
      gdf.setImportoErogato(datifin.getImportoRichiesto());
      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

  }

  @Override
  public GruppoDatiFinanziari insertDatifin(GruppoDatiFinanziari gdf)
      throws DataAntecedenteDataDecorrenzaException {
    GruppoDatiFinanziari oldGdf = getDatiFinanziariAllaData(gdf.getMutuo().getNumeroMutuo(),
        DateUtility.addGiorno(gdf.getDataInizioValidita(), -1));

    if (oldGdf != null) {
      // Valorizzo la fine validita dei vecchi dati finanziari
      oldGdf.setDataFineValidita(DateUtility.addGiorno(gdf.getDataInizioValidita(), -1));
      gestionePraticaDao.updateDatiFinanziari(oldGdf);
    }
    // Genero un nuovo numero pam
    long nrPam = staccaNumeroPianoAmmortamento();
    for (PianoAmmortamento pam : gdf.getPianoAmmortamento()) {
View Full Code Here

  @Override
  public GruppoDatiFinanziari ricalcolaPianoPerStorno(Mutuo mutuo, GruppoDatiFinanziari datiFinanziari,
      Movimento incassoDaStornare, String tipoFormaGiuridica)
      throws DataAntecedenteDataDecorrenzaException {

    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);
View Full Code Here

  @Override
  public List<RataPiano> getRateStartup(long numeroMutuo) throws DataAntecedenteDataDecorrenzaException {

    // Recupero il numero Pam valido...
    GruppoDatiFinanziari gdf = getDatiFinanziariAllaData(numeroMutuo, new Date());

    List<RataPiano> listaRataPiano = new ArrayList<RataPiano>(0);
    listaRataPiano.addAll(gestionePraticaDao.getSumRatePianoSoliInteressi(gdf.getNumeroPam()));
    listaRataPiano.addAll(gestionePraticaDao.getSumRatePianoSoliInteressi(gdf.getNumeroPam()));
    return listaRataPiano;
  }
View Full Code Here

  }

  @Override
  public List<RataPiano> getRateVariabiliPiano(long numeroMutuo) throws DataAntecedenteDataDecorrenzaException {
    // Recupero il numero Pam valido...
    GruppoDatiFinanziari gdf = getDatiFinanziariAllaData(numeroMutuo, new Date());
    return gestionePraticaDao.getRateVariabiliPiano(gdf.getNumeroPam());
  }
View Full Code Here

  @Override
  public Mutuo updateLiquidazioneMutuo(Integer codiceStatoLiquidazione, Mutuo mutuo,
      List<AnticipoMutuo> anticipiDaLiquidare, List<LiquidazioneMutuo> liquidazioniMutuoDaEliminare) {

    GruppoDatiFinanziari datifin = mutuo.getGruppoDatiFinanziari().iterator().next();
    Double importoLiquidato = new Double(0d);

    for (LiquidazioneMutuo l : mutuo.getLiquidazioni()) {
      importoLiquidato = importoLiquidato + l.getImportoLiquidazione();
    }

    // ***************************************************
    // Eseguo l'aggiornamento dei dati...
    // ***************************************************

    // 0- Aggiorno i dati delle singole liquidazioni
    for (LiquidazioneMutuo l : mutuo.getLiquidazioni()) {
      // BARBARA lo setto nel FE
      // Se il mutuo e' a SAL aggiorno il prog delle tranche...
      // if( "L".equals( datifin.getCodiceTipoGenerazionepiano() ) ){
      // l.setRiferimentoProgressivoTranche(1);
      // }

      if (l.getFlagRichiesta() != null && "S".equals(l.getFlagRichiesta())) {
        l.setFlagModificato("S");
      }

    }

    // 1- aggiorno i dati del mutuo da liquidare...
    datifin.setImportoLiquidato(importoLiquidato);

    // Se il mutuo e' gia' nello stato liquidazione o in uno stato
    // successivo non faccio l'aggiornamento
    // del codStato e della data Stato.
    // TODO: ci metto lo stato liquidazio... bho! Tab_Variazioni_Stato...
View Full Code Here

  @Override
  public Double getCapitaleResiduo(long mutuoId, Date dataCalcolo) throws GestionePraticaException,
      DataAntecedenteDataDecorrenzaException {

    // Recupero i dati finanziari del mutuo validi alla in input
    GruppoDatiFinanziari gdf = gestionePraticaDao.getDatiFinanziariAllaData(mutuoId, dataCalcolo);
    if (gdf == null) {
      String dataCalcoloStr = DateUtility.formattaDataBreve(dataCalcolo);
      String msg = messages.getMessage("gestionePratica.datiFinanziari.noData", new Object[] { dataCalcoloStr });
      GestionePraticaException gpe = new GestionePraticaException(msg);
      throw gpe;
    }

    Double capitaleResiduo = 0.0;

    capitaleResiduo = gestionePraticaDaoJdbc.getCapitaleResiduoPam(gdf.getNumeroPam(), dataCalcolo);

    return capitaleResiduo;
  }
View Full Code Here

TOP

Related Classes of it.pdor.gestionePratica.domain.GruppoDatiFinanziari

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.