Пример #1
0
        public Mensagem.Mensagem CriarRelatorio(CadastroRelatorio relatorio)
        {
            var resultado = validaRelatorioCadastro(relatorio);

            if (resultado.Codigo == 1)
            {
                var relatorioDB = new ZBD.Model.cliente_relatorios();

                relatorioDB.idcliente = relatorio.idCliente;
                relatorioDB.idusuario = relatorio.idUsuario;
                relatorioDB.nome      = relatorio.nome;
                relatorioDB.datahora  = DateTime.Now;
                relatorioDB.dataini   = relatorio.dtInicio;
                relatorioDB.datafim   = relatorio.dtFim;
                relatorioDB.excluido  = false;

                db.cliente_relatorios.Add(relatorioDB);

                //Salvar relatorio_empresas
                foreach (var idempresa in relatorio.ListaEmpresas)
                {
                    var relatorioempDB = new ZBD.Model.cliente_relatorio_empresas();
                    relatorioempDB.idempresa          = idempresa;
                    relatorioempDB.idclienterelatorio = relatorioDB.idclienterelatorio;

                    db.cliente_relatorio_empresas.Add(relatorioempDB);
                }

                //Salvar relatorio_metricas
                foreach (var metrica in relatorio.ListaMetricas)
                {
                    var relatoriometDB = new ZBD.Model.cliente_relatorio_metricas();
                    relatoriometDB.campo = metrica;
                    relatoriometDB.idclienterelatorio = relatorioDB.idclienterelatorio;

                    db.cliente_relatorio_metricas.Add(relatoriometDB);
                }

                db.SaveChanges();

                return(new Mensagem.Mensagem()
                {
                    Codigo = relatorioDB.idclienterelatorio, Texto = "Ok", Tipo = Mensagem.Mensagem.tipoMensagem.Sucesso
                });
            }
            else
            {
                return(resultado);
            }
        }
Пример #2
0
        private ZRN.Mensagem.Mensagem validaRelatorioCadastro(CadastroRelatorio relatorio)
        {
            var nomeRelatorioDB = db.cliente_relatorios.Where(x => x.nome.ToLower().Equals(relatorio.nome.ToLower()) && x.idcliente == relatorio.idCliente).Select(x => x);

            if (nomeRelatorioDB.Any())
            {
                return(new Mensagem.Mensagem()
                {
                    Codigo = 0, Texto = "Nome do relatório já cadastrado!", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                });
            }

            if (relatorio.dtInicio == null || relatorio.dtFim == null)
            {
                return(new Mensagem.Mensagem()
                {
                    Codigo = 0, Texto = "Selecionar datas para o período de comparação!", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                });
            }

            var dias = (relatorio.dtFim - relatorio.dtInicio).TotalDays;

            if (dias > 30)
            {
                return(new Mensagem.Mensagem()
                {
                    Codigo = 0, Texto = "O intervalo de datas ultrapassou os 30 dias!", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                });
            }

            if (relatorio.ListaEmpresas.Count == 0 || relatorio.ListaEmpresas == null)
            {
                return(new Mensagem.Mensagem()
                {
                    Codigo = 0, Texto = "Selecionar pelo menos uma empresa!", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                });
            }


            var clienteAcessoTotal = db.clientes.Where(x => x.idclientes == relatorio.idCliente).Select(x => x.vertodasempresas.Value).FirstOrDefault();

            if (!clienteAcessoTotal)
            {
                var empresasClienteDB = db.cliente_empresas
                                        .Where(x => x.idcliente == relatorio.idCliente && x.excluido == false)
                                        .Select(x => x.idempresa.Value).ToList();

                var resultado = relatorio.ListaEmpresas.Except(empresasClienteDB);

                if (resultado.Any())
                {
                    return(new Mensagem.Mensagem()
                    {
                        Codigo = 0, Texto = "Selecione pelo menos uma empresa!", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                    });
                }
            }

            var resultadoCount = relatorio.ListaMetricas.Count;

            if (resultadoCount == 0)
            {
                return(new Mensagem.Mensagem()
                {
                    Codigo = 0, Texto = "Selecionar pelo menos uma métrica!", Tipo = Mensagem.Mensagem.tipoMensagem.Erro
                });
            }

            return(new Mensagem.Mensagem()
            {
                Codigo = 1, Texto = "Ok", Tipo = Mensagem.Mensagem.tipoMensagem.Sucesso
            });;
        }