public function store($id, Request $request) { $pessoa = \App\Pessoa::where('id_usuario', '=', Auth::user()->id)->where('id', '=', $id)->first(); if (!$pessoa instanceof \App\Pessoa) { return redirect(route('cadastrar-funcionario', [$id]))->withErrors(['Ocorreu um erro ao tentar cadastrar o funcionário, verifique se você está logado e tente novamente.'])->withInput(); } $request->merge(['id_pessoa' => $id, 'id_uf' => 1, 'id_uf_ctps' => 1]); $funcionario = new Funcionario(); $contrato = new \App\ContratoTrabalho(); if ($funcionario->validate($request->all(), false) && $contrato->validate($request->all(), false)) { if (count($request->get('horario'))) { $validator = $this->validateHorario($request->all()); if ($validator->fails()) { return redirect(route('funcionario-novo'))->withErrors($validator->errors()->all())->withInput(); } } $funcionario = $funcionario->create($request->all()); $request->merge(['id_funcionario' => $funcionario->id]); $contrato = $contrato->create($request->all()); if (count($request->get('deficiencia'))) { foreach ($request->get('deficiencia') as $i) { $deficiencia = new FuncionarioDeficiencia(); $deficiencia->id_funcionario = $funcionario->id; $deficiencia->deficiencia = $i; $deficiencia->save(); } } if (count($request->get('dependente'))) { foreach ($request->get('dependente') as $dep) { $dependente = new FuncionarioDependente(); $dep['id_funcionario'] = $funcionario->id; $dependente->create($dep); } } if (count($request->get('horario'))) { foreach ($request->get('horario') as $dia => $hora) { $horario = new HorarioTrabalho(); $horario->id_contrato_trabalho = $contrato->id; $horario->hora1 = $hora[0] ? $hora[0] : null; $horario->hora2 = $hora[1] ? $hora[1] : null; $horario->hora3 = $hora[2] ? $hora[2] : null; $horario->hora4 = $hora[3] ? $hora[3] : null; $horario->dia = $dia; $horario->save(); } } return redirect(route('funcionarios'))->with('alertModal', ['message' => 'Funcionário cadastrado com sucesso!', 'title' => 'Sucesso!']); } else { return array_merge($funcionario->errors(), $contrato->errors()); } }
public function edit($id_empresa, $id_funcionario) { $usuario = Auth::user(); $dow = array('Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sábado'); $funcionario = Funcionario::join('pessoa', 'pessoa.id', '=', 'funcionario.id_pessoa')->where('funcionario.id_pessoa', '=', $id_empresa)->where('funcionario.id', '=', $id_funcionario)->where('pessoa.id_usuario', '=', $usuario->id)->first(); $contrato = ContratoTrabalho::where('id_funcionario', '=', $id_funcionario)->orderBy('updated_at', 'desc')->first(); $estados = \App\Uf::orderBy('nome', 'asc')->get(); return view('funcionarios.editar', ['usuario' => $usuario, 'funcionario' => $funcionario, 'dow' => $dow, 'contrato' => $contrato, 'estados' => $estados]); }