Пример #1
0
 public RitenutaAccontoDTO GetEccessoById(int id)
 {
     try
     {
         var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
         var pagamento = daoFactory.GetPagamentoDao().Find(id, false);
         RitenutaAccontoDTO dto;
         if (pagamento != null && pagamento.RitenutaAccontoEccesso != null)
             dto = setDto(pagamento.RitenutaAccontoEccesso);
         else
             dto = new RitenutaAccontoDTO { DataVersamentoRitenuta = DateTime.Today };
         if (dto != null)
         {
             dto.Tipo = Gipasoft.Sfera.Enums.TipoVersamentoRitenutaEnum.Eccesso;
             if (dto.DataVersamentoRitenuta == DateTime.MinValue)
                 dto.DataVersamentoRitenuta = DateTime.Today;
         }
         return dto;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nel caricamento della ritenuta di acconto - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), id);
         throw;
     }
 }
Пример #2
0
        public RegistrazioneRitenutaUI(EsercizioDTO esercizio, RitenutaAccontoDTO ritenuta)
        {
            InitializeComponent();

            _esercizio = esercizio;
            contoDTOBindingSource.DataSource = getPagamentoFatturaService().GetContiPatrimonialiPagamentiFornitori(new List<int>{ _esercizio.IdCondominio});

            if (ritenuta.IdPagamento > 0)
            {
                importoRitenuta.Value = ritenuta.ImportoRitenuta.GetValueOrDefault();
                importoInteressi.Value = ritenuta.ImportoInteressi.GetValueOrDefault();
                importoSanzioni.Value = ritenuta.ImportoSanzione.GetValueOrDefault();

                if (ritenuta.DataVersamentoRitenuta > DateTime.MinValue)
                {
                    dataVersamento.DateTime = ritenuta.DataVersamentoRitenuta;
                    descrizione.Text = ritenuta.Descrizione;
                    conto.Value = ritenuta.IdConto;
                    sottoconti.Value = ritenuta.IdSottoconto;
                }
            }
            else
                dataVersamento.Value = null;

            validationSummary1.Validators.Add(reqConto);
            validationSummary1.Validators.Add(reqDataVersamento);
            validationSummary1.Validators.Add(compareImporto);
            validationSummary1.Validators.Add(reqDescrizione);
            validationSummary1.Validators.Add(validatorSottoconto);
            validationSummary1.Validators.Add(dataVersamentoValidator);
        }
Пример #3
0
 public RitenutaAccontoDTO GetById(int id)
 {
     try
     {
         var dto = new RitenutaAccontoDTO();
         var daoFactory = _windsorRepository.GetDaoFactory(_info.Azienda);
         var pagamento = daoFactory.GetPagamentoDao().Find(id, false);
         if(pagamento != null)
             dto = setDto(pagamento.RitenutaAcconto);
         return dto;
     }
     catch (Exception ex)
     {
         _log.ErrorFormat("Errore nel caricamento della ritenuta di acconto - {0} - id:{1}", ex, Library.Utility.GetMethodDescription(), id);
         throw;
     }
 }
