Exemple #1
0
        /// <summary>
        /// Apaga os dados da unidade de medida.
        /// </summary>
        /// <param name="unidadeMedida"></param>
        /// <returns></returns>
        public Colosoft.Business.DeleteResult ApagarUnidadeMedida(Entidades.UnidadeMedida unidadeMedida)
        {
            unidadeMedida.Require("unidadeMedida").NotNull();

            using (var session = SourceContext.Instance.CreateSession())
            {
                var resultado = unidadeMedida.Delete(session);

                if (!resultado)
                {
                    return(resultado);
                }

                return(session.Execute(false).ToDeleteResult());
            }
        }
Exemple #2
0
        /// <summary>
        /// Valida a atualização da unidade de medida.
        /// </summary>
        /// <param name="unidadeMedida"></param>
        /// <returns></returns>
        IMessageFormattable[] Entidades.IValidadorUnidadeMedida.ValidaAtualizacao
            (Entidades.UnidadeMedida unidadeMedida)
        {
            var mensagens = new List <IMessageFormattable>();
            var consultas = SourceContext.Instance.CreateMultiQuery();

            // Verifica se é uma nova unidade de medida
            if (!unidadeMedida.ExistsInStorage)
            {
                // Verifica se já existe uma unidade de medida cadastrada com o código passado.
                consultas.Add(
                    SourceContext.Instance.CreateQuery()
                    .From <Data.Model.UnidadeMedida>()
                    .Where("Codigo=?codigo").Add("?codigo", unidadeMedida.Codigo)
                    .Count(),
                    (s, q, r) =>
                {
                    if (r.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                    {
                        mensagens.Add("Já existe uma unidade de medida cadastrada com este código.".GetFormatter());
                    }
                });
            }

            else
            {
                consultas.Add(
                    SourceContext.Instance.CreateQuery()
                    .From <Data.Model.UnidadeMedida>()
                    .Where("IdUnidadeMedida<>?id AND Codigo=?codigo")
                    .Add("?id", unidadeMedida.IdUnidadeMedida)
                    .Add("?codigo", unidadeMedida.Codigo)
                    .Count(),
                    (s, q, r) =>
                {
                    if (r.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                    {
                        mensagens.Add("Já existe uma unidade de medida cadastrada com este código.".GetFormatter());
                    }
                });
            }

            consultas.Execute();

            return(mensagens.ToArray());
        }
Exemple #3
0
        /// <summary>
        /// Valida a existencia da unidade de medida.
        /// </summary>
        /// <param name="unidadeMedida"></param>
        /// <returns></returns>
        IMessageFormattable[] Entidades.IValidadorUnidadeMedida.ValidaExistencia
            (Entidades.UnidadeMedida unidadeMedida)
        {
            // Verifica se esta unidade de medida está sendo usada em algum produto
            if (SourceContext.Instance.CreateQuery()
                .From <Data.Model.Produto>()
                .Where("IdUnidadeMedida=?id OR IdUnidadeMedidaTrib=?id")
                .Add("?id", unidadeMedida.IdUnidadeMedida)
                .ExistsResult())
            {
                return(new IMessageFormattable[]
                {
                    "Esta unidade de medida está sendo usada, portanto não pode ser excluída.".GetFormatter()
                });
            }

            return(new IMessageFormattable[0]);
        }