Esempio n. 1
0
        public string IsAllowPagamento(IList<int> idScadenze, bool checkCodice = false)
        {
            string anomalie = string.Empty;
            foreach (var id in idScadenze)
            {
                var scadenza = _daoFactory.GetScadenzaFatturaDao().GetById(id, false);
                if (checkCodice && string.IsNullOrEmpty(scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.CodiceSIA))
                    anomalie += "Per il condominio " + scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DisplayName + " non è presente il codice SIA." + Environment.NewLine;
                if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.CodiceFiscale))
                    anomalie += "Per il condominio " + scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DisplayName + " non è presente il CODICE FISCALE." + Environment.NewLine;
                if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Iban))
                {
                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Abi))
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " non è presente il codice ABI." + Environment.NewLine;
                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Abi.Length > 5)
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " il codice ABI non è corretto è più lungo di 5 caratteri." + Environment.NewLine;
                    
                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cab))
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " non è presente il codice CAB." + Environment.NewLine;
                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cab.Length > 5)
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " il codice CAB non è corretto è più lungo di 5 caratteri." + Environment.NewLine;

                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.ContoCorrente))
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " non è presente il CONTO CORRENTE." + Environment.NewLine;
                    else if(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.ContoCorrente.Length > 12)
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " il CONTO CORRENTE non è corretto è più lungo di 12 caratteri." + Environment.NewLine;

                    if (string.IsNullOrEmpty(scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cin))
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " non è presente il codice CIN." + Environment.NewLine;
                    else if (scadenza.SpesaRiferimento.FornitoreRiferimento.PersonaRiferimento.Cin.Length > 1)
                        anomalie += "Per il fornitore " + scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName + " il codice CIN non è corretto è più lungo di 1 carattere." + Environment.NewLine;
                }
                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;
                }

                // Verifico che l'esericizo sia aperto
                var esercizioCompetenza = _daoFactory.GetEsercizioDao().GetEsercizioCompetenza(scadenza.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento, DateTime.Today);
                if (esercizioCompetenza == null)
                    anomalie += $"Per la scadenza del fornitore '{scadenza.SpesaRiferimento.FornitoreRiferimento.DisplayName}' in data {scadenza.Scadenza:d} con importo {scadenza.Importo:c} non è ancora stato aperto l'esercizio in data {DateTime.Now:d}" + Environment.NewLine;
            }

            return anomalie;
        }