Пример #4
0
        private void apriSpesa(RitenutaAccontoDTO ritenuta)
        {
            try
            {
                if (ritenuta != null && ritenuta.IdPagamento.GetValueOrDefault() > 0)
                {
                    var pagamento = getPagamentoFatturaService().GetById(ritenuta.IdPagamento.GetValueOrDefault());

                    if (pagamento != null && pagamento.IdFattura > 0)
                    {
                        var condominio = getCondominioService().GetById(ritenuta.IdCondominio, true);
                        var esercizio = getEsercizioService().GetById(pagamento.CodiceEsercizioSpesa);

                        if (pagamento.StatoSpesa == StatoSpesaEnum.PagataAltroAmministratore)
                        {
                            var form = getDettaglioSpesaUIService().GetFormDettaglioFiscale(pagamento.IdFattura);
                            if (ParentForm != null)
                                form.MdiParent = ParentForm.MdiParent;
                            form.Show();
                        }
                        else if (pagamento.TipoDocumentoSpesa == "Bolletta")
                        {
                            var form = getDettaglioBollettaUIService().GetFormDettaglio(pagamento.IdFattura, condominio, esercizio);
                            if (ParentForm != null)
                                form.MdiParent = ParentForm.MdiParent;
                            form.Show();
                        }
                        else if (pagamento.TipoDocumentoSpesa == "Fatt.Quadr.")
                        {
                            var form = getBilancioAperturaUIService().GetFormDettaglio(condominio, esercizio);
                            if (ParentForm != null)
                                form.MdiParent = ParentForm.MdiParent;
                            form.Show();
                        }
                        else if (pagamento.TipoDocumentoSpesa == "Nota di accredito" &&
                                 pagamento.StatoSpesa == StatoSpesaEnum.Stornata)
                        {
                            var form = getDettaglioSpesaUIService().GetFormNotaAccredito(pagamento.IdFattura, condominio, esercizio);
                            if (ParentForm != null)
                                form.MdiParent = ParentForm.MdiParent;
                            form.Show();
                        }
                        else
                        {
                            var form = getDettaglioSpesaUIService().GetFormDettaglio(pagamento.IdFattura);
                            if (!form.IsDisposed)
                            {
                                if (ParentForm != null)
                                    form.MdiParent = ParentForm.MdiParent;
                                form.Show();
                            }
                        }
                    }
                    else
                        CommonMessages.DisplayWarning("La fattura relativa al pagamento non è stata trovata");
                }

            }
            catch (Exception ex)
            {
                string id = string.Empty;
                if (ritenuta != null)
                    id = ritenuta.IdPagamento.GetValueOrDefault().ToString();

                
                _log.Error("Errore inaspettato durante la apertura della spesa dalla lista di ritenute di acconto - " + Utility.GetMethodDescription() + " - idPagamento:" + id + " - azienda:" + Login.Instance.CurrentLogin().Azienda, ex);
                throw;
            }
        }
Пример #5
0
 private void apriLetteraBonifico(RitenutaAccontoDTO ritenuta)
 {
     var docInfo = getPagamentoFatturaService().GetDocumentoById(ritenuta.IdPagamento.GetValueOrDefault());
     getManageDocumentService().Open(docInfo, "Bonifico", true, MergeFieldType.Default);
 }
Пример #6
0
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _ritenutaClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _rowClick = DataGridHelper.GetCellEvent(listaRitenute, e);
         _ritenutaClick = DataGridHelper.GetCellEvent<RitenutaAccontoDTO>(listaRitenute, e);
         if (_ritenutaClick != null)
             contextMenuStrip1.Show(listaRitenute, e.X, e.Y);
     }
 }
Пример #7
0
        private string getKeyOrdine(RitenutaAccontoDTO ritenuta)
        {
            try
            {
                if (ritenuta.DataPagamento != null)
                {
                    var key = ritenuta.CodiceTributo + "¥";
                    key += ritenuta.DataPagamento.Value.Year + ritenuta.DataPagamento.Value.Month.ToString().PadLeft(2, '0');
                    return key;
                }

                
                _log.Fatal("Trovata data pagamento a null - " + Library.Utility.GetMethodDescription() + " - idPagamento:" + ritenuta.IdPagamento);
                return string.Empty;
            }
            catch (Exception ex)
            {
                
                _log.Fatal("Errore inaspettato durante la creazione della key di ordinamento - " + Library.Utility.GetMethodDescription() + " - idPagamento:" + ritenuta.IdPagamento, ex);
                throw;
            }
        }
