| Server IP : 172.67.168.138 / Your IP : 216.73.216.227 [ Web Server : Apache System : Linux frog 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web13 ( 5017) PHP Version : 8.3.31 Disable Function : NONE Domains : 41 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/clients/client12/web13/web/ahelos/app/Http/Controllers/Backend/ |
Upload File : |
<?php
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\{Order, OrderProduct, Product};
use Auth;
class OrderController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$orders = Order::filter(request(['status', 'keyword', 'range']))
->with('invoice')
->with('products')
->latest()
->paginate(20);
return view('layouts.backend.orders.index', compact('orders'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
//
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$order = Order::where('id', $id)
->with('invoice')
->with('address')
->with('products')
->with('notes')
->first();
return view('layouts.backend.orders.show', compact('order'));
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
public function changeOrderStatus(Request $request, $id) {
$data = $request->validate([
'status' => 'required'
],
[
'required' => 'Задължително поле'
]);
$order = Order::findOrFail($id);
$order->update($data);
return redirect()->back()->with('success', 'Статуса на тази поръчка е сменен успешно.');
}
public function updateOrderInfo(Request $request, $id) {
// $request->validate([
// 'fname' => 'required',
// 'lname' => 'required',
// 'email' => 'required',
// 'phone' => 'required',
// 'city' => 'required',
// 'zip' => 'required',
// ],
// [
// 'required' => 'Задължително поле'
// ]);
$order = Order::findOrFail($id);
$order->update([
'fname' => $request->input('fname'),
'lname' => $request->input('lname'),
'email' => $request->input('email'),
'phone' => $request->input('phone')
]);
$data_address = [
'city' => $request->input('city'),
'zip' => $request->input('zip'),
];
if ($request->shipping_to) {
$data_address['shipping_to'] = $request->input('shipping_to');
}
if ($request->courier) {
$data_address['courier'] = $request->input('courier');
}
if ($request->shipping_to == 1) {
$data_address['address'] = $request->input('address');
$data_address['no'] = $request->no;
$data_address['block'] = $request->block;
$data_address['entrance'] = $request->entrance;
$data_address['floor'] = $request->floor;
$data_address['apartment_no'] = $request->apartment_no;
}
elseif ($request->shipping_to == 2) {
$data_address['office'] = $request->input('office');
}
$order->address()->update($data_address);
return redirect()->back()->with('success', 'Данните на поръчката са обновени.');
}
public function updateOrderNote(Request $request, $id) {
$order = Order::findOrFail($id);
$order->update(['note' => $request->input('note')]);
return redirect()->back()->with('success', 'Бележката е обновена.');
}
public function updateShippingInfo(Request $request, $id) {
$request->validate([
'city' => 'required',
'zip' => 'required',
'contents' => 'required',
'packages' => 'required',
'amount' => 'required',
],
[
'required' => 'Задилжително поле.'
]);
// $data_shipping = [
//
// ];
//
// $order = Order::findOrFail($id);
}
public function productRemoveOrder($order_id, $order_product_id){
OrderProduct::where('order_id',$order_id)->where('id', $order_product_id)->delete();
return redirect()->back()->with('order_product', 'Продуктът е изтрит от поръчката.');
}
public function updateShippingPrice(Request $request, $id){
$data = $request->validate([
'shipping' =>'numeric'
],
[
'numreic' => 'Доставката трябва да е число.'
]);
$order = Order::findOrFail($id);
$order->update($data);
return redirect()->back()->with('order_product', 'Доставката е обновена.');
}
public function orderSearchProduct(Request $request, $order_id){
$product = Product::filter(request(['keyword']))
->with('category')
->with('subcategory')
->with('brand')
->with('filters')
->withWhereHas('translation', fn($q) => $q->where('language', 'bg'))
->first();
return view('layouts.backend.orders.search_product', compact('product', 'order_id'));
}
public function addOrderProduct(Request $request, $order_id){
$product_id = $request->input('product_id');
$order = Order::find($order_id);
$product = Product::find($product_id);
$data = [
'product_id' => $product_id,
'weight' => $product->weight,
'qty' => 1,
'price' => $product->last_price,
'price_old' => $product->price_old
];
$order->products()->create($data);
return redirect()->back()->with('order_product', 'Продуктът е добавен към поръчката');
}
public function addNote(Request $request, $id){
$request->validate([
'note' => 'required',
],
[
'required' => 'Задъжлително поле'
]);
$order = Order::where('id', $id)->first();
$order->notes()->create(['admin_id' => Auth::guard('admin')->user()->id, 'note' => $request->note]);
return redirect()->back()->with('success', 'Добавихте бележка към тази поръчка.');
}
}