Пример #1
0
 public string RistampaModuloPDF(PagamentoRitenutaDTO ritenuta)
 {
     var result = GetServiceClient().RistampaModuloPDFFileRitenute(ritenuta.ID, GetUserInfo());
     CloseService(); 
    return _manageDocumentService.Open(result, "Ristampa - Modello F24", false, MergeFieldType.Default);
 }
Пример #2
0
        public IList<PagamentoRitenutaDTO> GetPagamentiGroupByCondominio(PagamentoFilter filter)
        {
            try
            {
                var hql = new StringBuilder("FROM PagamentoRitenuta PAG LEFT JOIN FETCH PAG.Pagamenti PAGFATT LEFT JOIN FETCH PAGFATT.ScadenzaRiferimento SCAD LEFT JOIN FETCH SCAD.SpesaRiferimento SPE LEFT JOIN FETCH SPE.FornitoreRiferimento FOR LEFT JOIN FETCH SPE.EsercizioRiferimento ESE LEFT JOIN FETCH ESE.CondominioRiferimento COND WHERE PAG.AziendaID = :azienda AND PAG.IsFittizio = :fittizio");

                var parameters = new List<QueryParam>
                {
                    new QueryParam("fittizio", false),
                    new QueryParam("azienda", filter.CodiceAzienda)
                };

                // Fornitore
                if (filter.CodiceFornitore != null)
                {
                    hql.Append(" AND FOR = :fornitore");
                    parameters.Add(new QueryParam("fornitore", filter.CodiceFornitore));
                }

                // Numero Documento
                if (filter.NumeroDocumento != null)
                {
                    hql.Append(" AND SPE.NumeroDocumento = :numeroDocumento");
                    parameters.Add(new QueryParam("numeroDocumento", filter.NumeroDocumento));
                }

                // Data Documento
                if (filter.DataDocumentoInizio != null)
                {
                    hql.Append(" AND SPE.DataDocumento >= :dataDocumento");
                    parameters.Add(new QueryParam("dataDocumento", filter.DataDocumentoInizio.GetValueOrDefault()));
                }
                if (filter.DataDocumentoFine != null)
                {
                    hql.Append(" AND SPE.DataDocumento <= :dataDocumento");
                    parameters.Add(new QueryParam("dataDocumento", filter.DataDocumentoFine.GetValueOrDefault()));
                }

                // Data Pagamento
                if (filter.DataPagamentoInizio != null)
                {
                    hql.Append(" AND PAG.Data >= :dataPagamentoIniziale");
                    parameters.Add(new QueryParam("dataPagamentoIniziale", filter.DataPagamentoInizio.Value));
                }
                if (filter.DataPagamentoFine != null)
                {
                    hql.Append(" AND PAG.Data <= :dataPagamentoFinale");
                    parameters.Add(new QueryParam("dataPagamentoFinale", filter.DataPagamentoFine.Value));
                }

                // Condominio
                if (filter.CodiceCondominio != null)
                {
                    hql.Append(" AND COND = :condominio");
                    parameters.Add(new QueryParam("condominio", filter.CodiceCondominio));
                }

                // Importo Pagamento
                if (filter.ImportoPagamentoInizio != null && filter.ImportoPagamentoInizio > 0)
                {
                    hql.Append(" AND PAGFATT.RitenutaAcconto.Importo >= :importoInizio");
                    parameters.Add(new QueryParam("importoInizio", filter.ImportoPagamentoInizio));
                }

                if (filter.ImportoPagamentoFine != null && filter.ImportoPagamentoFine > 0)
                {
                    hql.Append(" AND PAGFATT.RitenutaAcconto.Importo <= :importoFine");
                    parameters.Add(new QueryParam("importoFine", filter.ImportoPagamentoFine));
                }
                
                IEnumerable<PagamentoRitenuta> lista = _daoFactory.GetPagamentoRitenutaDao().GetByQuery(hql.ToString(), parameters.ToArray()).OrderBy(item => item.Data);
                var listaDto = new List<PagamentoRitenutaDTO>();

                foreach (var pagamento in lista)
                {
                    try
                    {
                        var listaCondominio = from item in pagamento.Pagamenti
                                              group item by item.RitenutaAcconto.GetEsercizio() into pagamentiEsercizio
                                              select pagamentiEsercizio;

                        foreach (var pagamentiPerEsercizio in listaCondominio)
                        {
                            var pagRitenutaDto = new PagamentoRitenutaDTO
                                                     {
                                Data = pagamento.Data,
                                Descrizione = pagamento.Descrizione,
                                ID = pagamento.ID,
                                IdAzienda = pagamento.AziendaID.GetValueOrDefault(),
                                ImportoInteressi = pagamento.ImportoInteressi,
                                ImportoRitenuta = pagamento.ImportoRitenuta,
                                ImportoSanzione = pagamento.ImportoSanzione,
                                IsDeleteAllow = pagamento.IsDeleteAllow(),
                                IsFittizio = pagamento.IsFittizio,
                                IdCondominio = pagamentiPerEsercizio.Key.CondominioRiferimento.ID,
                                IdEsercizio = pagamentiPerEsercizio.Key.ID,
                                DescrizioneEsercizio = pagamentiPerEsercizio.Key.DisplayName,
                                DescrizioneCondominio = pagamentiPerEsercizio.Key.CondominioRiferimento.DisplayName,
                                Version = pagamento.Version
                            };

                            decimal importoRitenuta = 0;
                            decimal importoInteressi = 0;
                            decimal importoSanzione = 0;
                            foreach (var pagEsercizio in pagamentiPerEsercizio)
                            {
                                try
                                {
                                    var pagamentoDto = new PagamentoListaRitenutaDTO
                                                           {
                                        ID = pagEsercizio.ID,
                                        Importo = pagEsercizio.Importo,
                                        IdFattura = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.ID,
                                        DataDocumento = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.DataDocumento,
                                        NumeroDocumento = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.NumeroDocumento,
                                        StatoSpesa = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.Stato,
                                        IdScadenzaFattura = pagEsercizio.ScadenzaRiferimento.ID,
                                        DescrizioneFornitore = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.DisplayName,
                                        TipoCodiceConfermaBonifico = pagEsercizio.TipoCodiceConfermaBonifico,
                                        CodiceConfermaBonifico = pagEsercizio.CodiceConfermaBonifico,
                                        StatoPagamento = pagEsercizio.Stato,
                                        ImportoRitenuta = pagEsercizio.RitenutaAcconto.Importo.GetValueOrDefault(),
                                        ImportoInteressi = pagEsercizio.RitenutaAcconto.ImportoInteressi.GetValueOrDefault(),
                                        ImportoSanzione = pagEsercizio.RitenutaAcconto.ImportoSanzione.GetValueOrDefault(),
                                        ImportoTotale = pagEsercizio.RitenutaAcconto.ImportoConInteressi + pagEsercizio.RitenutaAcconto.ImportoSanzione.GetValueOrDefault(),
                                        StatoRitenuta = pagEsercizio.RitenutaAcconto.Stato,
                                        IsDeleteAllow = pagEsercizio.IsDeleteAllow(),
                                        IdCondominio = pagEsercizio.RitenutaAcconto.GetEsercizio().CondominioRiferimento.ID,
                                        IdEsercizio = pagEsercizio.RitenutaAcconto.GetEsercizio().ID,
                                        TipoDocumentoSpesa = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.TipoDocumento,
                                        Version = pagEsercizio.Version,
                                        IdentificativoArchiviazione = _archiviazioneOtticaService.GetIdentificativoArchiviazione(pagEsercizio.ScadenzaRiferimento.SpesaRiferimento),
                                        CodiceTributo = pagEsercizio.ScadenzaRiferimento.SpesaRiferimento.FornitoreRiferimento.CodiceTributo
                                    };

                                    if (pagEsercizio.RitenutaAcconto.MovimentoContabilePagamento != null)
                                    {
                                        pagamentoDto.IdMovimentoContabilePagamento = pagEsercizio.RitenutaAcconto.MovimentoContabilePagamento.ID;
                                        if (pagEsercizio.RitenutaAcconto.MovimentoContabilePagamento.EvasioneBancaria != null)
                                            pagamentoDto.IdEvasioneBancaria = pagEsercizio.RitenutaAcconto.MovimentoContabilePagamento.EvasioneBancaria.ID;
                                    }

                                    importoRitenuta += pagamentoDto.ImportoRitenuta;
                                    importoInteressi += pagamentoDto.ImportoInteressi;
                                    importoSanzione += pagamentoDto.ImportoSanzione;

                                    pagRitenutaDto.Pagamenti.Add(pagamentoDto);
                                }
                                catch (Exception ex)
                                {
                                    
                                    _log.Fatal("Errore inaspettato durante la letture dei pagamenti delle ritenute (singolo pagamento) - " + Utility.GetMethodDescription() + " - idPagamentoRitenuta" + pagEsercizio.ID + " - idAzienda " + filter.CodiceAzienda, ex);
                                    throw;
                                }
                            }

                            pagRitenutaDto.ImportoRitenuta = importoRitenuta;
                            pagRitenutaDto.ImportoInteressi = importoInteressi;
                            pagRitenutaDto.ImportoSanzione = importoSanzione;
                            pagRitenutaDto.ImportoTotale = importoRitenuta + importoInteressi + importoSanzione;

                            listaDto.Add(pagRitenutaDto);
                        }
                    }
                    catch (Exception ex)
                    {
                        
                        _log.Fatal("Errore inaspettato durante la letture dei pagamenti delle ritenute (singola disposizione) - " + Utility.GetMethodDescription() + " - idPagamento" + pagamento.ID + " - idAzienda " + filter.CodiceAzienda, ex);
                        throw;
                    }
                }

                return listaDto.OrderBy(item => item.DescrizioneCondominio).ThenBy(item => item.Data).ToList();
            }
            catch (Exception ex)
            {
                
                _log.Fatal("Errore inaspettato durante la letture dei pagamenti delle ritenute - " + Utility.GetMethodDescription() + " - idAzienda " + filter.CodiceAzienda, ex);
                throw;
            }

        }
