Edit File: StoreDoneOrderNotify.php
<?php namespace App\Jobs; use App\Models\Setting; use App\Traits\Firebase; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use App; use URL; use Auth; use App\Notifications\NotifyUser as Notify ; class StoreDoneOrderNotify implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; use Firebase; /** * Create a new job instance. * * @return void */ protected $users, $data, $order; public function __construct($users, $order , $status = 'prepared') { $settings = Setting::all()->pluck('value', 'key'); $lang=App() -> getLocale(); $user = Auth::user(); $order = $order; if($lang=='en'){ $name=$user->store->name_en; }else{ $name=$user->store->name_ar; } $message_ar = 'قام مقدم الخدمة بتجهيز طلبك'; $message_en = 'Service provider made your order ready!'; if ($status == 'delivered'){ $message_ar = 'قام مقدم الخدمة بتسليم طلبك للمندوب'; $message_en = 'Service provider deliver order to delegate!'; } $this->data = [ 'sender' => $user->id, 'sender_name' => $name, 'sender_avatar' => URL::to('assets/uploads/stores/'.$user->store->icon), 'title_ar' => $settings['site_name'], 'title_en' => $settings['site_name'], 'message_ar' => $message_ar, 'message_en' => $message_en, 'type' => 'order_is_ready', 'order_id' => $order->id, 'order_owner' => $order->user?->id, 'order_type' => $order->type, 'order_status' => $order->statusForUser(), ]; $this->users = $users; } /** * Execute the job. * * @return void */ public function handle() { $user = $this->users; $android_tokens = []; $ios_tokens = []; if ($user->devices->count() > 0) { foreach ($user->devices()->where('device_type' , 'android')->get() as $device) { if($device->user->new_orders_notify=='true') { $android_tokens[] = $device->device_id; } } foreach ($user->devices()->where('device_type' , 'ios')->get() as $device) { if($device->user->new_orders_notify=='true') { $ios_tokens[] = $device->device_id; } } } $user->notify(new Notify($this->data)); $this->sendNotification($ios_tokens , $android_tokens , $this->data); } }
Back to File Manager