| Server IP : 104.21.26.206 / 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/Order/ |
Upload File : |
<?php
namespace App\Http\Controllers\Backend\Order;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Order;
class MergeController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('layouts.backend.orders.merge');
}
/**
* 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)
{
$request->validate([
'order_1' => 'required',
'order_2' => 'required|different:order_1',
],
[
'required' => 'Задължително поле.',
'different' => 'Полетата трябва да са с различни стойности.',
]);
$order_1 = Order::find($request->input('order_1'));
$order_2 = Order::find($request->input('order_2'));
if (is_null($order_1)) {
return redirect()->back()->with('danger', '<i class="fas fa-exclamation-triangle"></i> Основната поръчка НЕ съществува.');
}
if (is_null($order_2)) {
return redirect()->back()->with('danger', '<i class="fas fa-exclamation-triangle"></i> Втората поръчка НЕ съществува.');
}
if ($order_1->user_id != $order_2->user_id) {
return redirect()->back()->with('danger', '<i class="fas fa-exclamation-triangle"></i> Не може да обединявате поръчки от два различни клиента!');
}
if ($order_1->status > 4) {
return redirect()->back()->with('danger', '<i class="fas fa-exclamation-triangle"></i> Основната поръчка трябва да е със статуси: <strong>Нова</strong>, <strong>Обработва се</strong>, <strong>Потвърдена</strong> или <strong>Изчакваща</strong>');
}
if ($order_2->status > 4) {
return redirect()->back()->with('danger', '<i class="fas fa-exclamation-triangle"></i> Втората поръчка трябва да е със статуси: <strong>Нова</strong>, <strong>Обработва се</strong>, <strong>Потвърдена</strong> или <strong>Изчакваща</strong>');
}
if (!$order_1->shipment?->shipment_id && !$order_2->shipment?->shipment_id) {
// dd('Обединяваме');
foreach ($order_2->products as $product) {
$order_product = $product->replicate();
$order_product->order_id = $order_1->id;
$order_product->save();
$product->forceDelete();
}
$order_2->delete();
return redirect()->back()->with('success', '<i class="fas fa-check"></i> Поръчките са обединени успешно.');
}else{
// dd('Нищо не правим');
return redirect()->back()->with('danger', '<i class="fas fa-exclamation-triangle"></i> Поръчките не може да бъдат обединени, защото една от тях или и двете имат създадени товарителници.');
}
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* 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)
{
//
}
}