Date dataRegistrazione = testataFattura.getDataFattura();
String descrizioneMovimento = StringUtils.substring(testataFattura.getTipoIntestatario() + "/"
+ testataFattura.getNumeroIntestatario() + " " + testataFattura.getDescrizioneSoggetto(), 0, 60);
DatiFattura datiFattura = new DatiFattura();
datiFattura.setTipoIntestatario(testataFattura.getTipoIntestatario());
inizializzaNumerazioneArticolo(datiFattura);
for (DettaglioFattura dettaglioFattura : righeFattura) {
datiFattura.setStd_tp_registro_iva(testataFattura.getTipoBollatoIva());
datiFattura.setStd_tp_documento_iva(testataFattura.getTipoDocumentoIva());
datiFattura.setStd_tp_protocollo(testataFattura.getCodiceTipoProtocollo());
datiFattura.setStd_nro_protocollo(testataFattura.getNumeroProtocollo());
datiFattura.setFlagMovimento(dettaglioFattura.getFlagMovimento());
VoceContabilizzazione voce = new VoceContabilizzazione();
voce.setCodiceFamiglia(dettaglioFattura.getCodiceFamiglia());
voce.setCodiceOperazione(dettaglioFattura.getCodiceOperazione());
voce.setTipoPiano(dettaglioFattura.getTipoPam());
voce.setNumeroPiano(NumberUtils.checkNull(dettaglioFattura.getNumeroPam()));
voce.setNumeroRata(NumberUtils.checkNull(dettaglioFattura.getProgressivoRata()));
String descrizioneConto = parametriContabilizzaFattura.getDescrizioniConti().get(
dettaglioFattura.getProgressivoRiga());
voce.setDescrizioneBanca(descrizioneConto);
voce.setDescrizioneMutuo(descrizioneConto);
voce.setDescrizioneSoggetto(descrizioneConto);
// inizializzazione come da legacy
voce.setImportoVoce(0);
voce.setImportoIva(0);
datiFattura.setFlagSegno(dettaglioFattura.getFlagSegno());
if ("D".equalsIgnoreCase(datiFattura.getFlagSegno())) {
voce.setImportoVoce((dettaglioFattura.getImportoVoceDare() == null) ? 0.0 : dettaglioFattura
.getImportoVoceDare());
voce.setImportoIva((dettaglioFattura.getImportoIvaDare() == null) ? 0.0 : dettaglioFattura
.getImportoIvaDare());
} else {
voce.setImportoVoce((dettaglioFattura.getImportoVoceAvere() == null) ? 0.0 : dettaglioFattura
.getImportoVoceAvere());
voce.setImportoIva((dettaglioFattura.getImportoIvaAvere() == null) ? 0.0 : dettaglioFattura
.getImportoIvaAvere());
}
voce.setCodiceIva(dettaglioFattura.getCodiceIva());
voce.setCodiceTipoProtocollo(dettaglioFattura.getCodiceTipoProtocollo());
if (dettaglioFattura.getCodiceTipoProtocollo() != null
&& !"".equals(dettaglioFattura.getCodiceTipoProtocollo())) {
datiFattura.setStd_tp_protocollo(dettaglioFattura.getCodiceTipoProtocollo());
datiFattura.setStd_tp_registro_iva(dettaglioFattura.getTipoBollatoIva());
datiFattura.setStd_tp_documento_iva(dettaglioFattura.getTipoDocumentoIva());
datiFattura.setStd_nro_protocollo(dettaglioFattura.getNumeroProtocollo());
} else {
datiFattura.setStd_tp_protocollo(testataFattura.getCodiceTipoProtocollo());
}
voce.setDataScadenza(testataFattura.getDataFattura());
voce.setDataValuta(null);
voce.setDataCompetenza(testataFattura.getDataFattura());
voce.verificaDataCompetenza(dataRegistrazione, parametriContabiliGenerali.getDataConsolidatoCorrente(),
parametriContabiliGenerali.getDataFineEsercizioCorrente(), parametriContabiliGenerali
.getDataConsolidatoSuccessivo(), parametriContabiliGenerali
.getDataFineEsercizioSuccessivo());
voce.setDescrizioneMovimentoAvere(descrizioneMovimento);
voce.setDescrizioneMovimentoDare(descrizioneMovimento);
voce.setDescrizioneConto("");
voce.setConto(0l);
voce.setNumeroMutuo(testataFattura.getNumeroIntestatario());
voce.setTipoIntestatario(testataFattura.getTipoIntestatario());
if ("S".equalsIgnoreCase(testataFattura.getTipoIntestatario())) {
voce.setNumeroSoggetto(testataFattura.getNumeroIntestatario());
} else {
voce.setNumeroSoggetto(0l);
}
voce.setPratica(0l);
voce.setDebitoResiduoLegale(0);
voce.setGruppoPartitario(testataFattura.getCodiceGruppo());
voce.setMastroPartitario(testataFattura.getCodiceMastro());
voce.setContoPartitario(testataFattura.getNumeroIntestatario());
voce.setNumeroPartita(dettaglioFattura.getProgressivoPartita());
voce.setDescrizionePartita("");
// FIXME inserito per replicare comportamento legacy
DatiGiroPrima dgp = new DatiGiroPrima();
new ElaboraVoceDaRigaFattura(codiceSocietaVeicolo, dataRegistrazione, datiFattura,
parametriContabiliGenerali, parametriContabiliPerSocietaVeicolo, voce, contabilitaDao)
.elaboraVoceDaRigaFattura(dgp);
dettaglioFattura.setNumeroArticolo(datiFattura.getNumeroArticolo());
contabilitaDao.modificaDettaglioFattura(dettaglioFattura);
}// fine for su righe fattura
testataFattura.setNumeroArticolo(datiFattura.getNumeroArticolo());
contabilitaDao.modificaTestataFattura(testataFattura);
}