Exemplo n.º 1
0
 public string RimozioneAutorizzazione(DisposizionePagamentoDTO pagamento)
 {
     if (pagamento.IdPagamento > 0 || pagamento.IdScadenza > 0)
     {
         var result = GetServiceClient().RimozioneAutorizzazionePagamentoFattura(pagamento.IdPagamento, pagamento.IdScadenza.GetValueOrDefault(), GetUserInfo());
         CloseService();
         return result;
     }
     return string.Empty;
 }
Exemplo n.º 2
0
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _pagamentoClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _pagamentoClick = DataGridHelper.GetCellEvent<DisposizionePagamentoDTO>(lista, e);
         if (_pagamentoClick != null)
             contextMenuStrip1.Show(lista, e.X, e.Y);
     }
 }
Exemplo n.º 3
0
        private void apriSpesa(DisposizionePagamentoDTO item)
        {
            if (item != null)
            {
                if (item.IdSpesa > 0)
                {
                    CondominioDTO condominio = getCondominioService().GetById(item.IdCondominio, true);
                    EsercizioDTO esercizio = getEsercizioService().GetById(item.IdEsercizio);

                    if (item.StatoSpesa == Sfera.Enums.StatoSpesaEnum.PagataAltroAmministratore)
                    {
                        var form = getDettaglioSpesaService().GetFormDettaglioFiscale(item.IdSpesa.GetValueOrDefault());
                        var parentForm = ParentForm;
                        if (parentForm != null) form.MdiParent = parentForm.MdiParent;
                        form.Show();
                    }
                    else if (item.TipoDocumento.ToUpper() == Decodifica.Instance.GetElement("TipoDocumentoContabile", "BOLLETTA").Descrizione.ToUpper())
                    {
                        var service = ResolveComponent<IDettaglioBollettaUI>();
                        Form form = service.GetFormDettaglio(item.IdSpesa.GetValueOrDefault(), condominio, esercizio);
                        if (!form.IsDisposed)
                        {
                            var parentForm = ParentForm;
                            if (parentForm != null) form.MdiParent = parentForm.MdiParent;
                            form.Show();
                        }
                    }
                    else if (item.TipoDocumento.ToUpper() == Decodifica.Instance.GetElement("TipoDocumentoContabile", "FATBILAPP").Descrizione.ToUpper())
                    {
                        var service = ResolveComponent<IBilancioAperturaUI>();
                        var form = service.GetFormDettaglio(condominio, esercizio);
                        var parentForm = ParentForm;
                        if (parentForm != null) form.MdiParent = parentForm.MdiParent;
                        form.Show();
                    }
                    else if (item.TipoDocumento.ToUpper() == Decodifica.Instance.GetElement("TipoDocumentoContabile", "NOTACC").Descrizione.ToUpper() && item.StatoSpesa == Sfera.Enums.StatoSpesaEnum.Stornata)
                    {
                        Form form = getDettaglioSpesaService().GetFormNotaAccredito(item.IdSpesa.GetValueOrDefault(), condominio, esercizio);
                        var parentForm = ParentForm;
                        if (parentForm != null) form.MdiParent = parentForm.MdiParent;
                        form.Show();
                    }
                    else
                    {
                        Form form = getDettaglioSpesaService().GetFormDettaglio(item.IdSpesa.GetValueOrDefault());
                        var parentForm = ParentForm;
                        if (parentForm != null) form.MdiParent = parentForm.MdiParent;
                        form.Show();
                    }
                }
            }
        }
