ApiJ/app/Http/Controllers/PatientController.php

2243 lines
147 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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);
}
}
}