HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /var/www/html/punjabcabs/app/Console/Commands/ExpiryCommand.php
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use DB;
use App\Http\Controllers\SendPushNotification;
use Carbon\Carbon;
use Log;
use Mail;
use Setting;

use App\ProviderService;
use App\Provider;
use App\Admin;

class ExpiryCommand extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'update:expiry';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Check Driver License and Insurance Expiration date';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        $providerservices = ProviderService::all();
        foreach ($providerservices as $key => $providerservice) {
            $now = Carbon::today();
            if($providerservice->license_status ==0){
                $sub_days = Carbon::parse($providerservice->license_expire)->subDays(14);
                if($now >= $sub_days){
                    $providerservices[$key]->license_status =1;
                    $providerservices[$key]->save();
                    $admin = Admin::first();
                    $provider = Provider::where('id','=',$providerservice->provider_id)->first();
                    if(Setting::get('mail_enable', 0) == 1 && $provider !=null) {
                        $data = array(
                            'document_name'=>'License Certificate',
                            'expire_date'=>$providerservice->license_expire,
                            'driver_name'=>$provider->first_name.' '.$provider->last_name,
                            'driver_email'=>$provider->email,
                            'service_number'=>$providerservice->service_number,
                            'admin_email'=>$admin->email,
                            'admin_name'=>$admin->name,
                        );
                        Mail::send('emails.expiry', ['data' => $data], function ($message) use ($data){
                            $message->to($data['admin_email'], $data['admin_name'])->subject(config('app.name').' License Expiration');
                        });
                    }
                }
            }

            if($providerservice->insurance_status ==0){
                $sub_days = Carbon::parse($providerservice->insurance_expire)->subDays(14);
                if($now >= $sub_days){
                    $providerservices[$key]->insurance_status =1;
                    $providerservices[$key]->save();
                    $admin = Admin::first();
                    $provider = Provider::where('id','=',$providerservice->provider_id)->first();
                    if(Setting::get('mail_enable', 0) == 1 && $provider !=null) {
                        $data = array(
                            'document_name'=>'Insurance Certificate',
                            'expire_date'=>$providerservice->insurance_expire,
                            'driver_name'=>$provider->first_name.' '.$provider->last_name,
                            'driver_email'=>$provider->email,
                            'service_number'=>$providerservice->service_number,
                            'admin_email'=>$admin->email,
                            'admin_name'=>$admin->name,
                        );
                        Mail::send('emails.expiry', ['data' => $data], function ($message) use ($data){
                            $message->to($data['admin_email'], $data['admin_name'])->subject(config('app.name').' Insurance Expiration');
                        });
                    }
                }
            }

            if($providerservice->certificate_status ==0){
                $sub_days = Carbon::parse($providerservice->certificate_expire)->subDays(14);
                if($now >= $sub_days){
                    $providerservices[$key]->certificate_status =1;
                    $providerservices[$key]->save();
                    $admin = Admin::first();
                    $provider = Provider::where('id','=',$providerservice->provider_id)->first();
                    if(Setting::get('mail_enable', 0) == 1 && $provider !=null) {
                        $data = array(
                            'document_name'=>'Insurance Certificate',
                            'expire_date'=>$providerservice->certificate_expire,
                            'driver_name'=>$provider->first_name.' '.$provider->last_name,
                            'driver_email'=>$provider->email,
                            'service_number'=>$providerservice->service_number,
                            'admin_email'=>$admin->email,
                            'admin_name'=>$admin->name,
                        );
                        Mail::send('emails.expiry', ['data' => $data], function ($message) use ($data){
                            $message->to($data['admin_email'], $data['admin_name'])->subject(config('app.name').' Insurance Expiration');
                        });
                    }
                }
            }

            if($providerservice->license_status ==1){
                $expiry_date = Carbon::parse($providerservice->license_expire);
                if($now > $expiry_date){
                    $providerservices[$key]->license_status =2;
                    $providerservices[$key]->save();
                    Provider::where('id',$providerservice->provider_id)->update(['status' => 'banned']);
                }
            }
            if($providerservice->insurance_status ==1){
                $expiry_date = Carbon::parse($providerservice->insurance_expire);
                if($now > $expiry_date){
                    $providerservices[$key]->insurance_status =2;
                    $providerservices[$key]->save();
                    Provider::where('id',$providerservice->provider_id)->update(['status' => 'banned']);
                }
            }
            if($providerservice->certificate_status ==1){
                $expiry_date = Carbon::parse($providerservice->certificate_expire);
                if($now > $expiry_date){
                    $providerservices[$key]->certificate_status =2;
                    $providerservices[$key]->save();
                    Provider::where('id',$providerservice->provider_id)->update(['status' => 'banned']);
                }
            }

        } 
    }               
}