Пример #8
0
        private string getKeyOrdine(RitenutaAccontoDTO ritenuta)
        {
            try
            {
                if (ritenuta.DataPagamento != null)
                {
                    var key = ritenuta.CodiceTributo + "¥";
                    key += ritenuta.DataPagamento.Value.Year + ritenuta.DataPagamento.Value.Month.ToString(CultureInfo.InvariantCulture).PadLeft(2, '0');
                    return key;
                }

                _log.ErrorFormat("Trovata data pagamento a null - {0} - idPagamento:{1} - azienda:{2}", Library.Utility.GetMethodDescription(), ritenuta.IdPagamento, _testata != null ? _testata.AziendaID.ToString() : "<NULL>");
                return string.Empty;
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore inaspettato durante la creazione della key di ordinamento - {0} - idPagamento:{1} - azienda:{2}", ex, Library.Utility.GetMethodDescription(), ritenuta.IdPagamento, _testata != null ? _testata.AziendaID.ToString() : "<NULL>");
                throw;
            }
        }
Пример #9
0
        public List<RitenutaAccontoDTO> GetRitenute(RitenutaFilter filter, DateTime dataPagamento)
        {
            try
            {
                var dataFinale = new DateTime(filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault(), DateTime.DaysInMonth(filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault()));

                var hql = new StringBuilder("FROM Pagamento PAG LEFT JOIN FETCH PAG.ScadenzaRiferimento SC LEFT JOIN FETCH SC.SpesaRiferimento SP LEFT JOIN FETCH SP.EsercizioRiferimento ES LEFT JOIN FETCH ES.CondominioRiferimento COND LEFT JOIN FETCH COND.DatiBancari BANCA LEFT JOIN FETCH SP.FornitoreRiferimento FORN LEFT JOIN FETCH FORN.PersonaRiferimento PERS WHERE PAG.Stato <> :statoAnnullato AND PAG.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Azienda.ID = :azienda AND PAG.RitenutaAcconto.Stato = :stato AND PAG.Data <= :dataFinale AND PAG.RitenutaAcconto.Importo > 0 AND PAG.Tipo <> :tipoPagamento ");
                var parameters = new List<QueryParam>
                {
                    new QueryParam("azienda", filter.CodiceAzienda.ToString(CultureInfo.InvariantCulture)),
                    new QueryParam("stato", Conversione.ToHQLParameter(StatoRitenutaEnum.Inserita)),
                    new QueryParam("statoAnnullato", Conversione.ToHQLParameter(StatoSpesaEnum.Annullata)),
                    new QueryParam("tipoPagamento", Conversione.ToHQLParameter(TipoPagamentoFatturaEnum.Storno)),
                    new QueryParam("dataFinale", dataFinale)
                };

                if (filter.Detraibile != null)
                {
                    hql.Append(filter.Detraibile.Value
                                   ? " AND PAG.ScadenzaRiferimento.SpesaRiferimento.Detrazione > 0 "
                                   : " AND PAG.ScadenzaRiferimento.SpesaRiferimento.Detrazione is null ");
                }

                hql.Append(" ORDER BY PAG.Data");

                var pagamenti = _daoFactory.GetPagamentoDao().GetByQuery(hql.ToString(), parameters.ToArray());
                var ritenute = new List<RitenutaAccontoDTO>(pagamenti.Count);

                var allCab = PreLoadedCollection.Instance.GetCab("01");
                foreach (var pag in pagamenti)
                {
                    try
                    {
                        if (pag.RitenutaAcconto != null)
                        {
                            DateTime dataUltima;
                            var annoPagamento = pag.Data.GetValueOrDefault().AddMonths(1).Year;
                            var mesePagamento = pag.Data.GetValueOrDefault().AddMonths(1).Month;
                            var dataCalendario = _daoFactory.GetCalendarioScadenzeDao().GetByAnnoMese(annoPagamento, mesePagamento);
                            if (dataCalendario != null)
                                dataUltima = dataCalendario.Data;
                            else
                            {
                                dataUltima = new DateTime(annoPagamento, mesePagamento, 16);
                                switch (dataUltima.DayOfWeek)
                                {
                                    case DayOfWeek.Saturday:
                                        dataUltima = dataUltima.AddDays(2);
                                        break;
                                    case DayOfWeek.Sunday:
                                        dataUltima = dataUltima.AddDays(1);
                                        break;
                                }

                                // In caso di Agosto 2014 è stato prorogato al 20 il termine ultimo bugid#5426
                                if (dataUltima.Month == 8 && dataUltima.Year == 2014)
                                    dataUltima = new DateTime(2014, 8, 20);
                            }

                            RitenutaAccontoDTO ritenuta;
                            try
                            {
                                ritenuta = new RitenutaAccontoDTO
                                {
                                    CodiceTributo = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.CodiceTributo,
                                    IdCondominio = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID,
                                    Condominio = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DisplayName,
                                    DataDocumento = pag.ScadenzaRiferimento.SpesaRiferimento.DataDocumento,
                                    Archiviazione = _archiviazioneOtticaService.GetIdentificativoArchiviazione(pag.ScadenzaRiferimento.SpesaRiferimento, true),
                                    DataPagamento = pag.Data,
                                    Detrazione = pag.ScadenzaRiferimento.SpesaRiferimento.Detrazione,
                                    Fornitore = pag.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.DisplayName,
                                    IdPagamento = pag.ID,
                                    ImportoPagamento = pag.Importo,
                                    ImportoRitenuta = pag.RitenutaAcconto.Importo,
                                    NumeroDocumento = pag.ScadenzaRiferimento.SpesaRiferimento.NumeroDocumento,
                                    Selezionabile = true,
                                    Stato = pag.RitenutaAcconto.Stato,
                                    TipoDocumento = Decodifica.Instance.GetElement("TipoDocumentoContabile", pag.ScadenzaRiferimento.SpesaRiferimento.TipoDocumento).Descrizione,
                                    Valuta = pag.Valuta,
                                    PeriodoRiferimento = pag.RitenutaAcconto.GetPeriodoRiferimento(true)
                                };
                                if (pag.RitenutaAcconto != null && pag.RitenutaAcconto.TestataRiferimento != null)
                                    ritenuta.DataVersamentoRitenuta = pag.RitenutaAcconto.TestataRiferimento.Data.GetValueOrDefault();
                            }
                            catch (Exception ex)
                            {
                                _log.ErrorFormat("Errore nella ricerca delle ritenute - INIZIALIZZAZIONE DTO - {0} - banca:{1} - pagamento:{2} - detrazione:{3} - anno:{4} - mese:{5} - dataPagamento:{6}", ex, Utility.GetMethodDescription(), pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.ID, pag.ID, filter.Detraibile.GetValueOrDefault(), filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault(), dataPagamento.ToShortDateString());
                                throw;
                            }

                            try
                            {
                                if (pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale != null)
                                {
                                    var datibancari = pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale;
                                    if (datibancari != null)
                                    {
                                        var cabDTO = allCab.FirstOrDefault(item => item.Abi == datibancari.Abi && item.Cab == datibancari.Cab);
                                        if (cabDTO != null)
                                        {
                                            var abi = cabDTO.Abi;
                                            var cab = cabDTO.Cab;
                                            if (!string.IsNullOrEmpty(cabDTO.DescrizioneAbi))
                                                abi += " - " + cabDTO.DescrizioneAbi;
                                            if (!string.IsNullOrEmpty(cabDTO.DescrizioneCab))
                                                cab += " - " + cabDTO.DescrizioneCab;

                                            ritenuta.AbiCondominio = abi;
                                            ritenuta.CabCondominio = cab;
                                        }
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                _log.ErrorFormat("Errore nella ricerca delle ritenute - LETTURA ABI CAB - {0} - banca:{1} - pagamento:{2} - detrazione:{3} - anno:{4} - mese:{5} - dataPagamento:{6}", ex, Utility.GetMethodDescription(), pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.ID, pag.ID, filter.Detraibile.GetValueOrDefault(), filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault(), dataPagamento.ToShortDateString());
                                throw;
                            }

                            // Eventuale calcolo di interessi passivi e sanzioni
                            if (dataPagamento > dataUltima)
                            {
                                try
                                {
                                    InteressiSanzioniLibrary.CalcoloInteressiSanzioni(ritenuta, dataPagamento, dataUltima);
                                }
                                catch (Exception ex)
                                {
                                    _log.ErrorFormat("Errore nella ricerca delle ritenute - CALCOLO INTERESSI SANZIONI - {0} - banca:{1} - pagamento:{2} - detrazione:{3} - anno:{4} - mese:{5} - dataPagamento:{6}", ex, Utility.GetMethodDescription(), pag.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale.ID, pag.ID, filter.Detraibile.GetValueOrDefault(), filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault(), dataPagamento.ToShortDateString());
                                    throw;
                                }
                            }

                            ritenute.Add(ritenuta);
                        }

                    }
                    catch (Exception ex)
                    {
                        _log.ErrorFormat("Errore nella ricerca delle ritenute - SINGOLO PAGAMENTO - {0} - pagamento:{1} - detrazione:{2} - anno:{3} - mese:{4} - dataPagamento:{5}", ex, Utility.GetMethodDescription(), pag.ID, filter.Detraibile.GetValueOrDefault(), filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault(), dataPagamento.ToShortDateString());
                        throw;
                    }

                }

                return ritenute;

            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella ricerca delle ritenute - {0} - detrazione:{1} - anno:{2} - mese:{3} - dataPagamento:{4}", ex, Utility.GetMethodDescription(), filter.Detraibile.GetValueOrDefault(), filter.AnnoRiferimento.GetValueOrDefault(), filter.MeseRiferimento.GetValueOrDefault(), dataPagamento.ToShortDateString());
                throw; 
            }
        }
Пример #10
0
        /// <summary>
        /// Calcolo interessi e sanzioni
        /// </summary>
        /// <remarks>TODO: Sostituire questa porcheria con una cosa seria basata su una tabella di interessi e sanzioni</remarks>
        /// <param name="ritenuta">Oggetto dto ritenuta per il quale occorre calcolare interessi e sanzioni</param>
        /// <param name="dataPagamento">Data di versamento della ritenuta</param>
        /// <param name="dataScadenzaRitenuta">Data di scadenza della ritenuta</param>
        public static int CalcoloInteressiSanzioni(RitenutaAccontoDTO ritenuta, DateTime dataPagamento, DateTime dataScadenzaRitenuta)
        {
            const decimal INTERESSI_LEGALI_2013 = 2.5m;
            const decimal INTERESSI_LEGALI_2014 = 1m;
            const decimal INTERESSI_LEGALI_2015 = 0.5m;
            const decimal INTERESSI_LEGALI_2016 = 0.2m;
            const decimal SANZIONE_ENTRO_14_GG = 0.1m;
            const decimal SANZIONE_ENTRO_30_GG = 1.5m;
            const decimal SANZIONE_ENTRO_90_GG = 1.67m;
            const decimal SANZIONE_ENTRO_2_AA = 3.75m;
            const decimal SANZIONE_DOPO_2_AA = 5m;

            var giorniRitardo = (dataPagamento - dataScadenzaRitenuta).Days;
            var giorniCalcolati = 0;

            var dataCambioInteresse2014 = new DateTime(2013, 12, 31);
            var interesse2013 = 0m;
            if (dataScadenzaRitenuta < dataCambioInteresse2014)
            {
                var giorniRitardo2013 = dataPagamento > dataCambioInteresse2014 ? (dataCambioInteresse2014 - dataScadenzaRitenuta).Days : (dataPagamento - dataScadenzaRitenuta).Days;
                giorniCalcolati += giorniRitardo2013;
                interesse2013 = ((ritenuta.ImportoRitenuta.GetValueOrDefault() * giorniRitardo2013) / 365 * INTERESSI_LEGALI_2013) / 100;
            }

            var dataCambioInteresse2015 = new DateTime(2014, 12, 31);
            var dataUltima2014 = dataScadenzaRitenuta;
            var interesse2014 = 0m;
            if (dataPagamento >= dataCambioInteresse2014 && dataScadenzaRitenuta < dataCambioInteresse2015)
            {
                if (dataUltima2014 < dataCambioInteresse2014)
                    dataUltima2014 = dataCambioInteresse2014;

                var dataFinale = dataPagamento;
                if (dataFinale >= dataCambioInteresse2015)
                    dataFinale = dataCambioInteresse2015;

                var giorniRitardo2014 = (dataFinale - dataUltima2014).Days;
                giorniCalcolati += giorniRitardo2014;
                interesse2014 = ((ritenuta.ImportoRitenuta.GetValueOrDefault() * giorniRitardo2014) / 365 * INTERESSI_LEGALI_2014) / 100;
            }

            var dataCambioInteresse2016 = new DateTime(2015, 12, 31);
            var dataUltima2015 = dataScadenzaRitenuta;
            var interesse2015 = 0m;
            if (dataPagamento >= dataCambioInteresse2015 && dataScadenzaRitenuta < dataCambioInteresse2016)
            {
                if (dataUltima2015 < dataCambioInteresse2015)
                    dataUltima2015 = dataCambioInteresse2015;

                var dataFinale = dataPagamento;
                if (dataFinale > dataCambioInteresse2016)
                    dataFinale = dataCambioInteresse2016;

                var giorniRitardo2015 = (dataFinale - dataUltima2015).Days;
                giorniCalcolati += giorniRitardo2015;
                interesse2015 = ((ritenuta.ImportoRitenuta.GetValueOrDefault() * giorniRitardo2015) / 365 * INTERESSI_LEGALI_2015) / 100;
            }

            var interesse2016 = 0m;
            if (dataPagamento >= dataCambioInteresse2016)
            {
                var giorniRitardo2016 = dataUltima2015 < dataCambioInteresse2016 ? (dataPagamento - dataCambioInteresse2016).Days : (dataPagamento - dataUltima2015).Days;
                giorniCalcolati += giorniRitardo2016;
                interesse2016 = ((ritenuta.ImportoRitenuta.GetValueOrDefault() * giorniRitardo2016) / 365 * INTERESSI_LEGALI_2016) / 100;
            }

            if (giorniRitardo != giorniCalcolati)
            {
                var log = LogManager.GetLogger("Sfera");
                log.ErrorFormat("Errore nel calcolo di INTERESSI E SANZIONI - {0} - pagamento:{1} - dataPagamento:{2} - dataScadenzaRitenuta:{3} - giorniRitardo:{4} - giorniCalcolati:{5}", Utility.GetMethodDescription(), ritenuta.IdPagamento, dataPagamento, dataScadenzaRitenuta, giorniRitardo, giorniCalcolati);
            }

            ritenuta.ImportoInteressi = Math.Round(interesse2013 + interesse2014 + interesse2015 + interesse2016, 2, MidpointRounding.AwayFromZero);

            if (giorniRitardo <= 14)
                ritenuta.ImportoSanzione = Math.Round(((ritenuta.ImportoRitenuta.GetValueOrDefault() * SANZIONE_ENTRO_14_GG) / 100) * giorniRitardo, 2, MidpointRounding.AwayFromZero);
            else if (giorniRitardo <= 30)
                ritenuta.ImportoSanzione = Math.Round((ritenuta.ImportoRitenuta.GetValueOrDefault() * SANZIONE_ENTRO_30_GG) / 100, 2, MidpointRounding.AwayFromZero);
            else if (giorniRitardo <= 90)
                ritenuta.ImportoSanzione = Math.Round((ritenuta.ImportoRitenuta.GetValueOrDefault() * SANZIONE_ENTRO_90_GG) / 100, 2, MidpointRounding.AwayFromZero);
            else if (giorniRitardo <= 730)
                ritenuta.ImportoSanzione = Math.Round((ritenuta.ImportoRitenuta.GetValueOrDefault() * SANZIONE_ENTRO_2_AA) / 100, 2, MidpointRounding.AwayFromZero);
            else if (giorniRitardo > 730)
                ritenuta.ImportoSanzione = Math.Round((ritenuta.ImportoRitenuta.GetValueOrDefault() * SANZIONE_DOPO_2_AA) / 100, 2, MidpointRounding.AwayFromZero);

            return giorniCalcolati;
        }
 private RitenutaAccontoDTO buildRitenutaAccontoDTO()
 {
     var ritenutaAccontoDTO = new RitenutaAccontoDTO
     {
         ImportoRitenuta = 1000m
     };
     return ritenutaAccontoDTO;
 }
Пример #12
0
        private RitenutaAccontoDTO setDto(Ritenuta item)
        {
            try
            {
                if (item != null)
                {
                    var dto = new RitenutaAccontoDTO
                    {
                        IdPagamento = item.PagamentoRiferimento.ID,
                        CodiceTributo = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.CodiceTributo,
                        Fornitore = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.DisplayName,
                        Condominio = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DisplayName,
                        DataDocumento = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.DataDocumento,
                        Archiviazione = getArchiviazioneOtticaService().GetIdentificativoArchiviazione(item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento, true),
                        DataPagamento = item.PagamentoRiferimento.Data,
                        IdCondominio = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID,
                        ImportoInteressi = item.ImportoInteressi,
                        ImportoPagamento = item.PagamentoRiferimento.Importo,
                        ImportoRitenuta = item.Importo,
                        ImportoSanzione = item.ImportoSanzione,
                        NumeroDocumento = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.NumeroDocumento,
                        Stato = item.Stato,
                        TipoDocumento = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.TipoDocumento,
                        PeriodoRiferimento = item.GetPeriodoRiferimento(true),
                        DataVersamentoRitenuta = item.DataPagamentoRitenuta.GetValueOrDefault(),
                        Tipo = item.Tipo
                    };

                    var datibancari = item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.DatiBancariPrincipale;
                    if (datibancari != null)
                    {
                        var abi = datibancari.Abi;
                        var cab = datibancari.Cab;
                        var descrizioneAbiCab = Common.BancheHelper.GetAbiCabDescription(datibancari.Abi, datibancari.Cab, WindsorConfigRepository.GetKey(_info.Azienda));
                        if (!string.IsNullOrEmpty(descrizioneAbiCab[0]))
                            abi += " - " + descrizioneAbiCab[0];
                        if (!string.IsNullOrEmpty(descrizioneAbiCab[1]))
                            cab += " - " + descrizioneAbiCab[1];

                        dto.AbiCondominio = abi;
                        dto.CabCondominio = cab;
                    }
                    else
                    {
                        _log.WarnFormat("Condominio senza dati bancari - {0} - idRitenuta:{1} - idCondominio:{2} - azienda:{3}", Library.Utility.GetMethodDescription(), item.PagamentoRiferimento.ID, item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID, item.PagamentoRiferimento.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Azienda.ID);
                    }

                    if (item.MovimentoContabilePagamento != null)
                    {
                        dto.IdConto = item.MovimentoContabilePagamento.ContoRiferimento.ID;
                        if (item.MovimentoContabilePagamento.SottoContoRiferimento != null)
                            dto.IdSottoconto = item.MovimentoContabilePagamento.SottoContoRiferimento.ID;
                        else if (item.MovimentoContabilePagamento.ContoCorrenteBancario != null)
                            dto.IdSottoconto = item.MovimentoContabilePagamento.ContoCorrenteBancario.ID * -1;

                    }

                    if (item.TestataRiferimento != null)
                    {
                        dto.DataVersamentoRitenuta = item.TestataRiferimento.Data.GetValueOrDefault();
                        dto.Descrizione = item.TestataRiferimento.Descrizione;
                    }

                    return dto;
                }

                return new RitenutaAccontoDTO();
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Errore nella creazione dell'istanza DTO - {0} - id:{1} - azienda:{2}", ex, Library.Utility.GetMethodDescription(), item != null ? item.PagamentoRiferimento.ID.ToString(CultureInfo.InvariantCulture) : "<NULL>", _info.Azienda);
                throw;
            }
        }
 public Form GetForm(EsercizioDTO esercizio, RitenutaAccontoDTO ritenuta)
 {
     _form = new RegistrazioneRitenutaUI(esercizio, ritenuta);
     return _form;
 }