Пример #1
0
 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());
     }
 }