CausaleMovimentoLegaleConSegnoErratoException, ContoNonUnivocoPerPianoDeiContiException,
ContoNonPiuAttivoException, TipoPartitarioNonPrevistoException, ErrataTipologiaSottocontoException,
ImpossibileCercareException, MastroAssociatoASocietaVeicoloDifferenteException,
SegnoCausaleNonPrevistoException, ContoNotFoundException {
Operazione operazione = contabilitaDao.leggiOperazione(voce.getCodiceOperazione());
if (operazione == null)
throw new OperazioneNotFoundException(voce.getCodiceOperazione());
try {
new ElaboraOperazione(voce, contabilitaDao, dataRegistrazione, datiFattura).elaboraOperazione(dgp,
operazione);
} catch (ElaborazioneOperazioneTerminataException e) {
return;
}
VoceFattura voceFattura = operazione.getVoceFattura();
if (voce.getImportoVoce() == 0) {
if (voceFattura == null)
return;
else {
new GestioneRigaFattura(datiFattura, voce, voceFattura, codiceFunzione, responsabileCreazioneFattura,
fissoCommissioni).creaRigaFattura();
return;
}
}
if (voceFattura != null && voceFattura.getFlagMovimento() == null)
voceFattura.setFlagMovimento("N");
if (voceFattura != null) {
RiferimentoProtocollo riferimentoProtocollo = new RiferimentoProtocollo(operazione
.getCodiceCausaleOperazione(), gruppoPerGetRiferimentoProtocollo,
mastroPerGetRiferimentoProtocollo, contabilitaDao);
riferimentoProtocollo.getRiferimentoProtocollo(datiFattura);
new GestioneRigaFattura(datiFattura, voce, voceFattura, codiceFunzione, responsabileCreazioneFattura,
fissoCommissioni).creaRigaFattura();
if ("S".equals(voceFattura.getFlagMovimento()))
return;
}
String codiceCausale = operazione.getCodiceCausaleOperazione();
codiceCausale = codiceCausale != null ? codiceCausale.trim() : codiceCausale;
if (codiceCausale == null || "".equals(codiceCausale))
return;
Set<DettaglioCausaleOperazione> dettagli = operazione.getCausaleOperazione().getDettagliCausaleOperazione();
for (DettaglioCausaleOperazione dettaglioCausale : dettagli) {
ControllaDettaglioCasusale controllaDettaglioCasusale = new ControllaDettaglioCasusale(voce,
contabilitaDao, dataRegistrazione, codiceSocietaVeicolo, datiFattura, parametriContabiliGenerali,
parametriContabiliPerSocietaVeicolo);