private void apriSpesa(PagamentoListaRitenutaDTO item)
 {
     if (item?.IdFattura > 0)
     {
         if (item.StatoSpesa == Sfera.Enums.StatoSpesaEnum.PagataAltroAmministratore)
         {
             var form = getDettaglioSpesaService().GetFormDettaglioFiscale(item.IdFattura);
             form.ShowDialog();
             form.Dispose();                        
         }
         else if (item.TipoDocumentoSpesa == "Fatt.Quadr." || item.TipoDocumentoSpesa == "FATBILAPP")
         {
             var service = ResolveComponent<IBilancioAperturaUI>();
             var form = service.GetFormDettaglio(getCondominioService().GetById(item.IdCondominio, true, false), getEsercizioService().GetById(item.IdEsercizio));
                 
             var parentForm = ParentForm;
             if (parentForm != null) form.MdiParent = parentForm.MdiParent;
             form.Show();
         }
         else
         {
             var form = getDettaglioSpesaService().GetFormDettaglio(item.IdFattura);
             if (!form.IsDisposed)
             {
                 form.ShowDialog();
                 form.Dispose();
             }
         }
     }
 }
示例#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;
            }

        }
 private void listaMouseUp(object sender, MouseEventArgs e)
 {
     _itemClick = null;
     if (e.Button == MouseButtons.Right)
     {
         _itemClick = DataGridHelper.GetCellEvent<PagamentoListaRitenutaDTO>(lista, e);
         if (_itemClick != null)
             contextMenuStrip1.Show(lista, e.X, e.Y);
     }
 }