public function sendEditedMail($vks, $toRequester = true) { $vks->link = ST::linkToVksPage($vks->id, false, true); $vksArray = $vks->toArray(); $vksCa = $vks->other_tb_required && !empty($vks->link_ca_vks_id) ? CAVksNoSupport::with('participants')->find($vks->link_ca_vks_id) : false; $message = App::$instance->twig->render('mails/v2/vksWs-edited.twig', array('vks' => $vksArray, 'http_path' => HTTP_BASE_PATH, 'appHttpPath' => NODE_HTTP_PATH, 'vksCa' => $vksCa)); if (!$toRequester) { Mail::sendMailToStack($vks->owner->email, "ВКС #{$vks['id']} | {$vks['title']}, отредактирована администратором", $message); } else { Mail::sendMailToStack(App::$instance->user->email, "ВКС #{$vks['id']} | {$vks['title']}, отредактирована администратором", $message); } if (mb_strtolower($vks->owner->email) != mb_strtolower($vks->init_customer_mail)) { Mail::sendMailToStack($vks->init_customer_mail, "ВКС #{$vks->id} | {$vks['title']}, в которой вы заявлены как ответственный, отредактирована администратором", $message); } App::$instance->log->logWrite(LOG_MAIL_SENDED, "VKS WS #{$vks['id']} | {$vks['title']}, отредактирована администратором"); }
public function aksTransportVksInPeriod(DateTime $start, DateTime $end, $poolCodes) { $result = array(); if (count($poolCodes)) { $result = CAVksNoSupport::where('start_date_time', ">=", $start)->where('start_date_time', '<=', $end)->where('status', VKS_STATUS_TRANSPORT_FOR_TB)->whereIn('v_room_num', $poolCodes)->get(); } return $result; }
public function joinCaStore($referral) { $request = $this->request->request; $this->fillParticipants("vks_participants_create", $this->request); $report = new VksReport($request); $this->validator->validate(['ФИО ответственного' => [$request->get('init_customer_fio'), 'required|max(255)'], 'Почта ответственного' => [$request->get('init_customer_mail'), 'required|max(255)'], 'Тел. ответственного' => [$request->get('init_customer_phone'), 'required|max(255)'], 'Подразделение' => [$request->get('department'), 'required|int'], 'Кол-во участников с рабочих мест (IP телефоны)' => [$request->get('in_place_participants_count'), 'int'], 'Участники ВКС' => [$request->get('inner_participants'), 'array'], 'Точка для технической поддержки' => [$request->get('tech_support_att_id'), "int|attendance_is_tech_supportable"], 'Комментарий для Тех. поддержки' => [$request->get('user_message'), 'max(255)'], 'Комментарий для Администратора' => [$request->get('comment_for_admin'), 'max(255)']]); //if no passes if (!$this->validator->passes()) { $this->backWithData($this->validator->errors()->all()); } //any participants required if (!intval($request->get('in_place_participants_count')) && !count($request->get('inner_participants'))) { $this->backWithData('Вы не выбрали участников для ВКС'); } Capsule::beginTransaction(); $caWS = CAVks::where('referral', $referral)->with('connection_codes')->first(); $caNS = CAVksNoSupport::where('referral', $referral)->first(); if (!$caWS && !$caNS) { $this->backWithData("Приглашение {$request->get('referrer')} не действительно"); } $caVKSType = $caWS ? VKS_WAS : VKS_NS; $caVks = $caWS ? $caWS : $caNS; $this->convertToLocalTime($caVks); $vks = new Vks(); $vks->is_private = $request->has('is_private') ? 1 : 0; $vks->record_required = $request->has('record_required') ? 1 : 0; $vks->title = $caVks->title; $vks->date = $caVks->local->start_date_time->format("Y-m-d"); $vks->start_date_time = $caVks->local->start_date_time; $vks->end_date_time = $caVks->local->end_date_time; $vks->presentation = isset($caVks->presentation) ? $caVks->presentation : 0; $vks->department = $request->get('department'); $vks->initiator = 1; //always CA $vks->init_customer_fio = $request->get('init_customer_fio'); $vks->init_customer_phone = $request->get('init_customer_phone'); $vks->init_customer_mail = $request->get('init_customer_mail'); $vks->comment_for_admin = $request->get('comment_for_admin'); $vks->link_ca_vks_id = $caVks->id; $vks->link_ca_vks_type = $caVKSType; $vks->owner_id = App::$instance->user->id; $vks->from_ip = App::$instance->user->ip; $vks->ca_code = isset($caVks->connectionCode->value) ? $caVks->connectionCode->value : $caVks->v_room_num; $vks->in_place_participants_count = $request->get('in_place_participants_count'); // die(dump($vks)); $vks->save(); if ($request->get('tech_support_required')) { TechSupportRequest::create(array('att_id' => $request->get('tech_support_att_id'), 'vks_id' => $vks->id, 'owner_id' => App::$instance->user->id, 'user_message' => $request->get('user_message'), 'status' => TechSupportRequest::STATUS_WAIT_VKS_DECISION)); } if (!Auth::isAdmin(App::$instance)) { if (self::isVksInPastTime($vks)) { throw new LogicException('bad vks date, it on past time'); } } //create participants $this->createInnerOrPhoneParp($request->get('inner_participants'), $vks); App::$instance->log->logWrite(LOG_VKSWS_CREATED, "VKS " . ST::linkToVksPage($vks->id) . " Created"); Capsule::commit(); //refill for report $this->request->request->set("date", $vks->date->format("d.m.Y")); $this->request->request->set("start_time", $vks->start_date_time->format("H:i")); $this->request->request->set("end_time", $vks->end_date_time->format("H:i")); $report->setObject($vks); $report->setResult(true); $result[] = $report; $_SESSION['savedResult_' . App::$instance->main->appkey] = $result; ST::redirectToRoute('vks/checkout'); }