예제 #1
0
 /**
  * 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');
 }
예제 #2
0
 /**
  * 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>";
     }
 }
예제 #3
0
 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'));
 }
예제 #4
0
파일: Os.php 프로젝트: rasouza/avm
 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);
 }