From 437cf39bda9adddf44983fc467f177bda7e349bb Mon Sep 17 00:00:00 2001 From: merdan Date: Wed, 6 Jul 2022 16:45:35 +0500 Subject: [PATCH] notifications finish --- .../Sarga/API/Http/Controllers/Orders.php | 3 + .../Admin/src/Events/OrderChangedEvent.php | 59 +++++++++++++++++++ .../Admin/src/Listeners/Notification.php | 20 +++++++ packages/Sarga/Admin/src/Listeners/Order.php | 2 +- .../src/Providers/EventServiceProvider.php | 2 + .../views/notifications/index.blade.php | 14 +++++ 6 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 packages/Sarga/Admin/src/Events/OrderChangedEvent.php create mode 100644 packages/Sarga/Admin/src/Listeners/Notification.php diff --git a/packages/Sarga/API/Http/Controllers/Orders.php b/packages/Sarga/API/Http/Controllers/Orders.php index 3909af16e..5b50f4929 100644 --- a/packages/Sarga/API/Http/Controllers/Orders.php +++ b/packages/Sarga/API/Http/Controllers/Orders.php @@ -2,6 +2,7 @@ namespace Sarga\API\Http\Controllers; +use Illuminate\Support\Facades\Event; use Sarga\API\Http\Resources\Customer\OrderResource; use Sarga\Shop\Repositories\OrderItemRepository; use Sarga\Shop\Repositories\OrderRepository; @@ -41,6 +42,8 @@ class Orders extends OrderController $order = $this->orderRepository->updateOrderStatus($order); $order = $this->orderRepository->calculateTotals($order); + Event::dispatch('sales.order.update-status.item', $order); + return response(['data'=>[ 'order' => new OrderResource($order)], 'success' => true, diff --git a/packages/Sarga/Admin/src/Events/OrderChangedEvent.php b/packages/Sarga/Admin/src/Events/OrderChangedEvent.php new file mode 100644 index 000000000..3f930797e --- /dev/null +++ b/packages/Sarga/Admin/src/Events/OrderChangedEvent.php @@ -0,0 +1,59 @@ +data; + } + + public function broadcastOn() + { + return new Channel('notification'); + } + + /** + * Seperate queue. + * + * Command: `php artisan queue:work --queue=broadcastable` + * + * @return string + */ + public function broadcastQueue() + { + return 'broadcastable'; + } + + /** + * Get the channels the event should broadcast as. + * + * @return string + */ + public function broadcastAs() + { + return 'update-notification'; + } +} \ No newline at end of file diff --git a/packages/Sarga/Admin/src/Listeners/Notification.php b/packages/Sarga/Admin/src/Listeners/Notification.php new file mode 100644 index 000000000..ab75478ab --- /dev/null +++ b/packages/Sarga/Admin/src/Listeners/Notification.php @@ -0,0 +1,20 @@ +notificationRepository->create(['type' => 'order', 'order_id' => $order->id]); + $orderArray = [ + 'id' => $order->id, + 'status' => 'item_cancelled', + ]; + event(new OrderChangedEvent); + } +} \ No newline at end of file diff --git a/packages/Sarga/Admin/src/Listeners/Order.php b/packages/Sarga/Admin/src/Listeners/Order.php index 77e7cdea9..2a6c784b9 100644 --- a/packages/Sarga/Admin/src/Listeners/Order.php +++ b/packages/Sarga/Admin/src/Listeners/Order.php @@ -1,6 +1,6 @@ addTemplate('sarga_admin::catalog.categories.scrap.create'); diff --git a/packages/Sarga/Admin/src/Resources/views/notifications/index.blade.php b/packages/Sarga/Admin/src/Resources/views/notifications/index.blade.php index 949768ae1..47e00292a 100644 --- a/packages/Sarga/Admin/src/Resources/views/notifications/index.blade.php +++ b/packages/Sarga/Admin/src/Resources/views/notifications/index.blade.php @@ -8,6 +8,7 @@ $orderStatus = [ 'all' => trans('admin::app.notification.status.all'), 'pending' => trans('admin::app.notification.status.pending'), + 'item_cancelled' => trans('admin::app.notification.status.pending'), 'canceled'=> trans('admin::app.notification.status.canceled'), 'closed' => trans('admin::app.notification.status.closed'), 'completed'=> trans('admin::app.notification.status.completed'), @@ -16,6 +17,7 @@ $orderStatusMessages = [ 'pending' => trans('admin::app.notification.order-status-messages.pending'), + 'item_cancelled' => trans('admin::app.notification.order-status-messages.pending'), 'canceled'=> trans('admin::app.notification.order-status-messages.canceled'), 'closed' => trans('admin::app.notification.order-status-messages.closed'), 'completed'=> trans('admin::app.notification.order-status-messages.completed'), @@ -47,6 +49,14 @@ .page-item .pagination-page-nav .active .page-link { color:#fff !important; } + .notif li .item_cancelled { + background-color: darkgreen; + } + .item_cancelled { + background-image: url(../images/notification-checked.svg); + width: 30px; + height: 30px; + } @endpush @@ -140,6 +150,10 @@ icon: 'pending-icon', message: 'Order Pending' }, + item_cancelled : { + icon: 'pending-icon', + message: 'Order Changed' + }, processing : { icon: 'processing-icon', message: 'Order Processing'