Пример #3
0
        public string GetContenutoFile(PagamentoRitenutaDTO ritenuta)
        {
            if (ritenuta != null)
            {
                var result = GetServiceClient().GetContenutoFileRitenute(ritenuta.ID, GetUserInfo());
                CloseService();
                return result;
            }

            return string.Empty;
        }
Пример #4
0
        //public int? ManageDomainEntity(PianoRatealeDTO dto)
        //{
        //    try
        //    {
        //        return this.manage(dto).ID;
        //    }
        //    catch (Exception ex)
        //    {
        //        log4net.MDC.Set("user", Gipasoft.Security.Login.Instance.CurrentLogin().LoginName);
        //        _log.Error("Errore nel caricamento del piano rateale: Gipasoft.Business.Sfera.Repository.PianoRatealeRepository.ManageDomainEntity() - id:" + dto.ID.ToString(), ex);
        //        throw ex;
        //    }
        //}

        #endregion Public Methods

        #region Private Methods

        private PagamentoRitenutaDTO setDto(PagamentoRitenuta item)
        {
            PagamentoRitenutaDTO dto = new PagamentoRitenutaDTO()
            {
                Data = item.Data,
                Descrizione = item.Descrizione,
                ID = item.ID,
                IdAzienda = item.AziendaID.GetValueOrDefault(),
                ImportoInteressi = item.ImportoInteressi,
                ImportoRitenuta = item.ImportoRitenuta,
                ImportoSanzione = item.ImportoSanzione,
                IsDeleteAllow = item.IsDeleteAllow(),
                Version = item.Version,
                FrequentlyAccessed = item.FrequentlyAccessed,
                IsFittizio = item.IsFittizio
            };

            // Dettaglio Pagamenti
            dto.Pagamenti = new List<PagamentoListaRitenutaDTO>(item.Pagamenti.Count);
            PagamentoFatturaRepository rep = new PagamentoFatturaRepository();
            foreach (Pagamento pagamento in item.Pagamenti)
            {
                dto.Pagamenti.Add(rep.GetByDomainEntity(pagamento));
            }

            return dto;
        }