Пример #1
0
 public function store(\Illuminate\Http\Request $request)
 {
     /*Validação de campos - request*/
     $this->validate($request, ['name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:6', 'empresa' => 'required', 'grupo' => 'required']);
     $image = $request->file('caminhologo');
     //Pega imagem
     $input = $request->except(array('_token', 'ativo'));
     //não levar o token
     //----------------------Grava novo usuario (Tabela USERS)
     $dados = new users();
     $dados->name = $input['name'];
     $dados->email = $input['email'];
     $dados->confirmed = 1;
     //Se for criado usuario pelo usuario.
     $dados->password = bcrypt($input['password']);
     if ($image) {
         $dados->path_foto = $image->getClientOriginalName();
     }
     $dados->save();
     //----------------------FIM - Grava novo usuario (Tabela USERS)
     //-----------------Pega dados do usuarios admin (id da empresa e cliente cloud)
     $usuario_master = usuario::find(Auth::user()->id);
     //-----------------Cria registro na tabela usuarios para associar com a tabela users
     $usuarios = new usuario();
     $usuarios->id = $dados->id;
     //id recem cadastrado na tabela users
     $usuarios->empresas_id = $input['empresa'];
     //$usuarios->confirmed                              = 1; //Se for criado usuario pelo usuario.
     $usuarios->empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id'];
     if ($input['sera_admin'] == 1) {
         //Se este for de outra empresa, cria como MASTER
         //if ($input['empresa']!=$this->dados_login->empresas_id)
         //{
         //    $usuarios->master = 1; //MASTER tem acesso total e nao pode ser excluido
         //} else
         //{
         //   $usuarios->master = 0;
         // }
     } else {
         $usuarios->master = 0;
     }
     $usuarios->admin = $input['sera_admin'];
     $usuarios->save();
     //-----------------FIM - Cria registro na tabela usuarios para associar com a tabela users
     //Se usuário master estiver criando um admin para outras igrejas/instituições, cria um usuario como admin.
     if ($input['sera_admin'] == 1) {
         //Cria o novo grupo somente se o usuário for pertencer a outra empresa
         //Caso seja da mesma empresa associa ao grupo existente
         if ($input['empresa'] != $this->dados_login->empresas_id) {
             //----------------------------------Cria grupo padrão Administrador (Se já não existir)
             //A tabela grupos, dispara a triiger de INSERT e chama a  spCriarPermissoesPadrao(NEW.id) que cria as permissoes padrao para o Administrador
             $grupo_padrao = \App\Models\grupos::firstOrCreate(['nome' => 'Administrador', 'empresas_id' => $input['empresa'], 'empresas_clientes_cloud_id' => $usuario_master['empresas_clientes_cloud_id'], 'default' => '1']);
             //----------------------------------FIM - Cria grupo padrão Administrador
             //------------------------------------Grava usuario e grupo
             //Usuario Admin com grupo padrão admin (com todas permissões)
             $usuarios_grupo = new \App\Models\usuarios_grupo();
             $usuarios_grupo->usuarios_id = $dados->id;
             $usuarios_grupo->usuarios_empresas_id = $input['empresa'];
             $usuarios_grupo->usuarios_empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id'];
             $usuarios_grupo->grupos_id = $grupo_padrao->id;
             $usuarios_grupo->save();
             //------------------------------------FIM Grava usuario e grupo
         } else {
             //Grava Grupo que o usuário iŕa pertencer
             $grupo_usuario = new \App\Models\usuarios_grupo();
             $grupo_usuario->usuarios_id = $dados->id;
             $grupo_usuario->usuarios_empresas_id = $input['empresa'];
             $grupo_usuario->usuarios_empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id'];
             $grupo_usuario->grupos_id = $input['grupo'];
             $grupo_usuario->save();
         }
     } else {
         //Grava Grupo que o usuário iŕa pertencer
         $grupo_usuario = new \App\Models\usuarios_grupo();
         $grupo_usuario->usuarios_id = $dados->id;
         $grupo_usuario->usuarios_empresas_id = $input['empresa'];
         $grupo_usuario->usuarios_empresas_clientes_cloud_id = $usuario_master['empresas_clientes_cloud_id'];
         $grupo_usuario->grupos_id = $input['grupo'];
         $grupo_usuario->save();
     }
     //----------------------------------Foto do usuário
     if ($image) {
         /*Regras validação imagem*/
         $rules = array('image' => 'image', 'image' => array('mimes:jpeg,jpg,png', 'max:200px'));
         // Validar regras
         $validator = Validator::make([$image], $rules);
         // Check to see if validation fails or passes
         if ($validator->fails()) {
             dd($validator);
         } else {
             $destinationPath = base_path() . '/public/images/users';
             //caminho onde será gravado
             if (!$image->move($destinationPath, $image->getClientOriginalName())) {
                 return $this->errors(['message' => 'Erro ao salvar imagem.', 'code' => 400]);
             }
         }
     }
     //----------------------------------FIM - Foto do usuário
     \Session::flash('flash_message', 'Dados Atualizados com Sucesso!!!');
     return redirect('usuarios');
 }
