public function addRequest($vks_id) { try { $vks = Vks::with('tech_support_requests')->findOrFail($vks_id); } catch (Exception $e) { $this->error('404'); } $available_points = Attendance::techSupportable()->get()->toArray(); array_walk($available_points, function (&$e) { $e['selectable'] = true; }); if (count($vks->tech_support_requests)) { foreach ($vks->tech_support_requests as $request) { foreach ($available_points as &$point) { if ($request->att_id == $point['id']) { $point['selectable'] = false; } } } } return $this->render('techsupport/addRequest', compact('vks', 'available_points')); }
public function joinCaCreate($referral = false) { Token::checkToken(); $request = $this->request->request; if ($referral) { $request->set('referrer', $referral); } $this->validator->validate(['Приглашение от ЦА' => [$request->get('referrer'), 'required']]); //if no passes if (!$this->validator->passes()) { App::$instance->MQ->setMessage($this->validator->errors()->all()); ST::redirect("back"); } //check codes $caWS = CAVks::where('referral', $request->get('referrer'))->with('owner', 'connection_codes', 'insideParp', 'phoneParp', 'outsideParp')->first(); $caNS = CAVksNoSupport::where('referral', $request->get('referrer'))->first(); if (!$caWS && !$caNS) { App::$instance->MQ->setMessage("Приглашение {$request->get('referrer')} не действительно"); ST::redirectToRoute("Vks/select"); } $caVks = $caWS ? $caWS : $caNS; $this->convertToLocalTime($caVks); $valid = true; if (isset($caVks->status)) { if (!in_array($caVks->status, [VKS_STATUS_APPROVED, VKS_STATUS_TRANSPORT_FOR_TB])) { $valid = false; } } else { if (!in_array($caVks->status, [VKS_STATUS_APPROVED, VKS_STATUS_TRANSPORT_FOR_TB])) { $valid = false; } } if (!$valid) { App::$instance->MQ->setMessage("Приглашение {$request->get('referrer')} не действительно, в ЦА поменяли статус этой ВКС и теперь она недоступна"); ST::redirectToRoute("Vks/select"); } //my tb is can be accepted? $participants = isset($caVks->insideParp) ? $caVks->insideParp : $caVks->participants; $flag = false; foreach ($participants as $parp) { if ($parp->attendance_id == App::$instance->tbId) { $flag = true; } } $referral = $request->get('referrer'); if ($this->isAlreadyEnd(date_create($caVks->end_date_time))) { App::$instance->MQ->setMessage("Приглашение {$request->get('referrer')} не действительно, ВКС уже закончилась", 'danger'); ST::redirectToRoute("Vks/select"); } if (!$flag && $caVks->local->start_date_time->getTimestamp() - date_create()->getTimestamp() < 1800) { App::$instance->MQ->setMessage("Ваш ТБ не заявлен на эту ВКС и до начала ВКС осталось менее 30 минут, заявиться на такую ВКС уже не получится, обратитесь к администратору системы", 'danger'); ST::redirectToRoute("Vks/select"); } $departments = Department::orderBy('prefix')->get(); $vks = ST::lookAtBackPack(); $vks = $vks->request; if (!$vks->has('inner_participants') && !count($vks->get('inner_participants'))) { LocalStorage_controller::staticRemove('vks_participants_create'); } $available_points = Attendance::techSupportable()->get()->toArray(); array_walk($available_points, function (&$e) { $e['selectable'] = true; }); $this->render('vks/joinCa', compact('vks', 'caVks', 'departments', 'referral', 'flag', 'available_points')); }