2017-09-14 22:21:00 +03:00
< ? php
namespace App\Notifications\Expense ;
use Illuminate\Notifications\Notification ;
use Illuminate\Notifications\Messages\MailMessage ;
2017-11-17 00:37:26 +03:00
class Bill extends Notification
2017-09-14 22:21:00 +03:00
{
2017-11-17 00:37:26 +03:00
/**
* The invoice model .
*
* @ var object
*/
2017-09-14 22:21:00 +03:00
public $bill ;
/**
* Create a notification instance .
*
* @ param object $bill
*/
public function __construct ( $bill )
{
$this -> queue = 'high' ;
$this -> delay = config ( 'queue.connections.database.delay' );
$this -> bill = $bill ;
}
/**
* Get the notification ' s channels .
*
* @ param mixed $notifiable
* @ return array | string
*/
public function via ( $notifiable )
{
return [ 'mail' , 'database' ];
}
/**
* Build the mail representation of the notification .
*
* @ param mixed $notifiable
* @ return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail ( $notifiable )
{
2018-02-25 19:00:31 +03:00
$message = ( new MailMessage )
2017-12-08 13:55:23 +03:00
-> line ( 'You are receiving this email because you have an upcoming ' . money ( $this -> bill -> amount , $this -> bill -> currency_code , true ) . ' bill to ' . $this -> bill -> vendor_name . ' vendor.' )
2018-11-06 11:50:40 +03:00
-> action ( 'Add Payment' , url ( 'expenses/bills' , $this -> bill -> id ));
2018-02-25 19:00:31 +03:00
// Override per company as Laravel doesn't read config
$message -> from ( config ( 'mail.from.address' ), config ( 'mail.from.name' ));
return $message ;
2017-09-14 22:21:00 +03:00
}
/**
* Get the array representation of the notification .
*
* @ param mixed $notifiable
* @ return array
*/
public function toArray ( $notifiable )
{
return [
'bill_id' => $this -> bill -> id ,
'amount' => $this -> bill -> amount ,
];
}
}