Пример #2
0
 public function store(\Illuminate\Http\Request $request)
 {
     //Validação de campos - request
     $this->validate($request, ['razaosocial' => 'required|max:255:min:3', 'foneprincipal' => 'required|min:8', 'emailprincipal' => 'email', 'emailsecundario' => 'email', 'cnpj' => 'cnpj']);
     //---------------------------------Cadastro do cliente cloud
     $image = $request->file('caminhologo');
     $input = $request->except(array('_token', 'ativo'));
     //não levar o token
     $clientes_cloud = new clientescloud();
     $clientes_cloud->razaosocial = $input['razaosocial'];
     $clientes_cloud->nomefantasia = $input['nomefantasia'];
     $clientes_cloud->cnpj = preg_replace("/[^0-9]/", '', $input['cnpj']);
     $clientes_cloud->inscricaoestadual = $input['inscricaoestadual'];
     $clientes_cloud->endereco = $input['endereco'];
     $clientes_cloud->numero = $input['numero'];
     $clientes_cloud->bairro = $input['bairro'];
     $clientes_cloud->cep = $input['cep'];
     $clientes_cloud->complemento = $input['complemento'];
     $clientes_cloud->cidade = $input['cidade'];
     $clientes_cloud->estado = $input['estado'];
     $clientes_cloud->foneprincipal = preg_replace("/[^0-9]/", '', $input['foneprincipal']);
     $clientes_cloud->fonesecundario = preg_replace("/[^0-9]/", '', $input['fonesecundario']);
     $clientes_cloud->emailprincipal = $input['emailprincipal'];
     $clientes_cloud->emailsecundario = $input['emailsecundario'];
     $clientes_cloud->nomecontato = $input['nomecontato'];
     $clientes_cloud->celular = $input['celular'];
     $clientes_cloud->ativo = 'S';
     //Sempre ativo quando cadastrar ?
     $clientes_cloud->website = $input['website'];
     if ($image) {
         $clientes_cloud->caminhologo = $image->getClientOriginalName();
     }
     $clientes_cloud->save();
     //--------------------------------- FIM - Cadastro do cliente cloud
     //Busca id da tabela empresas vinculada a tabela clientes_cloud
     $id_empresas = empresas::where('clientes_cloud_id', $clientes_cloud->id)->select('id')->first();
     /*------------------------- Vinculo tabela users com usuarios
      *
      * Grava o id (users, clientes_cloud e empresas) na tabela usuarios (id, empresas_clientes_cloud_id, empresas_id)
      */
     $usuarios = new usuario();
     $usuarios->id = Auth::user()->id;
     //id do usuário logado (tabela users)
     $usuarios->empresas_id = $id_empresas['id'];
     //Pegar ID do registro recém criado (clientes_cloud)
     $usuarios->empresas_clientes_cloud_id = $clientes_cloud->id;
     $usuarios->master = 1;
     //Criada a empresa a primeira vez, o usuario que cadastrou será o master e nao podera ser removido
     $usuarios->admin = 1;
     //O Master também é ADMIN
     $usuarios->save();
     //------------------------- FIM - Vinculo tabela users com usuarios
     //---------------------------Upload da imagem
     if ($image) {
         /*Regras validação imagem*/
         $rules = array('image' => 'image', 'image' => array('mimes:jpeg,jpg,png', 'max:200px'));
         // Validar regras
         $validator = Validator::make([$image], $rules);
         // Check to see if validation fails or passes
         if ($validator->fails()) {
             dd($validator);
         } else {
             $destinationPath = base_path() . '/public/images/clients';
             //caminho onde será gravado
             if (!$image->move($destinationPath, $image->getClientOriginalName())) {
                 return $this->errors(['message' => 'Erro ao salvar imagem.', 'code' => 400]);
             }
         }
     }
     //---------------------------FIM - Upload da imagem
     //----------------------------------Cria grupo padrão Administrador
     //A tabela grupos, dispara a triiger de INSERT e chama a  spCriarPermissoesPadrao(NEW.id) que cria as permissoes padrao para o Administrador
     $grupo_padrao = new \App\Models\grupos();
     $grupo_padrao->nome = "Administrador";
     $grupo_padrao->empresas_id = $id_empresas['id'];
     $grupo_padrao->empresas_clientes_cloud_id = $clientes_cloud->id;
     $grupo_padrao->default = 1;
     //Grupo padrão
     $grupo_padrao->save();
     //Ira disparar a trigger e chamar a spCriarPermissoesPadrao
     //----------------------------------FIM - Cria grupo padrão Administrador
     //------------------------------------Grava usuario e grupo
     //Usuario Admin com grupo padrão admin (com todas permissões)
     $usuarios_grupo = new \App\Models\usuarios_grupo();
     $usuarios_grupo->usuarios_id = Auth::user()->id;
     $usuarios_grupo->usuarios_empresas_id = $id_empresas['id'];
     $usuarios_grupo->usuarios_empresas_clientes_cloud_id = $clientes_cloud->id;
     $usuarios_grupo->grupos_id = $grupo_padrao->id;
     $usuarios_grupo->save();
     //------------------------------------FIM Grava usuario e grupo
     \Session::flash('flash_message', 'Dados Atualizados com Sucesso!!!');
     return redirect('clientes');
 }