Mobile/app/Http/Controllers/PatientController.php

2243 lines
147 KiB
PHP
Raw Permalink Normal View History

2024-01-29 07:53:41 +00:00
<?php
namespace App\Http\Controllers;
use App\Models\AfterQuestionnaire;
use App\Models\AppealsDoctor;
use App\Models\AppealsPatient;
use App\Models\BeforeQuestionnaire;
use App\Models\CalendarDays;
use App\Models\CoursesSportEdit;
use App\Models\Doctor;
use App\Models\Image;
use App\Models\Patient;
use App\Models\SetOfSportsExercises;
use App\Models\SetsOfSportsActivities;
use App\Models\SportCourses;
use App\Models\Category;
use App\Models\Product;
use App\Models\SportForDay;
use App\Models\SportPatient;
use App\Models\SportTasks;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
use Ramsey\Uuid\Type\Integer;
class PatientController extends Controller
{
public function LoginPatient(Request $request)
{
$validation = Validator::make($request->all(), [
'login' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:20',
'password' => 'required|regex:/^[a-zA-Z0-9\-]+$/|string|max:100',
]);
if ($validation->fails()) {
// $result = [
// 'error' => [
// 'code' => 400,
// 'message' => 'Validation error',
// 'error' => $validation->errors()
// ]];
return response(['message' => 'Ошибка валидации'], 422);
}
if (Auth::guard('patient')->attempt(['login' => $request->login, 'password' => $request->password])) {
$user = Auth::guard('patient')->user();
$pat = $user;
$pat->api_token = Str::random(80);
$pat->update();
return response([
'id' => $user->id,
'token' => $user->api_token,
], 200);
}
return response(['message' => 'Неверные данные'], 401);
}
public function LogoutPatient()
{
$user = Auth::user()->makeHidden(['id', 'role']);
$pat = $user;
$pat->api_token = null;
$pat->update();
return response(['message' => 'Вы вышли из аккаунта'], 200);
}
//Вывод курса для пациента в зависимоти от того сколько дней у него пройдено
public function GetCoursSportPatient(Request $request)
{
$error = Validator::make($request->all(), [
'name' => 'required',
'day' => 'required',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Cours = SportTasks::orderBy('id', 'ASC')
->leftJoin('image', 'image.id', '=', 'sports_tasks.id_image')
->leftJoin('set_of_sports_exercises', 'set_of_sports_exercises.id_sports_tasks', '=', 'sports_tasks.id')
->leftJoin('sets_of_sports_activities', 'sets_of_sports_activities.id', '=', 'set_of_sports_exercises.id_sets_of_sports_activities')
->leftJoin('sports_courses', 'sports_courses.id', '=', 'sets_of_sports_activities.id_sports_courses')
->d('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'sets_of_sports_activities.name as sets_of_sports_activities_Name', 'sets_of_sports_activities.description as sets_of_sports_activities_Description', 'sports_tasks.name as sports_tasks_Name', 'sports_tasks.description as sports_tasks_Description', 'sports_tasks.count as sports_tasks_Count', 'image.url_image as image_Url',)
->where('sports_courses.name', '=', $request->name)->where('sets_of_sports_activities.day', '=', $request->day)
->get();
return response()->json($Cours);
}
}
//Подтверждение анкеты ДО, после которой увеличится количество дней если не хватит, а также увеличится выведется определенная тренировка в зависимоти был ли бан или пауза в предыдушем дне
public function AddBeforeQuestionnaire(Request $request)
{
$error = Validator::make($request->all(), [
'one' => 'required',
'two' => 'required',
'three' => 'required',
'four' => 'required',
'five' => 'required',
'six' => 'required',
'seven' => 'required',
'eight' => 'required',
'nine' => 'required',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Patient = Auth::user()->makeHidden(['id']);
$date = date("Y-m-d");
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
//Проверка на то, закончин ли данный курс
if ($SportPatient->finished == false) {
$date = date("Y-m-d");
$BeforeQuestionnaire = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
//Если была хоть одна анкета под данный курс
if ($BeforeQuestionnaireDate != null) {
//Проверка на то есть заполнял ли пользватель анкету ДО на эту дату
if ($BeforeQuestionnaire == null) {
$BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
$AfterQuestionnaire = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
//Проверка на то заполнил ли пользователь анкету ПОСЛЕ за предыдущий день
if ($AfterQuestionnaire != null) {//Если заполнил
//Заполнение анкеты
$BQ = BeforeQuestionnaire::create([
'id_sport_patient' => $SportPatient->id,
'date' => $date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
]);
return response(['Анкета ДО добавлена', date('Y-m-d', strtotime("0 day"))], 200);
//Подтверждаем в календарном дне, что анкета ДО заполнена
$pat = $Patient;
$pat->before_questionnaire = $BQ->id;
$pat->update();
//ПРоверка на блок
if ($request->one >= 6) {
//Блокировка
$pat = $Patient;
$pat->ban = date('Y-m-d', strtotime("3 day"));
$pat->update();
} //Проверка на паузу
else if ($request->four == "1" || $request->five == "1" || $request->six == "1" || $request->seven == "1" || $request->nine == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
}
} else if ($AfterQuestionnaire == null &&
(($Patient->pause == $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) == $BeforeQuestionnaireSearch->date) ||
($Patient->block == $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) == $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) == $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) == $BeforeQuestionnaireSearch->date))) {//Заполнение анкеты за предыдущий день занятий
//Заполнение анкеты
$BQ = BeforeQuestionnaire::create([
'id_sport_patient' => $SportPatient->id,
'date' => $date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
]);
//Подтверждаем в календарном дне, что анкета ДО заполнена
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('date', date('Y-m-d'))->where('id_sport_patient', $Patient->id_sport_patient)->first();
if ($CalendarDays != null) {
$CD = $CalendarDays;
$CD->id_before_questionnaire = $BQ->id;
$CD->update();
//ПРоверка на блок
if ($request->one >= 6) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
} //Проверка на паузу
else if ($request->four == "1" || $request->five == "1" || $request->six == "1" || $request->seven == "1" || $request->nine == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
}
return response(['Анкета ДО добавлена'], 200);
} else {
return response(['Ошибка системы'], 401);
}
} else {
return response(['У вас не заполнена анкета за придушивший день занятий'], 401);
}
} else {
return response(['У пользователя уже заполнена анкета ДО на сегодня'], 401);
}
} else {//Если небыло ни одной анкеты за курс(первая)
//Создание списка на 30 дней в таблице calendar_days
for ($i = 0; $i < $Patient->total_days_sports; $i++) {//Циул на количество дней
$date = date('Y-m-d', strtotime("$i day"));
CalendarDays::create([
'id_patient' => $Patient->id,
'day' => $i + 1,
'date' => date('d-m-Y', strtotime($date)),
'id_sport_patient' => $SportPatient->id,
]);
}
//Заполнение анкеты
$BQ = BeforeQuestionnaire::create([
'id_sport_patient' => $SportPatient->id,
'date' => $date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
]);
$BQ = BeforeQuestionnaire::where('date', date('Y-m-d'))->where('id_sport_patient', $Patient->id_sport_patient)->first();
//Подтверждаем в календарном дне, что анкета ДО заполнена
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('date', date('Y-m-d'))->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CD = $CalendarDays;
$CD->id_before_questionnaire = $BQ->id;
$CD->update();
//ПРоверка на блок
if ($request->one >= 6) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
} //Проверка на паузу
else if ($request->four == "1" || $request->five == "1" || $request->six == "1" || $request->seven == "1" || $request->nine == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
}
return response(['Анкета ДО добавлена'], 200);
}
} else {
return response(['Данный курс уже окончен, обратитесь к врачу'], 401);
}
} else {
return response(['У вас нету курса, попросите врача добавить вать вам курс'], 401);
}
} else {
return response(['Такого пациента нету'], 401);
}
}
}
//Подтверждение анкеты ПОСЛЕ, после увеличится количество выполненных дней и подтверждения анкет на определенный день
public function AddAfterQuestionnaire(Request $request)
{
//Сегодняшняя дата
$date = date("Y-m-d");
$error = Validator::make($request->all(), [
'one' => 'required',
'two' => 'required',
'three' => 'required',
'four' => 'required',
'five' => 'required',
'six' => 'required',
'seven' => 'required',
'eight' => 'required',
'nine' => 'required',
'ten' => 'required',
'eleven' => 'required',
'twelve' => 'required',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Patient = Auth::user()->makeHidden(['id']);
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
$BeforeQuestionnaireNew = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
//Проверка на то отправлялась ли хоть одна анкета ДО
if ($BeforeQuestionnaireNew != null) {
//Проверка на то, активен ли данный курс
if ($SportPatient->finished == false) {
$BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
$AfterQuestionnaireSearch = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$AfterQuestionnaireDate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
//Проверка на то отправлена ли анкета ДО за сегодня
if ($BeforeQuestionnaireDate == null && $AfterQuestionnaireSearch == null) {
$dateBefSearch = $BeforeQuestionnaireSearch->date;
$pause = $Patient->pause;
$pauseNo1DAy = date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause)));
$block = $Patient->block;
$blockNo1DAy = date('Y-m-d', strtotime('-1 day', strtotime($Patient->block)));
$blockNo2DAy = date('Y-m-d', strtotime('-2 day', strtotime($Patient->block)));
$blockNo3DAy = date('Y-m-d', strtotime('-3 day', strtotime($Patient->block)));
//Проверка на то заполнялась ли анкета ПОСЛЕ за предыдущий день и не было ли блокировок или пауза
if ($AfterQuestionnaireSearch == null) {
if (($pause == null && $block == null) ||
((($pause != null && $block != null)) && $pause != $dateBefSearch && $pauseNo1DAy != $dateBefSearch && $block != $dateBefSearch && $blockNo1DAy != $dateBefSearch && $blockNo2DAy != $dateBefSearch && $blockNo3DAy != $dateBefSearch) ||
((($pause != null && $block == null)) && $pause != $dateBefSearch && $pauseNo1DAy != $dateBefSearch) ||
((($pause == null && $block != null)) && $block != $dateBefSearch && $blockNo1DAy != $dateBefSearch && $blockNo2DAy != $dateBefSearch && $blockNo3DAy != $dateBefSearch)) {
$SportForDay = SportForDay::where('day', $BeforeQuestionnaireSearch->date)->where('date', $date)->where('id_patient', $Patient->id_patient)->where('id_sport_patient', $Patient->id_sport_patient)->where('finish', 0)->first();
//Проверка на то все ли задания были выполнены, если нет, то нельзя отправить отчет
if ($SportForDay == null) {
//Заполнение анкеты за предыдущий день
$AQ = AfterQuestionnaire::create([
'id_sport_patient' => $Patient->id_sport_patient,
'date' => $BeforeQuestionnaireSearch->date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
'ten' => $request->ten,
'eleven' => $request->eleven,
'twelve' => $request->twelve,
]);
$AfterQuestionnaireUpdate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
//Подтверждаем в календарном дне, что анкета ПОСЛЕ заполнена
$CalendarDays = CalendarDays::where('date', $BeforeQuestionnaireSearch->date)->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$pat = $CalendarDays;
$pat->id_after_questionnaire = $AfterQuestionnaireUpdate->id;
$pat->update();
//ПРоверка на блок
if ($request->ten == 1) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
} //Проверка на паузу
else if ($request->one >= "6" || $request->three == "0" || $request->six == "1" || $request->eight == "1" || $request->eleven == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
}
$pat2 = $Patient;
$pat2->now_days_sports = $Patient->now_days_sports + 1;
$pat2->update();
return response(['Анкета ПОСЛЕ добавлена за предыдущий день' . "dateBefSearch=" . $dateBefSearch . ". pause=" . $pause . ". pauseNo1DAy=" . $pauseNo1DAy . ". block=" . $block . ". blockNo1DAy=" . $blockNo1DAy . ". blockNo2DAy=" . $blockNo2DAy . ". blockNo3DAy=" . $blockNo3DAy], 200);
} else {
return response(['Не все задания выполнены'], 200);
}
} else if ($AfterQuestionnaireSearch != null) {//Заполнение анкеты за предыдущий день занятий
return response(['У вас уже заполнена анкета ПОСЛЕ предыдущий день'], 401);
} else {
return response(['У пользователя не заполнена анкета ДО на сегодня, поэтому анкету после он не может заполнить'], 401);
}
} else {
return response(['У пользователя не заполнена анкета ДО на сегодня, поэтому анкету после он не может заполнить'], 401);
}
} else if ($BeforeQuestionnaireDate != null && $AfterQuestionnaireDate == null) {
$SportForDay = SportForDay::where('finish', 0)->first();
//Проверка на то все ли задания были выполнены, если нет, то нельзя отправить отчет
if ($SportForDay == null) {
$AQ = AfterQuestionnaire::create([
'id_sport_patient' => $Patient->id_sport_patient,
'date' => $date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
'ten' => $request->ten,
'eleven' => $request->eleven,
'twelve' => $request->twelve,
]);
$AfterQuestionnaireUpdate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
//Подтверждаем в календарном дне, что анкета ПОСЛЕ заполнена
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$pat = $CalendarDays;
$pat->id_after_questionnaire = $AfterQuestionnaireUpdate->id;
$pat->update();
//ПРоверка на блок
if ($request->ten == 1) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
} //Проверка на паузу
else if ($request->one >= "6" || $request->three == "0" || $request->six == "1" || $request->eight == "1" || $request->eleven == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
}
return response(['Анкета ПОСЛЕ добавлена', $SportForDay], 200);
} else {
return response(['Не все задания выполнены'], 200);
}
} else {
return response(['У пользователя уже заполнена анкета ПОСЛЕ на сегодня'], 401);
}
} else {
return response(['Данный курс уже окончен, обратитесь к врачу'], 401);
}
} else {
return response(['У вас не заполнена анкета ДО'], 401);
}
} else {
return response(['У вас нету курса, попросите врача добавить вать вам курс'], 401);
}
} else {
return response(['Такого пациента нету'], 401);
}
}
}
// //Функция для вывода нужной карточки на экран
// public function VisibleView()
// {
// $Patient = Auth::user()->makeHidden(['id']);
// $date = date("Y-m-d");
//
// if ($Patient != null) {
// //Проверка на то, есть ли курс у пациента
// if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
// $SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
// $Calendare = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
// //Проверка на то, закончин ли данный курс
// if ($SportPatient->finished == false) {
// //ППоверка есть ли нужное количество дней в календаре на данный курс, если нет то отправлять пациента на экран с подтверждением начинания сегодняшнего дня, в акнкету до тренировки, чтобы он создавал
//
// $BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
// $AfterQuestionnaireSearch = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
//
// $AfterQuestionnaire = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
// $BeforeQuestionnaire = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
// if ($Patient->block >= $date) {//Если блок
// return response(['view' => 3, 'text' => 'Курс заблокирован до' . $Patient->block], 200);
// } else if ($Patient->pause >= $date) {//Если пауза
// return response(['view' => 4, 'text' => 'Курс на паузе до' . $Patient->block], 200);
// } else if ($BeforeQuestionnaire == null && $AfterQuestionnaire == null && $AfterQuestionnaireSearch != null) {//Ели не заполнена анкеты ДО
// return response(['view' => 5, 'text' => 'Анкета ДО тренировки'], 200);
// } else if ($BeforeQuestionnaire != null && $AfterQuestionnaire == null && ($Calendare->count_workout_max != null && $Calendare->count_workout_make != null) && ($Calendare->count_workout_max == $Calendare->count_workout_make)) {//Еcли не заполнена анкеты ПОСЛЕ
// return response(['view' => 6, 'text' => 'Анкета ПОСЛЕ тренировки'], 200);
// } //Вывод анкеты ПОСЛЕ если не заполнил за предыдущий день
// else if ($AfterQuestionnaireSearch == null &&
// (($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
// ($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))) {//Заполнение анкеты за предыдущий день занятий
// return response(['view' => 7, 'text' => 'Анкета ПОСЛЕ за предыдущий день'], 200);
// } else if ($AfterQuestionnaire != null && $BeforeQuestionnaire != null) {//Ели не заполнены анкеты
// return response(['view' => 8, 'text' => 'Тренировки на сегодня окончены, ждем вас завтра'], 200);
// } else if ($AfterQuestionnaire != null && $BeforeQuestionnaire == null && $Patient->pause == null && $Patient->block == null && ($Calendare->count_workout_max != $Calendare->count_workout_make)) {//Ели не заполнены анкеты
// return response(['view' => 9, 'text' => 'Тренировки на сегодня'], 200);
// } //Условие, если курса на этот день нету, то выводим экран с сообщение, "чтобы начать вам нужно подтвердить данное действие"
// else if ($AfterQuestionnaire != null && $BeforeQuestionnaire == null && $Patient->pause == null && $Patient->block == null && $Calendare->id_sport_patient == null) {//Ели не заполнены анкеты
// return response(['view' => 10, 'text' => 'Чтобы начать вам нужно подтвердить данное действие'], 200);
// }
//
//
// } else {
// return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
// }
// } else {
// return response(['view' => 1, 'text' => 'Попросите врача добавить вам курс'], 200);
// }
// } else {
// return response(['Такого пациента нету'],);
// }
// }
// //Функция для вывода нужной карточки на экран
// public function VisibleView2()
// {
// $Patient = Auth::user()->makeHidden(['id']);
// $date = date("Y-m-d");
//
// if ($Patient != null) {
// //Проверка на то, есть ли курс у пациента
// if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
//
// $SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
// //Проверка на то, закончен ли данный курс
// if ($SportPatient->finished == 0) {
// //Проверка если ли блокировка
// if (($Patient->block !== null && $Patient->block !== "" && $Patient->block >= $date) || ($Patient->pause !== null && $Patient->pause !== "" && $Patient->pause >= $date)) {
// if ($Patient->block !== null && $Patient->block !== "" && $Patient->block >= $date) {
// return response(['view' => 3, 'text' => 'У вас блокировка до ' . $Patient->block], 200);
// } else if ($Patient->pause !== null && $Patient->pause !== "" && $Patient->pause >= $date) {
// return response(['view' => 4, 'text' => 'У вас пауза до ' . $Patient->pause], 200);
// }
// } else {
// //Проверка на то есть ли хоть одна анкета ДО
// $BeforeQ = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
// $AfterQ = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
// if ($BeforeQ != null) {
// $BeforeQuestionnaire = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', '<', $date)->where('date', $date)->first();
// $AfterQuestionnaire = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', '<', $date)->where('date', $date)->first();
//
// $SportForDay = SportForDay::where('day', $date)->where('finish', 1)->get();
//
// $CalendareDays = CalendarDays::where('date', $date)->first();
//
// if($AfterQ == null && ($Patient->pause != null || $Patient->block != null) &&
// (($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
// ($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))){
//
// }
//
// if ($BeforeQuestionnaire!= null && $AfterQ == null &&$CalendareDays->count_workout_max > Count($SportForDay)) {
// return response(['view' => 9, 'text' => 'Список тренировок'], 200);
// }
// else if($BeforeQuestionnaire!= null && $AfterQ == null &&$CalendareDays->count_workout_max == Count($SportForDay)){
// return response(['view' => 10, 'text' => 'Анкета ПОСЛЕ тренировки'], 200);
// }
// else{
//
// $BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', '<', $date)->orderBy('date', 'DESC')->first();
//
// $AfterQuestionnaireDate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', '<', $date)->where('date', $BeforeQuestionnaireDate->date)->first();
// $SportForDateOld = SportForDay::where('day', $BeforeQuestionnaireDate->date)->where('finish', 0)->get();
// $CalendareDaysOld = CalendarDays::where('date', $BeforeQuestionnaireDate->date)->first();
//
//
//
//
//
// $BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'DESC')->first();
// $AfterQuestionnaireSearch = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
//
// //Если небыло выполнено ни одног дня
// if ($BeforeQuestionnaire == null && $AfterQuestionnaire == null && $Patient->now_days_sport == 0) {
// return response(['view' => 5, 'text' => 'Нажмите кнопку подтверждения чтобы начать курс'], 200);
// } else if ($BeforeQuestionnaire == null && $AfterQuestionnaire == null && $Patient->now_days_sport > 0) {
// if ($SportForDateOld < $CalendareDaysOld->count_workout_max && $AfterQuestionnaireSearch == null &&
// (($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
// ($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))) {//Заполнение анкеты за предыдущий день занятий
// return response(['view' => 6, 'text' => 'Список тренировок которые не закончил пациент за предыдущий день'], 200);
// } else if ($SportForDateOld == $CalendareDaysOld->count_workout_max && $AfterQuestionnaireSearch == null &&
// (($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
// ($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))) {//Заполнение анкеты за предыдущий день занятий
// return response(['view' => 7, 'text' => 'Анкета ПОСЛЕ за предыдущий день'], 200);
// } else {
// return response(['view' => 8, 'text' => 'Анкета ДО тренировки'], 200);
// }
// } else if ($BeforeQuestionnaire != null && $AfterQuestionnaire == null && $Patient->now_days_sport > 0 && $SportForDay < $CalendareDays->count_workout_max) {
// return response(['view' => 9, 'text' => 'Список тренировок'], 200);
// } else if ($BeforeQuestionnaire != null && $AfterQuestionnaire == null && $Patient->now_days_sport > 0 && $SportForDay == $CalendareDays->count_workout_max) {
// return response(['view' => 10, 'text' => 'Анкета ПОСЛЕ тренировки'], 200);
// } else if ($BeforeQuestionnaire != null && $AfterQuestionnaire != null && $Patient->now_days_sport > 0 && $SportForDay == $CalendareDays->count_workout_max) {
// return response(['view' => 11, 'text' => 'Комплекс на сегодня вы выполнили, ждем вас завтра'], 200);
// } else {
// return response(['view' => 616.1, 'text' => 'Ошибка системы'], 400);
// }
// }
// } else {
// return response(['view' => 12, 'text' => 'Начало курса. Нажмите кнопку подтверждения чтобы начать курс'], 200);
// }
//
// }
// } else {
// return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
// }
// } else {
// return response(['view' => 1, 'text' => 'Попросите врача добавить вам курс'], 200);
// }
// } else {
// return response(['Такого пациента нету'],);
// }
// }
//Функция для вывода нужной карточки на экран
public function VisibleView3()
{
$Patient = Auth::user()->makeHidden(['id']);
$date = date("Y-m-d");
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
//$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('article_sport_for_day','!=',null)->orderBy('id','DESC')->first();
$SportForDay = SportForDay::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('day', $date)->where('finish', 0)->first();
$BeforeQuestionnaireToday = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$AfterQuestionnaireToday = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
if(($Patient->total_days_sports == $Patient->now_days_sports)&&($SportForDay==null)&&($BeforeQuestionnaireToday!=null)&&($AfterQuestionnaireToday==null)){
return response(['view' => 4, 'text' => 'Анкета ПОСЛЕ тренировки'], 200);
}
else{
if(($Patient->total_days_sports == $Patient->now_days_sports)&&($SportForDay==null)&&($BeforeQuestionnaireToday!=null)&&($AfterQuestionnaireToday!=null)){
return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
}
else{
//Проверка на то, закончен ли данный курс
if (($SportPatient->finished == 0) ) {
//Есть ли блок или пауза на данный момент
if (($Patient->block !== null && $Patient->block !== "" && $Patient->block >= $date) || ($Patient->pause !== null && $Patient->pause !== "" && $Patient->pause >= $date)) {
if ($Patient->block !== null && $Patient->block !== "" && $Patient->block >= $date) {
$blockDate = $Patient->block[8].$Patient->block[9].'.'.$Patient->block[5].$Patient->block[6].'.'.$Patient->block[0].$Patient->block[1].$Patient->block[2].$Patient->block[3];
return response(['view' => 9, 'text' => 'Ваш курс заблокирован до ' . $blockDate], 200);
} else if ($Patient->pause !== null && $Patient->pause !== "" && $Patient->pause >= $date) {
$pauseDate = $Patient->pause[8].$Patient->pause[9].'.'.$Patient->pause[5].$Patient->pause[6].'.'.$Patient->pause[0].$Patient->pause[1].$Patient->pause[2].$Patient->pause[3];
return response(['view' => 10, 'text' => 'Ваш курс на пауза до ' . $pauseDate], 200);
}
//Если нету паузы на данный момент
} else {
$BeforeQuestionnaire = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
$AfterQuestionnaire = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
//Не было заполнено ни одной анкеты
if ($BeforeQuestionnaire == null && $AfterQuestionnaire == null) {
return response(['view' => 3, 'text' => 'Начало курса. Нажмите кнопку подтверждения чтобы начать курс'], 200);
} //Если была заполнена хотя бы анкета ДО
else if ($BeforeQuestionnaire != null) {
$BeforeQuestionnaireToday = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$AfterQuestionnaireToday = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$SportForDay = SportForDay::where('day', $date)->where('finish', 1)->get();
$CalendareDays = CalendarDays::where('date', $date)->where('id_sport_patient', $Patient->id_sport_patient)->first();
//Заполнена ли анкета ДО на сегодня
if ($BeforeQuestionnaireToday == null && $AfterQuestionnaireToday == null) {
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', '<', $date)->orderBy('date', 'DESC')->first();
$AfterQuestionnaireDate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', '<', $date)->where('date', $BeforeQuestionnaireDate->date)->first();
// //Заполнялась ли анкета ПОСЛЕ за предыдущий день
// if ($AfterQuestionnaireDate == null) {
//
// $BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'DESC')->first();
// $AfterQuestionnaireSearch = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
// //Были ли паузы или блокировки в эти даты
// if ($AfterQuestionnaireSearch == null &&
// (($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
// ($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))) {
// return response(['view' => 7, 'text' => 'Анкета ПОСЛЕ за предыдущий день'], 200);
// } //Если была пауза или блокировка в эти даты
// else {
// return response(['view' => 8, 'text' => 'Анкета ДО тренировки'], 200);
// }
//
// } //Если анкета ПОЛСЕ за предыдущий день присутствует
// else {
return response(['view' => 8, 'text' => 'Анкета ДО тренировки'], 200);
// }
} //Если заполнена анкета ДО на сегодня, но не заполнена после
else if ($BeforeQuestionnaireToday != null && $AfterQuestionnaireToday == null) {
$SportForDay = SportForDay::where('id_sport_patient', $Patient->id_sport_patient)->where('id_patient', $Patient->id)->where('day', $date)->where('finish', 0)->get();
// if ($CalendareDays->count_workout_max == $CalendareDays->count_workout_make) {
if (Count($SportForDay) == 0) {
return response(['view' => 4, 'text' => 'Анкета ПОСЛЕ тренировки'], 200);
} else {
return response(['view' => 5, 'text' => 'Список упражнений на сегодня'], 200);
}
} else if ($BeforeQuestionnaireToday != null && $AfterQuestionnaireToday != null) {
return response(['view' => 6, 'text' => 'Тренировки на сегодня выполнены'], 200);
} else {
return response(['view' => 616, 'text' => 'Ошибка системы'], 400);
}
} else {
return response(['view' => 617, 'text' => 'Ошибка системы3'], 400);
}
}
} else {
return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
}
}
}
} else {
return response(['view' => 1, 'text' => 'Попросите врача добавить вам курс'], 200);
}
} else {
return response(['Такого пациента нету'],);
}
}
//Функция добавления занятий надень при различных условия, то ест сколько пройдено дней, сколько осталось, есть ли блокировка или пауза и т.д.
public function AddCourses()
{
$Patient = Auth::user()->makeHidden(['id']);
$date = date("Y-m-d");
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
//Проверка на то, закончин ли данный курс
if ($SportPatient->finished == false) {
if ($Patient->block >= $date) {//Если блок
return response(['view' => 3, 'text' => 'Курс заблокирован до' . $Patient->block], 200);
} else if ($Patient->pause >= $date) {//Если пауза
return response(['view' => 4, 'text' => 'Курс на паузе до' . $Patient->block], 200);
} else {
$totalDaySport = $Patient->total_days_sports;//Всего дней спорта
$nowDaySport = $Patient->now_days_sports;//Пройдено дней
$remainedDaySport = $totalDaySport - $nowDaySport;//Пройдено дней
$CalendarDays = CalendarDays::where('date', '>=', $date)->where('id_patient', $Patient->id)->get();
$countCalendar = count($CalendarDays);//Сколько дней пройдено
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$AfterQuestionnaireDate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
//Проверка на то отправлена ли анкета ДО за сегодня
if ($BeforeQuestionnaireDate != null && $AfterQuestionnaireDate == null) {
//Если равно это первый день
if ($nowDaySport == 0) {
$SportPatient = SportPatient::where('id_patient', $Patient->id)->where('finished', 0)->first();
$SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->where('day', 1)->first();
$SetOfSportsExercises = SetOfSportsExercises::where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
$SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CD = $CalendarDays;
$CD->article_sport_for_day = $SportForDay->article;
$CD->update();
return response(['$SetOfSportsExercises' => $SetOfSportsExercises, $CalendarDays], 200);
} else if ($nowDaySport > 0) {
if ($remainedDaySport <= $countCalendar) {
return response(['view' => 1, '$totalDaySport' => "$totalDaySport", '$nowDaySport' => "$nowDaySport", '$remainedDaySport' => "$remainedDaySport", '$countCalendar' => "$countCalendar", '$CalendarDays' => "$CalendarDays"], 200);
} else {
return response(['view' => 2, '$totalDaySport' => "$totalDaySport", '$nowDaySport' => "$nowDaySport", '$remainedDaySport' => "$remainedDaySport", '$countCalendar' => "$countCalendar", '$CalendarDays' => "$CalendarDays"], 200);
}
}
} else {
return response(['Отсутствует анкета ДО'], 200);
}
}
} else {
return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
}
} else {
return response(['view' => 1, 'text' => 'Попросите врача добавить вам курс'], 200);
}
} else {
return response(['Такого пациента нету'],);
}
}
//Функция добавления занятий на текуший день
public function AddCourses2(string $id)
{
$Patient = Patient::where('id', $id)->first();
$date = date("Y-m-d");
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
//Проверка на то, добавлялся ли сегодня данный курс
$SportForDay = SportForDay::where('day', $date)->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
if ($SportForDay == null) {
$totalDaySport = $Patient->total_days_sports;//Всего дней спорта
$allDaySport = $Patient->all_days_sports;//Пройдено дней
$nowDaySport = $Patient->now_days_sports;//Пройдено курсов
$remainedDaySport = $totalDaySport - $allDaySport;//Осталось пройти
//Проверка на то, закончен ли данный курс
if ($SportPatient->finished == false && ($totalDaySport != $allDaySport)) {
$CalendarDays = CalendarDays::where('date', '>=', $date)->where('id_patient', $Patient->id)->get();
$countCalendar = count($CalendarDays);//Сколько дней пройдено
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$AfterQuestionnaireDate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
//Проверка на то отправлена ли анкета ДО за сегодня
if ($BeforeQuestionnaireDate != null && $AfterQuestionnaireDate == null) {
$SetsOfSportsActivitiesSearchDay = SetsOfSportsActivities::orderBy('id', 'ASC')
->join('sports_courses', 'sports_courses.id', 'sets_of_sports_activities.id_sports_courses')
->join('sport_patient', 'sport_patient.id_sports_courses', 'sports_courses.id')
->select('sets_of_sports_activities.id', 'sets_of_sports_activities.day')
->distinct()
->where('sport_patient.id', $Patient->id_sport_patient)
->get();
//Проверка на то сколько есть дней курса, то есть если всего один день в курсе, то его и выдаем, а иначе идем по дням
if (Count($SetsOfSportsActivitiesSearchDay) == 1) {
$SportPatient = SportPatient::where('id_patient', $Patient->id)->where('finished', 0)->first();
$SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->where('day', 1)->first();
//$SetOfSportsExercises = SetOfSportsExercises::where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)->get();
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->get();
$result = [];
$number = 0;
if (Count($CoursesSportEdit) == 0) {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
//->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
} else {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
}
$SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CD = $CalendarDays;
$CD->article_sport_for_day = $SportForDay->article;
$CD->count_workout_max = count($SetOfSportsExercises);
$CD->update();
return response(['message', 'Тренировка на сегодня добавлена'], 200);
} else {
//Если равно это первый день
if ($nowDaySport == 1) {
$SportPatient = SportPatient::where('id_patient', $Patient->id)->where('finished', 0)->first();
$SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->where('day', 1)->first();
//$SetOfSportsExercises = SetOfSportsExercises::where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)->get();
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->get();
if (Count($CoursesSportEdit) == 0) {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
//->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
} else {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
}
$SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CD = $CalendarDays;
$CD->article_sport_for_day = $SportForDay->article;
$CD->count_workout_max = Count($SetOfSportsExercises);
$CD->update();
return response(['message', 'Тренировка на сегодня добавлена'], 200);
} else if ($nowDaySport > 1) {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->where('id_patient', $Patient->id)->first();
$SetsOfSportsActivitiesCours = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->first();
//Есть ли такой курс
if ($SetsOfSportsActivitiesCours != null) {
$SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->where('day', $nowDaySport)->first();
//Есть ли такой день
if ($SetsOfSportsActivities != null) {
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->get();
if (Count($CoursesSportEdit) == 0) {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
//->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
} else {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
}
$SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CD = $CalendarDays;
$CD->article_sport_for_day = $SportForDay->article;
$CD->count_workout_max = count($SetOfSportsExercises);
$CD->update();
// return response(['$SetOfSportsExercises' => $SetOfSportsExercises, $CalendarDays], 200);
return response(['message', 'Тренировка на сегодня добавлена'], 200);
} else {
$SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->orderBy('day', 'DESC')->first();
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->get();
if (Count($CoursesSportEdit) == 0) {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
//->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
} else {
$SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
}
$SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$CD = $CalendarDays;
$CD->article_sport_for_day = $SportForDay->article;
$CD->count_workout_max = count($SetOfSportsExercises);
$CD->update();
return response(['message', 'Тренировка на сегодня добавлена'], 200);
}
} else {
return response(['text' => 'Такого курса нету'], 200);
}
} else {
return response(['Отсутствует анкета ДО 1'], 200);
}
}
} else {
return response(['Отсутствует анкета ДО 2'], 200);
}
} else {
return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
}
} else {
return response(['view' => 123, 'text' => 'На сегодня вы уже добавили задания на данный курс'], 200);
}
} else {
return response(['view' => 1, 'text' => 'Попросите врача добавить вам курс'], 200);
}
} else {
return response(['Такого пациента нету'],);
}
}
function CoutSportCourses()
{
$Patient = Auth::user()->makeHidden(['id']);
$date = date("Y-m-d");
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null || $Patient->id_sport_patient != "") {
$SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->first();
//Проверка на то, закончен ли данный курс
if ($SportPatient->finished == false) {
$SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->get();
return response(['SportForDay' => $SportForDay], 200);
} else {
return response(['view' => 2, 'text' => 'Ваш курс окончен. Для дальнейших действий обратитесь к врачу'], 200);
}
} else {
return response(['view' => 1, 'text' => 'Попросите врача добавить вам курс'], 200);
}
} else {
return response(['message' => 'Такого пациента нету'],);
}
}
function AddBeforeQuestionnaire2(Request $request)
{
$error = Validator::make($request->all(), [
'one' => 'required|numeric|max:10|min:0',
'two' => 'required|numeric|max:1|min:0',
'three' => 'required|numeric|max:1|min:0',
'four' => 'required|numeric|max:1|min:0',
'five' => 'required|numeric|max:1|min:0',
'six' => 'required|numeric|max:1|min:0',
'seven' => 'required|numeric|max:1|min:0',
'eight' => 'required|numeric|max:1|min:0',
'nine' => 'required|numeric|max:1|min:0',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Patient = Auth::user()->makeHidden(['id']);
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
// return response(['message' => 'Анкета ПОСЛПЕ за сегодня уже заполненаassdasd1243'], 200);
//Проверка количества дней в календаре и их изменение
$this->AddandClearDayPatient($Patient->id);
//Добовлени дня в календарь
if( $this->AddDayCalendare($Patient->id)){
// return $this->AddandClearDayPatient();
$date = date("Y-m-d");
$BeforeQuestionnaireNEW = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$pause = $Patient->pause;
$block = $Patient->block;
//Был ли блок или пауза
if (($Patient->block == null && $Patient->pause == null) || ($pause < $date && $block < $date) || ($pause < $date && $block == null) || ($pause == null && $block < $date)) {//Если да
//Если первое заполнение анкеты
if ($BeforeQuestionnaireNEW == null) {
// //Создание списка на n дней в таблице calendar_days
// for ($i = 0; $i < $Patient->total_days_sports; $i++) {//Циул на количество дней
// $date = date('Y-m-d', strtotime("$i day"));
// CalendarDays::create([
// 'id_patient' => $Patient->id,
// 'day' => $i + 1,
// //'date'=>date('d-m-Y',strtotime($date)),
// 'id_sport_patient' => $Patient->id_sport_patient,
// 'date' => $date,
// ]);
// }
//Заполнение анкеты
$BQ = BeforeQuestionnaire::create([
'id_sport_patient' => $Patient->id_sport_patient,
'date' => date("Y-m-d"),
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
]);
//Увеличения дня на 1 и задания для следующего дня
$pat2 = $Patient;
$pat2->now_days_sports = $Patient->now_days_sports + 1;
$pat2->all_days_sports = $Patient->all_days_sports + 1;
$pat2->update();
//Подтверждаем в календарном дне, что анкета ДО заполнена
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('date', date("Y-m-d"))->where('id_sport_patient', $Patient->id_sport_patient)->first();
$BeforeQuestionnaire = BeforeQuestionnaire::where('date', date("Y-m-d"))->where('id_sport_patient', $Patient->id_sport_patient)->first();
if ($CalendarDays != null) {
$CD = $CalendarDays;
$CD->id_before_questionnaire = $BeforeQuestionnaire->id;
$CD->update();
//ПРоверка на блок
if ($request->one >= 6) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
$CD->block = date('Y-m-d', strtotime("3 day"));
$CD->update();
PatientController::AddCourses2($Patient->id);
} //Проверка на паузу
else if ($request->four == "1" || $request->five == "1" || $request->six == "1" || $request->seven == "1" || $request->nine == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
$CD->pause = date('Y-m-d', strtotime("1 day"));
$CD->update();
PatientController::AddCourses2($Patient->id);
} else {
PatientController::AddCourses2($Patient->id);
}
return response(['message' => 'Анкета ДО добавлена', $CalendarDays], 200);
} else {
return response(['message' => 'Ошибка системы', $CalendarDays], 401);
}
} else {
//Заполнена ли анкета ДО на сегодня
if ($BeforeQuestionnaireDate == null) {
$BeforeQuestionnaire = BeforeQuestionnaire::where('date', $date)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$BeforeQuestionnaireDateLast = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->get();
$dateBefSearch = $BeforeQuestionnaireDateLast[count($BeforeQuestionnaireDateLast) - 1]->date;
//$AfterQuestionnaire = AfterQuestionnaire::where('date', $dateBefSearch)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'DESC')->first();
//$AfterQuestionnaireSearch = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
//////////////////////////////////////////////////////////////
/// /////////////////////////////////////////////////////////
/// ////////////////////////////////////////////////////////
/// //////////////////////////////////////////////////////////
/// //////////////////////////////////////////////////////
//Заполнена ли анкета ПОСЛЕ за вчераи небыло ли блока в это время
if ((($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))) {
//Заполнение анкеты
$BQ = BeforeQuestionnaire::create([
'id_sport_patient' => $Patient->id_sport_patient,
'date' => $date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
]);
//Увеличения дня на 1 и задания для следующего дня
$pat2 = $Patient;
$pat2->now_days_sports = $Patient->now_days_sports + 1;
$pat2->all_days_sports = $Patient->all_days_sports + 1;
$pat2->update();
//Подтверждаем в календарном дне, что анкета ДО заполнена
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('date', $date)->where('id_sport_patient', $Patient->id_sport_patient)->orderBy('day', 'DESC')->first();
$BeforeQuestionnaire = BeforeQuestionnaire::where('date', $date)->first();
if ($CalendarDays != null) {
$CD = $CalendarDays;
$CD->id_before_questionnaire = $BeforeQuestionnaire->id;
$CD->update();
//ПРоверка на блок
if ($request->one >= 6) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
$CD->block = date('Y-m-d', strtotime("3 day"));
$CD->update();
if ($Patient->all_days_sports > 1) {
//Уменьшние задания для следующего дня
$pat2 = $Patient;
$pat2->all_days_sports = $Patient->all_days_sports - 1;
$pat2->update();
}
PatientController::AddCourses2($Patient->id);
} //Проверка на паузу
else if ($request->four == "1" || $request->five == "1" || $request->six == "1" || $request->seven == "1" || $request->nine == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
$CD->pause = date('Y-m-d', strtotime("1 day"));
$CD->update();
if ($Patient->all_days_sports > 1) {
//Увеличения задания для следующего дня
$pat2 = $Patient;
$pat2->all_days_sports = $Patient->all_days_sports - 1;
$pat2->update();
}
PatientController::AddCourses2($Patient->id);
} else {
PatientController::AddCourses2($Patient->id);
}
return response(['message' => 'Анкета ДО добавлена'], 200);
} else {
return response(['message' => 'Ошибка системы'], 401);
}
} else {
return response(['message' => 'Вам сначала нужно заполнить анкету ПОСЛЕ за вчерашний день'], 401);
}
} else {
return response(['message' => 'Анкета ДО уже заполнена на сегодня'], 401);
}
}
} else {
return response(['message' => 'У вас есть или блок или пауза, поэтому вам ограничен временно доступ'], 401);
}
}
else {
return response(['message' => 'Ошибка системы2'], 401);
}
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу, чтобы он добавил вам курс'], 401);
}
}
}
//Подтверждение анкеты ПОСЛЕ, после увеличится количество выполненных дней и подтверждения анкет на определенный день
public function AddAfterQuestionnaire2(Request $request)
{
//Сегодняшняя дата
$date = date("Y-m-d");
$error = Validator::make($request->all(), [
'one' => 'required|numeric|max:10|min:0',
'two' => 'required|numeric|max:1|min:0',
'three' => 'required|numeric|max:1|min:0',
'four' => 'required|numeric|max:1|min:0',
'five' => 'required|numeric|max:1|min:0',
'six' => 'required|numeric|max:1|min:0',
'seven' => 'required|numeric|max:1|min:0',
'eight' => 'required|numeric|max:1|min:0',
'nine' => 'required|numeric|max:1|min:0',
'ten' => 'required|numeric|max:1|min:0',
'eleven' => 'required|numeric|max:1|min:0',
'twelve' => 'required|numeric|max:1|min:0',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Patient = Auth::user()->makeHidden(['id']);
if ($Patient != null) {
//Проверка на то, есть ли курс у пациента
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
//Был ли блок или пауза
$pause = $Patient->pause;
$block = $Patient->block;
if (($Patient->block == null && $Patient->pause == null) || ($pause < $date && $block < $date) || ($pause < $date && $block == null) || ($pause == null && $block < $date)) {//Если да
$date = date("Y-m-d");
$BeforeQuestionnaireNEW = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->first();
$BeforeQuestionnaireDate = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
$AfterQuestionnaireDate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $date)->first();
//Проверка на то отправлялась ли хоть одна анкета ДО
if ($BeforeQuestionnaireNEW != null) {
//Проверка на то заполнялась ли анкета ДО за сегодня
if ($AfterQuestionnaireDate == null) {
//Проверка количества дней в календаре и их изменение
//$this->AddandClearDayPatient($Patient->id);
//Проверка на то заполнялась ли анкета ДО за сегодня
if ($BeforeQuestionnaireDate == null) {
$BeforeQuestionnaireSearch = BeforeQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'DESC')->first();
$AfterQuestionnaireSearch = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->where('date', $BeforeQuestionnaireSearch->date)->first();
//Проверка на то отправлялась ли анкета за вчера
if ($AfterQuestionnaireSearch != null && (($Patient->pause == null || $Patient->pause != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->pause))) != $BeforeQuestionnaireSearch->date) ||
($Patient->block == null || $Patient->block != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-1 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-2 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date || date('Y-m-d', strtotime('-3 day', strtotime($Patient->block))) != $BeforeQuestionnaireSearch->date))) {
return response(['message' => 'У вас не заполнена анкета ДО за сегодня'], 401);
} else {
$AQ = AfterQuestionnaire::create([
'id_sport_patient' => $Patient->id_sport_patient,
'date' => $BeforeQuestionnaireSearch->date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
'ten' => $request->ten,
'eleven' => $request->eleven,
'twelve' => $request->twelve,
]);
$AfterQuestionnaireUpdate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'DESC')->first();
//Подтверждаем в календарном дне, что анкета ПОСЛЕ заполнена
$CalendarDays = CalendarDays::where('date', $AfterQuestionnaireUpdate->date)->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$pat = $CalendarDays;
$pat->id_after_questionnaire = $AfterQuestionnaireUpdate->id;
$pat->update();
//ПРоверка на блок
if ($request->nine == "1") {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
if ($Patient->all_days_sports > 1) {
//Увеличения задания для следующего дня
$pat2 = $Patient;
$pat2->all_days_sports = $Patient->all_days_sports - 1;
$pat2->update();
}
} //Проверка на паузу
else if ($request->one >= "6" || $request->three == "0" || $request->six == "1" || $request->eight == "1" || $request->eleven == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
if ($Patient->all_days_sports > 1) {
//Увеличения задания для следующего дня
$pat2 = $Patient;
$pat2->all_days_sports = $Patient->all_days_sports - 1;
$pat2->update();
}
} else {
//Увеличения задания для следующего дня
// $pat2 = $Patient;
// $pat2->all_days_sports = $Patient->all_days_sports + 1;
// $pat2->update();
}
return response(['message' => 'Анкета ПОСЛЕ за предыдуший день заполнена'], 200);
}
} else {
//$SportForDay = SportForDay::where('finish', 0)->where('day', $date)->first();
//Проверка на то все ли задания были выполнены, если нет, то нельзя отправить отчет
// if ($SportForDay == null) {
$AQ = AfterQuestionnaire::create([
'id_sport_patient' => $Patient->id_sport_patient,
'date' => $date,
'one' => $request->one,
'two' => $request->two,
'three' => $request->three,
'four' => $request->four,
'five' => $request->five,
'six' => $request->six,
'seven' => $request->seven,
'eight' => $request->eight,
'nine' => $request->nine,
'ten' => $request->ten,
'eleven' => $request->eleven,
'twelve' => $request->twelve,
]);
$AfterQuestionnaireUpdate = AfterQuestionnaire::where('id_sport_patient', $Patient->id_sport_patient)->orderBy('date', 'DESC')->first();
//Подтверждаем в календарном дне, что анкета ПОСЛЕ заполнена
$CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$pat = $CalendarDays;
$pat->id_after_questionnaire = $AfterQuestionnaireUpdate->id;
$pat->update();
//Проверка на блок
if ($request->ten == 1) {
//Блокировка
$pat = $Patient;
$pat->block = date('Y-m-d', strtotime("3 day"));
$pat->update();
if ($Patient->all_days_sports > 1) {
//Увеличения задания для следующего дня
$pat2 = $Patient;
$pat2->all_days_sports = $Patient->all_days_sports - 1;
$pat2->update();
}
} //Проверка на паузу
else if ($request->one >= "6" || $request->three == "0" || $request->six == "1" || $request->eight == "1" || $request->eleven == "1") {
//Пауза
$pat = $Patient;
$pat->pause = date('Y-m-d', strtotime("1 day"));
$pat->update();
if ($Patient->all_days_sports > 1) {
//Увеличения задания для следующего дня
$pat2 = $Patient;
$pat2->all_days_sports = $Patient->all_days_sports - 1;
$pat2->update();
}
} else {
//Увеличения задания для следующего дня
// $pat2 = $Patient;
// $pat2->all_days_sports = $Patient->all_days_sports + 1;
// $pat2->update();
}
return response(['message' => 'Анкета ПОСЛПЕ заполнена'], 200);
//} else {
// return response(['message' => 'Не все задания были заполнена'], 200);
//}
}
} else {
return response(['message' => 'Анкета ПОСЛПЕ за сегодня уже заполнена'], 200);
}
} else {
return response(['message' => 'У вас не заполнена первая анкета ДО'], 401);
}
} else {
return response(['message' => 'У вас есть или блок или пауза, поэтому вам ограничен временно доступ'], 401);
}
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу чтобы он добавил вам курс'], 401);
}
} else {
return response(['message' => 'Такого пациента нету'], 401);
}
}
}
//Добовления дня в календарь
function AddDayCalendare(string $id)
{
$Patient = Patient::where('id', $id)->first();
// $Patient = Auth::user()->makeHidden(['id']);
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', date('Y-m-d'))->first();//Проверяем есть ли такая дата в календаре
$CalendarDaysAdd = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->orderBy('id','DESC')->first();//Проверяем есть ли такая дата в календаре
if($CalendarDays==null){
CalendarDays::create([
'id_patient' => $Patient->id,
'day' => $CalendarDaysAdd->day + 1,
'date' => date('Y-m-d', strtotime("+1 day", strtotime($CalendarDaysAdd->date))),
'id_sport_patient' => $Patient->id_sport_patient,
]);
return response(['message' => 'День в календарь добавлен'], 200);
}
else{
return response(['message' => 'День в календарь уже добавлен'], 200);
}
}
//Функция добавляющая дни в календарь
function AddandClearDayPatient(string $id)
{
$Patient = Patient::where('id', $id)->first();
$CalendarDaysAdd = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>=', date('Y-m-d'))->get();
$dateMax = $Patient->total_days_sports - $Patient->now_days_sports;
$CoutCD = Count($CalendarDaysAdd);
if ($dateMax != $CoutCD) {
if ($dateMax < $CoutCD) {
$max = ($CoutCD - $dateMax);
for ($i = 1; $i < $max; $i++) {
CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>', date('Y-m-d'))->orderBy('date', 'DESC')->first()->delete();
}
} else {
$max = ($dateMax - $CoutCD)+1;
$CalendarDays = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>', date('Y-m-d'))->orderBy('date', 'DESC')->first();
for ($i = 1; $i < $max; $i++) {
CalendarDays::create([
'id_patient' => $Patient->id,
'day' => $CalendarDays->day + $i,
'date' => date('Y-m-d', strtotime("+$i day", strtotime($CalendarDays->date))),
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
}
return response("CoutCD - $CoutCD | dateMax - $dateMax | Patient->total_days_sports - $Patient->total_days_sports | Patient->now_days_sports - $Patient->now_days_sports", 200);
}
else{
return response("CoutCD - $CoutCD | dateMax - $dateMax | Patient->total_days_sports - $Patient->total_days_sports | Patient->now_days_sports - $Patient->now_days_sports", 200);
}
}
// function asdasdas(){
// $Patient = Patient::where('id', 17)->first();
//
// $CalendarDaysAdd = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '=', date('Y-m-d'))->get();
//
// $dateMax = $Patient->total_days_sports - $Patient->now_days_sports;
// $CoutCD = 12;
// $max = $CoutCD - $dateMax;
//// for ($i = 1; $i < $max; $i++) {
//// CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->where('date', '>=', date('Y-m-d'))->orderBy('date', 'DESC')->first()->delete();
//// }
// return response($max, 200);
//
// }
//Вывода данных для списка в календарь
function PatientCalendareDay()
{
$Patient = Auth::user()->makeHidden(['id']);
if ($Patient != null) {
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
$Calendare = CalendarDays::where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->distinct()->orderBy('id', 'ASC')->get();
if ($Calendare != null) {
return response(["сalendare" => $Calendare], 200);
} else {
return response(['message' => 'Данные отсутсвуют'], 401);
}
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу чтобы он добавил вам курс'], 401);
}
} else {
return response(['message' => 'Такого пациента нету'], 401);
}
}
//Вывода данных для одного определенного упражнения
function patientDaySport(Request $request)
{
$Patient = Auth::user()->makeHidden(['id']);
$error = Validator::make($request->all(), [
'id' => 'required',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
}
}
function CheckTokenPatient()
{
$User = Auth::user();
if ($User != null) {
return response(['status' => "300"], 200);
} else {
return response(['status' => "600"], 200);
}
}
//Список упражнений на сегодня
function GetSportDay()
{
$Patient = Auth::user()->makeHidden(['id']);
if ($Patient != null) {
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
$date = date("Y-m-d");
$SportForDay = SportForDay::where('day', $date)->where('id_sport_patient', $Patient->id_sport_patient)->orderBy('finish', 'ASC')->get();
$number = 0;
$result = [];
for ($i = 0; $i != Count($SportForDay); $i++) {
$number++;
$SportTasks = SportTasks::where('id', $SportForDay[$i]->id_sports_tasks)->first();
$search_sport = [
'number' => $number,
'id' => $SportForDay[$i]->id,
'article' => $SportForDay[$i]->article,
'day' => $SportForDay[$i]->day,
'category' => $SportTasks->article_image,
'id_patient' => $SportForDay[$i]->id_patient,
'id_sports_tasks' => $SportForDay[$i]->id_sports_tasks,
'id_sport_patient' => $SportForDay[$i]->id_sport_patient,
'finish' => $SportForDay[$i]->finish,
'created_at' => $SportForDay[$i]->created_at,
'updated_at' => $SportForDay[$i]->updated_at,
];
array_push($result, $search_sport);
}
return response(['sport_for_day' => $result], 200);
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу чтобы он добавил вам курс'], 401);
}
} else {
return response(['message' => 'Такого пациента нету'], 401);
}
}
function GetSportDayOne(Request $request)
{
$Patient = Auth::user()->makeHidden(['id']);
$error = Validator::make($request->all(), [
'id' => 'required|numeric|max:10000|min:1',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
if ($Patient != null) {
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
$date = date("Y-m-d");
//$CalendarDays = CalendarDays::where('date', $date)->where('id_sport_patient', $Patient->id_sport_patient)->get();
$SportForDay = SportForDay::where('id', $request->id)->first();
$SportTasks = SportTasks::where('id', $SportForDay->id_sports_tasks)->first();
$Image = Image::where('article', $SportTasks->article_image)->get();
$search_sport = [
'id' => $SportTasks->id,
'name' => $SportTasks->name,
'description' => $SportTasks->description,
'count' => $SportTasks->count,
'image_url' => $Image,
'category' => $Image[0]->article[0],
'finish' => $SportForDay->finish,
'created_at' => $SportTasks->created_at,
'updated_at' => $SportTasks->updated_at,
];
return response($search_sport, 200);
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу чтобы он добавил вам курс'], 401);
}
} else {
return response(['message' => 'Такого пациента нету'], 401);
}
}
}
// function asddsasdasad(){
// $Patient = Auth::user()->makeHidden(['id']);
// $SportPatient = SportPatient::where('id', $Patient->id_sport_patient)->where('id_patient', $Patient->id)->first();
// $nowDaySport = $Patient->now_days_sports;//Пройдено курсов
//
// $CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->get();
// $SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->where('day', $nowDaySport)->first();
// $SetOfSportsExercises = DB::table('set_of_sports_exercises')->orderBy('id', 'ASC')
// ->join('courses_sport_edit', 'set_of_sports_exercises.id_sports_tasks', '!=', 'courses_sport_edit.id_sports_tasks')
// ->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
// ->distinct()
// //->where('sport_patient.id', $Patient->id_sport_patient)
// ->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
// ->get();
// $result = [];
//
// $number = 0;
// for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
// $res = 0;
// for ($j = 0; $j != Count($CoursesSportEdit); $j++) {
// if ($SetOfSportsExercises[$i]->id_sports_tasks != $CoursesSportEdit[$j]->id_sports_tasks) {
// $res++;
// }
// }
// if ($res == Count($CoursesSportEdit)) {
// $number++;
// $search_sport = [
// 'number' => $number,
// 'id' => $SetOfSportsExercises[$i]->id,
// 'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
// 'id_sets_of_sports_activities' => $SetOfSportsExercises[$i]->id_sets_of_sports_activities,
// 'created_at' => $SetOfSportsExercises[$i]->created_at,
// 'updated_at' => $SetOfSportsExercises[$i]->updated_at,
// ];
// array_push($result, $search_sport);
// }
// }
//
// return response($result, 200);
// }
function AddSportCheck(Request $request)
{
$Patient = Auth::user()->makeHidden(['id']);
$error = Validator::make($request->all(), [
'id' => 'required|numeric|max:10000|min:1',
'check' => 'required|numeric|max:2|min:1',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
if ($Patient != null) {
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
$SportForDay = SportForDay::where('id', $request->id)->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
$SFD = $SportForDay;
if ($SportForDay->finish == 0) {
if ($request->check == 1) {
$SFD->finish = $request->check;
$SFD->update();
return response(['message' => 'Упражнение выполнено'], 200);
} else if ($request->check == 2) {
$SFD->finish = $request->check;
$SFD->update();
return response(['message' => 'Упражнение пропущено'], 200);
} else {
return response(['message' => 'Ошибка 124'], 200);
}
} else {
return response(['message' => 'Упражнение уже было пройдено'], 200);
}
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу чтобы он добавил вам курс'], 401);
}
} else {
return response(['message' => 'Такого пациента нету'], 401);
}
}
}
function ProgressPatientCourses()
{
$Patient = Auth::user()->makeHidden(['id']);
if ($Patient != null) {
if ($Patient->id_sport_patient != null && $Patient->finished == 0) {
$SportForDay = SportForDay::select('day')
->Count('day')
->where('id_patient', $Patient->id)
->where('id_sport_patient', $Patient->id_sport_patient)
->orderBy('day', 'ASC')
->groupBy('day')
->get();
$result = [];
$result1 = [];
$number = 0;
for ($i = 0; $i != Count($SportForDay); $i++) {
$SportForDayCheck = SportForDay::where('day', $SportForDay[$i]->day)->get();
$check_1 = 0;
$check_0 = 0;
$count_workout_max = 0;
$number++;
for ($j = 0; $j != Count($SportForDayCheck); $j++) {
$count_workout_max++;
if ($SportForDayCheck[$j]->finish == 1) {
$check_1++;
}
if ($SportForDayCheck[$j]->finish == 0) {
$check_0++;
}
}
$search_check = [
'number' => $number,
'id' => $SportForDayCheck[$i]->id,
'count_workout_max' => $count_workout_max,
'day' => $SportForDayCheck[$i]->day,
'count' => $check_1,
'finish' => $check_0
];
array_push($result, $search_check);
}
return response(['search_check_sport' => $result], 200);
} else {
return response(['message' => 'У вас нету курса, обратитесь к врачу чтобы он добавил вам курс'], 401);
}
} else {
return response(['message' => 'Такого пациента нету'], 401);
}
}
//Вывод новых необработанных заявлений
public function GetAppealsPatientNew()
{
$User = Auth::user();
if ($User != null) {
$Appeals = AppealsPatient::where('check', 0)->where('id_patient', $User->id)->first();
$result = [];
$number = 0;
if ($Appeals != null) {
$AppealsList = AppealsPatient::where('check', 0)->where('id_patient', $User->id)->get();
for ($i = 0; $i != Count($AppealsList); $i++) {
$Doctor = Doctor::where('id', $AppealsList[$i]->id_doctor)->first();
$number = $number + 1;
$search_check = [
'number' => $number,
'id' => $AppealsList[$i]->id,
'text' => $AppealsList[$i]->text,
'id_patient' => $AppealsList[$i]->id_patient,
'id_doctor' => $AppealsList[$i]->id_doctor,
'check' => $AppealsList[$i]->check,
'login' => $Doctor->login,
'created_at' => $AppealsList[$i]->created_at,
'updated_at' => $AppealsList[$i]->updated_at,
];
array_push($result, $search_check);
}
return response(['appeals_new' => $result], 200);
} else {
return response(['appeals_new' => null], 200);
}
} else {
return response(['message' => 'Ошибка 404'], 404);
}
}
//Вывод новых обработанных заявлений
public function GetAppealsPatientOld()
{
$User = Auth::user();
if ($User != null) {
$Appeals = AppealsPatient::where('check', 1)->where('id_patient', $User->id)->first();
$result = [];
$number = 0;
if ($Appeals != null) {
$AppealsList = AppealsPatient::where('check', 1)->where('id_patient', $User->id)->get();
for ($i = 0; $i != Count($AppealsList); $i++) {
$Doctor = Doctor::where('id', $AppealsList[$i]->id_doctor)->first();
$number = $number + 1;
$search_check = [
'number' => $number,
'id' => $AppealsList[$i]->id,
'text' => $AppealsList[$i]->text,
'id_patient' => $AppealsList[$i]->id_patient,
'id_doctor' => $AppealsList[$i]->id_doctor,
'check' => $AppealsList[$i]->check,
'login' => $Doctor->login,
'created_at' => $AppealsList[$i]->created_at,
'updated_at' => $AppealsList[$i]->updated_at,
];
array_push($result, $search_check);
}
return response(['appeals_old' => $result], 200);
} else {
return response(['appeals_old' => null], 200);
}
} else {
return response(['message' => 'Ошибка 404'], 404);
}
}
//Создание сообщения для пациента
public function AddMessagePatient(Request $request)
{
$User = Auth::user();
if ($User != null) {
$error = Validator::make($request->all(), [
'text' => 'required|string|max:1000|min:1',
]);
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Doctor = Doctor::where('id', $User->id_doctor)->first();
if ($Doctor != null) {
AppealsDoctor::create([
'text' => $request->text,
'id_patient' => $User->id,
'id_doctor' => $Doctor->id,
]);
return response(['message' => 'Сообщение отправлено'], 200);
} else {
return response(['message' => 'Ошибка, такого врача нету'], 400);
}
}
} else {
return response(['message' => 'Ошибка 404'], 404);
}
}
//Создание сообщения для пациента
public function UpdateMessagePatient(Request $request)
{
$User = Auth::user();
if ($User != null) {
$error = Validator::make($request->all(), [
'id' => 'required|numeric|max:10000|min:1',
]);//1024
if ($error->fails()) {
return response(['error' => ['code' => 400, 'message' => 'Validation error', 'errors' => $error->errors()]], 400);
} else {
$Patient = Patient::where('id', $User->id)->first();
$Doctor = Doctor::where('id', $Patient->id_doctor)->first();
if ($Doctor != null) {
$AppealsDoctor = AppealsPatient::where('id', $request->id)->where('check', 0)->first();
if ($AppealsDoctor != null) {
if ($AppealsDoctor->check == 0) {
$AP = $AppealsDoctor;
$AP->check = 1;
$AP->update();
return response(['message' => 'Подтверждено'], 200);
} else {
return response(['message' => 'Данное сообщение уже отмечено'], 200);
}
} else {
return response(['message' => 'Такого сообщения нету'], 200);
}
} else {
return response(['message' => 'Ошибка, такого доктора нету'], 400);
}
}
} else {
return response(['message' => 'Ошибка 404'], 404);
}
}
//Вывод дня окончания паузы
function getDatePause()
{
$User = Auth::user();
if ($User != null) {
$Patient = Patient::where('id', $User->id)->first();
if ($Patient != null) {
return response(['date_pause' => $Patient->pause], 200);
} else {
return response(['message' => 'Ошибка, такого пациента нету'], 400);
}
} else {
return response(['message' => 'Ошибка 404'], 404);
}
}
//Вывод дня окончания блока
function getDateBlock()
{
$User = Auth::user();
if ($User != null) {
$Patient = Patient::where('id', $User->id)->first();
if ($Patient != null) {
return response(['date_pause' => $Patient->block], 200);
} else {
return response(['message' => 'Ошибка, такого пациента нету'], 400);
}
} else {
return response(['message' => 'Ошибка 404'], 404);
}
}
function dkkofskfkk()
{
$User = Auth::user();
$Patient = Patient::where('id', $User->id)->first();
$date = date("Y-m-d");
$SportPatient = SportPatient::where('id_patient', $Patient->id)->where('finished', 0)->first();
$SetsOfSportsActivities = SetsOfSportsActivities::where('id_sports_courses', $SportPatient->id_sports_courses)->where('day', 1)->first();
//$SetOfSportsExercises = SetOfSportsExercises::where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)->get();
$CoursesSportEdit = CoursesSportEdit::orderBy('id', 'ASC')->where('id_sport_patient', $Patient->id_sport_patient)->first();
if ($CoursesSportEdit != null) {
$SetOfSportsExercises = SetOfSportsExercises::orderBy('id', 'ASC')
->join('courses_sport_edit', 'courses_sport_edit.id_sports_tasks', '!=', 'set_of_sports_exercises.id_sports_tasks')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$result = [];
$number = 0;
for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
$number++;
$search_sport = [
'number' => $number,
'id' => $SetOfSportsExercises[$i]->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sets_of_sports_activities' => $SetOfSportsExercises[$i]->id_sets_of_sports_activities,
'created_at' => $SetOfSportsExercises[$i]->created_at,
'updated_at' => $SetOfSportsExercises[$i]->updated_at,
];
array_push($result, $search_sport);
}
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
return response(['message' => $result], 200);
} else {
$SetOfSportsExercises = SetOfSportsExercises::orderBy('id', 'ASC')
->select('set_of_sports_exercises.id', 'set_of_sports_exercises.number', 'set_of_sports_exercises.id_sports_tasks', 'set_of_sports_exercises.id_sets_of_sports_activities', 'set_of_sports_exercises.created_at', 'set_of_sports_exercises.updated_at')
->distinct()
//->where('sport_patient.id', $Patient->id_sport_patient)
->where('id_sets_of_sports_activities', $SetsOfSportsActivities->id)
->get();
$result = [];
$number = 0;
for ($i = 0; $i != Count($SetOfSportsExercises); $i++) {
$number++;
$search_sport = [
'number' => $number,
'id' => $SetOfSportsExercises[$i]->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sets_of_sports_activities' => $SetOfSportsExercises[$i]->id_sets_of_sports_activities,
'created_at' => $SetOfSportsExercises[$i]->created_at,
'updated_at' => $SetOfSportsExercises[$i]->updated_at,
];
array_push($result, $search_sport);
}
$article = uniqid();
//Заполняем цикл
for ($i = 0; $i < Count($SetOfSportsExercises); $i++) {
SportForDay::create([
'article' => $article,
'day' => $date,
'id_patient' => $Patient->id,
'id_sports_tasks' => $SetOfSportsExercises[$i]->id_sports_tasks,
'id_sport_patient' => $Patient->id_sport_patient,
]);
}
return response(['message' => $result], 200);
}
// $SportForDay = SportForDay::where('day', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
//
// $CalendarDays = CalendarDays::where('date', date("Y-m-d"))->where('id_patient', $Patient->id)->where('id_sport_patient', $Patient->id_sport_patient)->first();
// $CD = $CalendarDays;
// $CD->article_sport_for_day = $SportForDay->article;
// $CD->count_workout_max = count($SetOfSportsExercises);
// $CD->update();
return response(['message' => $SetOfSportsExercises], 200);
}
//Провверка на то есть ли анкета ДО
function LookBefore()
{
$User = Auth::user();
$Patient = Patient::where('id', $User->id)->first();
$date = date("Y-m-d");
$BeforeQuestion = BeforeQuestionnaire::where('id_sport_patient',$Patient->id_sport_patient)->where('date',$date)->first();
if($BeforeQuestion!=null){
return response(['before_look' => 1], 200);
}
else{
return response(['before_look' => 2], 200);
}
}
//Провверка на то есть ли анкета ПОСЛЕ
function LookAfter()
{
$User = Auth::user();
$Patient = Patient::where('id', $User->id)->first();
$date = date("Y-m-d");
$AfterQuestion = AfterQuestionnaire::where('id_sport_patient',$Patient->id_sport_patient)->where('date',$date)->first();
if($AfterQuestion!=null){
return response(['after_look' => 1], 200);
}
else{
return response(['after_look' => 2], 200);
}
}
//Вывод календаря для пациента
function GetCalendare(){
$User = Auth::user();
$Patient = Patient::where('id', $User->id)->first();
$date = date("Y-m-d");
if($Patient!=null){
if($Patient->id_sport_patient!=null){
$Calendare = CalendarDays::where('id_sport_patient',$Patient->id_sport_patient)->where('id_patient',$Patient->id)->distinct()->first();
if($Calendare!=null){
$Calendare_list = CalendarDays::where('id_sport_patient',$Patient->id_sport_patient)->where('id_patient',$Patient->id)->orderBy('day','ASC')->distinct()->get();
return response(['calendare_day' => $Calendare_list], 200);
}
else{
return response(['message' => 'Таких данных нету'], 400);
}
}
else{
return response(['message' => 'Курса у пациента нету'], 400);
}
}
else{
return response(['message' => 'Такого пациента нету'], 400);
}
}
}