Ejemplo n.º 1
0
        /// <summary>
        /// Apaga os dados da conta do banco.
        /// </summary>
        /// <param name="contaBanco"></param>
        /// <returns></returns>
        public Colosoft.Business.DeleteResult ApagarContaBanco(Entidades.ContaBanco contaBanco)
        {
            contaBanco.Require("contaBanco").NotNull();

            using (var session = SourceContext.Instance.CreateSession())
            {
                var resultado = contaBanco.Delete(session);
                if (!resultado)
                {
                    return(resultado);
                }

                return(session.Execute(false).ToDeleteResult());
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Valida a existencia da conta.
        /// </summary>
        /// <param name="contaBanco"></param>
        /// <returns></returns>
        IMessageFormattable[] Entidades.IValidadorContaBanco.ValidaExistencia(Entidades.ContaBanco contaBanco)
        {
            var mensagens = new List <string>();
            // Handler para criar a consulta padrão da existencia do registro
            var criarConsulta = new Func <Type, Colosoft.Query.Queryable>(type =>
                                                                          SourceContext.Instance.CreateQuery()
                                                                          .From(new Colosoft.Query.EntityInfo(type.FullName))
                                                                          .Count()
                                                                          .Where("IdContaBanco=?id")
                                                                          .Add("?id", contaBanco.IdContaBanco));

            // Handler para tratar o resultado da consulta de validação
            var tratarResultado = new Func <string, Colosoft.Query.QueryCallBack>(mensagem =>
                                                                                  (sender, query, result) =>
            {
                if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                {
                    mensagens.Add(mensagem);
                }
            });

            SourceContext.Instance.CreateMultiQuery()
            // Verifica se existe algum pagamento associado à esta conta bancária
            .Add(criarConsulta(typeof(Data.Model.PagtoPagto)),
                 tratarResultado("Esta conta bancária não pode ser excluída por haver pagamentos relacionados à mesma."))
            // Verifica se existe alguma movimentação para esta conta bancária
            .Add(criarConsulta(typeof(Data.Model.MovBanco)),
                 tratarResultado("Esta conta bancária não pode ser excluída por haver movimentações relacionadas à mesma."))
            // Verifica se existe alguma parcela de cartão para esta conta bancária
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.ContasReceber>()
                 .Where("IdContaBanco=?id AND IsParcelaCartao=?parcelaCartao")
                 .Add("?id", contaBanco.IdContaBanco)
                 .Add("?parcelaCartao", true)
                 .Count(), tratarResultado("Esta conta bancária não pode ser excluída por haver parcela(s) de cartão relacionada(s) à mesma."))
            // Verifica se existe alguma associação com esta conta bancária
            .Add(criarConsulta(typeof(Data.Model.AssocContaBanco)),
                 tratarResultado("Esta conta bancária não pode ser excluída por haver associações em configurações relacionadas à mesma."))
            .Execute();

            return(mensagens.Select(f => f.GetFormatter()).ToArray());
        }