Esempio n. 1
0
 public static List<Data.Models.Usuario> GetAll()
 {
     using (var db = new Data.Context.AppContext())
     {
         return db.Usuario.ToList();
     }
 }
        public static bool Add(Data.Models.EstoqueMovimento model)
        {
            bool sucesso = true;

            using (var db = new Data.Context.AppContext())
            {
                // Caso a movimentação de saida seja maior que o Saldo Atual, não deixar que ela ocorra, futuramente, retornar mensagem de erro
                if(model.MovimentoTipo == -1)
                {
                    var produtoSaldo = Bll.EstoqueMovimento.GetSaldoAtualProduto(model.ProdutoId);
                    if(produtoSaldo + (model.Quantidade * model.MovimentoTipo) < 0)
                    {
                        //TODO: Mensagem de erro
                        return false;
                    }
                }

                db.EstoqueMovimento.Add(model);
                db.SaveChanges();

                var saldoAtualProduto = Bll.EstoqueMovimento.GetSaldoAtualProduto(model.ProdutoId);
                if (saldoAtualProduto < Convert.ToInt32(Configuration.GetValue("QuantidadeEstoqueMinima")))
                {
                    Bll.EstoqueMovimento.NotificacaoSaldoProduto(model.ProdutoId);
                }
            }
            return sucesso;
        }
Esempio n. 3
0
 public static Data.Models.Usuario Get(int id)
 {
     using (var db = new Data.Context.AppContext())
     {
         return db.Usuario.Include("Pessoa").Where(c => c.Id == id).FirstOrDefault();
     }
 }
Esempio n. 4
0
 public static Data.Models.Usuario Get(int id)
 {
     using (var db = new Data.Context.AppContext())
     {
         return db.Usuario.Find(id);
     }
 }
 public static List<string> GetCommaSeparatedUserRole(int id)
 {
     using (var db = new Data.Context.AppContext())
     {
         return db.UsuarioPerfil.Include("Perfil").Include("Usuario").Where(x => x.UsuarioId == id)
             .Select(c => c.Perfil.Nome).ToList();
     }
 }
