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