Файловый менеджер - Редактировать - /home/clickysoft/public_html/calvary-p2.clickysoft.net/app/Http/Controllers/Front/HomepageController.php
Назад
<?php namespace App\Http\Controllers\Front; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\UserForgotPasswordRequest; use App\Http\Requests\Front\LoginRequest; use App\Http\Requests\Front\ResetPasswordRequest; use App\Http\Requests\Front\SignUpRequest; use App\Interfaces\Front\HomepageRepositoryInterface; use App\Models\EventOrder; use App\Models\Grade; use App\Models\HotLunch; use App\Models\LunchOrder; use App\Models\LunchOrderChildItem; use App\Models\ShirtSize; use App\Models\SiteSetting; use App\Models\VendorItem; use Illuminate\Http\Request; use Illuminate\Support\Facades\Session; class HomepageController extends Controller { private HomepageRepositoryInterface $homepageRepository; public function __construct(HomepageRepositoryInterface $homepageRepository) { $this->homepageRepository = $homepageRepository; } public function index() { return view('front.home'); } public function login() { if (auth()->check()) return redirect()->route('home'); return view('front.authentication.login'); } public function loginData(LoginRequest $request) { return $this->homepageRepository->loginAttempt($request); } public function signUp() { if (auth()->check()) return redirect()->route('home'); return view('front.authentication.sign-up'); } public function signUpData(SignUpRequest $request) { return $this->homepageRepository->signUpAttempt($request); } public function forgotPassword() { return view('front.authentication.forgot-password'); } public function verifyEmail($token) { return $this->homepageRepository->verifyUserAttempt($token); } public function forgotPasswordData(UserForgotPasswordRequest $request) { return $this->homepageRepository->submitForgotPasswordReq($request); } public function resetPassword($token) { $user = $this->homepageRepository->checkResetToken($token); if (!empty($user)) { return view('front.authentication.reset-password', compact('user')); } abort(404); } public function resetPasswordData(ResetPasswordRequest $request, $token) { return $this->homepageRepository->resetPasswordReq($token, $request); } public function profile() { return view('front.profile', ['user' => auth()->user()]); } public function profileEdit() { return view('front.profile-edit', ['user' => auth()->user()]); } public function profileEditData(Request $request) { $request->validate([ 'first_name' => 'required|string|max:20', 'last_name' => 'required|string|max:20', 'phone_number' => 'sometimes|max:20', ]); $user = auth()->user(); $user->first_name = $request->first_name; $user->last_name = $request->last_name; $user->phone_number = $request->phone_number; $user->save(); return redirect()->route('profile')->with(['success_msg' => 'Profile updated successfully.']); } public function passwordEdit() { return view('front.password-edit'); } public function passwordEditData(Request $request) { $request->validate([ 'password' => 'required|confirmed|min:8', ]); $user = auth()->user(); $user->password = $request->password; $user->save(); return redirect()->route('profile')->with(['success_msg' => 'Password updated successfully.']); } public function hotLunchOrders() { $orders = LunchOrder::where('user_id', auth()->id()) ->completed() ->orderBy('id', 'DESC') ->get(); return view('front.layouts.dashboard.hot-lunch-orders', compact('orders')); } public function hotLunchOrdersDetails($orderId) { $order = LunchOrder::where('id', $orderId) ->completed() ->first(); if (!$order) abort(404); $grades = Grade::all(); $shirtSizes = ShirtSize::all(); return view('front.layouts.dashboard.hot-lunch-order-details', compact('order', 'grades', 'shirtSizes')); } public function hotLunchOrdersAgain($orderId) { $order = LunchOrder::find($orderId); if (!$order) { return redirect()->back()->with('error_msg', 'Order not found.'); } $now = now()->format('Y-m-d'); $hotLunch = HotLunch::where('reg_starts', '<=', $now) ->where('reg_ends', '>=', $now) ->where('status', 1) ->first(); if (!$hotLunch) { return redirect()->back()->with('error_msg', 'No lunch available at this time.'); } $siteSettings = SiteSetting::first(); $siblings = $this->getOrderSiblingData($order, $hotLunch, $siteSettings); $school_directory_quantity = $siblings['school_directory_quantity']; $school_directory_price = $siblings['school_directory_price']; unset($siblings['sibling_items_total']); unset($siblings['school_directory_quantity']); unset($siblings['school_directory_price']); unset($siblings['annual_graduation_contribution']); unset($siblings['community_service']); $annual_due_check = LunchOrder::where('user_id', \auth()->id())->whereYear('created_at', '=', now()->format('Y'))->first(); $data = [ 'hot_lunch_id' => $hotLunch->id, 'hot_lunch_half' => $hotLunch->lunch_half, 'annual_check' => (bool) $annual_due_check, 'siblings' => $siblings, ]; if ($hotLunch->lunch_half == 'first_half') { $data['school_directory_quantity'] = $school_directory_quantity; $data['school_directory_price'] = $school_directory_price; } Session::put('user_cart', $data); return redirect()->route('lunch.program'); } public function eventOrders() { $orders = EventOrder::where('user_id', auth()->id()) ->completed() ->orderBy('id', 'DESC') ->get(); return view('front.layouts.dashboard.event.index', compact('orders')); } private function getOrderSiblingData(LunchOrder $order, HotLunch $hot_lunch, SiteSetting $siteSetting) { $siblings_data = []; $sibling_items_total = $annual_graduation_contribution = $community_service = 0; foreach ($order->children as $orderChild) { $child = $orderChild->child; if ($child) { $items_total = 0; $siblings_data[$child->id] = [ 'user_id' => $orderChild->user_id, 'child_id' => $child->id, 'url_name' => $child->id, 'full_name' => $child->full_name, 'teacher_name' => $child->teacher?->full_name, 'school_id' => $child->grade->school->id, 'school_title' => $child->grade->school->id, 'grade_id' => $child->grade->id, 'grade_title' => $child->grade->title, 'hot_lunch_id' => $hot_lunch->id, ]; if ($hot_lunch->lunch_half == 'first_half') { $siblings_data[$child->id]['annual_graduation_contribution'] = (float) $orderChild->annual_graduation_contribution; $siblings_data[$child->id]['community_service'] = (float) $siteSetting->class_fund; $siblings_data[$child->id]['shirt_size'] = $orderChild->t_type; $items_total += $orderChild->annual_graduation_contribution + $siteSetting->class_fund; $sibling_items_total += $orderChild->annual_graduation_contribution + $siteSetting->class_fund; $annual_graduation_contribution += $orderChild->annual_graduation_contribution; $community_service += $siteSetting->class_fund; } else { $siblings_data[$child->id]['annual_graduation_contribution'] = 0; $siblings_data[$child->id]['community_service'] = 0; $siblings_data[$child->id]['shirt_size'] = null; } //Set order items $order_items = $temp_titles = []; $previous_items = LunchOrderChildItem::where(['order_id' => $order->id, 'child_id' => $orderChild->id])->get(); foreach ($previous_items as $previous_item) { $item_menu = $hot_lunch->hotLunchMenu() ->where('vendor_id', $previous_item->vendor_id) ->whereHas('items', function ($query) use ($previous_item) { $query->where('item_id', $previous_item->item_id); })->first(); if ($item_menu) { $explodedTitle = explode('-', $item_menu->title); $item = VendorItem::find($previous_item->item_id); $slot = trim(end($explodedTitle)); if (isset($temp_titles[$explodedTitle[0]]) && $temp_titles[$explodedTitle[0]] == 'A') { $slot = 'B'; } $order_items[] = [ "itemId" => $item->id, "slot" => $slot, "img" => $item?->firstImage(), "itemName" => $item->name, "price" => $item->price, "menuId" => $item_menu->id, "id" => $item_menu->title, "user_id" => $orderChild->user_id, "vendor_id" => $item->vendor_id, "hot_lunch_id" => $hot_lunch->id, "item_id" => $item->id, ]; $temp_titles[$explodedTitle[0]] = $slot; $items_total += $item->price; $sibling_items_total += $item->price; } } $siblings_data[$child->id]['items'] = $order_items; $siblings_data[$child->id]['child_total'] = $items_total; } } $siblings_data['sibling_items_total'] = $sibling_items_total; $siblings_data['school_directory_quantity'] = $order->school_directory_quantity; $siblings_data['school_directory_price'] = $order->school_directory_quantity * $siteSetting->school_directory; $siblings_data['annual_graduation_contribution'] = $annual_graduation_contribution; $siblings_data['community_service'] = $community_service; return $siblings_data; } public function eventOrdersDetails($orderId) { $order = EventOrder::where('id', $orderId) ->completed() ->first(); if (!$order) abort(404); return view('front.layouts.dashboard.event.detail', compact('order')); } public function logout() { return $this->homepageRepository->logout(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.29 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка