示例#1
0
 /**
  * Show the application dashboard.
  *
  * @return \Illuminate\Http\Response
  */
 public function index(\Illuminate\Http\Request $request)
 {
     //retirado da construct
     //Validação de permissão de acesso a pagina
     //Verificar se foi cadastrado os dados da igreja
     if (usuario::find(Auth::user()->id)) {
         $avisos = '';
         //Busca ID do cliente cloud e ID da empresa
         $this->dados_login = usuario::find(Auth::user()->id);
         /*VALIDAÇÃO PARA LOGIN UNICO.*/
         $log = \App\Models\log_users::find(Auth::user()->id);
         if ($log) {
             \Session::put('ultimo_acesso', $log->data_acesso);
             \Session::put('ip', $log->ip);
             if (\Session::get('token') == "") {
                 $token_acesso = str_random(30);
                 $log->token = $token_acesso;
                 \Session::put('token', $token_acesso);
             } else {
                 if (\Session::get('token') != $log->token) {
                     //dd('já logado :' . \Session::get('token'));
                     return redirect('userlogged')->withErrors(['msg', 'Usuário já logado em outra máquina.']);
                 }
             }
             $log->data_acesso = date('Y-m-d h:i:s');
             $log->ip = $request->ip();
             $log->save();
         } else {
             $token_acesso = str_random(30);
             $log = new \App\Models\log_users();
             $log->id = Auth::user()->id;
             $log->token = $token_acesso;
             $log->data_acesso = date('Y-m-d h:i:s');
             $log->empresas_id = $this->dados_login->empresas_id;
             $log->empresas_clientes_cloud_id = $this->dados_login->empresas_clientes_cloud_id;
             $log->ip = $request->ip();
             $log->save();
             \Session::put('token', $token_acesso);
             \Session::put('ultimo_acesso', $log->data_acesso);
             \Session::put('ip', $log->ip);
         }
         \Session::put('titulo', 'Home | Dashboard');
         \Session::put('subtitulo', '');
         \Session::put('route', '');
         \Session::put('dados_login', $this->dados_login);
         \Session::put('tour_rapido', $this->dados_login->tutorial);
         \Session::put('tour_visaogeral', $this->dados_login->tutorial_visaogeral);
         \Session::put('admin', $this->dados_login->admin);
         /*
         Busca Configuracao de labels para menu de estrutura de celulas
         */
         $menu_celulas = \App\Models\configuracoes::where('empresas_id', $this->dados_login->empresas_id)->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->get();
         if ($menu_celulas) {
             \Session::put('nivel1', $menu_celulas[0]->celulas_nivel1_label);
             \Session::put('nivel2', $menu_celulas[0]->celulas_nivel2_label);
             \Session::put('nivel3', $menu_celulas[0]->celulas_nivel3_label);
             \Session::put('nivel4', $menu_celulas[0]->celulas_nivel4_label);
             \Session::put('nivel5', $menu_celulas[0]->celulas_nivel5_label);
             /*Variaveis para configuracoes gerais do sistema*/
             \Session::put('padrao_textos', $menu_celulas[0]->padrao_textos);
             \Session::put('label_celulas', $menu_celulas[0]->label_celulas);
             \Session::put('label_celulas_singular', $menu_celulas[0]->label_celulas_singular);
             \Session::put('label_encontros', $menu_celulas[0]->label_encontros);
             \Session::put('label_encontros_singular', $menu_celulas[0]->label_encontros_singular);
             \Session::put('label_lider_singular', $menu_celulas[0]->label_lider_singular);
             \Session::put('label_lider_plural', $menu_celulas[0]->label_lider_plural);
             \Session::put('label_lider_treinamento', $menu_celulas[0]->label_lider_treinamento);
             \Session::put('label_anfitriao', $menu_celulas[0]->label_anfitriao);
             \Session::put('label_lider_suplente', $menu_celulas[0]->label_lider_suplente);
             \Session::put('label_participantes', $menu_celulas[0]->label_participantes);
         }
         if (Auth::user()->membro != "S") {
             $avisos = \DB::select('select * from avisos where id not in (select avisos_id from log_avisos where users_id = ' . Auth::user()->id . ')');
             //Verificar se usuario logado é LIDER DE CELULA
             $funcoes = new \App\Functions\FuncoesGerais();
             $lider_logado = $funcoes->verifica_se_lider();
             //SE for lider, direciona para dashboard da célula
             if ($lider_logado != null) {
                 return redirect('dashboard_celulas');
             }
             $where = ['empresas_id' => $this->dados_login->empresas_id, 'empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id];
             //-------------------Functions no POSTGRES
             //Total de registro na tabela pessoas
             $retorno = \DB::select('select  fn_total_pessoas(' . $this->dados_login->empresas_clientes_cloud_id . ', ' . $this->dados_login->empresas_id . ')');
             $total_pessoas = $retorno[0]->fn_total_pessoas;
             //Total de membros. Verifica-se no cadastro de tipo de pessoas o registro que contenha a aba membros configurada
             $retorno = \DB::select('select  fn_total_membros(' . $this->dados_login->empresas_clientes_cloud_id . ', ' . $this->dados_login->empresas_id . ')');
             $total_membros = $retorno[0]->fn_total_membros;
             //Total de aniversariantes no mes
             $retorno = \DB::select('select  fn_total_niver(' . $this->dados_login->empresas_clientes_cloud_id . ', ' . $this->dados_login->empresas_id . ')');
             $total_aniversariantes = $retorno[0]->fn_total_niver;
             $retorno = \DB::select('select  fn_total_niver_dia(' . $this->dados_login->empresas_clientes_cloud_id . ', ' . $this->dados_login->empresas_id . ')');
             $total_aniversariantes_dia = $retorno[0]->fn_total_niver_dia;
             $retorno = \DB::select('select  fn_total_inativos(' . $this->dados_login->empresas_clientes_cloud_id . ', ' . $this->dados_login->empresas_id . ')');
             $total_inativos = $retorno[0]->fn_total_inativos;
             $retorno = \DB::select('select  fn_total_familias(' . $this->dados_login->empresas_clientes_cloud_id . ', ' . $this->dados_login->empresas_id . ')');
             $total_familias = $retorno[0]->fn_total_familias;
             //----------------- FIM Functions POSTGRES
             $pessoas_tipos = \DB::select('select * from view_total_pessoas_tipo vw where vw.empresas_id = ? and vw.empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
             $pessoas_sexo = \DB::select('select * from view_total_pessoas_sexo vw where vw.empresas_id = ? and vw.empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
             $pessoas_status = \DB::select('select * from view_total_pessoas_status vw where vw.empresas_id = ? and vw.empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
             $pessoas_estadoscivis = \DB::select('select * from view_total_pessoas_estadoscivis vw where vw.empresas_id = ? and vw.empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
         } else {
             //busca informacoes do membro
             $membro = \DB::select('select * from view_login_membro vp where lower(email_membro) = ? and vp.empresas_id = ? and vp.empresas_clientes_cloud_id = ? ', [Auth::user()->email, $this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
             $vazio = \App\Models\tabela_vazia::get();
             if ($membro) {
                 if ($membro[0]->id != "") {
                     //Retorna próxima data de encontro em aberto
                     $strSql = " SELECT to_char(data_encontro::timestamp with time zone, 'DD-MM-YYYY'::text) AS data_encontro_formatada, ca.id as controle_id, * ";
                     $strSql .= " FROM controle_atividades ca ";
                     $strSql .= " left join controle_materiais cm on ca.id = cm.controle_atividades_id and ca.empresas_id = cm.empresas_id and ca.empresas_clientes_cloud_id = cm.empresas_clientes_cloud_id  ";
                     $strSql .= " where ";
                     $strSql .= " ca.celulas_id = " . $membro[0]->id . " AND ";
                     $strSql .= " ca.empresas_id = " . $this->dados_login->empresas_id . " AND ";
                     $strSql .= " ca.empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . " AND ";
                     $strSql .= " isnull(ca.encontro_encerrado,'N') = 'N' AND ";
                     $strSql .= " ca.data_encontro >=  to_char( now(), 'YYYY-MM-DD' ) ORDER BY data_encontro asc";
                     $materiais = \DB::select($strSql);
                     if ($materiais != null) {
                         $presenca = \App\Models\controle_presencas::select('presenca_simples', 'hora_check_in')->where('empresas_id', $this->dados_login->empresas_id)->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->where('controle_atividades_id', $materiais[0]->controle_id)->where('pessoas_id', $membro[0]->id_membro)->get();
                         if ($presenca->count() == 0) {
                             $presenca = $vazio;
                         }
                     } else {
                         $presenca = $vazio;
                     }
                 } else {
                     $materiais = $vazio;
                     $presenca = $vazio;
                 }
             } else {
                 $materiais = $vazio;
                 $membro = $vazio;
                 $presenca = $vazio;
             }
         }
         if (Auth::user()->membro == "S") {
             return view('pages.membros', ['presenca' => $presenca, 'membro' => $membro, 'materiais' => $materiais]);
         } else {
             return view('pages.dashboard', ['total_pessoas' => $total_pessoas, 'total_membros' => $total_membros, 'total_aniversariantes' => $total_aniversariantes, 'total_aniversariantes_dia' => $total_aniversariantes_dia, 'total_inativos' => $total_inativos, 'pessoas_tipos' => $pessoas_tipos, 'total_familias' => $total_familias, 'pessoas_sexo' => $pessoas_sexo, 'pessoas_status' => $pessoas_status, 'pessoas_estadoscivis' => $pessoas_estadoscivis, 'avisos' => $avisos]);
         }
     } else {
         return view('pages.dashboard_blank');
         //Ainda nao cadastrou, solicitar o cadastro
     }
 }
 private function exibir($request, $id, $preview)
 {
     if ($request->ajax()) {
         return URL::to($this->rota . '/' . $id . '/edit');
     }
     if (\App\ValidacoesAcesso::PodeAcessarPagina(\Config::get('app.' . $this->rota)) == false) {
         return redirect('home');
     }
     //Controle de Atividades
     $dados = controle_atividades::select('texto', 'link_externo', 'controle_atividades.id', 'celulas_id', 'hora_inicio', 'hora_fim', 'valor_oferta', 'controle_atividades.obs', 'dia', 'mes', 'ano', 'celulas.dia_encontro', 'celulas.segundo_dia_encontro', 'encontro_encerrado')->join('celulas', 'celulas.id', '=', 'controle_atividades.celulas_id')->where('controle_atividades.empresas_id', $this->dados_login->empresas_id)->where('controle_atividades.empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->where('controle_atividades.id', $id)->get();
     //members of cell
     /*
     $participantes = \App\Models\celulaspessoas::select('pessoas.id', 'pessoas.razaosocial', 'controle_presencas.observacao', 'controle_presencas.presenca_simples')
     ->join('pessoas', 'pessoas.id', '=', 'celulas_pessoas.pessoas_id')
     ->leftjoin('controle_presencas', 'controle_presencas.pessoas_id', '=', 'celulas_pessoas.pessoas_id')
     ->leftjoin('controle_atividades', 'controle_atividades.id', '=', 'controle_presencas.controle_atividades_id')
     ->where('celulas_pessoas.empresas_id', $this->dados_login->empresas_id)
     ->where('celulas_pessoas.empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)
     ->where('celulas_pessoas.celulas_id', $dados[0]->celulas_id)
     ->where('controle_atividades.id', $id)
     ->orderBy('pessoas.razaosocial')
     ->get();
     */
     //------------------INICIO
     //Busca participantes que nao esteja gravadas no controle de presencas
     $strSql = " SELECT celulas_pessoas.pessoas_id as id, pessoas.razaosocial, '' AS observacao, '' AS presenca_simples ";
     $strSql .= " FROM celulas_pessoas inner join pessoas on pessoas.id = celulas_pessoas.pessoas_id ";
     $strSql .= " WHERE  ";
     $strSql .= " celulas_pessoas.empresas_id = " . $this->dados_login->empresas_id . "  and ";
     $strSql .= " celulas_pessoas.empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . " and  ";
     $strSql .= " celulas_id = " . $dados[0]->celulas_id . " and  ";
     $strSql .= " pessoas_id not in ";
     $strSql .= " (select pessoas_id from controle_presencas                  ";
     $strSql .= " where controle_atividades_id = " . $id . " and                   ";
     $strSql .= " empresas_id = " . $this->dados_login->empresas_id . " and                  ";
     $strSql .= " empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . ") ";
     $strSql .= " union all ";
     $strSql .= " SELECT pessoas.id as id, pessoas.razaosocial, controle_presencas.observacao, controle_presencas.presenca_simples ";
     $strSql .= " FROM controle_presencas ";
     $strSql .= " inner join pessoas on pessoas.id = controle_presencas.pessoas_id ";
     $strSql .= " where ";
     $strSql .= " controle_presencas.controle_atividades_id= " . $id . " and ";
     $strSql .= " controle_presencas.empresas_id = " . $this->dados_login->empresas_id . " and  ";
     $strSql .= " controle_presencas.empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . " ";
     $strSql .= " order by razaosocial";
     $participantes = \DB::select($strSql);
     //-------------------FIM
     //Questionarios gravados
     $controle_questions = \App\Models\controle_questions::select('id')->where('empresas_id', $this->dados_login->empresas_id)->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->where('controle_atividades_id', $id)->get();
     //Materiais Enviados
     $controle_materiais = \App\Models\controle_materiais::select('arquivo', 'id')->where('empresas_id', $this->dados_login->empresas_id)->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->where('controle_atividades_id', $id)->get();
     if ($controle_materiais->count() == 0) {
         $controle_materiais = \App\Models\tabela_vazia::get();
     }
     $visitantes = \App\Models\controle_visitantes::select('id', 'nome', 'fone', 'email')->where('empresas_id', $this->dados_login->empresas_id)->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->where('controle_atividades_id', $id)->get();
     $questions = \App\Models\questionarios_encontros::select('id', 'pergunta', 'tipo_resposta')->where('empresas_id', $this->dados_login->empresas_id)->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->get();
     if ($controle_questions->count() != 0) {
         //get saved questions from database
         //$questions_saved = \App\Models\questionarios_encontros::select('controle_questions.questionarios_id', 'questionarios_encontros.id', 'pergunta', 'tipo_resposta', 'resposta')
         //->leftjoin('controle_questions', 'controle_questions.questionarios_id',  '=', 'questionarios_encontros.id')
         //->where('questionarios_encontros.empresas_id', $this->dados_login->empresas_id)
         //->where('questionarios_encontros.empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)
         //->where('controle_questions.controle_atividades_id', $id);
         //Busca perguntas que nao esteja gravadas no encontro
         $strSql = " select q.id as questionarios_id, q.id, pergunta, q.tipo_resposta, '' as resposta  from questionarios_encontros q ";
         $strSql .= " where  q.empresas_id = " . $this->dados_login->empresas_id . " ";
         $strSql .= " and q.empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . " and ";
         $strSql .= " q.id not in (select c.questionarios_id from questionarios_encontros q ";
         $strSql .= "                  inner join controle_questions c on q.id = c.questionarios_id ";
         $strSql .= "                  where c.controle_atividades_id =" . $id . " and ";
         $strSql .= "                  c.empresas_id = " . $this->dados_login->empresas_id . " and ";
         $strSql .= "                  c.empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . ")";
         $strSql .= " union all";
         //Unira as duas querys para trazer todas as perguntas, mesmo que nao esteja gravadas para o encontro
         //Busca perguntas somente do encontro
         $strSql .= " select q.id as questionarios_id, q.id, q.pergunta, q.tipo_resposta, c.resposta from questionarios_encontros q";
         $strSql .= " inner join controle_questions c on q.id = c.questionarios_id ";
         $strSql .= " where c.controle_atividades_id=" . $id . " and ";
         $strSql .= " c.empresas_id = " . $this->dados_login->empresas_id . " and ";
         $strSql .= " c.empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . "";
         $strSql .= " order by pergunta";
         $questions = \DB::select($strSql);
         $questions_saved = $questions;
     } else {
         //Artificio para tabelas vazias com objetos collection
         $questions_saved = \App\Models\tabela_vazia::get();
     }
     //Load all dates by day of week (mondays, tuesdays, etc)
     $dates_of_meeting = $this->return_dates($dados);
     $celulas = \DB::select('select id, descricao_concatenada as nome from view_celulas_simples  where empresas_id = ? and empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
     return view($this->rota . '.atualizacao', ['preview' => 'false', 'tipo_operacao' => 'editar', 'celulas' => $celulas, 'dados' => $dados, 'dates_of_meeting' => $dates_of_meeting, 'participantes' => $participantes, 'questions' => $questions, 'questions_saved' => $questions_saved, 'visitantes' => $visitantes, 'controle_materiais' => $controle_materiais]);
 }
示例#3
0
 public function create()
 {
     if (\App\ValidacoesAcesso::PodeAcessarPagina(\Config::get('app.' . $this->rota)) == false) {
         return redirect('home');
     }
     $publicos = \App\Models\publicos::where('clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->get();
     $faixas = \App\Models\faixas::where('clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->get();
     $celulas = \DB::select('select id, descricao_concatenada as nome from view_celulas_simples  where empresas_id = ? and empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
     $vazio = \App\Models\tabela_vazia::get();
     //Verifica se tem permissao para incluir ou alterar
     if (Gate::allows('verifica_permissao', [\Config::get('app.' . $this->rota), 'incluir']) || Gate::allows('verifica_permissao', [\Config::get('app.controle_atividades'), 'alterar'])) {
         $preview = 'false';
         //somente visualizacao = false
     } else {
         $preview = 'true';
         //somente visualizacao = true
     }
     /*Busca NIVEL5*/
     $view5 = \DB::select('select * from view_celulas_nivel5 v5 where v5.empresas_id = ? and v5.empresas_clientes_cloud_id = ? ', [$this->dados_login->empresas_id, $this->dados_login->empresas_clientes_cloud_id]);
     //return view($this->rota . '.registrar', ['nivel5'=>$view5, 'publicos'=>$publicos, 'faixas'=>$faixas]);
     return view($this->rota . '.atualizacao', ['participantes' => '', 'preview' => $preview, 'nivel5' => $view5, 'publicos' => $publicos, 'faixas' => $faixas, 'tipo_operacao' => 'incluir', 'dados' => $vazio, 'celulas' => $celulas, 'vinculos' => $vazio, 'total_vinculos' => '0']);
 }