예제 #1
0
        /// <summary>
        /// Apaga os dados do comissionado.
        /// </summary>
        /// <param name="comissionado"></param>
        /// <returns></returns>
        public Colosoft.Business.DeleteResult ApagarComissionado(Entidades.Comissionado comissionado)
        {
            comissionado.Require("comissionado").NotNull();

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

                return(session.Execute(false).ToDeleteResult());
            }
        }
예제 #2
0
        /// <summary>
        /// Implementação da validação de existência do comissionado.
        /// </summary>
        /// <param name="comissionado"></param>
        /// <returns></returns>
        public IMessageFormattable[] ValidaExistencia(Entidades.Comissionado comissionado)
        {
            var mensagens = new List <string>();

            // 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.Contains(mensagem))
                {
                    mensagens.Add(mensagem);
                }
            });

            SourceContext.Instance.CreateMultiQuery()
            // Verifica se o comissionado possui clientes relacionados à seu id
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.Cliente>()
                 .Where("IdComissionado=?id")
                 .Add("?id", comissionado.IdComissionado)
                 .Count(),
                 tratarResultado("Este comissionado não pode ser excluído por possuir clientes relacionados ao mesmo."))

            // Verifica se o comissionado possui orçamentos relacionados à seu id
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.Orcamento>()
                 .Where("IdComissionado=?id")
                 .Add("?id", comissionado.IdComissionado)
                 .Count(),
                 tratarResultado("Este comissionado não pode ser excluído por possuir orçamentos relacionados ao mesmo."))

            // Verifica se o comissionado possui pedidos relacionados à seu id
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.Pedido>()
                 .Where("IdComissionado=?id")
                 .Add("?id", comissionado.IdComissionado)
                 .Count(),
                 tratarResultado("Este comissionado não pode ser excluído por possuir pedidos relacionados ao mesmo."))

            // Verifica se o comissionado possui pedidos PCP relacionados à seu id
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.PedidoEspelho>()
                 .Where("IdComissionado=?id")
                 .Add("?id", comissionado.IdComissionado)
                 .Count(),
                 tratarResultado("Este comissionado não pode ser excluído por possuir clientes relacionados ao mesmo."))

            // Verifica se o comissionado possui comissões relacionadas à seu id
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.Comissao>()
                 .Where("IdComissionado=?id")
                 .Add("?id", comissionado.IdComissionado)
                 .Count(),
                 tratarResultado("Este comissionado não pode ser excluído por possuir comissões relacionadas ao mesmo."))

            // Verifica se o comissionado possui comissões de pedidos relacionadas à seu id
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.PedidoComissao>()
                 .Where("IdComissionado=?id")
                 .Add("?id", comissionado.IdComissionado)
                 .Count(),
                 tratarResultado("Este comissionado não pode ser excluído por possuir comissões de pedidos relacionadas ao mesmo."))
            .Execute();

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