String codiceFunzione = parametriCreaFattura.getCodiceFunzione();
Date dataRegistrazione = parametriCreaFattura.getDataFattura();
new CheckerDataRegistrazione(dataRegistrazione, parametriContabiliGenerali).checkDataRegistrazione();
VoceContabilizzazione voce = new VoceContabilizzazione();
voce.setCodiceFamiglia(parametriCreaFattura.getCodiceFamiglia());
voce.setImportoVoce(0);
voce.setCodiceOperazione("");
voce.setDataScadenza(null);
voce.setDataValuta(null);
voce.setDataCompetenza(null);
voce.setDescrizioneMovimentoDare("");
voce.setDescrizioneMovimentoAvere("");
voce.setDescrizioneConto("");
voce.setConto(0l);
voce.setNumeroPiano(0);
voce.setNumeroRata(0);
voce.setNumeroPartita(0);
voce.setDescrizionePartita("");
voce.setTipoPiano("");
if ("S".equals(parametriCreaFattura.getTipoIntestatario())) {
voce.setNumeroSoggetto(parametriCreaFattura.getCodiceIntestatario());
voce.setNumeroMutuo(0l);
} else {
voce.setNumeroMutuo(parametriCreaFattura.getCodiceIntestatario());
voce.setNumeroSoggetto(0l);
}
DatiFattura datiFattura = new DatiFattura();
datiFattura.setTipoIntestatario(parametriCreaFattura.getTipoIntestatario());
datiFattura.setCodiceIntestatario(parametriCreaFattura.getCodiceIntestatario());
DatiTestataFattura datiTestataFattura = adattaDati(parametriCreaFattura);
Long gruppoSoggetto = 0l;
Long mastroSoggetto = 0l;
GestioneTestataFattura creatoreTestataFattura = new GestioneTestataFattura(datiFattura, datiTestataFattura,
codiceFunzione, dataRegistrazione, responsabileCreazioneFattura, codiceSocietaVeicolo, contabilitaDao, "",
null);
creatoreTestataFattura.creaTestataFattura(true);
gruppoSoggetto = creatoreTestataFattura.getGruppoSoggetto();
mastroSoggetto = creatoreTestataFattura.getMastroSoggetto();
long gruppoPerGetRiferimentoProtocollo;
long mastroPerGetRiferimentoProtocollo;
gruppoPerGetRiferimentoProtocollo = !gruppoSoggetto.equals(0) ? gruppoSoggetto.longValue() : datiTestataFattura
.getCodiceGruppo();
mastroPerGetRiferimentoProtocollo = !mastroSoggetto.equals(0) ? mastroSoggetto.longValue() : datiTestataFattura
.getCodiceMastro();
List<MutuoOperazione> mutuoOperazioneLista = contabilitaDao.cercaMutuoOperazioneAttivo(parametriCreaFattura
.getTipoMutuoInt(), codiceFunzione);
if (mutuoOperazioneLista.size() == 0)
throw new NessunaRigaGenreataPerLaFatturaException();
Collections.sort(mutuoOperazioneLista, new MutuoOperazioneComparator());
for (MutuoOperazione mutuoOperazione : mutuoOperazioneLista) {
Operazione operazione = mutuoOperazione.getOperazione();
Famiglia famiglia = mutuoOperazione.getFamiglia();
voce.setCodiceOperazione(mutuoOperazione.getCodiceOperazione());
if (operazione != null && famiglia != null) {
VoceFattura voceFattura = operazione.getVoceFattura();
if (voceFattura != null) {
String codiceCausale = operazione.getCodiceCausaleOperazione();
if (codiceCausale != null)
codiceCausale = codiceCausale.trim();
RiferimentoProtocollo riferimentoProtocollo = new RiferimentoProtocollo(codiceCausale,
gruppoPerGetRiferimentoProtocollo, mastroPerGetRiferimentoProtocollo, contabilitaDao);
riferimentoProtocollo.getRiferimentoProtocollo(datiFattura);
voce.setSequenza(NumberUtils.checkNull(famiglia.getSequenza()));
new GestioneRigaFattura(datiFattura, voce, voceFattura, codiceFunzione, responsabileCreazioneFattura,
fissoCommissioni).creaRigaFattura();
datiFattura.setTp_protocollo(datiFattura.getStd_tp_protocollo() != null ? datiFattura.getStd_tp_protocollo()
.trim() : datiFattura.getStd_tp_protocollo());