public function store(\Illuminate\Http\Request $request) { /* ------------------ INICIA TRANSACTION -----------------------*/ \DB::transaction(function () use($request) { $input = $request->except(array('_token')); //não levar o token /*Validação de campos - request*/ if ($input['quem'] == "2") { $this->validate($request, ['grupo' => 'required', 'pessoas' => 'required']); } else { $this->validate($request, ['grupo' => 'required']); } //Pega tipo de pessoa MEMBRO $tipos = \App\Models\tipospessoas::select('id')->where('clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id)->where('membro', 't')->get(); if ($input["pessoas"] != "") { /* $pessoas = \App\Models\pessoas::select('emailprincipal', 'razaosocial', 'datanasc', 'cpf') ->where('empresas_id', $this->dados_login->empresas_id) ->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id) ->where('emailprincipal', '<>', '') ->where('id', substr($input['pessoas'],0,9)) ->get(); */ $sSql = " SELECT emailprincipal, razaosocial, datanasc, cpf FROM pessoas "; $sSql .= " WHERE empresas_id = " . $this->dados_login->empresas_id . ""; $sSql .= " AND empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id . ""; $sSql .= " and emailprincipal <> '' "; $sSql .= " and emailprincipal not in (select email from users)"; $sSql .= " and id = " . substr($input['pessoas'], 0, 9); $pessoas = \DB::select($sSql); } else { //Lista tipos de pessoas, será usado no botão novo registro para indicar qual tipo de cadastro efetuar /*$pessoas = \App\Models\pessoas::select('emailprincipal', 'razaosocial', 'datanasc', 'cpf') ->where('empresas_id', $this->dados_login->empresas_id) ->where('empresas_clientes_cloud_id', $this->dados_login->empresas_clientes_cloud_id) ->where('emailprincipal', '<>', '') ->where('tipos_pessoas_id', '=', $tipos[0]->id) //SOMENTE MEMBROS ->where('ativo', '=', 'S') //ATIVOS ->get(); */ $sSql = " SELECT emailprincipal, razaosocial, datanasc, cpf FROM pessoas "; $sSql .= " WHERE empresas_id = " . $this->dados_login->empresas_id; $sSql .= " AND empresas_clientes_cloud_id = " . $this->dados_login->empresas_clientes_cloud_id; $sSql .= " and emailprincipal <> '' "; $sSql .= " and emailprincipal not in (select email from users)"; $sSql .= " and tipos_pessoas_id = " . $tipos[0]->id; $sSql .= " and ativo = 'S' "; $pessoas = \DB::select($sSql); } $iQtd = 0; foreach ($pessoas as $item) { if (rtrim(ltrim($item->cpf)) != "" || rtrim(ltrim($item->datanasc)) != "" || rtrim(ltrim($input['password']))) { $iQtd++; $dados = users::firstOrNew(['email' => strtolower($item->emailprincipal)]); $dados->name = $item->razaosocial; $dados->email = strtolower($item->emailprincipal); $dados->confirmed = 1; //Se for criado usuario pelo usuario. if ($input["gerar"] == "1") { if (rtrim(ltrim($item->cpf)) != "") { $sSenha = substr($item->cpf, 0, 6); $dados->password = bcrypt(substr($item->cpf, 0, 6)); } else { if (rtrim(ltrim($item->datanasc)) != "") { $dados->password = bcrypt(substr($item->datanasc, 5, 2) . substr($item->datanasc, 0, 4)); $sSenha = substr($item->datanasc, 5, 2) . substr($item->datanasc, 0, 4); } else { //nao tem nenhum $dados->password = ""; } } } else { if ($input["gerar"] == "2") { $dados->password = bcrypt($input['password']); $sSenha = $input['password']; } } $dados->membro = "S"; $dados->save(); //-----------------Cria registro na tabela usuarios para associar com a tabela users $usuarios = usuario::firstOrNew(['id' => $dados->id, 'empresas_id' => $this->dados_login->empresas_id, 'empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id]); $usuarios->id = $dados->id; //id recem cadastrado na tabela users $usuarios->empresas_id = $this->dados_login->empresas_id; $usuarios->empresas_clientes_cloud_id = $this->dados_login->empresas_clientes_cloud_id; $usuarios->master = 0; $usuarios->membro = 'S'; $usuarios->save(); //-----------------FIM - Cria registro na tabela usuarios para associar com a tabela users //Grava Grupo que o usuário iŕa pertencer $grupo_usuario = \App\Models\usuarios_grupo::firstOrNew(['usuarios_id' => $dados->id, 'usuarios_empresas_id' => $this->dados_login->empresas_id, 'usuarios_empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id]); $grupo_usuario->usuarios_id = $dados->id; $grupo_usuario->usuarios_empresas_id = $this->dados_login->empresas_id; $grupo_usuario->usuarios_empresas_clientes_cloud_id = $this->dados_login->empresas_clientes_cloud_id; $grupo_usuario->grupos_id = $input['grupo']; $grupo_usuario->save(); $data = ['email' => $item->emailprincipal, 'nome_igreja' => \Session::get('nome_igreja'), 'nome' => $item->razaosocial, 'senha' => $sSenha]; if (isset($input["ckenviar"])) { \Mail::send('emails.bemvindo', ['nome' => $data["nome"], 'nome_igreja' => $data["nome_igreja"], 'email' => $data["email"], 'senha' => $data["senha"]], function ($message) use($data) { $message->from('*****@*****.**', 'Sigma3'); $message->subject('Acesso a Área do Membro - ' . $data['nome_igreja']); $message->to($data['email']); }); } } } //loop if ($iQtd > 0) { \Session::flash('flash_message', 'Dados Atualizados com Sucesso!!!'); } else { \Session::flash('flash_message_erro', 'Nenhum registro Atualizado, verifique se o(s) membro(s) possue(m) email cadastrado, CPF ou data de nascimento'); } }); //FIM TRANSACTION return redirect('login_membros'); }