コード例 #1
0
 public function makeClone($id)
 {
     $strict = boolval(intval(Settings_controller::getOther("attendance_strict")));
     if (!Auth::isLogged(App::$instance)) {
         App::$instance->MQ->setMessage('Создавать заявки могут только зарегистрированные пользователи, пожалуйста, войдите в систему или зарегистрируйтесь');
         ST::redirectToRoute('AuthNew/login');
     }
     //can this user access it
     try {
         $vks = Vks::full()->findOrFail($id);
     } catch (Exception $e) {
         $this->error('404');
     }
     $this->humanize($vks);
     if (!$vks->humanized->isCloneable) {
         $this->error('no_manipulable');
     }
     //get vksdata
     if ($vks->is_simple) {
         App::$instance->MQ->setMessage("Упрощенные ВКС клонировать запрещено, можно только аннулировать");
         ST::redirect('back');
     }
     $vks = $this->humanize($vks);
     if (!$vks->humanized->isCloneable) {
         App::$instance->MQ->setMessage("Данную ВКС клонировать запрещено");
         ST::redirectToRoute("Vks/show/" . $vks->id);
     }
     //refill stack
     $tbs = CAAttendance::tbs()->get();
     $departments = Department::orderBy('prefix')->get();
     LocalStorage_controller::staticRemove('vks_participants_create');
     if (!$strict) {
         $this->fillCookieParticipants('vks_participants_create', $vks);
     } else {
         $vks->in_place_participants_count = 0;
         $vks->participants = null;
     }
     $vksbp = ST::lookAtBackPack();
     if (count($vksbp->request)) {
         $vks = $vksbp->request;
         $vksDumb = new Vks();
         $vksDumb->in_place_participants_count = $vks->get("in_place_participants_count");
         $vksDumb->participants = $vks->get("inner_participants");
         $this->fillCookieParticipants('vks_participants_edit', $vksDumb);
     }
     if ($vks instanceof Vks) {
         $vks->inner_participants = $vks->participants;
         foreach ($vks->toArray() as $key => $val) {
             if (!in_array($key, array("date", "start_date_time", "end_date_time"))) {
                 $this->request->request->set($key, $val);
             }
         }
         $vks = $this->request->request;
     }
     $this->render('vks/create', compact('vks', 'departments', 'tbs'));
 }