Exemplo n.º 1
0
 /**
  * Get Steps for specific WMS doc
  */
 private function copyTemplate($master_id, $doc_id)
 {
     // Doc
     $master = WmsDoc::find($master_id);
     $doc = WmsDoc::find($doc_id);
     // Increment major version if copying from previous Wms Doc
     if (!$master->master) {
         list($major, $minor) = explode('.', $master->version);
         $major++;
         $doc->version = $major . '.0';
     } else {
         $doc->version = $master->version;
     }
     $doc->save();
     // Steps
     $steps = WmsStep::where('doc_id', $master_id)->get();
     foreach ($steps as $step) {
         $newStep = WmsStep::create(array('doc_id' => $doc_id, 'name' => $step->name, 'order' => $step->order, 'master' => '0', 'master_id' => $step->id));
         // Hazards
         $hazards = WmsHazard::where('step_id', $step->id)->get();
         foreach ($hazards as $hazard) {
             $newHazard = WmsHazard::create(array('step_id' => $newStep->id, 'name' => $hazard->name, 'order' => $hazard->order, 'master' => '0', 'master_id' => $hazard->id));
         }
         // Controls
         $controls = WmsControl::where('step_id', $step->id)->get();
         foreach ($controls as $control) {
             $newControl = WmsControl::create(array('step_id' => $newStep->id, 'name' => $control->name, 'res_principle' => $control->res_principle, 'res_company' => $control->res_company, 'res_worker' => $control->res_worker, 'order' => $control->order, 'master' => '0', 'master_id' => $control->id));
         }
     }
 }