/// <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()); } }
/// <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()); }
/// <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]); }