/**
  * Execute the console command.
  *
  * @return mixed
  */
 public function fire()
 {
     // Expiring Assets
     $expiring_assets = Asset::getExpiringWarrantee(Setting::getSettings()->alert_interval);
     $this->info(count($expiring_assets) . ' expiring assets');
     $asset_data['count'] = count($expiring_assets);
     $asset_data['email_content'] = '';
     $now = date("Y-m-d");
     foreach ($expiring_assets as $asset) {
         $expires = $asset->warrantee_expires();
         $difference = round(abs(strtotime($expires) - strtotime($now)) / 86400);
         if ($difference > 30) {
             $asset_data['email_content'] .= '<tr style="background-color: #fcffa3;">';
         } else {
             $asset_data['email_content'] .= '<tr style="background-color:#d9534f;">';
         }
         $asset_data['email_content'] .= '<td><a href="' . config('app.url') . '/hardware/' . e($asset->id) . '/view">';
         $asset_data['email_content'] .= $asset->showAssetName() . '</a></td><td>' . e($asset->asset_tag) . '</td>';
         $asset_data['email_content'] .= '<td>' . e($asset->warrantee_expires()) . '</td>';
         $asset_data['email_content'] .= '<td>' . $difference . ' days</td>';
         $asset_data['email_content'] .= '<td>' . ($asset->supplier ? e($asset->supplier->name) : '') . '</td>';
         $asset_data['email_content'] .= '<td>' . ($asset->assigneduser ? e($asset->assigneduser->fullName()) : '') . '</td>';
         $asset_data['email_content'] .= '</tr>';
     }
     // Expiring licenses
     $expiring_licenses = License::getExpiringLicenses(Setting::getSettings()->alert_interval);
     $this->info(count($expiring_licenses) . ' expiring licenses');
     $license_data['count'] = count($expiring_licenses);
     $license_data['email_content'] = '';
     foreach ($expiring_licenses as $license) {
         $expires = $license->expiration_date;
         $difference = round(abs(strtotime($expires) - strtotime($now)) / 86400);
         if ($difference > 30) {
             $license_data['email_content'] .= '<tr style="background-color: #fcffa3;">';
         } else {
             $license_data['email_content'] .= '<tr style="background-color:#d9534f;">';
         }
         $license_data['email_content'] .= '<td><a href="' . config('app.url') . '/admin/licenses/' . $license->id . '/view">';
         $license_data['email_content'] .= $license->name . '</a></td>';
         $license_data['email_content'] .= '<td>' . $license->expiration_date . '</td>';
         $license_data['email_content'] .= '<td>' . $difference . ' days</td>';
         $license_data['email_content'] .= '</tr>';
     }
     if (Setting::getSettings()->alert_email != '' && Setting::getSettings()->alerts_enabled == 1) {
         if (count($expiring_assets) > 0) {
             \Mail::send('emails.expiring-assets-report', $asset_data, function ($m) {
                 $m->to(explode(',', Setting::getSettings()->alert_email), Setting::getSettings()->site_name);
                 $m->subject('Expiring Assets Report');
             });
         }
         if (count($expiring_licenses) > 0) {
             \Mail::send('emails.expiring-licenses-report', $license_data, function ($m) {
                 $m->to(explode(',', Setting::getSettings()->alert_email), Setting::getSettings()->site_name);
                 $m->subject('Expiring Licenses Report');
             });
         }
     } else {
         if (Setting::getSettings()->alert_email == '') {
             echo "Could not send email. No alert email configured in settings. \n";
         } elseif (Setting::getSettings()->alerts_enabled != 1) {
             echo "Alerts are disabled in the settings. No mail will be sent. \n";
         }
     }
 }