public List<PagamentoDTO> GetByFilter(PagamentoFilter filter)
 {
     filter.CodiceAzienda = Login.Instance.CurrentLogin().Azienda;
     var result = GetServiceClient().GetPagamentiByFilter(filter, GetUserInfo());
     CloseService();
     return result;
 }
        public IList<Pagamento> GetDaConfermare(PagamentoFilter filter)
        {
            var where = string.Empty;

            var hql = string.Empty;
            var parameters = new List<QueryParam>();
            switch (filter.TipoPagamento)
            {
                case TipoPagamentoEnum.BonificoFornitore:
                    hql = "FROM Pagamento P WHERE P.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Azienda.ID = :idAzienda AND (P.Stato = :stato1 OR P.Stato = :stato2) ";
                    parameters = new List<QueryParam> { new QueryParam("idAzienda", filter.CodiceAzienda), new QueryParam("stato1", Conversione.ToHQLParameter(StatoSpesaEnum.Pagata)), new QueryParam("stato2", Conversione.ToHQLParameter(StatoSpesaEnum.ParzialmentePagata)) };
                    break;

                case TipoPagamentoEnum.RitenutaAcconto:
                    hql = "FROM Pagamento P WHERE P.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Azienda.ID = :idAzienda AND (P.RitenutaAcconto.Stato = :stato1) ";
                    parameters = new List<QueryParam> { new QueryParam("idAzienda", filter.CodiceAzienda), new QueryParam("stato1", Conversione.ToHQLParameter(StatoRitenutaEnum.Pagata)) };
                    break;
            }

            // Filtri di ricerca
            if (filter.CodiceCondominio != null)
            {
                where += " AND P.ScadenzaRiferimento.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.ID = :condominio";
                parameters.Add(new QueryParam("condominio", filter.CodiceCondominio.Value));
            }
            hql += where;

            return _daoFactory.GetPagamentoDao().GetByQuery(hql, parameters.ToArray());
        }
 public List<DisposizionePagamentoDTO> GetDisposizioniDaAutorizzareByFilter(PagamentoFilter filter, bool autorizzati)
 {
     filter.CodiceAzienda = Login.Instance.CurrentLogin().Azienda;
     var result = GetServiceClient().GetDisposizionePagamentiDaAutorizzareByFilter(filter, autorizzati, GetUserInfo());
     CloseService();
     return result;
 }
        public List<DisposizionePagamentoDTO> GetDaAutorizzare(PagamentoFilter filter, bool autorizzati)
        {
            var detraibile = false;
            if (filter.Detraibile != null)
                detraibile = filter.Detraibile.Value;

            return convertScadenzeToDto(!autorizzati ? _daoFactory.GetScadenzaFatturaDao().GetByQuery("FROM ScadenzaFattura SCA LEFT JOIN FETCH SCA.Pagamenti PAG LEFT JOIN FETCH SCA.SpesaRiferimento SPE LEFT JOIN FETCH SPE.Dettagli DETT LEFT JOIN FETCH SPE.EsercizioRiferimento ESE LEFT JOIN FETCH ESE.CondominioRiferimento COND LEFT JOIN FETCH COND.DatiBancari BANCA LEFT JOIN FETCH COND.Azienda AZI WHERE SCA.Importo > 0 AND AZI = :idAzienda AND (SCA.Stato = :stato1 OR SCA.Stato = :stato2)", new[] { new QueryParam("idAzienda", filter.CodiceAzienda), new QueryParam("stato1", Conversione.ToHQLParameter(StatoSpesaEnum.Inserita)), new QueryParam("stato2", Conversione.ToHQLParameter(StatoSpesaEnum.ParzialmentePagata)) }) : _daoFactory.GetScadenzaFatturaDao().GetByQuery("FROM ScadenzaFattura SCA LEFT JOIN FETCH SCA.Pagamenti PAG WHERE SCA.Importo > 0 AND SCA.SpesaRiferimento.EsercizioRiferimento.CondominioRiferimento.Azienda.ID = :idAzienda AND (SCA.Stato = :stato1 OR SCA.Stato = :stato2 OR SCA.Stato = :stato3)", new[] { new QueryParam("idAzienda", filter.CodiceAzienda), new QueryParam("stato1", Conversione.ToHQLParameter(StatoSpesaEnum.Inserita)), new QueryParam("stato2", Conversione.ToHQLParameter(StatoSpesaEnum.ParzialmentePagata)), new QueryParam("stato3", Conversione.ToHQLParameter(StatoSpesaEnum.Autorizzata)) }), detraibile, true);
        }
        public List<DisposizionePagamentoDTO> GetDaPagare(PagamentoFilter filter)
        {
            var detraibile = false;
            if (filter.Detraibile != null)
                detraibile = filter.Detraibile.Value;

            return convertScadenzeToDto(_daoFactory.GetScadenzaFatturaDao().GetByQuery("FROM ScadenzaFattura SCA LEFT JOIN FETCH SCA.SpesaRiferimento SPE LEFT JOIN FETCH SCA.Pagamenti PAGAM LEFT JOIN FETCH SPE.FornitoreRiferimento FOR LEFT JOIN FETCH FOR.PersonaRiferimento PERS LEFT JOIN FETCH PERS.IndirizzoResidenza.Comune COMU LEFT JOIN FETCH SPE.EsercizioRiferimento ESE LEFT JOIN FETCH ESE.CondominioRiferimento COND LEFT JOIN FETCH COND.DatiBancari BANCA WHERE COND.Azienda.ID = :idAzienda AND (SCA.Stato = :stato1 OR SCA.Stato = :stato2)", new[] { new QueryParam("idAzienda", filter.CodiceAzienda), new QueryParam("stato1", Conversione.ToHQLParameter(StatoSpesaEnum.Autorizzata)), new QueryParam("stato2", Conversione.ToHQLParameter(StatoSpesaEnum.ParzialmentePagata)) }), detraibile, false);
        }
        private void sceltaOperazioneStornoLoad(object sender, EventArgs e)
        {
            var filter = new PagamentoFilter
            {
                ImportoPagamentoInizio = _movimento.Importo,
                ImportoPagamentoFine = _movimento.Importo,
                CodiceCondominio = _movimento.CodiceCondominio
            };

            pagamentoDTOBindingSource.DataSource = _pagamentoService.GetByFilter(filter);
        }
        private PagamentoFilter getFilter()
        {
            var filter = new PagamentoFilter();
            if (sceltaCondominioCombo1.CondominioSelected != null)
                filter.CodiceCondominio = sceltaCondominioCombo1.CondominioSelected.ID;
            if (sceltaFornitoreCombo1.SelectedFornitore != null)
                filter.CodiceFornitore = sceltaFornitoreCombo1.SelectedFornitore.ID;
            if (numeroDocumento.Value != null)
                filter.NumeroDocumento = numeroDocumento.Value.ToString();
            filter.DataDocumentoInizio = (DateTime?)dataDocumento.Value;

            filter.ImportoPagamentoInizio = importoDa.Value;
            filter.ImportoPagamentoFine = importoA.Value;

            filter.DataPagamentoInizio = (DateTime?)dataPagamentoIniziale.Value;
            filter.DataPagamentoFine = (DateTime?)dataPagamentoFinale.Value;

            return filter;
        }
 public List<PagamentoRitenutaDTO> GetPagamentiByAzienda(PagamentoFilter filter)
 {
     var result = GetServiceClient().GetPagamentiRitenuteGroupByCondominio(filter, GetUserInfo());
     CloseService();
     return result;
 }
 public List<NotaAccreditoRiscossioneDTO> GetNoteAccreditoDaRiscuotere(PagamentoFilter filter)
 {
     filter.CodiceAzienda = Login.Instance.CurrentLogin().Azienda;
     var result = GetServiceClient().GetNoteAccreditoDaRiscuotereByFilter(filter, GetUserInfo());
     CloseService();
     return result;
 }
        public void Reload()
        {
            lista.InitializeRow += listaInitializeRow;
            var filter = new PagamentoFilter
            {
                Detraibile = !_pagamentoCbi
            };
            disposizionePagamentoBindingSource.DataSource = getPagamentoFatturaService().GetDisposizioniDaPagareByFilter(filter);
            lista.AfterCellUpdate -=listaAfterCellUpdate;
            lista.BeforeRowActivate -=listaBeforeRowActivate;
            lista.PerformAction(UltraGridAction.ExitEditMode);
            lista.BeforeRowActivate += listaBeforeRowActivate;
            lista.AfterCellUpdate += listaAfterCellUpdate;
            lista.InitializeRow -= listaInitializeRow;

            btnAvanti.Enabled = true;
            btnIndietro.Enabled = false;
            wizardDisposizionePagamento.Tabs[getConfermaTabKey()].Enabled = false;
            wizardDisposizionePagamento.Tabs["scadenze"].Enabled = true;
            wizardDisposizionePagamento.SelectedTab = wizardDisposizionePagamento.Tabs["scadenze"];
            _avanzamento = AvanzamentoWizard.SceltaScadenze;

            setContoCorrenteValueList();

            lista.UpdateData();
            lista.PerformAction(UltraGridAction.ExitEditMode);

            if (checkErrori(false) != string.Empty)
                btnErrori.Visible = true;

            tipoBonifico_ValueChanged(null, EventArgs.Empty);
        }