Esempio n. 2
0
        public void CorreggiAnagrafiche(int azienda)
        {
            var comuni = _daoFactory.GetComuneDao().GetAll().Where(item => string.IsNullOrEmpty(item.Cessato)).ToList();
            var persone = _daoFactory.GetPersonaDao().GetByAzienda(azienda);
            foreach (var persona in persone)
            {
                if (!string.IsNullOrEmpty(persona.Cognome) && persona.Cognome.Contains("*"))
                {
                    var nomeAry = persona.Cognome.Split('*');
                    persona.Nome = nomeAry[1];
                    persona.Cognome = nomeAry[0];
                }

                if (persona.IndirizzoResidenza != null)
                {
                    if (persona.IndirizzoResidenza.Comune == null && !string.IsNullOrEmpty(persona.IndirizzoResidenza.Localita))
                    {
                        var comune = comuni.Where(item => item.Descrizione.Contains(persona.IndirizzoResidenza.Localita)).ToList();
                        if (comune.Count == 1)
                        {
                            persona.IndirizzoResidenza.Comune = comune[0];
                            persona.IndirizzoResidenza.Localita = null;
                        }
                        else if(!string.IsNullOrEmpty(persona.IndirizzoResidenza.Cap))
                        {
                            comune = comuni.Where(item => item.Cap == persona.IndirizzoResidenza.Cap).ToList();
                            if (comune.Count == 1)
                            {
                                persona.IndirizzoResidenza.Comune = comune[0];
                                persona.IndirizzoResidenza.Localita = null;
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(persona.CodiceFiscale))
                {
                    var cdfis = new Library.BusinessData.CodiceFiscale();
                    var datiNascita = cdfis.CalcoloInversoCF(persona.CodiceFiscale);
                    if (datiNascita != null)
                    {
                        if(persona.DataNascita == null)
                            persona.DataNascita = datiNascita.Value.DataNascita;
                        if(persona.ComuneNascita == null)
                            persona.ComuneNascita = comuni.FirstOrDefault(item => item.CodiceCatastale == datiNascita.Value.CodiceComune);

                        if (persona.Sesso == SessoEnum.Undefined)
                        {
                            switch (datiNascita.Value.Sesso)
                            {
                                case "F":
                                    persona.Sesso = SessoEnum.Femmina;
                                    break;
                                case "M":
                                    persona.Sesso = SessoEnum.Maschio;
                                    break;
                            }
                        }
                    }
                }

                if (!string.IsNullOrEmpty(persona.ContoCorrente))
                    persona.ContoCorrente = persona.ContoCorrente.Trim();

                if (string.IsNullOrEmpty(persona.Iban) && !string.IsNullOrEmpty(persona.Abi) && !string.IsNullOrEmpty(persona.Cab) && !string.IsNullOrEmpty(persona.ContoCorrente))
                {
                    var calcoloIban = new Library.BusinessData.CoordinateBancarie
                    {
                        Abi = persona.Abi.Trim(),
                        Cab = persona.Cab.Trim(),
                        ContoCorrente = persona.ContoCorrente
                    };
                    persona.Iban = calcoloIban.CalcolaIBAN();

                    calcoloIban.SetIBAN(persona.Iban);
                    persona.ContoCorrente = calcoloIban.ContoCorrente;
                    persona.Cin = calcoloIban.Cin;
                }

                if (persona.Abi == "0")
                    persona.Abi = null;
                if (persona.Cab == "0")
                    persona.Cab = null;

                if (string.IsNullOrEmpty(persona.Cognome) && !string.IsNullOrEmpty(persona.Nome))
                {
                    var nomeAry = persona.Nome.Trim().Split(' ');
                    if (nomeAry.Length >= 2 && nomeAry[0].Trim().ToUpper() != "DE")
                    {
                        persona.Nome = string.Empty;
                        persona.Cognome = nomeAry[0];
                        for (int i = 1; i < nomeAry.Length; i++)
                        {
                            persona.Nome += $" {nomeAry[i]}";
                        }
                        persona.Nome = persona.Nome.Trim();
                    }
                }

                if (persona.DatiAutenticazione == null || !string.IsNullOrEmpty(persona.DatiAutenticazione.Password) && string.IsNullOrEmpty(persona.DatiAutenticazione.Username))
                {
                    persona.DatiAutenticazione = null;
                    SetDatiAutenticazione(persona);
                }
            }

            var fornitori = _daoFactory.GetFornitoreDao().GetByAzienda(azienda);
            foreach (var fornitore in fornitori)
            {
                if (string.IsNullOrEmpty(fornitore.AliquotaIva))
                    fornitore.AliquotaIva = "22";
            }

            var banche = _daoFactory.GetDatiBancariCondominiDao().GetByAzienda(azienda);
            foreach (var datiBancariCondomini in banche)
            {
                if (string.IsNullOrEmpty(datiBancariCondomini.Iban) && !string.IsNullOrEmpty(datiBancariCondomini.ContoCorrente) && !string.IsNullOrEmpty(datiBancariCondomini.Abi) && !string.IsNullOrEmpty(datiBancariCondomini.Cab))
                {
                    var calcoloIban = new Library.BusinessData.CoordinateBancarie
                    {
                        Abi = datiBancariCondomini.Abi.Trim(),
                        Cab = datiBancariCondomini.Cab.Trim(),
                        ContoCorrente = datiBancariCondomini.ContoCorrente
                    };
                    datiBancariCondomini.Iban = calcoloIban.CalcolaIBAN();

                    calcoloIban.SetIBAN(datiBancariCondomini.Iban);
                    datiBancariCondomini.ContoCorrente = calcoloIban.ContoCorrente;
                    datiBancariCondomini.Cin = calcoloIban.Cin;
                }
            }

            var condomini = _daoFactory.GetCondominioDao().GetByAzienda(azienda);
            foreach (var condominio in condomini)
            {
                if (condominio.GeoReferenziazione == null && condominio.Indirizzo != null)
                {
                    var geoAddress = condominio.Indirizzo.GetGeoLocationAddress();
                    var latLong = _geoLocationService.GetLatLong(geoAddress);
                    if (latLong != null)
                    {
                        if (condominio.GeoReferenziazione == null)
                            condominio.GeoReferenziazione = new GeoReference();
                        condominio.GeoReferenziazione.AddedDate = DateTime.Now;
                        condominio.GeoReferenziazione.AddressUsed = geoAddress;
                        condominio.GeoReferenziazione.Latitude = latLong.Value.Latitude;
                        condominio.GeoReferenziazione.Longitude = latLong.Value.Longitude;
                    }
                }
            }

            var unitaImmobiliari = _daoFactory.GetUnitaImmobiliareDao().GetByAzienda(azienda);
            foreach (var unitaImmobiliare in unitaImmobiliari)
            {
                unitaImmobiliare.Descrizione = _daoFactory.GetUnitaImmobiliareDao().GetUnitaImmobiliareDescrizione(unitaImmobiliare);
            }

        }
Esempio n. 3
0
        public string AggiornamentoMassivoCab(string oldAbi, string oldCab, string newAbi, string newCab, int idAzienda)
        {
            try
            {
                var message = string.Empty;
                var lista = _daoFactory.GetDatiBancariCondominiDao().GetByAbiCab(oldAbi, oldCab, idAzienda);
                foreach (var datiBancariCondomini in lista)
                {
                    if (datiBancariCondomini.Abi == oldAbi && datiBancariCondomini.Cab == oldCab)
                    {
                        datiBancariCondomini.Abi = newAbi;
                        datiBancariCondomini.Cab = newCab;

                        var calcoloIban = new Library.BusinessData.CoordinateBancarie
                        {
                            Abi = datiBancariCondomini.Abi.Trim(),
                            Cab = datiBancariCondomini.Cab.Trim(),
                            ContoCorrente = datiBancariCondomini.ContoCorrente
                        };
                        datiBancariCondomini.Iban = calcoloIban.CalcolaIBAN();

                        calcoloIban.SetIBAN(datiBancariCondomini.Iban);
                        datiBancariCondomini.Cin = calcoloIban.Cin;
                    }
                }

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la modifica di abi a cab - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                throw;
            }
        }
Esempio n. 4
0
        public string RicalcolaIBAN(bool onlyWithoutIban, int idAzienda)
        {
            try
            {
                var message = string.Empty;
                var lista = _daoFactory.GetDatiBancariCondominiDao().GetByAzienda(idAzienda);
                foreach (var datiBancariCondomini in lista)
                {
                    if (!string.IsNullOrEmpty(datiBancariCondomini.Iban) || !onlyWithoutIban)
                    {
                        var calcoloIban = new Library.BusinessData.CoordinateBancarie
                        {
                            Abi = datiBancariCondomini.Abi.Trim(),
                            Cab = datiBancariCondomini.Cab.Trim(),
                            ContoCorrente = datiBancariCondomini.ContoCorrente
                        };
                        datiBancariCondomini.Iban = calcoloIban.CalcolaIBAN();

                        calcoloIban.SetIBAN(datiBancariCondomini.Iban);
                    }
                }

                return message;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante il ricalcolo dell'iban - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), idAzienda);
                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;
            }
        }