Package it.pdor.gestionePratica.domain

Examples of it.pdor.gestionePratica.domain.Mutuo


  /**
   * Test del ricalcolo del piano di ammortamento a seguito dell'ultima erogazione.
   */
  public void testRicalcoloPianoSalChiusura(){
    //Questo test funziona su DBINT per il mutuo 10018385
    Mutuo mutuo = null;
//    TrancheMutuoSal trancheIntermedia = null;
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date dataChiusura = null;
    try{
      XStream xt = new XStream(new DomDriver());
View Full Code Here


  }
 

  public void testUpdateMutuoLiquidazioni(){
    long numeroMutuo = 10018385;
    Mutuo mutuo = gestionePraticaFacade.getMutuoPerLiquidazione(numeroMutuo);
    LiquidazioneMutuo lm = new LiquidazioneMutuo();
    lm.setMutuo(mutuo);
    lm.setProgressivoLiquidazione(2);
    List<LiquidazioneMutuo> liq = new ArrayList<LiquidazioneMutuo>(mutuo.getLiquidazioni());
    liq.remove(lm);
    mutuo.setLiquidazioni(new HashSet<LiquidazioneMutuo>(liq));
    List<LiquidazioneMutuo> liquidazioniMutuoDaEliminare = new ArrayList<LiquidazioneMutuo>();
//    liquidazioniMutuoDaEliminare.add(lm);
//    List<LiquidazioneMutuo> liq = new ArrayList<LiquidazioneMutuo>(mutuo.getLiquidazioni());
//    LiquidazioneMutuo lm =  null;
//    for (Iterator iterator = liq.iterator(); iterator.hasNext();) {
//      LiquidazioneMutuo liquidazioneMutuo= (LiquidazioneMutuo) iterator.next();
//      if (liquidazioneMutuo.getProgressivoLiquidazione() == 7) {
//        lm = liquidazioneMutuo;
//      }
//    }
//    lm.setImportoLiquidazione(18d);
    //mutuo.getLiquidazioni().add(lm);
    Mutuo nuovoMutuo = gestionePraticaFacade.updateLiquidazioneMutuo(40, mutuo, null, liquidazioniMutuoDaEliminare);
    assertTrue("testUpdateMutuoLiquidazioni liquidazioni size", nuovoMutuo.getLiquidazioni().size() == 6);
  }
View Full Code Here

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

  private void aggiornaSpese(Finanziamento fin, GruppoDatiFinanziari nuoviDatifin) {
    if (fin.getSpese().size() == 0) {
      azzeraSpese(nuoviDatifin);
    } else {
      Mutuo mutuo = nuoviDatifin.getMutuo();
      for (Spesa s : fin.getSpese()) {
        // TODO Dove prendo il parametro da mettere nell'ultimo
        // parametro al posto di "M"
        for (CalcolaParametriDatiFinanziariImporti listaParamTmp : getElencoParametriDatiFinanziariImportiFrontEnd(
            mutuo.getCodiceProdotto(), mutuo.getDestinazioneFinalita(),
            mutuo.getRiferimentoMutuoAnticipo(), "M")) {
          if (s.getCodiceSpesa().equals(listaParamTmp.getCodiceImporto())) {
            ifnull != listaParamTmp.getUnicoCalcolaParametriDatiFinanziari() )
              listaParamTmp.getUnicoCalcolaParametriDatiFinanziari().setImporto(NumberUtils.checkNull(s.getImporto()));
            // VALORIZZO I CAMPI DEI DATI FINANZIARI PER OGNI SPESA
            // RESTITUITA DAL PIANO
View Full Code Here

  @Override
  public GruppoDatiFinanziari calcolaPrimoPiano(GruppoDatiFinanziari datiFin, List<Spesa> spese, List<Double> importoRate,
      String tipoFormaGiuridica, DatiRimborsoGraduati drg, Integer numeroRateSoloInteressi,
      boolean isRicalcoloTaegDatiRimbGrad, String flagIpoteca, List<AssicurazioneMutuo> assicurazioni, List<Immobile> immobili, List<Legame> mutuatari) throws GestionePraticaException {
    Mutuo mutuo = datiFin.getMutuo();
    //Completo le spese prima di passarle al motorino
    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);
    }

    // Metto il nuovo PAM nei nuovi dati finanziari
View Full Code Here

    String codiceSiaFlusso = "";
    String nomeSupporto = "";
    Long totDisposizioniFlusso = null;
    Long totRecordFlusso = null;
    String riferimOrig = "";
    Mutuo m;
    List<Mutuo> mAcquisiti = new ArrayList<Mutuo>();
    Long mutuoFlusso = null;
    boolean esistonoErrati = false;
    boolean erratiCaricati = false;
    String ibanFlusso = "";
    Date dataAttivazioneFlusso = new Date();
    Date dataInvio = null;
    Date dataRicezione = null;

    try {
      file = new FileInputStream(fileInput.getAbsolutePath());
      in = new BufferedReader(new InputStreamReader(file));
      ArrayList<String> mioFile = new ArrayList<String>();
      int contaDisposizioni = 0;

      // leggo il file e lo metto in un Array
      while ((inputLine = in.readLine()) != null) {

        if (inputLine.length() != 120) {
          throw new AttivazioneRIDException("LUNGHEZZA RECORD FLUSSO ERRATA");

        } else {
          mioFile.add(inputLine);
        }

      }

      // il primo record dell'array dev'essere " AL" e lungo 120 e
      // l'ultimo record � " EF"
      if (!mioFile.get(0).startsWith(" AL")) {
        throw new AttivazioneRIDException("il FLUSSO ["+fileInput.getName()+"]non � un file di flussi RID valido (AL)");
      } else if (!mioFile.get(mioFile.size() - 1).startsWith(" EF")) {
        throw new AttivazioneRIDException("il FLUSSO ["+fileInput.getName()+"]non � un file di flussi RID valido (EF)");
      } else {

        List<RidErrato> tabRidErrati = gestionePraticaDao.getFlussiErratiRID(new ArrayList<SearchCriteriaLogicProduct>());
       
        for (int i = 0; i < mioFile.size(); i++) {
         
          String record = mioFile.get(i);
          boolean ridErrati = false;

          if (record.startsWith(" AL")) {
            codiceSiaFlusso = record.substring(8, 13);
            nomeSupporto = record.substring(19, 39);
            if (!codSia.equals(codiceSiaFlusso)) {
              throw new AttivazioneRIDException("Il Codice SIA del Flusso ("+codiceSiaFlusso+") non coincide con il codice Sia della Banca ("+codSia+")");
            }
          }
         
          if (record.startsWith(" 12") && i > 1
              && !mioFile.get(i - 1).startsWith(" 70")) {
            throw new AttivazioneRIDException("SEQUENZA FLUSSO ERRATO: [12 - 70]");

          } else {
           
            if (record.startsWith(" 12")) {

              causale = record.substring(28, 33);

              String dataInvioStr = record.substring(16, 22);
              if(dataInvioStr != null && "".equals(dataInvioStr.trim())) {
               
                dataInvioStr ="01/01/1900";
                SimpleDateFormat formatterData = new SimpleDateFormat("dd/MM/yyyy");
               
                try {
                  dataInvio = formatterData.parse(dataInvioStr);
                } catch (ParseException e) {
                  log.error(e.toString());
                  e.printStackTrace();
                  throw new AttivazioneRIDException("Errore nella formattazione delle date presenti nel FILE.");
                }
               
              } else{
               
                dataInvio = convertiDataFlusso(dataInvioStr);
              }
             
              log.info("dataInvioStr: <"+dataInvioStr+">");

              try{
                mutuoFlusso = Long.parseLong(record.substring(97, 113));             
                log.info("mutuoFlusso: <"+mutuoFlusso+">");

              }catch (NumberFormatException nfe) {
                log.error("parseLong sul mutuo non riuscito!!!");
                nfe.printStackTrace();
                mutuoFlusso = null;
              }
             
              String ridFlusso = record.substring(97, 113);             
              log.info("ridFlusso: <"+ridFlusso+">");
             
              Long progDisposizione = null;
              try{
                progDisposizione = Long.parseLong(record.substring(3, 11));             
                log.info("progDisposizione: <"+progDisposizione+">");

              }catch (NumberFormatException nfe) {
                log.error("parseLong su progDisposizione non riuscito!!!");
                nfe.printStackTrace();
                progDisposizione = null;
              }

              String dataRicezioneStr = record.substring(10, 16);
              dataRicezione = convertiDataFlusso(dataRicezioneStr);
              log.info("dataRicezioneStr: <"+dataRicezioneStr+">");

              ibanFlusso = record.substring(43, 45)
                  + " " + record.substring(45, 47) + " "
                  + record.substring(68, 69) + " "
                  + record.substring(69, 74) + " "
                  + record.substring(74, 79) + " "
                  + record.substring(79, 91);
              log.info("ibanFlusso: <"+ibanFlusso+">");

              int count = 0;
              if(mutuoFlusso == null || progDisposizione == null) {
                count = 0;
              } else {
               
                count = gestionePraticaDaoJdbc.contaRecordIndRateFlussoRID(mutuoFlusso,ridFlusso);
              }

              if (count == 0) {
                ridErrati = true;
                esistonoErrati = true;
               
                for(RidErrato re : tabRidErrati) {
                 
                  if(re.getNomeSupporto().equals(nomeSupporto)
                    && re.getProgressivoDisposizione() == progDisposizione)
                    //throw new AttivazioneRIDException("IL FLUSSO E' GIA' STATO CARICATO A SISTEMA.");
                    erratiCaricati = true;
                }
               
                RidErrato ridErrato = new RidErrato();
                ridErrato.setNomeSupporto(nomeSupporto);
                if(progDisposizione != null) ridErrato.setProgressivoDisposizione(progDisposizione);
                else ridErrato.setProgressivoDisposizione(contaDisposizioni+1);
                ridErrato.setCodiceRid(ridFlusso);
                ridErrato.setCodiceCausale(causale);
                ridErrato.setDataInvio(dataInvio);
                ridErrato.setDataRicezione(dataRicezione);
                ridErrato.setNomeFile(fileInput.getName());
                ridErrato.setIbanFlusso(ibanFlusso);
                if(!erratiCaricati) gestionePraticaDao.inserisciRidErrati(ridErrato);

              }

            }
           
            if (record.startsWith(" 70")) {
              riferimOrig = record.substring(10, 100);
             
              log.info("riferimOrig: <"+riferimOrig+">");
             
              contaDisposizioni++;
             
              if (!ridErrati && mutuoFlusso != null){
               
                m = new Mutuo();
               
               
                m.setNumeroMutuoCustom(mutuoFlusso);
               
                Set<AttivazioneRid> listaAtt = new HashSet<AttivazioneRid>();
                AttivazioneRid att = new AttivazioneRid();
               
                att.setCodiceCausale(causale);
                att.setIbanCorrente(ibanFlusso);
                att.setDataRegistrazione(dataAttivazioneFlusso);
                att.setDataInvio(dataInvio);
                att.setDataRicezione(dataRicezione);
                att.setRiferimentoOrig(riferimOrig);
                att.setMutuo(m);
                listaAtt.add(att);
               
                m.setAttivazioniRid(listaAtt);
                mAcquisiti.add(m);
               
              }
             
            }
           
            if (record.startsWith(" EF")) {
              totDisposizioniFlusso = Long.parseLong(record.substring(45, 52));
              log.info("totDisposizioniFlusso: <"+totDisposizioniFlusso+">");
              totRecordFlusso = Long.parseLong(record.substring(82, 89));
              log.info("totRecordFlusso: <"+totRecordFlusso+">");
              if(mioFile.size() != totRecordFlusso) {
               
                throw new AttivazioneRIDException("Il numero di record indicato nel file non corrisponde al totale dei record inviati. " +
                    "L'operazione verra' annullata.");
              }
            }
             
          }
         
        }
       
        if(esistonoErrati && erratiCaricati){
          m = new Mutuo();
          m.setNoteStipula("IL FLUSSO E' GIA' STATO CARICATO A SISTEMA.");
          mAcquisiti.add(m);
        } else if (esistonoErrati){
          m = new Mutuo();
          m.setNoteStipula("Sono Presenti Flussi RID Scartati.");
          mAcquisiti.add(m);
        }
       
        if(totDisposizioniFlusso != contaDisposizioni ){
          throw new AttivazioneRIDException("Il numero di disposizioni indicato nel file non corrisponde al totale delle disposizioni inviate. " +
View Full Code Here

      gestioneSalAction.setTrancheMutuoSal( (TrancheMutuoSal)BeanUtils.cloneBean( getTrancheSelected()) );
      gestioneSalAction.setGruppoDatiFin(null);
      gestioneSalAction.setPam( getPam() );
      gestioneSalAction.setPamGenerato(true);
      gestioneSalAction.setModifica(true);
      Mutuo mutuo = dettaglioMutuo.getMutuo();
      Double importoTrancheErogate = 0d;
      for (TrancheMutuoSal tr : tranchesMutuoSal) {
        if (tr.getRiferimentoMovimentoStorno() == null) {
          importoTrancheErogate += tr.getImportoMovimento();
        }
      }
      Double importoMaxErogabile = gestionePratica.getDatiSal(mutuo.getNumeroMutuo()).getImpMaxErogabile();
      gestioneSalAction.setImportoResiduo(importoMaxErogabile - importoTrancheErogate);
    } catch (Exception e) {
      e.printStackTrace();
      log.warn("Impossibile copiare la tranche selezionata.",e);
    }
View Full Code Here

  }
 
  public List<TrancheMutuoSal> getTranchesMutuoSal() {
    if( tranchesMutuoSal == null )
      try{
        Mutuo mutuo = dettaglioMutuo.getMutuo();
       
        StatoMutuo sm = gestionePratica.getStatoMutuo(mutuo.getCodiceStato());
        if (CODICE_STATO_MUTUO_PROV.equals(sm.getCodiceTipoStato())) {
          throw new GestioneSalException(rb.getString("gestioneSal.mutuoProvvisorio"));
        }
       
        try {
          GruppoDatiFinanziari gdf =
            gestionePratica.getDatiFinanziariAllaData( mutuo.getNumeroMutuo() , new Date());
          ifgdf != null &&  !CODICE_TIPO_PIANO_SAL.equals(gdf.getCodiceTipoGenerazionepiano()) ){
            throw new GestioneSalException(rb.getString("gestioneSal.mutuoNoSal"));
          }
         
          tranchesMutuoSal = gestionePratica.getTranchesMutuoSal(mutuo.getNumeroMutuo());
        } catch (DataAntecedenteDataDecorrenzaException e) {
          throw new GestioneSalException(rb.getString("gestioneSal.impossibileVerificareSeMutuoSal"));
        }
      }catch (NullPointerException e) {
        log.debug("In sessione non ho piu il numero mutuo per cui torno alla ricerca",e);
View Full Code Here

  }
 
  private TrancheMutuoSal getNuovaTranche() {
    TrancheMutuoSal tranche = null;
    try{
      Mutuo mutuo = dettaglioMutuo.getMutuo();
      GruppoDatiFinanziari gdf = mutuo.getGruppoDatiFinanziari().iterator().next();
      tranche = new TrancheMutuoSal();
      tranche.setProgressivoMovimento(getMaxProgressivoMovimento()+1);
      tranche.setDataRegistrazione(new Date());
      tranche.setDataMovimento(new Date());
      tranche.setNumeroMutuo(mutuo.getNumeroMutuo());
      if (gdf.getPercentualeImpostaSostitutiva() != null &&
          gdf.getPercentualeImpostaSostitutiva() != 0) {
        tranche.setPercentualeImpostaSostitutiva(gdf.getPercentualeImpostaSostitutiva());
      } else {
        tranche.setPercentualeImpostaSostitutiva(0.25000d);
      }
      tranche.setTipoMovimento("T");
      tranche.setImportoMovimento(0.00d);
      tranche.setImportoProvvigioni(0.00d);
      tranche.setImportoSpesePerizia(0.00d);
      tranche.setImportoSpese(0.00d);
      tranche.setImportoSpeseInterne(0.00d);
      tranche.setImportoAssicurazioneCasa(0.0d);
      tranche.setImportoErogato(0.00d);
      Double importoTrancheErogate = 0d;
      for (TrancheMutuoSal tr : tranchesMutuoSal) {
        if (tr.getRiferimentoMovimentoStorno() == null) {
          importoTrancheErogate += tr.getImportoMovimento();
        }
      }
      Double importoMaxErogabile = gestionePratica.getDatiSal(mutuo.getNumeroMutuo()).getImpMaxErogabile();
      gestioneSalAction.setImportoResiduo(importoMaxErogabile - importoTrancheErogate);
    }catch (Exception e) {
      e.printStackTrace();
      log.error("Eccezione nell'inizializzazione di una nuova tranche", e);
     
View Full Code Here

      mutuo.setNumeroMutuoOriginale(mutuo.getNumeroMutuoCustom());
   
    long numeroPam = staccaNumeroPianoAmmortamento();
    mutuo.getDatiFinanziariAttuali().setNumeroPam(numeroPam);
   
    Mutuo mutuoActual = gestionePraticaDao.insertMutuo(mutuo);
   
    for (PianoAmmortamento pam : mutuoActual.getDatiFinanziariAttuali().getPianoAmmortamento()) {
      pam.getRataId().setNumeroPam(numeroPam);
      pam.setNumeroMutuo(mutuoActual.getNumeroMutuo());
      gestionePraticaDao.insertPam(pam);
    }
    return mutuoActual;
  }
View Full Code Here

TOP

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

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.