Beispiel #11
0
		public IList<PagamentoDTO> GetPagamentiByFilter(PagamentoFilter filter, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var rep = new PagamentoFatturaRepository(userinfo, windsorRep);
				var item = rep.GetByList(filter);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
				_log.ErrorFormat("Errore nella lettura dei pagamenti - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
Beispiel #12
0
		public List<PagamentoDTO> GetPagamentiDaConfermareByFilter(PagamentoFilter filter, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var rep = new PagamentoFatturaRepository(userinfo, windsorRep);
				var pagamentoService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>();

				var pagamenti = pagamentoService.GetDaConfermare(filter);
				var pagamentiDto = new List<PagamentoDTO>(pagamenti.Count);
			    pagamentiDto.AddRange(pagamenti.Select(rep.GetByDomainEntity));

			    windsorRep.Commit();
				return pagamentiDto;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nella lettura dei pagamenti da confermare - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
        public IList<Riscossione> GetRiscossioni(PagamentoFilter filter)
        {
            var hql = new StringBuilder("FROM Riscossione RIS LEFT JOIN FETCH RIS.MovimentoContabile MOV LEFT JOIN FETCH MOV.Testata TES LEFT JOIN FETCH MOV.ContoRiferimento CON LEFT JOIN FETCH MOV.ContoCorrenteBancario LEFT JOIN FETCH RIS.SpesaRiferimento SPE WHERE SPE.EsercizioRiferimento.CondominioRiferimento.Azienda = :azienda");

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

            // Fornitore
            if (filter.CodiceFornitore != null)
            {
                hql.Append(" AND SPE.FornitoreRiferimento.ID = :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));
            }

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

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

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

            if (filter.ImportoPagamentoFine != null && filter.ImportoPagamentoFine > 0)
            {
                hql.Append(" AND RIS.Importo <= :importoFine");
                parameters.Add(new QueryParam("importoFine", filter.ImportoPagamentoFine));
            }

            hql.Append(" ORDER BY TES.DataRegistrazione DESC");

            return _daoFactory.GetRiscossioneDao().GetByQuery(hql.ToString(), parameters.ToArray());
        }
Beispiel #14
0
		public List<NotaAccreditoRiscossioneDTO> GetNoteAccreditoDaRiscuotereByFilter(PagamentoFilter filter, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
                var pagamentoService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>();
                var item = pagamentoService.GetNoteAccreditoDaRiscuotere(filter);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
				_log.ErrorFormat("Errore nella lettura delle note di accredito da riscuotere - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}
		}
Beispiel #15
0
		public List<DisposizionePagamentoDTO> GetDisposizionePagamentiDaAutorizzareByFilter(PagamentoFilter filter, bool autorizzati, UserInfo userinfo)
		{
			var windsorRep = new WindsorConfigRepository();
			try
			{
				windsorRep.BeginTransaction(userinfo);
				var pagamentoService = windsorRep.GetContainer(userinfo.Azienda).Resolve<IPagamentoService>();
				var item = pagamentoService.GetDaAutorizzare(filter, autorizzati);
				windsorRep.Commit();
				return item;
			}
			catch (Exception ex)
			{
                _log.ErrorFormat("Errore nella lettura delle disposizioni di pagamento da autorizzare - {0} - azienda:{1}", ex, Utility.GetMethodDescription(), userinfo.Azienda);
				windsorRep.Rollback();
				throw;
			}		
		}
        public IList<Pagamento> GetPagamenti(PagamentoFilter filter)
        {
            var hql = new StringBuilder("FROM Pagamento P LEFT JOIN FETCH P.MovimentoContabile MOV LEFT JOIN FETCH MOV.ContoRiferimento CON LEFT JOIN FETCH MOV.ContoCorrenteBancario LEFT JOIN FETCH P.DisposizioneRiferimento DISP LEFT JOIN FETCH P.ScadenzaRiferimento SCAD LEFT JOIN FETCH SCAD.SpesaRiferimento SPE WHERE SPE.EsercizioRiferimento.CondominioRiferimento.Azienda = :azienda AND P.Stato != :stato ");

            var parameters = new List<QueryParam>
            {
                new QueryParam("azienda", filter.CodiceAzienda),
                new QueryParam("stato", Conversione.ToHQLParameter(StatoSpesaEnum.Autorizzata))
            };

            // Fornitore
            if (filter.CodiceFornitore != null)
            {
                hql.Append(" AND SPE.FornitoreRiferimento.ID = :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 && filter.DataDocumentoInizio > DateTime.MinValue)
            {
                hql.Append(" AND SPE.DataDocumento >= :dataDocumento");
                parameters.Add(new QueryParam("dataDocumento", filter.DataDocumentoInizio.GetValueOrDefault()));
            }
            if (filter.DataDocumentoFine != null && filter.DataDocumentoFine > DateTime.MinValue)
            {
                hql.Append(" AND SPE.DataDocumento <= :dataDocumento");
                parameters.Add(new QueryParam("dataDocumento", filter.DataDocumentoFine.GetValueOrDefault()));
            }

            // Protocollo
            if (filter.Protocollo > 0)
            {
                hql.Append(" AND SPE.NumeroProtocollo = :protocollo");
                parameters.Add(new QueryParam("protocollo", filter.Protocollo.Value));
            }

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

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

            // File CBI
            if (filter.IdFileCBI != null)
            {
                hql.Append(" AND P.File.ID = :fileCBI");
                parameters.Add(new QueryParam("fileCBI", filter.IdFileCBI));
            }

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

            if (filter.ImportoPagamentoFine != null && filter.ImportoPagamentoFine > 0)
            {
                hql.Append(" AND P.Importo <= :importoFine");
                parameters.Add(new QueryParam("importoFine", filter.ImportoPagamentoFine));
            }

            hql.Append(" ORDER BY P.Data DESC");

            return _daoFactory.GetPagamentoDao().GetByQuery(hql.ToString(), parameters.ToArray());
        }
Beispiel #17
0
		public IList<PagamentoRitenutaDTO> GetPagamentiRitenuteGroupByCondominio(PagamentoFilter filter, UserInfo userinfo)
		{
            var retryCount = 5;
            var success = false;
            var windsorRep = new WindsorConfigRepository();
            IList<PagamentoRitenutaDTO> item = null;
            while (retryCount >= 0 && !success)
            {
                try
                {
                    windsorRep.BeginTransaction(userinfo);
                    var service = windsorRep.GetContainer(userinfo.Azienda).Resolve<IRitenutaAccontoService>();
                    filter.CodiceAzienda = userinfo.Azienda;
                    item = service.GetPagamentiGroupByCondominio(filter);
                    windsorRep.Commit();
                    success = true;
                }
                catch (Exception ex)
                {
                    _log.ErrorFormat("Errore nella lettura dei pagamenti raggruppati per condominio - TENTATIVO:{0} - {1} - azienda:{2} - number:{3}", ex, (11 - retryCount), Utility.GetMethodDescription(), userinfo.Azienda, getExceptionId(ex));

                    windsorRep.Rollback();
                    if (!isRetryException(ex))
                        throw;

                    // Add delay here if you wish. 
                    System.Threading.Thread.Sleep(1000 * (6 - retryCount));
                    retryCount--;
                    _log.InfoFormat("Lettura dei pagamenti raggruppati per condominio - INIZIO TENTATIVO:{0} - {1} - azienda:{2}", (11 - retryCount), Utility.GetMethodDescription(), userinfo.Azienda);
                }
            }

            if (!success)
                windsorRep.Rollback();

            return item;
		}
        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 btnRicerca_Click(object sender, EventArgs e)
        {
            validationSummary1.Validate();
            if (validationSummary1.IsValid)
            {
                var fornitore = sceltaFornitoreCombo1.SelectedFornitore;
                var filter = new PagamentoFilter();
                if (sceltaCondominioCombo1.CondominioSelected != null)
                    filter.CodiceCondominio = sceltaCondominioCombo1.CondominioSelected.ID;
                if (fornitore != null)
                    filter.CodiceFornitore = fornitore.ID;
                if (numeroDocumento.Value != null)
                    filter.NumeroDocumento = numeroDocumento.Value.ToString();
                filter.DataDocumentoInizio = (DateTime?)dataDocumento.Value;
                filter.DataDocumentoFine = null;

                filter.ImportoPagamentoInizio = importoDa.Value;
                filter.ImportoPagamentoFine = importoA.Value;

                filter.DataPagamentoInizio = (DateTime?)dataPagamentoIniziale.Value;
                filter.DataPagamentoFine = (DateTime?)dataPagamentoFinale.Value;

                var form = new ExecuteLoadDataListAsync<NotaAccreditoRiscossioneDTO>("E' in corso la ricerca delle note di accredito ....." + Environment.NewLine + "Si prega di attendere.");
                Func<List<NotaAccreditoRiscossioneDTO>> loadDati = () => getPagamentoFatturaService().GetNoteAccreditoDaRiscuotere(filter);
                form.LoadData(loadDati);
                form.ShowDialog();

                var dataSource = form.DataSourceObject;
                form.Dispose();
                _contiPagamentiFornitori = getPagamentoFatturaService().GetContiPatrimonialiPagamentiFornitori(dataSource.Select(nota => nota.IdCondominio).ToList());
                notaAccreditoRiscossioneDTOBindingSource.DataSource = dataSource;

                lista.Visible = true;
                btnConferma.Visible = true;
            }
            else
                validationSummary1.ShowErrorSummary();
        }
Beispiel #20
0
        private void btnRicercaClick(object sender, EventArgs e)
        {
            validationSummary1.Validate();
            if (validationSummary1.IsValid)
            {
                var fornitore = sceltaFornitoreCombo1.SelectedFornitore;
                var filter = new PagamentoFilter();
                if (sceltaCondominioCombo1.CondominioSelected != null)
                    filter.CodiceCondominio = sceltaCondominioCombo1.CondominioSelected.ID;
                if (fornitore != null)
                    filter.CodiceFornitore = fornitore.ID;
                if (numeroDocumento.Value != null)
                    filter.NumeroDocumento = numeroDocumento.Value.ToString();
                if (protocollo.Value != null)
                    filter.Protocollo = protocollo.Value as int?;
                filter.DataDocumentoInizio = (DateTime?)dataDocumento.Value;
                filter.DataDocumentoFine = null;

                filter.ImportoPagamentoInizio = importoDa.Value;
                filter.ImportoPagamentoFine = importoA.Value;

                filter.DataPagamentoInizio = (DateTime?)dataPagamentoIniziale.Value;
                filter.DataPagamentoFine = (DateTime?)dataPagamentoFinale.Value;

                if (_fileCBI != null)
                    filter.IdFileCBI = _fileCBI;

                var form = new ExecuteLoadDataListAsync<PagamentoDTO>("E' in corso la ricerca dei pagamenti ....." + Environment.NewLine + "Si prega di attendere.");
                Func<List<PagamentoDTO>> loadDati = () => getPagamentoFatturaService().GetByFilter(filter);
                form.LoadData(loadDati);
                form.ShowDialog();
                pagamentoDTOBindingSource.DataSource = form.DataSourceObject;
                listaPagamenti.Visible = true;
                btnConferma.Visible = true;
                form.Dispose();
            }
            else
                validationSummary1.ShowErrorSummary();
        }
        public List<PagamentoDTO> GetByList(PagamentoFilter filter)
        {
            try
            {
                var pagamentoService = _windsorRepository.GetContainer(_info.Azienda).Resolve<IPagamentoService>();

                // Pagamenti
                var pagamenti = pagamentoService.GetPagamenti(filter);
                var listaDto = pagamenti.Select(setDto).Where(dto => dto != null).ToList();

                // Riscossioni solo se non sto chiedendo le righe caricate con un file CBI
                if (filter.IdFileCBI == null)
                {
                    var riscossioni = pagamentoService.GetRiscossioni(filter);
                    listaDto.AddRange(riscossioni.Select(setDto).Where(dto => dto != null));
                }

                return listaDto;
            }
            catch (Exception ex)
            {
                var filterStr = $"Condominio: {filter.CodiceCondominio} - Fornitore: {filter.CodiceFornitore} - Dt.Documento inizio:{(filter.DataDocumentoInizio != null ? filter.DataDocumentoInizio.GetValueOrDefault().ToShortDateString() : "<NULL>")} - Dt.Documento fine:{(filter.DataDocumentoFine != null ? filter.DataDocumentoFine.GetValueOrDefault().ToShortDateString() : "<NULL>")} - Dt.Pagamento inizio:{(filter.DataPagamentoInizio != null ? filter.DataPagamentoInizio.GetValueOrDefault().ToShortDateString() : "<NULL>")} - Dt.Pagamento fine:{(filter.DataPagamentoFine != null ? filter.DataPagamentoFine.GetValueOrDefault().ToShortDateString() : "<NULL>")} - Importo inizio:{(filter.ImportoPagamentoInizio != null ? filter.ImportoPagamentoInizio.GetValueOrDefault().ToString(CultureInfo.InvariantCulture) : "<NULL>")} - Importo fine:{(filter.ImportoPagamentoFine != null ? filter.ImportoPagamentoFine.GetValueOrDefault().ToString(CultureInfo.InvariantCulture) : "<NULL>")} - Numero Documento:{filter.NumeroDocumento} - Tipo Pagamento:{filter.TipoPagamento} - Detraibile:{filter.Detraibile} - File CBI:{(filter.IdFileCBI != null ? filter.IdFileCBI.GetValueOrDefault().ToString(CultureInfo.InvariantCulture) : "<NULL>")}";
                _log.ErrorFormat("Errore nel caricamento dei pagamenti o riscossioni delle Fatture/Spese - {0} - filter:{1}", ex, Library.Utility.GetMethodDescription(), filterStr);
                throw;
            }
        }
        public List<NotaAccreditoRiscossioneDTO> GetNoteAccreditoDaRiscuotere(PagamentoFilter filter)
        {
            var hql = new StringBuilder("FROM Spesa SPE LEFT JOIN FETCH SPE.Dettagli DETT LEFT JOIN FETCH SPE.FornitoreRiferimento FOR LEFT JOIN FETCH FOR.PersonaRiferimento PERS LEFT JOIN FETCH PERS.IndirizzoResidenza.Comune COMU LEFT JOIN FETCH SPE.EsercizioRiferimento ESE LEFT JOIN FETCH ESE.CondominioRiferimento COND LEFT JOIN FETCH COND.DatiBancari BANCA LEFT JOIN FETCH SPE.Riscossioni RISC LEFT JOIN FETCH COND.Conti CONT LEFT JOIN FETCH CONT.SottoConti SOTT_CONT LEFT JOIN FETCH COND.Azienda AZI WHERE (SPE.TipoDocumento = :tipoDocumento OR (SPE.TipoDocumento = :tipoDocumentoBolletta AND SPE.ImportoBolletta < 0) OR (SPE.TipoDocumento = :tipoDocumentoBilancioApertura AND DETT.ImportoLordo < 0)) AND COND.Azienda.ID = :idAzienda AND (SPE.Stato = :stato1 OR SPE.Stato = :stato2)");

            var parameters = new List<QueryParam>
            {
                new QueryParam("tipoDocumento", "NOTACC"), new QueryParam("tipoDocumentoBolletta", "BOLLETTA"),
                new QueryParam("tipoDocumentoBilancioApertura", "FATBILAPP"),
                new QueryParam("idAzienda", filter.CodiceAzienda),
                new QueryParam("stato1", Conversione.ToHQLParameter(StatoSpesaEnum.Inserita)),
                new QueryParam("stato2", Conversione.ToHQLParameter(StatoSpesaEnum.ParzialmentePagata))
            };

            // 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 && filter.DataDocumentoInizio > DateTime.MinValue)
            {
                hql.Append(" AND SPE.DataDocumento >= :dataDocumento");
                parameters.Add(new QueryParam("dataDocumento", filter.DataDocumentoInizio.GetValueOrDefault()));
            }
            if (filter.DataDocumentoFine != null && filter.DataDocumentoFine > DateTime.MinValue)
            {
                hql.Append(" AND SPE.DataDocumento <= :dataDocumento");
                parameters.Add(new QueryParam("dataDocumento", filter.DataDocumentoFine.GetValueOrDefault()));
            }

            //// Data Pagamento
            //if (filter.DataPagamentoInizio != null && filter.DataPagamentoInizio > DateTime.MinValue)
            //{
            //    hql.Append(" AND P.Data >= :dataPagamentoIniziale");
            //    parameters.Add(new QueryParam("dataPagamentoIniziale", filter.DataPagamentoInizio.Value));
            //}
            //if (filter.DataPagamentoFine != null && filter.DataPagamentoFine > DateTime.MinValue)
            //{
            //    hql.Append(" AND P.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 Riscossione
            if (filter.ImportoPagamentoInizio != null && filter.ImportoPagamentoInizio > 0)
            {
                hql.Append(" AND RISC.Importo >= :importoInizio");
                parameters.Add(new QueryParam("importoInizio", filter.ImportoPagamentoInizio));
            }

            if (filter.ImportoPagamentoFine != null && filter.ImportoPagamentoFine > 0)
            {
                hql.Append(" AND RISC.Importo <= :importoFine");
                parameters.Add(new QueryParam("importoFine", filter.ImportoPagamentoFine));
            }

            return convertNoteAccreditoToDto(_daoFactory.GetSpesaDao().GetByQuery(hql.ToString(), parameters.ToArray()));
        }
        public void LoadData(PagamentoFilter filter)
        {
            _filter = filter;

            Reload();
        }