/** * Remove the specified resource from storage. * * @param Os $os * @return \Illuminate\Http\Response */ public function destroy(Os $os) { $this->authorize('gerente'); $os->agenda()->delete(); $os->delete(); return redirect()->action('OsController@index'); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function update(Request $request) { $os = Os::find($request->os_id); $processos = $os->processos; // Cria os ambientes $os->ambientes()->delete(); $ambientes = []; for ($i = 0; $i < count($request->nome); $i++) { if ($request->nome[$i] != "") { $ambiente = new Ambiente(); $ambiente->nome = $request->nome[$i]; $ambiente->inicio = $request->inicio[$i]; $ambiente->fim = $request->fim[$i]; array_push($ambientes, $ambiente); } } // Verifica se existe conflito de range entre os ambientes foreach ($ambientes as $ambiente) { $outros_ambientes = array_diff($ambientes, [$ambiente]); $range = range($ambiente->inicio, $ambiente->fim); $conflito = collect($outros_ambientes)->contains(function ($k, $v) use($range) { $r = range($v->inicio, $v->fim); return array_intersect($range, $r) != null; }); if ($conflito) { break; } } if (!$conflito) { $os->ambientes()->saveMany($ambientes); // Reatribui todos os processos para os ambientes certos foreach ($processos as $processo) { $ambiente = $os->getAmbiente($processo->setor); $processo->ambiente()->associate($ambiente)->save(); } echo "Ambientes cadastrados com sucesso"; } else { echo "<b style='color: red'>Setores em conflito! Arrume e envie novamente</b>"; } }
public function divergencia(Os $os, Request $request) { if ($request->isMethod('post')) { $os->processos_divergentes()->where('divergencia', true)->delete(); $this->parse($os, $request, 1); } if ($request->has('processo')) { $processo = Processo::find($request->processo); $os->processos()->where('codigo', $processo->codigo)->where('setor', $processo->setor)->where('divergencia', false)->delete(); $processo->divergencia = false; $processo->save(); } $divergencias = $os->getDivergencia(); return view('operacional.processo.divergencia', compact('divergencias')); }
public function finalizar($req) { if (!file_exists('os/')) { mkdir('os/'); } $fp = fopen("os/{$this->id}.txt", 'w'); $processos = $this->processos()->groupBy('codigo')->selectRaw('sum(quantidade) as soma, codigo')->get(); foreach ($processos as $processo) { fwrite($fp, Os::formatar($processo->codigo, $req['rbCodigo'], $req['codigo']) . $req['separador'] . Os::formatar(floatval($processo->soma), $req['rbQuantidade'], $req['quantidade']) . "\r\n"); } fclose($fp); }