// CausaleFattura causaleFattura = leggiCausaleFattura(testata.getCodiceCausaleFattura());
String codiceMutuoInterno = null;
Integer codiceMastro = 0;
Integer codiceGruppo = 0;
Long numeroIntestatario = testata.getNumeroIntestatario();
ParametriCreaFattura parametriCreaFattura = new ParametriCreaFattura();
if("S".equals(tipoIntestatario)){
codiceMutuoInterno = causaleFattura.getCodiceMutuoInterno();
codiceMastro = causaleFattura.getCodiceMastro();
codiceGruppo = causaleFattura.getCodiceGruppo();
if(codiceMutuoInterno == null){
throw new FatturaException(messageBundle.getMessage("AlertMsgMutuoInternoNonValorizzato"));
}else if(codiceMastro == 0){
throw new FatturaException(messageBundle.getMessage("AlertMsgMastroNonValorizzato"));
}else if(codiceGruppo == 0){
throw new FatturaException(messageBundle.getMessage("AlertMsgGruppoNonValorizzato"));
}
}else if("M".equals(tipoIntestatario)){
GruppoDatiFinanziari gdf = null;
try {
gdf = gestionePratica.getDatiFinanziariAllaData(numeroIntestatario, testata.getDataFattura());
} catch (DataAntecedenteDataDecorrenzaException e) {
log.debug(e.getMessage(), e);
throw new FatturaException(messageBundle.getMessage("TextDataFatturaAntecDataDecorrenzaMutuo"));
}
if(gdf != null){
codiceMutuoInterno = gdf.getCodiceMutuoInterno();
codiceGruppo = NumberUtils.checkNull(gdf.getCodiceGruppo()).intValue();
codiceMastro = NumberUtils.checkNull(gdf.getCodiceMastro()).intValue();
}else{
throw new FatturaException(messageBundle.getMessage("AlertMsgDatifinNonValorizzati"));
}
List<Legame> legami = gestionePratica.getLegamiPerMutuoRapporto(numeroIntestatario, CodiceRapporto.CODICE_RAPPORTO_TRAENTE.getValue());
if(legami.size() == 0){
Pratica pratica = contenziosoFacade.cercaPraticaByConto(numeroIntestatario);
if(pratica != null){
codiceGruppo = NumberUtils.checkNull(pratica.getGruppoCoge()).intValue();
codiceMastro = NumberUtils.checkNull(pratica.getMastroCoge()).intValue();
}
}else{
codiceMastro = causaleFattura.getCodiceMastro();
codiceGruppo = causaleFattura.getCodiceGruppo();
numeroIntestatario = legami.iterator().next().getNumeroSoggetto();
tipoIntestatario = "S";
}
}
parametriCreaFattura.setCodiceFamiglia(causaleFattura.getCodiceFamiglia());
parametriCreaFattura.setCodiceFunzione(causaleFattura.getCodiceFunzione());
parametriCreaFattura.setCodiceGruppo(codiceGruppo.longValue());
parametriCreaFattura.setCodiceIntestatario(numeroIntestatario);
parametriCreaFattura.setCodiceMastro(codiceMastro.longValue());
parametriCreaFattura.setCodiceSocietaVeicolo(testata.getCodiceSocietaVeicolo());
parametriCreaFattura.setDataFattura(testata.getDataFattura());
parametriCreaFattura.setDescrizione(testata.getDescrizioneSoggetto());
parametriCreaFattura.setTipoIntestatario(tipoIntestatario);
parametriCreaFattura.setTipoMutuoInt(codiceMutuoInterno);
return parametriCreaFattura;
}