Exemplo n.º 4
0
        private void apriSpesa(DisposizionePagamentoDTO item)
        {
            try
            {
                if (item?.IdSpesa > 0)
                {
                    var condominio = getCondominioService().GetById(item.IdCondominio, true);
                    var esercizio = getEsercizioService().GetById(item.IdEsercizio);

                    if (item.StatoSpesa == StatoSpesaEnum.PagataAltroAmministratore)
                    {
                        var form = getDettaglioSpesaService().GetFormDettaglioFiscale(item.IdSpesa.GetValueOrDefault());
                        if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                        form.Show();
                    }
                    else if (item.TipoDocumento.ToUpper() == Decodifica.Instance.GetElement("TipoDocumentoContabile", "BOLLETTA").Descrizione.ToUpper())
                    {
                        var service = ResolveComponent<IDettaglioBollettaUI>();
                        var form = service.GetFormDettaglio(item.IdSpesa.GetValueOrDefault(), condominio, esercizio);
                        if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                        form.Show();
                    }
                    else if (item.TipoDocumento.ToUpper() == Decodifica.Instance.GetElement("TipoDocumentoContabile", "FATBILAPP").Descrizione.ToUpper())
                    {
                        var service = ResolveComponent<IBilancioAperturaUI>();
                        var form = service.GetFormDettaglio(condominio, esercizio);
                        if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                        form.Show();
                    }
                    else if (item.TipoDocumento.ToUpper() == Decodifica.Instance.GetElement("TipoDocumentoContabile", "NOTACC").Descrizione.ToUpper() && item.StatoSpesa == StatoSpesaEnum.Stornata)
                    {
                        var form = getDettaglioSpesaService().GetFormNotaAccredito(item.IdSpesa.GetValueOrDefault(), condominio, esercizio);
                        if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                        form.Show();
                    }
                    else
                    {
                        var form = getDettaglioSpesaService().GetFormDettaglio(item.IdSpesa.GetValueOrDefault());
                        if (!form.IsDisposed)
                        {
                            if (ParentForm != null) form.MdiParent = ParentForm.MdiParent;
                            form.Show();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nell'apertura del pagamento - {0} - pagamento:{1} - azienda:{2}", ex, Utility.GetMethodDescription(), item?.IdPagamento.ToString() ?? "<NULL>", Security.Login.Instance.CurrentLogin().Azienda);                
                throw;
            }
        }
        public string CreatePagamentiImmediati(Spesa spesa, IList<ScadenzaFatturaDTO> scadenze, LogTransazione logTransazione)
        {
            try
            {
                var anomalie = string.Empty;
                var scadenzePagate = (scadenze.Where(scad => scad.IdContoPagamentoScadenza != null && !string.IsNullOrEmpty(scad.Stato))).ToList();

                // ============================================================
                // Controllo Pagamenti
                // ============================================================
                anomalie = (from dto in scadenzePagate let scadenza = _daoFactory.GetScadenzaFatturaDao().Find(dto.ID, false) where scadenza != null where dto.Importo > scadenza.Importo.GetValueOrDefault() - scadenza.ImportoPagato select scadenza).Aggregate(anomalie, (current, scadenza) => current + ("Per la spesa: " + _archiviazioneOtticaService.GetIdentificativoArchiviazione(scadenza.SpesaRiferimento) + " l'importo del pagamento è superiore al residuo da pagare"));

                // ============================================================
                // Esecuzione Pagamenti
                // ============================================================
                if (string.IsNullOrEmpty(anomalie) && scadenzePagate.Any())
                {
                    AnnullamentoPagamentiSpesa(spesa.ID);

                    var descrizione = "Pagamento Immediato";
                    if (spesa.NumeroDocumento != null)
                        descrizione += $" Fatt. n. {spesa.NumeroDocumento}";
                    if (spesa.DataDocumento != null)
                        descrizione += $" del {spesa.DataDocumento.Value:d}";

                    // Per avere un cascade corretto dell'oggetto ScadenzaFattura la disposizione di pagamento viene collegata allo stesso
                    // logtransazione del file d'importazione diverso dal log di transazione della spesa
                    var logTransazioneDisposizione = logTransazione;
                    if (spesa.FileImportazione != null && spesa.FileImportazione.LogTransazione != null)
                        logTransazioneDisposizione = spesa.FileImportazione.LogTransazione;

                    var disposizione = new Disposizione(descrizione, DateTime.Now, spesa.EsercizioRiferimento.CondominioRiferimento.Azienda, logTransazioneDisposizione);
                    if (logTransazione == null)
                        _daoFactory.GetDisposizioneDao().SaveOrUpdate(disposizione);

                    var lista = new List<DisposizionePagamentoDTO>(spesa.Scadenze.Count);
                    var index = 0;
                    foreach (var scadenzaDto in scadenzePagate)
                    {
                        try
                        {
                            var scadenza = _daoFactory.GetScadenzaFatturaDao().Find(scadenzaDto.ID, false);

                            // Per le scadenze create dall'importazione bollette l'ID della scadenza è valorizzato solo alla fine
                            if (scadenza == null)
                            {
                                if (spesa.FileImportazione != null && scadenzePagate.Count == spesa.Scadenze.Count)
                                    scadenza = spesa.Scadenze.ToList()[index];
                            }
                            if (scadenza != null && scadenza.SpesaRiferimento != null && scadenza.SpesaRiferimento.EsercizioRiferimento != null && scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento != null)
                            {
                                var dto = new DisposizionePagamentoDTO
                                {
                                    DataDocumento = spesa.DataDocumento,
                                    DataScadenza = scadenza.Scadenza,
                                    Detrazione = spesa.Detrazione,
                                    IdScadenza = scadenza.ID,
                                    ImportoAutorizzato = scadenza.Importo,
                                    ImportoPagamento = scadenza.Importo.GetValueOrDefault(),
                                    ImportoPagato = 0,
                                    ImportoRitenuta = scadenza.ImportoRitenuta,
                                    ImportoScadenza = scadenza.Importo,
                                    IdSpesa = scadenza.SpesaRiferimento.ID,
                                    NumeroDocumento = spesa.NumeroDocumento,
                                    Selezionabile = true,
                                    Valuta = scadenza.Scadenza,
                                    IdConto = scadenzaDto.IdContoPagamentoScadenza,
                                    IdSottoConto = scadenzaDto.IdSottoContoPagamentoScadenza,
                                    DataPagamentoRitenuta = scadenzaDto.DataPagamentoRitenuta,
                                    IdEsercizio = scadenza.SpesaRiferimento.EsercizioRiferimento.ID,
                                    IdCondominio = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID,
                                    ImponibileSpesa = scadenza.SpesaRiferimento.Imponibile,
                                    IdentificativoArchiviazioneOttica = _archiviazioneOtticaService.GetIdentificativoArchiviazione(scadenza.SpesaRiferimento, true),
                                    StatoSpesa = scadenza.SpesaRiferimento.Stato
                                };

                                if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale != null)
                                {
                                    dto.Abi = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.Abi;
                                    dto.Cab = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.Cab;
                                }

                                if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Responsabile != null)
                                    dto.ResponsabileCondominio = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Responsabile.DisplayName;
                                if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ResponsabileContabilita != null)
                                    dto.ResponsabileContabilita = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ResponsabileContabilita.DisplayName;

                                dto.Contestata = scadenza.SpesaRiferimento.Contestata;
                                if (scadenza.SpesaRiferimento.Sinistro > 0)
                                    dto.Sinistro = true;

                                lista.Add(dto);
                            }
                            else
                                _log.WarnFormat("ATTENZIONE: Anomalia nel tentativo di creare i pagamenti immediati - {0} - scadenza:{1} - spesa:{2}", Utility.GetMethodDescription(), scadenza != null ? scadenza.ID.ToString() : "<NULL>", spesa.ID);

                            index++;
                        }
                        catch (Exception ex)
                        {
                            _log.ErrorFormat("Errore nella creazione dei pagamenti immediati - SINGOLA SCADENZA - {0} - data:{1} - importo:{2:c} - conto:{3} - sottoconto:{4}", ex, Utility.GetMethodDescription(), scadenzaDto.ID, scadenzaDto.IdContoPagamentoScadenza, scadenzaDto.IdSottoContoPagamentoScadenza);
                            throw;
                        }
                    }
                    createPagamenti(disposizione, lista, StatoSpesaEnum.Pagata, DataPagamentoEnum.Scadenza, TipoPagamentoFatturaEnum.Immediato, spesa.Scadenze.ToList());

                    // Movimenti Contabili
                    _movimentiContabilitaService.SetMovimentiPagamenti(disposizione, null, logTransazione);
                }

                return anomalie;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella creazione dei pagamenti immediati - {0} - spesa:{1}", ex, Utility.GetMethodDescription(), spesa.ID);
                throw;
            }

        }
        private List<DisposizionePagamentoDTO> convertScadenzeToDto(IEnumerable<ScadenzaFattura> scadenze, bool detraibile, bool daAutorizzare)
        {
            // TODO: Per migliorare le prestazioni utilizzare un NHIbernate Projection: http://elegantcode.com/2007/11/06/dtos-presentation-model-and-icriteria/

            try
            {
                var lista = new List<DisposizionePagamentoDTO>();
                foreach (var scadenza in scadenze)
                {
                    try
                    {
                        if (daAutorizzare || scadenza.ImportoAutorizzato > 0)
                        {
                            var dispPag = new DisposizionePagamentoDTO
                            {
                                IdSpesa = scadenza.SpesaRiferimento.ID,
                                DataDocumento = scadenza.SpesaRiferimento.DataDocumento,
                                DataScadenza = scadenza.Scadenza,
                                Detrazione = scadenza.SpesaRiferimento.Detrazione,
                                IdCondominio = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID,
                                Condominio = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DisplayName,
                                IdEsercizio = scadenza.SpesaRiferimento.EsercizioRiferimento.ID,
                                Esercizio = scadenza.SpesaRiferimento.EsercizioRiferimento.DisplayName,
                                Fornitore = scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName,
                                IdScadenza = scadenza.ID,
                                ImportoPagato = scadenza.ImportoPagato,
                                ImportoAutorizzato = scadenza.ImportoAutorizzato,
                                NumeroDocumento = scadenza.SpesaRiferimento.NumeroDocumento,
                                TipoDocumento = Decodifica.Instance.GetElement("TipoDocumentoContabile", scadenza.SpesaRiferimento.TipoDocumento).Descrizione,
                                Stato = Decodifica.Instance.GetElement("StatoSpesa", scadenza.Stato.ToString()).Descrizione,
                                Valuta = DateTime.Today,
                                IdentificativoArchiviazioneOttica = _archiviazioneOtticaService.GetIdentificativoArchiviazione(scadenza.SpesaRiferimento, true),
                                Contestata = scadenza.SpesaRiferimento.Contestata,
                                StatoSpesa = scadenza.SpesaRiferimento.Stato,
                                ImponibileSpesa = scadenza.SpesaRiferimento.Imponibile
                            };

                            // -----------------------------------------------------------------------------------------------------------
                            // Se la spesa è soggetta a ritenuta deve essere versato al fornitore l'importo comprensivo di ritenuta 
                            // Se per la scadenza è previsto il versamento della ritenuta totale al primo pagamento occorre sempre
                            // proporre l'importo residuo della ritenuta.
                            // -----------------------------------------------------------------------------------------------------------
                            var importoRitenuta = scadenza.PagamentoCompletoRitenuta ? scadenza.GetImportoRitenutaResiduo() : Common.ContabilitaHelper.GetImportoRitenuta(scadenza.SpesaRiferimento, dispPag.ImportoAutorizzato).GetValueOrDefault();

                            var importoDaPagare = scadenza.Importo - scadenza.ImportoPagato;
                            if (scadenza.SpesaRiferimento.Detrazione.GetValueOrDefault() == 0)
                            {
                                dispPag.ImportoScadenza = scadenza.Importo;
                                dispPag.ImportoDaPagare = importoDaPagare;
                                dispPag.ImportoRitenuta = importoRitenuta;
                            }
                            else
                            {
                                importoRitenuta = Common.ContabilitaHelper.GetImportoRitenuta(scadenza.SpesaRiferimento, importoDaPagare).GetValueOrDefault();
                                dispPag.ImportoScadenza = scadenza.Importo + importoRitenuta;
                                dispPag.ImportoDaPagare = scadenza.Importo + importoRitenuta - scadenza.ImportoPagato;
                            }

                            if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale != null)
                            {
                                dispPag.Abi = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.Abi;
                                dispPag.Cab = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.Cab;
                            }

                            if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Responsabile != null)
                                dispPag.ResponsabileCondominio = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Responsabile.DisplayName;
                            if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ResponsabileContabilita != null)
                                dispPag.ResponsabileContabilita = scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ResponsabileContabilita.DisplayName;

                            if (scadenza.SpesaRiferimento.Sinistro > 0)
                                dispPag.Sinistro = true;

                            if (scadenza.SpesaRiferimento.FornitoreRiferimento.ModalitaPagamento != null)
                                dispPag.IdModalitaPagamento = scadenza.SpesaRiferimento.FornitoreRiferimento.ModalitaPagamento.ID;

                            var pagAutorizzato = scadenza.Pagamenti.FirstOrDefault(pag => pag.Stato == StatoSpesaEnum.Autorizzata);
                            if (pagAutorizzato != null)
                            {
                                dispPag.IdPagamento = pagAutorizzato.ID;
                                dispPag.ImportoPagamento = pagAutorizzato.Importo.Value;
                                dispPag.DataPagamento = pagAutorizzato.Data;
                                if (pagAutorizzato.ModalitaPagamento != null)
                                    dispPag.IdModalitaPagamento = pagAutorizzato.ModalitaPagamento.ID;
                                if (pagAutorizzato.RitenutaAcconto != null)
                                    dispPag.ImportoRitenuta = scadenza.PagamentoCompletoRitenuta ? scadenza.GetImportoRitenutaResiduo() : Common.ContabilitaHelper.GetImportoRitenuta(scadenza.SpesaRiferimento, dispPag.ImportoPagamento);
                            }

                            // =============================================
                            // Validazioni
                            // =============================================
                            dispPag.Selezionabile = true;
                            if (scadenza.SpesaRiferimento.Contestata)
                            {
                                dispPag.Selezionabile = false;
                                dispPag.ErroreNonSelezionabile = "La fattura " + scadenza.SpesaRiferimento.NumeroDocumento + " del " + scadenza.SpesaRiferimento.DataDocumento.GetValueOrDefault().ToShortDateString() + " è CONTESTATA";
                            }

                            if (!daAutorizzare && !detraibile && !(!detraibile && (dispPag.Detrazione == null || dispPag.Detrazione == 0)))
                            {
                                dispPag.Selezionabile = false;
                                dispPag.ErroreNonSelezionabile = "La fattura " + scadenza.SpesaRiferimento.NumeroDocumento + " del " + scadenza.SpesaRiferimento.DataDocumento.GetValueOrDefault().ToShortDateString() + " è DETRAIBILE con detrazione del " + dispPag.Detrazione.GetValueOrDefault() + "%";
                            }

                            // ------------------------------------------
                            // Solo per bonifici tramite CBI
                            // ------------------------------------------
                            if (!detraibile && !daAutorizzare)
                            {
                                if (scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale == null)
                                {
                                    dispPag.Selezionabile = false;
                                    dispPag.ErroreNonSelezionabile = "Per il condominio '" + scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DisplayName + "' non è presente nessuna banca principale";
                                }

                                // Deve essere presente o l'IBAN o tutti i singoli campi che definiscono il conto corrente
                                if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Iban))
                                {
                                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Abi))
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' non è presente il codice ABI.";
                                    }
                                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Abi.Length > 5)
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' il codice ABI non è corretto è più lungo di 5 caratteri.";
                                    }

                                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cab))
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' non è presente il codice CAB.";
                                    }
                                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cab.Length > 5)
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' il codice CAB non è corretto è più lungo di 5 caratteri.";
                                    }

                                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.ContoCorrente))
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' non è presente il CONTO CORRENTE.";
                                    }
                                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.ContoCorrente.Length > 12)
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' il CONTO CORRENTE non è corretto è più lungo di 12 caratteri.";
                                    }

                                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cin))
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' non è presente il codice CIN.";
                                    }
                                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cin.Length > 1)
                                    {
                                        dispPag.Selezionabile = false;
                                        dispPag.ErroreNonSelezionabile = "Per il fornitore '" + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + "' il codice CIN non è corretto è più lungo di 1 carattere.";
                                    }
                                }
                                else
                                {
                                    var coord = new Library.BusinessData.CoordinateBancarie();
                                    coord.SetIBAN(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Iban);
                                    scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Abi = coord.Abi;
                                    scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cab = coord.Cab;
                                    scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.ContoCorrente = coord.ContoCorrente;
                                    scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cin = coord.Cin;
                                }
                            }

                            lista.Add(dispPag);
                        }
                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nel recupero delle scadenze da autorizzazione di eliminazione di un pagamento - SINGOLA SCADENZA - {0} - scadenza:{1} - detraibile:{2} - daAutorizzare:{3}", ex, Utility.GetMethodDescription(), scadenza.ID, detraibile, daAutorizzare);
                        throw;
                    }
                }

                return lista;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nel recupero delle scadenze da autorizzazione di eliminazione di un pagamento - {0} - detraibile:{1} - daAutorizzare:{2}", ex, Utility.GetMethodDescription(), detraibile, daAutorizzare);
                throw;
            }
        }