55 lines
1.8 KiB
PHP
55 lines
1.8 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
namespace App\Modules\Inventory\Notifications;
|
|||
|
|
|
|||
|
|
use Illuminate\Bus\Queueable;
|
|||
|
|
use Illuminate\Notifications\Notification;
|
|||
|
|
use App\Modules\Inventory\Models\StoreRequisition;
|
|||
|
|
|
|||
|
|
class StoreRequisitionNotification extends Notification
|
|||
|
|
{
|
|||
|
|
use Queueable;
|
|||
|
|
|
|||
|
|
protected StoreRequisition $requisition;
|
|||
|
|
protected string $action;
|
|||
|
|
protected string $actorName;
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 建立通知實例
|
|||
|
|
*
|
|||
|
|
* @param StoreRequisition $requisition 叫貨單
|
|||
|
|
* @param string $action 操作類型:submitted / approved / rejected
|
|||
|
|
* @param string $actorName 操作者名稱
|
|||
|
|
*/
|
|||
|
|
public function __construct(StoreRequisition $requisition, string $action, string $actorName)
|
|||
|
|
{
|
|||
|
|
$this->requisition = $requisition;
|
|||
|
|
$this->action = $action;
|
|||
|
|
$this->actorName = $actorName;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function via(object $notifiable): array
|
|||
|
|
{
|
|||
|
|
return ['database'];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public function toArray(object $notifiable): array
|
|||
|
|
{
|
|||
|
|
$messages = [
|
|||
|
|
'submitted' => "{$this->actorName} 提交了叫貨申請:{$this->requisition->doc_no}",
|
|||
|
|
'approved' => "{$this->actorName} 核准了叫貨申請:{$this->requisition->doc_no}",
|
|||
|
|
'rejected' => "{$this->actorName} 駁回了叫貨申請:{$this->requisition->doc_no}",
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
return [
|
|||
|
|
'type' => 'store_requisition',
|
|||
|
|
'action' => $this->action,
|
|||
|
|
'store_requisition_id' => $this->requisition->id,
|
|||
|
|
'doc_no' => $this->requisition->doc_no,
|
|||
|
|
'actor_name' => $this->actorName,
|
|||
|
|
'message' => $messages[$this->action] ?? "{$this->actorName} 操作了叫貨申請:{$this->requisition->doc_no}",
|
|||
|
|
'link' => route('store-requisitions.show', $this->requisition->id),
|
|||
|
|
];
|
|||
|
|
}
|
|||
|
|
}
|