public function salvar($request, $id, $tipo_operacao) { /* ------------------ INICIA TRANSACTION -----------------------*/ \DB::transaction(function () use($request, $id, $tipo_operacao) { $input = $request->except(array('_token')); //não levar o token $this->validate($request, ['celulas' => 'required', 'data_mov' => 'required', 'tipos_mov' => 'required']); $descricao_celula = explode("|", $input["celulas"]); $descricao_celula_nova = explode("|", $input["celulas_nova"]); if (isset($input['topics'])) { //PERCORRER LISTA DA NOVA CELULA foreach ($input['topics'] as $selected) { if ($selected != "") { $dados = new membros_movimentacoes(); $dados->empresas_clientes_cloud_id = $this->dados_login->empresas_clientes_cloud_id; $dados->empresas_id = $this->dados_login->empresas_id; $dados->celulas_id_atual = $descricao_celula[0]; $dados->celulas_id_nova = $descricao_celula_nova[0]; $dados->data_movimentacao = $this->formatador->FormatarData($input['data_mov']); $dados->pessoas_id = $selected; $dados->motivos_id = $input['tipos_mov']; $dados->observacao = trim($input['obs']); $dados->save(); } //-------------------------------REMOVER CELULA ANTERIOR /*Clausula where padrao para as tabelas auxiliares*/ $where = ['empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id, 'empresas_id' => $this->dados_login->empresas_id, 'celulas_id' => $descricao_celula[0], 'pessoas_id' => $selected]; $excluir = \App\Models\celulaspessoas::where($where)->delete(); //-------------------------------FIM - REMOVER CELULA ANTERIOR //----------------------------------ADICIONAR CELULA NOVA $whereForEach = ['empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id, 'empresas_id' => $this->dados_login->empresas_id, 'pessoas_id' => $selected, 'celulas_id' => $descricao_celula_nova[0]]; if ($tipo_operacao == "create") { $dados = new \App\Models\celulaspessoas(); } else { $dados = \App\Models\celulaspessoas::firstOrNew($whereForEach); } $valores = ['pessoas_id' => $selected, 'empresas_id' => $this->dados_login->empresas_id, 'empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id, 'celulas_id' => $descricao_celula_nova[0], 'lider_pessoas_id' => substr($descricao_celula_nova[1], 0, 9)]; $dados->fill($valores)->save(); $dados->save(); //----------------------------------FIM ADICIONAR CELULA NOVA } //end for each visitantes } }); // ------------ FIM TRANSACTION }
public function remover_membro($id, $pessoas_id) { if ($id != "") { /*Clausula where padrao para as tabelas auxiliares*/ $where = ['empresas_clientes_cloud_id' => $this->dados_login->empresas_clientes_cloud_id, 'empresas_id' => $this->dados_login->empresas_id, 'celulas_id' => $id, 'pessoas_id' => $pessoas_id]; $excluir = celulaspessoas::where($where)->delete(); } return redirect($this->rota); }