Esempio n. 6
0
 public static void Alter(Data.Models.Pessoa model)
 {
     using (var db = new Data.Context.AppContext())
     {
         db.Entry(model).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
Esempio n. 7
0
 public static void Delete(int id)
 {
     using (var db = new Data.Context.AppContext())
     {
         Data.Models.Obra model = db.Obra.Find(id);
         db.Obra.Remove(model);
         db.SaveChanges();
     }
 }
Esempio n. 8
0
 public static Data.Models.Usuario ValidateLogin(string usuario, string senha)
 {
     using (var db = new Data.Context.AppContext())
     {
         return db.Usuario
                 .Include("Pessoa")
                 .Where(x => x.Login == usuario && x.Senha == senha && x.Ativo == true).FirstOrDefault();
     }
 }
 public static void Delete(int id)
 {
     using (var db = new Data.Context.AppContext())
     {
         Data.Models.VeiculoUtilizacao model = db.VeiculoUtilizacao.Find(id);
         db.VeiculoUtilizacao.Remove(model);
         db.SaveChanges();
     }
 }
 public static List<Data.Models.EstoqueMovimento> GetMovimentacaoProduto(int produtoId)
 {
     using (var db = new Data.Context.AppContext())
     {
         return db.EstoqueMovimento
             .Where(x => x.ProdutoId == produtoId && x.Ativo == true)
             .OrderByDescending(x => x.Id).ToList();
     }
 }
Esempio n. 11
0
        /// <summary>
        /// Notificar todos os veiculos que possuem KmAtual maior do que a estabelecida para manutenção
        /// </summary>
        public static void NotificarAlertasManutencao()
        {
            using (var db = new Data.Context.AppContext())
            {
                var veiculos = GetAll();

                foreach (var item in veiculos)
                {
                    var ultimaManutencao = db.VeiculoManutencaoHistorico
                                             .Where(x => x.VeiculoId == item.Id && x.ManutencaoRealizada == true)
                                             .OrderByDescending(x => x.Id).FirstOrDefault();
                    var kmInicialConsideracao = (ultimaManutencao != null ? ultimaManutencao.KmAtual : item.KmInicial);

                    // Caso a Km Atual - Km Inicial for igual ou maior a estabelecida no alerta, toca lenha
                    var quilometragemManutencao = db.VeiculoAlertas.Where(c => c.Id == item.VeiculoAlertaId).FirstOrDefault();

                    if ((item.KmAtual - kmInicialConsideracao) >= quilometragemManutencao.KmManutencao)
                    {
                        var destinatarios = db.Pessoa.Where(x => x.VeiculoNotificacao == true).Select(x => x.Email).ToList();

                        var mailer = new Mailer();

                        mailer.assunto = "[Veiculo] Programar manutenção para: " + item.Placa + " - " + item.Modelo;
                        mailer.destinatarios = destinatarios;
                        mailer.tipoEnvioEmail = MailerSendType.Veiculos;

                        mailer.corpo =
                            "Foi constatado que o veiculo (" + item.Placa + " - " + item.Modelo + ") rodou (" + (item.KmAtual - item.KmInicial) + " kms) após a última manutenção, e foi chegado o momento de realizar uma nova manutenção no mesmo.<br /><br />" +
                            "<strong>Plano de manutenção escolhido:</strong> " + quilometragemManutencao.Nome + " - manutenção programada a cada " + quilometragemManutencao.KmManutencao + " kms.<br/>" +
                            "<strong>Quilometragem ultima manutenção:</strong> " + kmInicialConsideracao + "<br/>" +
                            "<strong>Quilometragem atual:</strong> " + item.KmAtual + "<br/>" +
                            "<strong>Dados veiculo:</strong> " + item.Placa + " - " + item.Modelo + ", " + item.Cor + "/" + item.AnoFabricacao + "<br/><br />" +
                            "Para não receber notificações, encerre a manutenção pendente no sistema, no menu <strong>Veiculos >> Histórico de manutenção de veiculos</strong>";
                        mailer.corpoHtml = true;

                        mailer.Send();

                        // Caso não possua nenhuma manutenção pendente, inserir, para aguardar a interação do administrador
                        if (db.VeiculoManutencaoHistorico.Where(x => x.VeiculoId == item.Id && x.ManutencaoRealizada == false).Count() == 0)
                        {
                            db.VeiculoManutencaoHistorico.Add(new Data.Models.VeiculoManutencaoHistorico
                            {
                                VeiculoId = item.Id,
                                KmAtual = item.KmAtual,
                                DataNotificacao = DateTime.Now,
                                DataConfirmacao = DateTime.Now,
                                ManutencaoRealizada = false,
                                UsuarioAlteracao = 0,
                                UsuarioCriacao = 0
                            });
                            db.SaveChanges();
                        }
                    }
                }
            }
        }
Esempio n. 12
0
        public static Data.Models.Produto Get(int id)
        {
            var model = new Data.Models.Produto();

            using(var db = new Data.Context.AppContext())
            {
                model = db.Produto.Where(e => e.Id == id).FirstOrDefault();
            }
            return model;
        }
        public static int GetSaldoAtualProduto(int produtoId)
        {
            using (var db = new Data.Context.AppContext())
            {
                int saldoProduto = db.EstoqueMovimento.Where(x => x.ProdutoId == produtoId && x.Ativo == true)
                    .Sum(x => (x.Quantidade * x.MovimentoTipo));

                return saldoProduto;
            }
        }
        public static Data.Models.EstoqueMovimento Get(int id)
        {
            var model = new Data.Models.EstoqueMovimento();

            using(var db = new Data.Context.AppContext())
            {
                model = db.EstoqueMovimento.Include("Produto").Include("Estoque").Where(e => e.Id == id).FirstOrDefault();
            }

            return model;
        }
Esempio n. 15
0
        public static Data.Models.Pessoa Get(int id)
        {
            var model = new Data.Models.Pessoa();

            using (var db = new Data.Context.AppContext())
            {
                model = db.Pessoa.Where(x => x.Id == id).FirstOrDefault();
            }

            return model;
        }
Esempio n. 16
0
        public static bool Add(Data.Models.Obra model)
        {
            bool sucesso = true;

            using (var db = new Data.Context.AppContext())
            {
                db.Obra.Add(model);
                db.SaveChanges();
            }
            return sucesso;
        }
        public static bool Add(Data.Models.VeiculoUtilizacao model)
        {
            bool sucesso = true;

            using (var db = new Data.Context.AppContext())
            {
                db.VeiculoUtilizacao.Add(model);
                db.SaveChanges();
            }
            return sucesso;
        }
Esempio n. 18
0
        public static List<Data.Models.Produto> GetAll(bool orderBy = false)
        {
            var model = new List<Data.Models.Produto>();

            using (var db = new Data.Context.AppContext())
            {
                model = db.Produto.ToList();
                if (orderBy)
                    model = model.OrderByDescending(c => c.Id).ToList();
            }
            return model;
        }
        public static Data.Models.VeiculoUtilizacao Get(int id)
        {
            var model = new Data.Models.VeiculoUtilizacao();

            using(var db = new Data.Context.AppContext())
            {
                model = db.VeiculoUtilizacao.Include("Pessoa")
                    .Include("Veiculo")
                    .Include("VeiculoUtilizacaoStatus").Where(e => e.Id == id).FirstOrDefault();
            }
            return model;
        }
Esempio n. 20
0
        public static Data.Models.Veiculo Get(int id)
        {
            var model = new Data.Models.Veiculo();

            using (var db = new Data.Context.AppContext())
            {
                model = db.Veiculo.Include("VeiculoAlerta").Where(e => e.Id == id).FirstOrDefault();
                var veiculoQuilometragemAtual = db.VeiculoUtilizacao.Where(x => x.VeiculoId == model.Id && x.VeiculoUtilizacaoStatusId == 3).OrderByDescending(c => c.Id).FirstOrDefault();
                model.KmAtual = veiculoQuilometragemAtual.KmFinal;
            }
            return model;
        }
        public static List<Data.Models.EstoqueMovimento> GetAll(bool orderBy = false)
        {
            var model = new List<Data.Models.EstoqueMovimento>();

            using (var db = new Data.Context.AppContext())
            {
                model = db.EstoqueMovimento.Include("Produto").Include("Estoque").ToList();
                if (orderBy)
                    model = model.OrderByDescending(c => c.Id).ToList();
            }

            return model;
        }
Esempio n. 22
0
        public static Data.Models.Obra Get(int id)
        {
            var model = new Data.Models.Obra();

            using(var db = new Data.Context.AppContext())
            {
                model = db.Obra.Include("Cliente")
                               .Include("Encarregado")
                               .Include("ObraStatus")
                               .Include("Notificacao").Where(e => e.Id == id).FirstOrDefault();
            }
            return model;
        }
Esempio n. 23
0
        public static List<Data.Models.Obra> GetAll(bool orderBy = false)
        {
            var model = new List<Data.Models.Obra>();

            using (var db = new Data.Context.AppContext())
            {
                model = db.Obra.Include("Cliente")
                               .Include("Encarregado")
                               .Include("ObraStatus")
                               .Include("Notificacao").ToList();
                if (orderBy)
                    model = model.OrderByDescending(c => c.Id).ToList();
            }
            return model;
        }
        public static List<Data.Models.VeiculoUtilizacao> GetAll(bool orderBy = false)
        {
            var model = new List<Data.Models.VeiculoUtilizacao>();

            using (var db = new Data.Context.AppContext())
            {
                model = db.VeiculoUtilizacao.Include("Pessoa")
                    .Include("Veiculo")
                    .Include("VeiculoUtilizacaoStatus").ToList();

                if (orderBy)
                    model = model.OrderByDescending(c => c.Id).ToList();
            }
            return model;
        }
        public static void Delete(int id)
        {
            using (var db = new Data.Context.AppContext())
            {
                Data.Models.EstoqueMovimento model = db.EstoqueMovimento.Find(id);
                db.EstoqueMovimento.Remove(model);
                db.SaveChanges();

                var saldoAtualProduto = Bll.EstoqueMovimento.GetSaldoAtualProduto(model.ProdutoId);
                if (saldoAtualProduto < Convert.ToInt32(Configuration.GetValue("QuantidadeEstoqueMinima")))
                {
                    Bll.EstoqueMovimento.NotificacaoSaldoProduto(model.ProdutoId);
                }
            }
        }
Esempio n. 26
0
        /// <summary>
        /// Enviar e-mail para a direção da empresa
        /// </summary>
        /// <param name="nome">Remetente</param>
        /// <param name="assunto">Assunto.</param>
        /// <param name="corpo">Corpo da mensagem</param>
        public static void EmailDiretoria(string nome, string assunto, string corpo)
        {
            using (var db = new Data.Context.AppContext())
            {
                var destinatarios = db.Pessoa.Where(x => x.ObraNotificacao == true).Select(x => x.Email).ToList();

                var mailer = new Mailer();

                mailer.assunto = "[Engefibra]["+ nome +"] Fale com a Direção: " + assunto;
                mailer.destinatarios = destinatarios;
                mailer.tipoEnvioEmail = MailerSendType.Outros;
                mailer.corpo = "Enviado por: <br />" + nome + "<br />" + corpo;
                mailer.corpoHtml = true;
                mailer.Send();
            }
        }
Esempio n. 27
0
        /// <summary>
        /// Notificação sobre obras agendadas
        /// </summary>
        public static void NotificarObrasAgendadas()
        {
            var obrasAgendadas = GetAll().Where(x => x.ObraStatusId == 1).ToList();

            foreach (var item in obrasAgendadas)
            {
                var dataAtual = DateTime.Now;
                var dataMinimaNotificacao = item.DataAgendamento.AddDays(-2);
                var dataMaximaNotificacao = item.DataAgendamento.AddDays(2);

                if(dataAtual >= dataMinimaNotificacao && dataAtual <= dataMaximaNotificacao)
                {
                    using (var db = new Data.Context.AppContext())
                    {
                        var destinatarios = db.Pessoa.Where(x => x.ObraNotificacao == true).Select(x => x.Email).ToList();

                        var mailer = new Mailer();

                        mailer.assunto = "[Obra] " + item.Nome + ", agendada para " + item.DataAgendamento.ToString("dd/MM/yyyy") + " aguarda uma interação!";
                        mailer.destinatarios = destinatarios;
                        mailer.tipoEnvioEmail = MailerSendType.Obras;

                        mailer.corpo =
                            "A obra " + item.Nome + ", do cliente " + item.Cliente.Nome + " está em AGENDAMENTO para a data " + item.DataAgendamento.ToString("dd/MM/yyyy") + ".<br /><br />" +
                            "<strong>Encarregado:</strong> " + item.Encarregado.Nome + "<br/>" +
                            "<strong>Pendencias:</strong> " + item.Pendencias + "<br/>" +
                            "<strong>Observações:</strong> " + item.Observacao + "<br/>" +
                            "<strong>Endereço:</strong> " + item.Endereco + " - " + item.Cep + ", " + item.Cidade + "<br/><br />" +
                            "Para não receber notificações, atualize a situação da Obra, ou encerre a mesma caso não tiver outra opção.";
                        mailer.corpoHtml = true;

                        mailer.Send();

                        db.ObraNotificacao.Add(new Data.Models.ObraNotificacao
                        {
                            ObraId = item.Id,
                            Ativo = true,
                            DataCriacao = DateTime.Now,
                            DataAlteracao = DateTime.Now
                        });
                        db.SaveChanges();
                    }
                }
            }
        }
Esempio n. 28
0
        public static List<Data.Models.Veiculo> GetAll(bool orderBy = false)
        {
            var model = new List<Data.Models.Veiculo>();

            using (var db = new Data.Context.AppContext())
            {
                model = db.Veiculo.Include("VeiculoAlerta").ToList();

                foreach (var item in model)
                {
                    var veiculoQuilometragemAtual = db.VeiculoUtilizacao.Where(x => x.VeiculoId == item.Id && x.VeiculoUtilizacaoStatusId == 3).OrderByDescending(c => c.Id).FirstOrDefault();
                    item.KmAtual = veiculoQuilometragemAtual.KmFinal;
                }

                if (orderBy)
                    model = model.OrderByDescending(c => c.Id).ToList();
            }
            return model;
        }
Esempio n. 29
0
 public InDbCategoryProvider(Data.Context.AppContext context, IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }
Esempio n. 30
0
        /// <summary>
        /// Notificação sobre obras com Situação "Pendência" ou Campo "Pendência" preenchido
        /// </summary>
        public static void NotificarObrasComPendencia()
        {
            var obrasPendencia = GetAll().Where(x => x.ObraStatusId == 3 || !String.IsNullOrEmpty(x.Pendencias)).ToList();
            foreach (var item in obrasPendencia)
            {
                using (var db = new Data.Context.AppContext())
                {
                    var destinatarios = db.Pessoa.Where(x => x.ObraNotificacao == true).Select(x => x.Email).ToList();

                    var mailer = new Mailer();

                    mailer.assunto = "[Obra] " + item.Nome + ", com situação PENDENCIA! [IMPORTANTE]";
                    mailer.destinatarios = destinatarios;
                    mailer.tipoEnvioEmail = MailerSendType.Obras;

                    mailer.corpo =
                        "A obra " + item.Nome + ", do cliente " + item.Cliente.Nome + " está com PENDENCIAS que precisam ser resolvidas para normalização da obra.<br /><br />" +
                        "<strong>Situação:</strong> " + item.ObraStatus.Nome + "<br/>" +
                        "<strong>Encarregado:</strong> " + item.Encarregado.Nome + "<br/>" +
                        "<strong>Pendencias:</strong> " + item.Pendencias + "<br/>" +
                        "<strong>Observações:</strong> " + item.Observacao + "<br/>" +
                        "<strong>Endereço:</strong> " + item.Endereco + " - " + item.Cep + ", " + item.Cidade + "<br/><br />" +
                        "Para não receber notificações, atualize a situação da Obra, ou encerre a mesma caso não tiver outra opção.";
                    mailer.corpoHtml = true;

                    mailer.Send();

                    db.ObraNotificacao.Add(new Data.Models.ObraNotificacao
                    {
                        ObraId = item.Id,
                        Ativo = true,
                        DataCriacao = DateTime.Now,
                        DataAlteracao = DateTime.Now
                    });
                    db.SaveChanges();
                }
            }
        }
        /// <summary>
        /// Dispara a notificação do produto que o saldo está abaixo do parametro configurado
        /// </summary>
        /// <param name="produtoId">Identificador do produto</param>
        public static void NotificacaoSaldoProduto(int produtoId)
        {
            using (var db = new Data.Context.AppContext())
            {
                var produto = db.Produto.Find(produtoId);
                var destinatarios = db.Pessoa.Where(x => x.ObraNotificacao == true).Select(x => x.Email).ToList();

                var mailer = new Mailer();

                mailer.assunto = "[Estoque] Situação de estoque abaixo do mínimo: " + produto.Nome;
                mailer.destinatarios = destinatarios;
                mailer.tipoEnvioEmail = MailerSendType.Produtos;

                mailer.corpo =
                    "Após um resumo das últimas movimentações, foi constatado que este produto está abaixo da quantidade minima de estoque [" + Configuration.GetValue("QuantidadeEstoqueMinima") + "] unidades.<br />" +
                    "O produto: " + produto.Nome + " de cód. fornecedor [" + produto.CodFornecedor + "] possui saldo [" + EstoqueMovimento.GetSaldoAtualProduto(produtoId) + "] no sistema, por favor verificar.<br /><br />" +
                    "<strong>Fornecedor:</strong> " + produto.Fornecedor + ", entre em contato para consultar preços especiais.<br/>" +
                    "<strong>Observações:</strong> " + produto.Observacao;
                mailer.corpoHtml = true;

                mailer.Send();
            }
        }
Esempio n. 32
0
 public InDbTodoItemTagProvider(Data.Context.AppContext context, IMapper mapper)
 {
     this.context = context;
     this.mapper  = mapper;
 }