コード例 #1
0
 public function changeStatus($statusId, $orderId, $is_service = 0)
 {
     $response = 0;
     try {
         DB::transaction(function () use($statusId, $orderId, &$response, $is_service) {
             $messageData = [];
             $email = '';
             if ($is_service) {
                 $order = ServiceOrder::with('user', 'service_status')->where('id', $orderId)->first();
                 $messageData['status_was'] = $order->service_status->status;
                 $order->service_status_id = $statusId;
                 $order->save();
                 $response = 1;
                 $email = $order->user->email;
                 $messageData['user'] = $order->user->name;
                 $messageData['type'] = 'прочие услуги';
                 $messageData['order_number'] = $order->id;
                 $messageData['status_now'] = ServiceStatus::find($statusId)->status;
             } else {
                 if ($statusId == Order::CANCELED) {
                     $order = Order::with('products_in_order.price', 'user', 'status')->where('id', $orderId)->first();
                     foreach ($order->products_in_order as $product) {
                         $product->price->amount += $product->product_amount;
                         $product->price->save();
                     }
                     //                    $response = Order::CANCELED;
                 } else {
                     $order = Order::with('user', 'status')->where('id', $orderId)->first();
                     //                    if($statusId == Order::COMPLETED) {
                     //                        $response = Order::COMPLETED;
                     //                    } else {
                     //                        $response = 1;
                     //                    }
                 }
                 $messageData['status_was'] = $order->status->status;
                 $order->status_id = $statusId;
                 $order->save();
                 $response = 1;
                 $email = $order->user->email;
                 $messageData['user'] = $order->user->name;
                 $messageData['type'] = 'запчасти грузовых вагонов';
                 $messageData['order_number'] = $order->id;
                 $messageData['status_now'] = Status::find($statusId)->status;
             }
             Mail::send('emails.statusDone', $messageData, function ($message) use($email) {
                 $message->to($email)->subject('Смена статуса заказа');
             });
         });
     } catch (Exception $e) {
         $response = 0;
     }
     //       dd($response);
     echo $response;
 }