18 protected $name =
'alerts:expiring';
25 protected $description =
'Check for expiring warrantees and service agreements, and sends out an alert email.';
34 parent::__construct();
47 $this->info(count($expiring_assets).
' expiring assets');
49 $asset_data[
'count'] = count($expiring_assets);
50 $asset_data[
'email_content'] =
'';
54 foreach ($expiring_assets as $asset) {
56 $expires = $asset->warrantee_expires();
57 $difference = round(abs(strtotime($expires) - strtotime($now))/86400);
59 if ($difference > 30) {
60 $asset_data[
'email_content'] .=
'<tr style="background-color: #fcffa3;">';
62 $asset_data[
'email_content'] .=
'<tr style="background-color:#d9534f;">';
64 $asset_data[
'email_content'] .=
'<td><a href="'.config(
'app.url').
'/hardware/'.$asset->id.
'/view">';
65 $asset_data[
'email_content'] .= $asset->showAssetName().
'</a></td><td>'.$asset->asset_tag.
'</td>';
66 $asset_data[
'email_content'] .=
'<td>'.$asset->warrantee_expires().
'</td>';
67 $asset_data[
'email_content'] .=
'<td>'.$difference.
' days</td>';
68 $asset_data[
'email_content'] .=
'</tr>';
73 $this->info(count($expiring_licenses).
' expiring licenses');
76 $license_data[
'count'] = count($expiring_licenses);
77 $license_data[
'email_content'] =
'';
79 foreach ($expiring_licenses as $license) {
80 $expires = $license->expiration_date;
81 $difference = round(abs(strtotime($expires) - strtotime($now))/86400);
83 if ($difference > 30) {
84 $license_data[
'email_content'] .=
'<tr style="background-color: #fcffa3;">';
86 $license_data[
'email_content'] .=
'<tr style="background-color:#d9534f;">';
88 $license_data[
'email_content'] .=
'<td><a href="'.config(
'app.url').
'/admin/licenses/'.$license->id.
'/view">';
89 $license_data[
'email_content'] .= $license->name.
'</a></td>';
90 $license_data[
'email_content'] .=
'<td>'.$license->expiration_date.
'</td>';
91 $license_data[
'email_content'] .=
'<td>'.$difference.
' days</td>';
92 $license_data[
'email_content'] .=
'</tr>';
98 if (count($expiring_assets) > 0) {
99 Mail::send(
'emails.expiring-assets-report', $asset_data,
function ($m) {
101 $m->subject(
'Expiring Assets Report');
106 if (count($expiring_licenses) > 0) {
107 Mail::send(
'emails.expiring-licenses-report', $license_data,
function ($m) {
109 $m->subject(
'Expiring Licenses Report');
118 echo
"Could not send email. No alert email configured in settings. \n";
120 echo
"Alerts are disabled in the settings. No mail will be sent. \n";
fire()
Execute the console command.
static getExpiringWarrantee($days=30)
__construct()
Create a new command instance.
static getExpiringLicenses($days=60)