target = $params['target']; $this->item = $params['item']; $this->item_type = $params['item_type']; $this->item_quantity = $params['item_quantity']; $this->note = ''; $this->last_checkout = ''; $this->expected_checkin = ''; $this->requested_date = Helper::getFormattedDateObject($params['requested_date'], 'datetime', false); $this->settings = Setting::getSettings(); if (array_key_exists('note', $params)) { $this->note = $params['note']; } if ($this->item->last_checkout) { $this->last_checkout = Helper::getFormattedDateObject($this->item->last_checkout, 'date', false); } if ($this->item->expected_checkin) { $this->expected_checkin = Helper::getFormattedDateObject($this->item->expected_checkin, 'date', false); } } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via() { $notifyBy = []; if (Setting::getSettings()->slack_endpoint != '') { $notifyBy[] = 'slack'; } $notifyBy[] = 'mail'; return $notifyBy; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return \Illuminate\Notifications\Messages\MailMessage */ public function toMail() { $fields = []; // Check if the item has custom fields associated with it if (($this->item->model) && ($this->item->model->fieldset)) { $fields = $this->item->model->fieldset->fields; } $message = (new MailMessage)->markdown('notifications.markdown.asset-requested', [ 'item' => $this->item, 'note' => $this->note, 'requested_by' => $this->target, 'requested_date' => $this->requested_date, 'fields' => $fields, 'last_checkout' => $this->last_checkout, 'expected_checkin' => $this->expected_checkin, 'intro_text' => trans('mail.acceptance_asset_accepted'), 'qty' => $this->item_quantity, ]) ->subject(trans('mail.acceptance_asset_accepted')); return $message; } }