From 6450b683d1a66fdf0afa4dcfee87783458888237 Mon Sep 17 00:00:00 2001 From: Nurmuhammet Allanov Date: Mon, 12 May 2025 19:37:09 +0500 Subject: [PATCH] notify users --- app/Nova/Resources/Order/Loan/LoanOrder.php | 24 ++++++- .../Resources/Order/Loan/LoanOrderMobile.php | 67 +++++++++++++++++++ .../Loan/Remaining/NovaLoanRemainingOrder.php | 2 +- app/Repos/Order/Loan/LoanOrderRepo.php | 11 +-- 4 files changed, 96 insertions(+), 8 deletions(-) diff --git a/app/Nova/Resources/Order/Loan/LoanOrder.php b/app/Nova/Resources/Order/Loan/LoanOrder.php index c02e6b7..7ad8340 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrder.php +++ b/app/Nova/Resources/Order/Loan/LoanOrder.php @@ -136,9 +136,19 @@ class LoanOrder extends Resource */ public static function afterCreate(NovaRequest $request, Model $model): void { + /** @var LoanOrderModel */ + $loanOrder = $model; + if ($request->user()->doesntHaveRoles()) { - LoanOrderRepo::notifyUser($request, $model, __('Loan order created'), 'success', 'pencil'); + LoanOrderRepo::notifyUser($request, $loanOrder, __('Loan order created'), 'success', 'pencil'); } + + LoanOrderRepo::notifyOperators( + loanOrder: $loanOrder, + message: __('Loan order created'), + type: 'success', + icon: 'pencil' + ); } /** @@ -157,7 +167,12 @@ class LoanOrder extends Resource LoanOrderRepo::notifyUser($request, $loanOrder, __('Loan order updated'), 'info', 'pencil-alt'); } - LoanOrderRepo::notifyOperators($loanOrder); + LoanOrderRepo::notifyOperators( + loanOrder: $loanOrder, + message: __('Loan order updated'), + type: 'info', + icon: 'pencil-alt' + ); } /** @@ -169,8 +184,11 @@ class LoanOrder extends Resource */ public static function afterDelete(NovaRequest $request, Model $model): void { + /** @var LoanOrderModel */ + $loanOrder = $model; + if ($request->user()->doesntHaveRoles()) { - LoanOrderRepo::notifyUser($request, $model, __('Loan order deleted'), 'error', 'trash'); + LoanOrderRepo::notifyUser($request, $loanOrder, __('Loan order deleted'), 'error', 'trash'); } } diff --git a/app/Nova/Resources/Order/Loan/LoanOrderMobile.php b/app/Nova/Resources/Order/Loan/LoanOrderMobile.php index 0770e50..13f6561 100644 --- a/app/Nova/Resources/Order/Loan/LoanOrderMobile.php +++ b/app/Nova/Resources/Order/Loan/LoanOrderMobile.php @@ -130,6 +130,73 @@ class LoanOrderMobile extends Resource return $query->where('user_id', $request->user()->id); } + /** + * Register a callback to be called after the resource is created. + * + * @param \Laravel\Nova\Http\Requests\NovaRequest $request + * @param \Illuminate\Database\Eloquent\Model $model + * @return void + */ + public static function afterCreate(NovaRequest $request, Model $model): void + { + /** @var LoanOrderModel */ + $loanOrder = $model; + + if ($request->user()->doesntHaveRoles()) { + LoanOrderRepo::notifyUser($request, $loanOrder, __('Loan order created'), 'success', 'pencil', true); + } + + LoanOrderRepo::notifyOperators( + loanOrder: $loanOrder, + message: __('Loan order created'), + type: 'success', + icon: 'pencil', + mobile: true, + ); + } + + /** + * Register a callback to be called after the resource is updated. + * + * @param \Laravel\Nova\Http\Requests\NovaRequest $request + * @param \Illuminate\Database\Eloquent\Model $model + * @return void + */ + public static function afterUpdate(NovaRequest $request, Model $model): void + { + /** @var LoanOrderModel */ + $loanOrder = $model; + + if ($request->user()->doesntHaveRoles()) { + LoanOrderRepo::notifyUser($request, $loanOrder, __('Loan order updated'), 'info', 'pencil-alt', true); + } + + LoanOrderRepo::notifyOperators( + loanOrder: $loanOrder, + message: __('Loan order updated'), + type: 'info', + icon: 'pencil-alt', + mobile: true, + ); + } + + /** + * Register a callback to be called after the resource is deleted. + * + * @param \Laravel\Nova\Http\Requests\NovaRequest $request + * @param \Illuminate\Database\Eloquent\Model $model + * @return void + */ + public static function afterDelete(NovaRequest $request, Model $model): void + { + /** @var LoanOrderModel */ + $loanOrder = $model; + + if ($request->user()->doesntHaveRoles()) { + LoanOrderRepo::notifyUser($request, $loanOrder, __('Loan order deleted'), 'error', 'trash', true); + } + } + /** * Get the fields for index. * diff --git a/app/Nova/Resources/Order/Loan/Remaining/NovaLoanRemainingOrder.php b/app/Nova/Resources/Order/Loan/Remaining/NovaLoanRemainingOrder.php index 00cfafd..56f63a3 100644 --- a/app/Nova/Resources/Order/Loan/Remaining/NovaLoanRemainingOrder.php +++ b/app/Nova/Resources/Order/Loan/Remaining/NovaLoanRemainingOrder.php @@ -36,7 +36,7 @@ class NovaLoanRemainingOrder extends Resource * @var array */ public static $search = [ - 'account_number', + 'account_number', 'passport_id', ]; /** diff --git a/app/Repos/Order/Loan/LoanOrderRepo.php b/app/Repos/Order/Loan/LoanOrderRepo.php index 60d2835..fbb7bf7 100644 --- a/app/Repos/Order/Loan/LoanOrderRepo.php +++ b/app/Repos/Order/Loan/LoanOrderRepo.php @@ -5,6 +5,7 @@ namespace App\Repos\Order\Loan; use App\Models\Branch\Branch; use App\Models\Order\Loan\LoanOrder; use App\Nova\Resources\Order\Loan\LoanOrder as NovaLoanOrder; +use App\Nova\Resources\Order\Loan\LoanOrderMobile; use App\Repos\Order\OrderRepo; use Closure; use Illuminate\Database\Eloquent\Model; @@ -69,10 +70,11 @@ class LoanOrderRepo string $message, string $type = 'info', string $icon = 'eye', + bool $mobile = false, ): void { $id = $loanOrder->id; $nova_path = config('nova.path'); - $loan_order_path = NovaLoanOrder::uriKey(); + $loan_order_path = $mobile ? LoanOrderMobile::uriKey() : NovaLoanOrder::uriKey(); $url = url($nova_path.'/resources/'.$loan_order_path.'/'.$id); $request->user()->notifyNow( @@ -89,11 +91,12 @@ class LoanOrderRepo string $message, string $type = 'info', string $icon = 'eye', + bool $mobile = false ): void { $id = $loanOrder->id; $nova_path = config('nova.path'); - $loan_order_path = NovaLoanOrder::uriKey(); - $url = url($nova_path.'/resources/'.$loan_order_path.'/'.$id); + $loan_order_path = $mobile ? LoanOrderMobile::uriKey() : NovaLoanOrder::uriKey(); + $url = URL::remote(url($nova_path.'/resources/'.$loan_order_path.'/'.$id)); // Get users related with branch... $branch_users = DB::table('branch_user')->where('branch_id', $loanOrder->branch_id)->pluck('user_id'); @@ -116,7 +119,7 @@ class LoanOrderRepo 'message' => $message, 'actionText' => 'Görmek', 'actionUrl' => [ - 'url' => URL::remote($url), + 'url' => $url, 'remote' => true, ], 'openInNewTab' => false,