Пример #1
0
        /// <summary>
        /// Apaga os dados do fornecedor.
        /// </summary>
        /// <param name="fornecedor"></param>
        /// <returns></returns>
        public Colosoft.Business.DeleteResult ApagarFornecedor(Entidades.Fornecedor fornecedor)
        {
            fornecedor.Require("fornecedor").NotNull();

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

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

                return(session.Execute(false).ToDeleteResult());
            }
        }
Пример #2
0
        /// <summary>
        /// Salva os dados do fornecedor.
        /// </summary>
        /// <param name="fornecedor"></param>
        /// <returns></returns>
        public Colosoft.Business.SaveResult SalvarFornecedor(Entidades.Fornecedor fornecedor)
        {
            fornecedor.Require("fornecedor").NotNull();

            // Remover posteriormente, ao converter os logs para o banco de dados
            var salvarLogs = fornecedor.IdFornec > 0;

            var descricaoParcelas = salvarLogs ?
                                    Data.DAL.ParcelasNaoUsarDAO.Instance.ObtemDescricao(null, fornecedor.IdFornec) :
                                    null;

            #region Limita o tamanho do campo endereço em 250

            /* Chamado 35083. */
            fornecedor.Endereco =
                !string.IsNullOrEmpty(fornecedor.Endereco) ?
                (fornecedor.Endereco.Length > 250 ?
                 fornecedor.Endereco.Substring(0, 250) :
                 fornecedor.Endereco) :
                null;

            #endregion

            Colosoft.Business.SaveResult retorno;

            using (var session = SourceContext.Instance.CreateSession())
            {
                var resultado = fornecedor.Save(session);

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

                retorno = session.Execute(false).ToSaveResult();
            }

            // Remover posteriormente, ao converter os logs para o banco de dados
            if (retorno && salvarLogs)
            {
                Data.DAL.ParcelasNaoUsarDAO.Instance.AtualizaLog(null, fornecedor.IdFornec, descricaoParcelas);
            }

            return(retorno);
        }
Пример #3
0
        /// <summary>
        /// Valida a existencia do fornecedor.
        /// </summary>
        /// <param name="fornecedor"></param>
        /// <returns></returns>
        IMessageFormattable[] Entidades.IValidadorFornecedor.ValidaExistencia(Entidades.Fornecedor fornecedor)
        {
            var mensagens = new List <IMessageFormattable>();

            SourceContext.Instance.CreateMultiQuery()
            // Verifica se existem compras para este fornecedor
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.Compra>()
                 .Where("IdFornec=?id").Add("?id", fornecedor.IdFornec)
                 .Count(),
                 (sender, query, result) =>
            {
                if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                {
                    mensagens.Add(
                        "Este fornecedor não pode ser excluído pois existem compras relacionadas à ele.".GetFormatter());
                }
            })
            // Verifica se existem contas a pagar/pagas para este fornecedor
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.ContasPagar>()
                 .Where("IdFornec=?id").Add("?id", fornecedor.IdFornec)
                 .Count(),
                 (sender, query, result) =>
            {
                if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                {
                    mensagens.Add(
                        "Este fornecedor não pode ser excluído pois existem contas a pagar/pagas relacionadas à ele.".GetFormatter());
                }
            })
            // Verifica se existem produtos associados à este fornecedor
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.Produto>()
                 .Where("IdFornec=?id").Add("?id", fornecedor.IdFornec)
                 .Count(),
                 (sender, query, result) =>
            {
                if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                {
                    mensagens.Add(
                        "Este fornecedor não pode ser excluído pois existem produtos relacionados à ele.".GetFormatter());
                }
            })
            // Verifica se existem notas fiscais associadas à este fornecedor
            .Add(SourceContext.Instance.CreateQuery()
                 .From <Data.Model.NotaFiscal>()
                 .Where("IdFornec=?id").Add("?id", fornecedor.IdFornec)
                 .Count(),
                 (sender, query, result) =>
            {
                if (result.Select(f => f.GetInt32(0)).FirstOrDefault() > 0)
                {
                    mensagens.Add(
                        "Este fornecedor não pode ser excluído pois existem notas fiscais relacionadas à ele.".GetFormatter());
                }
            })
            .Execute();

            return(mensagens.ToArray());
        }