<?php
namespace App\Http\Controllers;
use Illuminate\Support\Collection;
use Validator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Storage;
use App\Helper\MailHelper as MailHelper;
use Session;
use Auth;
use DatePeriod;
use DateTime;
use DateInterval;
use PDF;
use Mail;
use DB;
use App\Mail\ReportMail;
use App\Models\User;
use App\Models\PublicUser;
use App\Models\Settings\Organisation;
use App\Models\Settings\Department;
use App\Models\Settings\Section;
use App\Models\Settings\Roles;
use App\Models\Settings\Permissions;
use App\Models\Settings\RolePermission;
use App\Models\Settings\UserRoles;
use App\Models\Settings\MenuSettings;
use App\Models\Settings\MenuRolePermission;
use App\Models\Settings\Configuration;
use App\Models\Settings\CancelConfiguration;
use App\Models\Settings\HolidayMaster;
use App\Models\Settings\WeeklyOffMaster;
use App\Models\Settings\ScheduleLog;
use App\Models\Settings\State;
use App\Models\Facility\Facility;
use App\Models\Facility\ShowTimings;
use App\Models\Facility\Layout;
use App\Models\Facility\Seats;
use App\Models\Facility\Rates;
use App\Models\Sales\Invoice;
use App\Models\Sales\Transaction;
use App\Models\Sales\Ticket;
use App\Models\Sales\TicketSeat;
use App\Models\Sales\PaymentMethod;
use App\Models\Sales\PaymentType;
use App\Models\Sales\FeeWaiverApproval;
use App\Models\Sales\FeeWaiverApprovalUpload;
use App\Models\Sales\ShowCancel;
use App\Models\Sales\TicketCancelApprove;
use App\Models\Sales\Refund;
use App\Models\Sales\CancelTicket;
use App\Models\Sales\TicketApproval;
use App\Models\Sales\TicketApprovalUpload;
use App\Models\Sales\TicketPrint;
use App\Models\Sales\ReportData;
use App\Models\Mail\MailTicket;
use App\Mail\TicketMail;
use App\Helpers\BookingClass;
use App\Helpers\SMSClass;
use App\Helpers\ReportClass;
use Request as req;
use App\Models\Settings\Science_Trivia;

class SchedulerController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Contracts\Support\Renderable
    */

    public function facility_schedule_report()
    {
        $date_from = date("Y-m-d");
        $date_to = date("Y-m-d");
        $ticket_date = date("Y-m-d");
        $ticket_array = [];
        $facility_list =[];
        $ticket_count =[];
        $facility_name =[];
        $online_ticket_amount =[];
        $cash_ticket_amount= [];
        $card_ticket_amount = [];
        $upi_ticket_amount = [];
        $adult_count = [];
        $child_count = [];
        $totalamount =[];
        $online_ticket_arr =[];
        $organisations = Organisation::all();
        foreach($organisations as $org)
        {
            $organisation_id = $org->id;
            $org_name = $org->organisation_name;
            $org_code = $org->short_code;

            ///consolidated report//////////////////////////////////////                
                $facilities[$organisation_id] = Facility::where('active_flag',1)->where('organisation_id',$organisation_id)->get();
                foreach($facilities[$organisation_id] as $facility)
                {
                    $facility_id = $facility->id;
                    $online_ticket_amount[$facility_id] = 0;
                    $cash_ticket_amount[$facility_id] = 0;
                    $card_ticket_amount[$facility_id] = 0;
                    $upi_ticket_amount[$facility_id] = 0;
                    $refund_amount[$facility_id] = 0;
                    $adult_count[$facility_id] = 0;
                    $child_count[$facility_id] = 0;
                    $totalamount[$facility_id] = 0;
                    $facility_list[$facility_id] = $facility_id;
                    $facility_name[$facility_id] = $facility->facility_name;
                    
                    $ticket_count[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('invoice_date',$ticket_date); })->count();

                    $online_ticket_amount[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('payment_type',1)->where('invoice_date',$ticket_date); })->sum('amount');

                    $cash_ticket_amount[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('payment_type',2)->where('payment_method',1)->where('invoice_date',$ticket_date); })->sum('amount');

                    $card_ticket_amount[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('payment_type',2)->where('payment_method',2)->where('invoice_date',$ticket_date); })->sum('amount');

                    $upi_ticket_amount[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('payment_type',2)->where('payment_method',3)->where('invoice_date',$ticket_date); })->sum('amount');

                    $refund_amount[$facility_id] = Refund::where('refund_status',1)->where('created_at',$ticket_date)->with('invoice','ticket')->whereHas('invoice', function($inv) use($organisation_id){ $inv->where('organisation_id', $organisation_id); })->whereHas('ticket', function($tick) use($facility_id){ $tick->where('facility_id', $facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); }); })->sum('refund_amount');

                    $adult_count[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('payment_type',2)->where('invoice_date',$ticket_date); })->sum('noof_adult');

                    $child_count[$facility_id] = Ticket::where('facility_id',$facility_id)->where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice')->whereHas('invoice', function($inv) use($ticket_date,$organisation_id){ $inv->where(function($invst) { $invst->where('status',1)->orwhere('status',2); })->where('organisation_id',$organisation_id)->where('payment_type',2)->where('invoice_date',$ticket_date); })->sum('noof_child');

                    $totalamount[$facility_id] = ($online_ticket_amount[$facility_id]+$cash_ticket_amount[$facility_id]+$card_ticket_amount[$facility_id]+$upi_ticket_amount[$facility_id])-$refund_amount[$facility_id];
                }
            ////////////////////////////////////////////////////////////
            
            ///counter collection report/////////////////////////////////
                $invoice_array = [];
                $cancelled_array = [];
                $tickets = Ticket::where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice','facility')->whereHas('invoice', function($inv) use($ticket_date, $organisation_id){ $inv->where('organisation_id',$organisation_id)->where('invoice_date',$ticket_date)->where(function($invst) { $invst->where('status',1)->orwhere('status',2); }); })->get();
                foreach($tickets as $ticket)
                {
                    $user_id = $ticket->invoice->user_id;
                    $ticket_id = $ticket->id;
                    $ticket_arr[] = $ticket_id;
                    $invoice_id = $ticket->invoice->id;
                    $invoice_date = $ticket->invoice->invoice_date;
                    $invoice_date_new = date("d-M-Y", strtotime($invoice_date));
                    $show_date = $ticket->invoice->show_date;
                    $show_date = date("d-M-Y", strtotime($show_date));
                    $invoice_month = date('m',strtotime($invoice_date));
                    $invoice_year = date('Y',strtotime($invoice_date));
                    $invoice_no = $ticket->invoice->invoice_no;
                    $org_code = $ticket->invoice->organisation->short_code;
                    if($invoice_month<4)
                        $invoice_year--;
                    $nextyear = $invoice_year+1;
                    $invoice_number = $org_code.'/'.$invoice_no.'/'.$invoice_year.'-'.$nextyear;

                    $facility_id_c = $ticket->facility_id;
                    $facility_name_c = $ticket->facility->facility_name;

                    $ticket_no = $org_code.'/'.$ticket->facility->short_code.'/'.$ticket->ticket_no.'/'.$invoice_year.'-'.$nextyear;

                    $noofadult = $ticket->noof_adult;
                    $noofchild = $ticket->noof_child;
                    $amount = $ticket->amount;
                    $payment_method = "";
                    if($ticket->invoice->payment_method!=NULL)
                    {
                        if($ticket->invoice->paymentmethod->method)
                        {
                            $payment_method = $ticket->invoice->paymentmethod->method;
                        }
                    }
                    if(isset($ticket->invoice->user->name))
                        $counter_user = $ticket->invoice->user->name;
                    if($invoice_number)
                    {
                        $invoice_array[$ticket_id]['counter_user'] = $counter_user;
                        $invoice_array[$ticket_id]['invoice_number'] = $invoice_number;
                        $invoice_array[$ticket_id]['invoice_date'] = $invoice_date_new;
                        $invoice_array[$ticket_id]['show_date'] = $show_date;
                        $invoice_array[$ticket_id]['ticket_no'] = $ticket_no;
                        $invoice_array[$ticket_id]['facility_name'] = $facility_name_c;
                        $invoice_array[$ticket_id]['noofadult'] = $noofadult;
                        $invoice_array[$ticket_id]['noofchild'] = $noofchild;
                        $invoice_array[$ticket_id]['amount'] = $amount;
                        $invoice_array[$ticket_id]['payment_method'] = $payment_method;
                        $invoice_array[$ticket_id]['refund_amount'] = "";
                    }
                }
                /////ticket cancelled list////////////////
                $ticket_cancelledlist=TicketCancelApprove::where('approval_status',1)->where('cancel_date',$ticket_date)->with('ticket','showtime','user')->get();
                foreach($ticket_cancelledlist as $ticket_cancelled)
                {
                    $cancel_ticket_id = $ticket_cancelled->id;
                    $ticket_arr[] = $cancel_ticket_id;
                    $cancel_invoice_id = $ticket_cancelled->ticket->invoice->id;
                    $cancel_invoice_date = $ticket_cancelled->ticket->invoice->invoice_date;
                    $cancel_invoice_date_new = date("d-M-Y", strtotime($cancel_invoice_date));
                    $cancel_show_date = $ticket_cancelled->show_date;
                    $cancel_show_date = date("d-M-Y", strtotime($cancel_show_date));
                    $cancel_invoice_month = date('m',strtotime($cancel_invoice_date));
                    $cancel_invoice_year = date('Y',strtotime($cancel_invoice_date));
                    $cancel_invoice_no = $ticket_cancelled->ticket->invoice->invoice_no;
                    $cancel_org_code = $ticket_cancelled->ticket->invoice->organisation->short_code;
                    if($cancel_invoice_month<4)
                        $cancel_invoice_year--;
                    $cancel_nextyear = $cancel_invoice_year+1;
                    $cancel_invoice_number = $cancel_org_code.'/'.$cancel_invoice_no.'/'.$cancel_invoice_year.'-'.$cancel_nextyear;

                    $cancel_facility_id = $ticket_cancelled->ticket->facility_id;
                    $cancel_facility_name = $ticket_cancelled->ticket->facility->facility_name;

                    $cancel_ticket_no = $cancel_org_code.'/'.$ticket_cancelled->ticket->facility->short_code.'/'.$ticket_cancelled->ticket->ticket_no.'/'.$cancel_invoice_year.'-'.$cancel_nextyear;

                    $cancel_noofadult = $ticket_cancelled->noof_adult;
                    $cancel_noofchild = $ticket_cancelled->noof_child;
                    $cancel_refund_amount = $ticket_cancelled->refund_amount;
                    $cancel_cancelled_amount = $cancel_refund_amount;
                    $cancel_refund_amount = '-'.$cancel_refund_amount;

                    $cancel_counter_user = $ticket_cancelled->user->name;
                    $cancel_payment_method = "";
                    if($ticket_cancelled->ticket->invoice->payment_method!=NULL)
                    {
                        if($ticket_cancelled->ticket->invoice->paymentmethod->method)
                        {
                            $cancel_payment_method = $ticket_cancelled->ticket->invoice->paymentmethod->method;
                        }
                    }
                    if($cancel_invoice_number)
                    {
                        $cancelled_array[$ticket_id]['counter_user'] = $cancel_counter_user;
                        $cancelled_array[$ticket_id]['invoice_number'] = $cancel_invoice_number;
                        $cancelled_array[$ticket_id]['invoice_date'] = $cancel_invoice_date_new;
                        $cancelled_array[$ticket_id]['show_date'] = $cancel_show_date;
                        $cancelled_array[$ticket_id]['ticket_no'] = $cancel_ticket_no;
                        $cancelled_array[$ticket_id]['facility_name'] = $cancel_facility_name;
                        $cancelled_array[$ticket_id]['noofadult'] = $cancel_noofadult;
                        $cancelled_array[$ticket_id]['noofchild'] = $cancel_noofchild;
                        $cancelled_array[$ticket_id]['amount'] = $cancel_refund_amount;
                        $cancelled_array[$ticket_id]['payment_method'] = $cancel_payment_method;
                        $cancelled_array[$ticket_id]['refund_amount'] = $cancel_cancelled_amount;
                    }
                }
            ////////////////////////////////////////////////////////////

            ////online collection report////////////////////////////////
                $online_invoice_array = [];
                $online_cancelled_array = [];
                $online_tickets = Ticket::where(function($st) { $st->where('status',1)->orwhere('status',2); })->with('invoice','facility')->whereHas('invoice', function($inv) use($ticket_date, $organisation_id) { $inv->where('invoice_date',$ticket_date)->whereNotNull('public_user_id')->where('organisation_id',$organisation_id)->where('payment_type',1)->where(function($invst) { $invst->where('status',1)->orwhere('status',2); }); })->get();
                foreach($online_tickets as $online_ticket)
                {
                    $online_ticket_id = $online_ticket->id;
                    $online_ticket_arr[] = $online_ticket_id;
                    $online_invoice_id = $online_ticket->invoice->id;
                    $online_invoice_date = $online_ticket->invoice->invoice_date;
                    $online_invoice_date_new = date("d-M-Y", strtotime($online_invoice_date));
                    $online_show_date = $online_ticket->invoice->show_date;
                    $online_show_date = date("d-M-Y", strtotime($online_show_date));
                    $online_invoice_month = date('m',strtotime($online_invoice_date));
                    $online_invoice_year = date('Y',strtotime($online_invoice_date));
                    $online_invoice_no = $online_ticket->invoice->invoice_no;
                    $online_org_code = $online_ticket->invoice->organisation->short_code;
                    if($online_invoice_month<4)
                        $online_invoice_year--;
                    $online_nextyear = $online_invoice_year+1;
                    $online_invoice_number = $online_org_code.'/'.$online_invoice_no.'/'.$online_invoice_year.'-'.$online_nextyear;

                    $online_facility_id = $online_ticket->facility_id;
                    $online_facility_name = $online_ticket->facility->facility_name;

                    $online_ticket_no = $online_org_code.'/'.$online_ticket->facility->short_code.'/'.$online_ticket->ticket_no.'/'.$online_invoice_year.'-'.$online_nextyear;

                    $online_noofadult = $online_ticket->noof_adult;
                    $online_noofchild = $online_ticket->noof_child;
                    $online_amount = $online_ticket->amount;

                    $online_counter_user = $online_ticket->invoice->publicuser->name;

                    if($online_invoice_number)
                    {
                        $online_invoice_array[$online_ticket_id]['counter_user'] = $online_counter_user;
                        $online_invoice_array[$online_ticket_id]['invoice_number'] = $online_invoice_number;
                        $online_invoice_array[$online_ticket_id]['invoice_date'] = $online_invoice_date_new;
                        $online_invoice_array[$online_ticket_id]['show_date'] = $online_show_date;
                        $online_invoice_array[$online_ticket_id]['ticket_no'] = $online_ticket_no;
                        $online_invoice_array[$online_ticket_id]['facility_name'] = $online_facility_name;
                        $online_invoice_array[$online_ticket_id]['noofadult'] = $online_noofadult;
                        $online_invoice_array[$online_ticket_id]['noofchild'] = $online_noofchild;
                        $online_invoice_array[$online_ticket_id]['amount'] = $online_amount;
                    }
                }
                /////cancelled tickets -- online ///////////////////////////////////////////
                $online_ticket_cancelledlist = Refund::where('refund_status',1)->whereNotNull('public_user_id')->whereBetween(DB::raw('DATE(created_at)'), array($date_from, $date_to))->with('ticket','invoice','publicuser','user')->whereHas('invoice', function($inv) use($organisation_id) { $inv->where('organisation_id',$organisation_id); })->get();
                foreach($online_ticket_cancelledlist as $online_ticket_cancelled)
                {
                    $online_cancel_ticket_id = $online_ticket_cancelled->ticket_id;
                    $online_ticket_arr[] = $online_cancel_ticket_id;
                    $online_cancel_invoice_id = $online_ticket_cancelled->invoice_id;
                    $online_cancel_invoice_date = $online_ticket_cancelled->invoice->invoice_date;
                    $online_cancel_invoice_date_new = date("d-M-Y", strtotime($online_cancel_invoice_date));
                    $online_cancel_show_date = $online_ticket_cancelled->invoice->show_date;
                    $online_cancel_show_date = date("d-M-Y", strtotime($online_cancel_show_date));
                    $online_cancel_invoice_month = date('m',strtotime($online_cancel_invoice_date));
                    $online_cancel_invoice_year = date('Y',strtotime($online_cancel_invoice_date));
                    $online_cancel_invoice_no = $online_ticket_cancelled->invoice->invoice_no;
                    $online_cancel_org_code = $online_ticket_cancelled->invoice->organisation->short_code;
                    if($online_cancel_invoice_month<4)
                        $online_cancel_invoice_year--;
                    $online_cancel_nextyear = $online_cancel_invoice_year+1;
                    $online_cancel_invoice_number = $online_cancel_org_code.'/'.$online_cancel_invoice_no.'/'.$online_cancel_invoice_year.'-'.$online_cancel_nextyear;

                    $online_cancel_facility_id = $online_ticket_cancelled->ticket->facility_id;
                    $online_cancel_facility_name = $online_ticket_cancelled->ticket->facility->facility_name;

                    $online_cancel_ticket_no = $online_cancel_org_code.'/'.$online_ticket_cancelled->ticket->facility->short_code.'/'.$online_ticket_cancelled->ticket->ticket_no.'/'.$online_cancel_invoice_year.'-'.$online_cancel_nextyear;

                    $online_cancel_noofadult = $online_ticket_cancelled->ticket->noof_adult;
                    $online_cancel_noofchild = $online_ticket_cancelled->ticket->noof_child;
                    $online_cancel_amount = $online_ticket_cancelled->ticket->amount;
                    $online_cancel_refund_amount = $online_ticket_cancelled->refund_amount;
                    $online_cancel_refund_amount = '-'.$online_cancel_refund_amount;
                    $online_cancel_counter_user = $online_ticket_cancelled->publicuser->name;

                    if($online_cancel_invoice_number)
                    {
                        $online_cancelled_array[$ticket_id]['counter_user'] = $online_cancel_counter_user;
                        $online_cancelled_array[$ticket_id]['invoice_number'] = $online_cancel_invoice_number;
                        $online_cancelled_array[$ticket_id]['invoice_date'] = $online_cancel_invoice_date_new;
                        $online_cancelled_array[$ticket_id]['show_date'] = $online_cancel_show_date;
                        $online_cancelled_array[$ticket_id]['ticket_no'] = $online_cancel_ticket_no;
                        $online_cancelled_array[$ticket_id]['facility_name'] = $online_cancel_facility_name;
                        $online_cancelled_array[$ticket_id]['noofadult'] = $online_cancel_noofadult;
                        $online_cancelled_array[$ticket_id]['noofchild'] = $online_cancel_noofchild;
                        $online_cancelled_array[$ticket_id]['amount'] = $online_cancel_refund_amount;
                    }
                }
            /////////////////////////////////////////////////////////////

            //////detailed report////////////////////////
                $detailed_report_arr =[];
                $detailed_report_arr[$ticket_date] = Ticket::with('facility','invoice')->where(function($tkt) { $tkt->where('status',1)->orwhere('status',2); })->whereDate('show_date',$ticket_date)->whereHas('invoice', function($inv) use($organisation_id){ $inv->where('organisation_id',$organisation_id)->where(function($invst) { $invst->where('status',1)->orwhere('status',2); }); })->get();
            ////////////////////////////////////////////////
            
            $consolidated_pdf = PDF::loadView('Reports.download_consolidated_report_pdf', compact('ticket_date','facility_list','facility_name','ticket_count','online_ticket_amount','cash_ticket_amount','card_ticket_amount','upi_ticket_amount','refund_amount','adult_count','child_count','totalamount','org_name','facilities','detailed_report_arr','invoice_array','cancelled_array','ticket_arr','organisations','online_invoice_array','online_cancelled_array','online_ticket_arr'))->setPaper('A4', 'landscape');

            $counter_collection_pdf = PDF::loadView('Reports.download_counter_collection_report_pdf', compact('ticket_date','facility_list','facility_name','ticket_count','online_ticket_amount','cash_ticket_amount','card_ticket_amount','upi_ticket_amount','refund_amount','adult_count','child_count','totalamount','org_name','facilities','detailed_report_arr','invoice_array','cancelled_array','ticket_arr','organisations','online_invoice_array','online_cancelled_array','online_ticket_arr'))->setPaper('A4', 'landscape');

            $online_collection_pdf = PDF::loadView('Reports.download_online_collection_report_pdf', compact('ticket_date','facility_list','facility_name','ticket_count','online_ticket_amount','cash_ticket_amount','card_ticket_amount','upi_ticket_amount','refund_amount','adult_count','child_count','totalamount','org_name','facilities','detailed_report_arr','invoice_array','cancelled_array','ticket_arr','organisations','online_invoice_array','online_cancelled_array','online_ticket_arr'))->setPaper('A4', 'landscape');

            $detailed_pdf = PDF::loadView('Reports.download_detailed_report_pdf', compact('ticket_date','facility_list','facility_name','ticket_count','online_ticket_amount','cash_ticket_amount','card_ticket_amount','upi_ticket_amount','refund_amount','adult_count','child_count','totalamount','org_name','facilities','detailed_report_arr','invoice_array','cancelled_array','ticket_arr','organisations','online_invoice_array','online_cancelled_array','online_ticket_arr'))->setPaper('A4', 'landscape');
            
            /////////////////////////////////////////////////

            $today_timestamp = date("Y-m-d_h-i-s");
            $consolidated_insert_id = ReportData::create([
                        'report_name_timestamp' => 'consolidatedpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf',
                        'status' => 0,
                    ]);

            $counter_collection_insert_id = ReportData::create([
                        'report_name_timestamp' => 'countercollectionpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf',
                        'status' => 0,
                    ]);

            $online_collection_insert_id = ReportData::create([
                        'report_name_timestamp' => 'onlinecollectionpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf',
                        'status' => 0,
                    ]);

            $detailed_insert_id = ReportData::create([
                        'report_name_timestamp' => 'detailedpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf',
                        'status' => 0,
                    ]);
            

            $consolidated_output = $consolidated_pdf->output();
            \Storage::put('uploads/reports/consolidatedpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf', $consolidated_output);

            $counter_collection_output = $counter_collection_pdf->output();
            \Storage::put('uploads/reports/countercollectionpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf', $counter_collection_output);

            $online_collection_output = $online_collection_pdf->output();
            \Storage::put('uploads/reports/onlinecollectionpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf', $online_collection_output);

            $detailed_output = $detailed_pdf->output();
            \Storage::put('uploads/reports/detailedpdfreport_'.$org_code.'_'.$today_timestamp.'.pdf', $detailed_output);            
        }
    }

    public function scheduler_list()
    {
        $page_title = 'Scheduler';
        $page_description = 'Some description for the page';
        $logo = "images/logo.png";
        $logoText = "images/logo-text.png";
        $active="active";
        $event_class="schedule-event";
        $button_class="btn-primary";
        $action = __FUNCTION__;
        $id = Auth::user()->id;    
        return view('Scheduler/scheduler_list', compact('page_title', 'page_description','action','logo','logoText','active','event_class','button_class'));
    }

    public function schedule_run(Request $request)
    {   
        //echo "scheduleobj=";
        $scheduleobj =$request->scheduleobj;
        //return $scheduleobj;
        if($scheduleobj==1)
        {
            $command = 'transactionstatus:cron';
        }
        elseif($scheduleobj==2)
        {
            $command = 'refundcheck:cron';
        }
        elseif($scheduleobj==3)
        {
            $command = 'reprotsmail:cron';
        }
        elseif($scheduleobj==4)
        {
            $command = 'mail:cron';
        }
        else
        {
            $command = '';
        }
    
        $exec_var = \Artisan::call($command);
        return 1;
    }

    public function report_facility()
    {
        $reports = new ReportClass;
        $putfiles_reports = $reports->facility_schedule_report(); 
        $sendfiles_reports = $reports->facility_mailsend_report(); 
    }

    /*public function facility_schedule_report()
    {
        $date_from = date("Y-m-d");
        $date_to = date("Y-m-d");
        $ticket_date = date("Y-m-d");
        $ticket_array = [];
        ////facility report//////////////////
        $ticket_date_arr[] = $ticket_date;
        $ticket_count = Ticket::where('status',1)->whereDate('show_date',$ticket_date)->count();
        $adult_count = Ticket::where('status',1)->whereDate('show_date',$ticket_date)->sum('noof_adult');
        $child_count = Ticket::where('status',1)->whereDate('show_date',$ticket_date)->sum('noof_child');
        $totalamount = Ticket::where('status',1)->whereDate ('show_date',$ticket_date)->sum('amount');
        $minimum_ticket_num =  Ticket::where('status',1)->whereDate('show_date',$ticket_date)->min('ticket_no');
        $maximum_ticket_num =  Ticket::where('status',1)->whereDate('show_date',$ticket_date)->max('ticket_no');
        $ticket_number = $minimum_ticket_num." - ".$maximum_ticket_num;
        $ticket_facility_arr = Ticket::with('facility')->where('status',1)->whereDate('show_date',$ticket_date)->first();
        if($ticket_count!=0)
        {
            $ticket_array[$ticket_date]['organisation_name'] = $ticket_facility_arr->facility->organisation->organisation_name;
            $ticket_array[$ticket_date]['facility_name'] = $ticket_facility_arr->facility->facility_name;
            $ticket_array[$ticket_date]['nooftickets'] = $ticket_count;
            $ticket_array[$ticket_date]['noofadults'] = $adult_count;
            $ticket_array[$ticket_date]['noofchildren'] = $child_count;
            $ticket_array[$ticket_date]['totalamount'] = $totalamount;
            $ticket_array[$ticket_date]['ticketnumber'] = $ticket_number;
        }
        ////////////////////////////////////////////////////

        //////detailed report////////////////////////
        $detailed_report_arr =[];
        $detailed_report_arr[$ticket_date] = Ticket::with('facility','invoice')->where('status',1)->whereDate('show_date',$ticket_date)->get();
        ////////////////////////////////////////////////

        /////financial report.////////////////////////
        $financial_ticket_array=[];
        $financial_ticket_query =[];
        $spl_ticket_query = [];
        $spl_ticket_array = [];
        $spl_ticket_date_arr =[];
        $fin_ticket_date_arr = [];
        $flg=[];
        $splflg=[];
        $facilities = Facility::where('active_flag',1)->get();
        foreach($facilities as $facility)
        {
            $facility_id = $facility->id;
            $fin_ticket_date_arr[$facility_id][] = $ticket_date;
            $spl_ticket_date_arr[$facility_id][] = $ticket_date;
            $financial_ticket_query[$facility_id][$ticket_date] = Ticket::where('facility_id',$facility_id)->where('status',1)->whereDate('show_date',$ticket_date)->with('facility','showtime')->whereHas('showtime',function($showt) { $showt->where('show_flag',0); })->get();
            $n =0;
            $from_time = "";
            $to_time = "";
            $adult_count = "";
            $child_count = "";
            $totalamount = "";
            $show_date = "";
            foreach($financial_ticket_query[$facility_id][$ticket_date] as $tickets)
            {
                $flg[$facility_id] = 1;
                $n++;
                $show_date = $tickets->show_date;
                //echo "show_date=$show_date...facility_id=$facility_id....ticket_date=$ticket_date....<br>";
                $from_time = $tickets->showtime->from_time;
                $to_time = $tickets->showtime->to_time;
                $adult_count = $tickets->noof_adult;
                $child_count = $tickets->noof_child;
                $totalamount = $tickets->amount;
                $financial_ticket_array[$facility_id][$ticket_date][$n]['date'] = $ticket_date;
                $financial_ticket_array[$facility_id][$ticket_date][$n]['showtime'] = $from_time." to ".$to_time;
                $financial_ticket_array[$facility_id][$ticket_date][$n]['noofadults'] = $adult_count;
                $financial_ticket_array[$facility_id][$ticket_date][$n]['noofchildren'] = $child_count;
                $financial_ticket_array[$facility_id][$ticket_date][$n]['amount'] = $totalamount;
            }

            ////special shows
            $spl_ticket_query[$facility_id][$ticket_date] = Ticket::where('facility_id',$facility_id)->where('status',1)->whereDate('show_date',$ticket_date)->with('facility','showtime')->whereHas('showtime',function($showt) { $showt->where('show_flag',1); })->get();
            $n =0;
            $from_time = "";
            $to_time = "";
            $adult_count = "";
            $child_count = "";
            $totalamount = "";
            $show_date = "";
            foreach($spl_ticket_query[$facility_id][$ticket_date] as $spl_tickets)
            {
                $splflg[$facility_id] = 1;
                $n++;
                $show_date = $spl_tickets->show_date;
                //echo "show_date=$show_date...facility_id=$facility_id....ticket_date=$ticket_date....<br>";
                $from_time = $spl_tickets->showtime->from_time;
                $to_time = $spl_tickets->showtime->to_time;
                $adult_count = $spl_tickets->noof_adult;
                $child_count = $spl_tickets->noof_child;
                $totalamount = $spl_tickets->amount;
                $spl_ticket_array[$facility_id][$ticket_date][$n]['date'] = $ticket_date;
                $spl_ticket_array[$facility_id][$ticket_date][$n]['showtime'] = $from_time." to ".$to_time;
                $spl_ticket_array[$facility_id][$ticket_date][$n]['noofadults'] = $adult_count;
                $spl_ticket_array[$facility_id][$ticket_date][$n]['noofchildren'] = $child_count;
                $spl_ticket_array[$facility_id][$ticket_date][$n]['amount'] = $totalamount;
            }

        }
        ///////////////////////////////////////////////
        $faciltiy_pdf = PDF::loadView('Reports.download_facility_report_pdf', compact('financial_ticket_array','detailed_report_arr','ticket_date','ticket_array','facilities','spl_ticket_array','flg','splflg'));
        $detailed_pdf = PDF::loadView('Reports.download_detailed_report_pdf', compact('financial_ticket_array','detailed_report_arr','ticket_date','ticket_array','facilities','spl_ticket_array','flg','splflg'));
        $financial_pdf = PDF::loadView('Reports.download_financial_report_pdf', compact('financial_ticket_array','detailed_report_arr','ticket_date','ticket_array','facilities','spl_ticket_array','flg','splflg'));
        /////////////////////////////////////////////////

        //$financial_pdf->download('financialpdfreport.pdf');
        //$detailed_pdf->download('detailedpdfreport.pdf');
        //$faciltiy_pdf->download('facilitypdfreport.pdf');

        $today_timestamp = date("Y-m-d_h-i-s");
        $facility_insert_id = ReportData::create([
                    'report_name_timestamp' => 'facilitypdfreport_'.$today_timestamp.'.pdf',
                    'status' => 0,
                ]);
        $detailed_insert_id = ReportData::create([
                    'report_name_timestamp' => 'detailedpdfreport_'.$today_timestamp.'.pdf',
                    'status' => 0,
                ]);
        $financial_insert_id = ReportData::create([
                    'report_name_timestamp' => 'financialpdfreport_'.$today_timestamp.'.pdf',
                    'status' => 0,
                ]);

        $facility_output = $faciltiy_pdf->output();
        file_put_contents('uploads/reports/facilitypdfreport_'.$today_timestamp.'.pdf', $facility_output);

        $detailed_output = $detailed_pdf->output();
        file_put_contents('uploads/reports/detailedpdfreport_'.$today_timestamp.'.pdf', $detailed_output);

        $financial_output = $financial_pdf->output();
        file_put_contents('uploads/reports/financialpdfreport_'.$today_timestamp.'.pdf', $financial_output);

    }*/


    public function facility_mailsend_report()
    {
        $reports_mailto = "";
        $config_settings = Configuration::first();
        if(isset($config_settings))
        {
            $reports_mail_to = $config_settings->reports_mailto;
            $reports_mailto_arr = explode(',', $reports_mail_to);
        }   
        $report_name_data= "";
        $reportdatas = ReportData::where('status',0)->get();
        foreach($reportdatas as $reportdata)
        {
            $report_data_id = $reportdata->id;
            $report_name_data = $reportdata->report_name_timestamp;
            $attached_data = "'uplods/reports/".$report_name_data;
            $path = public_path()."/uploads/reports/".$report_name_data;
            $total_path[] = $path;             
        }
        //dd($total_path);
        if($reports_mail_to)
        {
            foreach($reports_mailto_arr as $reports_mailto)
            {
                if($reports_mailto)
                {
                    $data= ['message' => 'Welcome to KSSTM Ticketing Application!', 'mailto'=>$reports_mailto, 'report_name_data'=>'Reports', 'attached_data'=>$total_path ];
                    //mailing to the registered email
                    Mail::to($reports_mailto)->send(new ReportMail($data));
                }
            }
            $reportdatas = ReportData::where('status',0)->get();
            foreach($reportdatas as $reportdata)
            {
                $report_data_id = $reportdata->id;
                $report_name_data = $reportdata->report_name_timestamp;
                //////update the status
                $data_update = ReportData::where('id',$report_data_id)->first();
                $data_update->status=1;
                $data_update->save();
                //////delete the report from folder//////////////////////////////
                $path_unlink = trim(public_path()."/uploads/reports/".$report_name_data);
                unlink($path_unlink);
            }
        }
    }

    public function transaction_status_check()
    {        
        $checkcount = 0;
        $todaytime = date("Y-m-d H:i:s");
        $insertobj_scheduler = ScheduleLog::create([
            'command' => 'transactionstatus:cron',
            'command_log' => "transaction scheduler started at ".$todaytime,
            'starttime' => $todaytime,
            'status' => 0,
        ]);
        $scheudleid = $insertobj_scheduler->id;
        ////////////////////////////////////////////////////////////////////////////
        $transactions = Transaction::where('status',0)->where('status_code',NULL)->where('checkcount','<',3)->whereNotNull('public_user_id')->whereNotNull('order_id')->get();
        $transactions = Transaction::where('id',27)->get();
        //dd($transactions);
        //$transactions = Transaction::where('id',52)->get();  ///for testing
        foreach($transactions as $transaction)
        {
            $transaction_id = $transaction->id;
            $mid = $transaction->mid;
            $encykey = $transaction->enckey;
            $order_id = $transaction->order_id;
            $checkcount = $transaction->checkcount;
            if(!$checkcount)
                $checkcount = 0;
            //generate merchant request 
            include '../public/worldline/AWLMEAPI.php';
            //generate merchant request from Helper file
            //create an Object of the above included class
            $obj = new \AWLMEAPI();
            //create an object of response Message
            $pgMeTrnRefNo = '';
            $resMsgDTO = $obj->getTransactionStatus($mid , $order_id , $pgMeTrnRefNo , $encykey);
            //dd($resMsgDTO);
            $trnsrefno = $resMsgDTO->getPgMeTrnRefNo();
            $trnsamount = $resMsgDTO->getTrnAmt();
            $trnsstatuscode = $resMsgDTO->getStatusCode();
            $trnsstatusdesc = $resMsgDTO->getStatusDesc();
            $trnsreqdate = $resMsgDTO->getTrnReqDate();
            $trnsresponsecode = $resMsgDTO->getResponseCode();
            $trns_rrn = $resMsgDTO->getRrn();
            $trnsauthzcode = $resMsgDTO->getAuthZCode();
            //dd($trnsrefno);
            //dd($trnsstatuscode);
            /////////
            $invoice_id = "";
            $invocies = "";
            if($trnsstatuscode=="S")
            {
                $checkcount++;
                ///update transaction table
                $transaction_upd = Transaction::where('id',$transaction_id)->first();
                $transaction_upd->status = 1;
                $transaction_upd->transaction_refno = $trnsrefno;
                $transaction_upd->status_code = $trnsstatuscode;
                $transaction_upd->status_desc = $trnsstatusdesc;
                $transaction_upd->transaction_req_date = $trnsreqdate;
                $transaction_upd->response_code = $trnsresponsecode;
                $transaction_upd->rrn = $trns_rrn;
                $transaction_upd->auth_zcode = $trnsauthzcode;
                $transaction_upd->checkcount = $checkcount;
                $transaction_upd->save();
                ////update invoice table
                //echo "transaction_id=$transaction_id..<br>";
                $invoices = Invoice::where('transaction_id',$transaction_id)->first();
                //check if invoice numbver is there
               

                if(isset($invoices))
                {
                    if($invoices->id)
                        $invoice_id = $invoices->id;
                    if($invoice_id)
                    {
                        $invoices->status = 1;
                        $invoices->save();
                    }

                     $invoice_no = $invoices->invoice_no;
                     if(!$invoice_no)
                     {
                        $organisation_id = $invoices->organisation_id;
                        $booking = new BookingClass;
                        $invoicearr = $booking->getnewInvoice($organisation_id);
                        $invoice_no = $invoicearr[0];
                        $invoice_time = $invoicearr[1];
                        $invoices->invoice_no = $invoice_no;
                        $invoices->invoice_time = $invoice_time;
                        $invoices->save();
                     }

                }
                if($invoice_id)
                {
                    ////update ticket table
                    $ticekts = Ticket::where('invoice_id',$invoice_id)->get();
                    foreach($ticekts as $ticket)
                    {
                        $ticket_id = $ticket->id;
                        $ticket_upd = Ticket::where('id',$ticket_id)->first();
                        //check if there is ticket_no
                        $ticket_no = $ticket_upd->ticket_no;
                        if(!$ticket_no)
                        {
                            $facility_id = $ticket_upd->facility_id;
                            $booking = new BookingClass;
                            $ticketno = $booking->getnewTicket($facility_id);
                            $ticket_upd->ticket_no = $ticketno;
                        }
                        $ticket_upd->status = 1;
                        $ticket_upd->save();
                        ////update ticket seat table
                        $ticket_seats = TicketSeat::where('ticket_id',$ticket_id)->get();
                        foreach($ticket_seats as $ticket_seat)
                        {
                            $ticket_seat_id = $ticket_seat->id;
                            $ticket_seat_upd = TicketSeat::where('id',$ticket_seat_id)->first();
                            $ticket_seat_upd->status = 1;
                            $ticket_seat_upd->save();
                        }
                    }
                }
            }
            if($trnsstatuscode=="F")
            {
                $checkcount++;
                ///update transaction table
                $transaction_upd = Transaction::where('id',$transaction_id)->first();
                $transaction_upd->status = 2;
                $transaction_upd->transaction_refno = $trnsrefno;
                $transaction_upd->status_code = $trnsstatuscode;
                $transaction_upd->status_desc = $trnsstatusdesc;
                $transaction_upd->transaction_req_date = $trnsreqdate;
                $transaction_upd->response_code = $trnsresponsecode;
                $transaction_upd->rrn = $trns_rrn;
                $transaction_upd->auth_zcode = $trnsauthzcode;
                $transaction_upd->checkcount = $checkcount;
                $transaction_upd->save();
            }
        }  
        $todaytimeend = date("Y-m-d H:i:s");
        $scheudlerlogupd = ScheduleLog::where('id',$scheudleid)->where('status',0)->first();
        if(isset($scheudlerlogupd))
        {
            $scheudlerlogupd->status = 1;
            $scheudlerlogupd->endtime = $todaytimeend;
            $scheudlerlogupd->save();
        }
    }

    public function refund_check()
    {
         $todaytime = date("Y-m-d H:i:s");
        $insertobj_scheduler = ScheduleLog::create([
            'command' => 'refundcheck:cron',
            'command_log' => "refundcheck scheduler started at ".$todaytime,
            'starttime' => $todaytime,
            'status' => 0,
        ]);
        $scheudleid = $insertobj_scheduler->id;
        ////////////////////////////////////////////////////////////////////////////
        $refunds = Refund::where('refund_status',0)->whereNotNull('public_user_id')->get();
        foreach($refunds as $refund)
        {
            $refund_id = $refund->id;
            $invoice_id = $refund->invoice_id;
            $invoices = Invoice::where('id',$invoice_id)->where('status',2)->first();//cancelled invoice
            //dd($invoices);
            if(isset($invoices))
            {

                //get current datetime
                $date = date('Y-m-d H:i:s');
                $newDate = date('Y-m-d H:i:s', strtotime($date. ' - 2 days'));
                $newDatestr = strtotime($newDate);

                $invoicetimestr = strtotime($invoices->invoice_time);

                //check if newDate is greater than invoice time
                if($newDatestr<$invoicetimestr)
                    continue;

                $transaction_id = $invoices->transaction_id;
                $status ="";
                $transaction = Transaction::where('id',$transaction_id)->where('status',1)->first();
                if(isset($transaction))
                {
                    $mid = $transaction->mid;
                    $encykey = $transaction->enckey;
                    $order_id = $transaction->order_id;
                    $response_url = $transaction->response_url;
                    $transaction_refno =$transaction->transaction_refno;
                    $status_code =$transaction->status_code;
                    $status_desc = $transaction->status_desc;
                    $amount = $refund->refund_amount;
                    $paisaamt = $amount*100;

                    //generate merchant request 
                    include '../public/worldline/AWLMEAPI.php';
                    //generate merchant request from Helper file
                    //create an Object of the above included class
                    $obj = new \AWLMEAPI();
                    //create an object of Request Message
                    $reqMsgDTO = new \ReqMsgDTO();
                    $reqMsgDTO->setOrderId ($order_id);
                    $reqMsgDTO->setMid($mid);
                    $reqMsgDTO->setRefundAmt($paisaamt); //Paisa Format
                    $reqMsgDTO->setPgMeTrnRefNo($transaction_refno);
                    $reqMsgDTO->setEnckey($encykey);


                  


                    //Step 3: Construct the request DTO with respective Parameter
                    $resMsgDTO = $obj->refundTransaction($reqMsgDTO);
                    //dd($resMsgDTO);

                    ///update refund table/////
                    $refund_upd = Refund::where('id',$refund_id)->first();
                    $refund_upd->order_id = $order_id;
                    $refund_upd->transaction_refno = $transaction_refno;
                    $refund_upd->status_code = $status_code;
                    $refund_upd->status_desc = $status_desc;

                    $refundstatuscode = $resMsgDTO->getStatusCode();
                    if($refundstatuscode=="S")
                    {
                        $status = 1;
                    }
                    if($refundstatuscode=="F")
                    {
                        $status = 2;
                    }
                    $refund_upd->status_code = $refundstatuscode;
                    $refund_upd->refund_status = $status;
                    $refund_upd->status_desc = $resMsgDTO->getStatusDesc();
                    $refund_upd->save();
                }
            }
        }  
        $todaytimeend = date("Y-m-d H:i:s");
        $scheudlerlogupd = ScheduleLog::where('id',$scheudleid)->where('status',0)->first();
        if(isset($scheudlerlogupd))
        {
            $scheudlerlogupd->status = 1;
            $scheudlerlogupd->endtime = $todaytimeend;
            $scheudlerlogupd->save();
        } 
        //dd($resMsgDTO);
    }

    public function mailcheck()
    {
        $todaytime = date("Y-m-d H:i:s");
        $insertobj_scheduler = ScheduleLog::create([
            'command' => 'mail:cron',
            'command_log' => "mail will check mail tickets scheduler started at ".$todaytime,
            'starttime' => $todaytime,
            'status' => 0,
        ]);
        $scheudleid = $insertobj_scheduler->id;
        //return 0;
        $mail_status = "";
        //Mailing tickets with status 0
        $mails = MailTicket::where('status',0)->where('mail_type',1)->get();
        //dd($mails);
        foreach($mails as $mail)
        {
            $email = $mail->email;
            $invoice_id = $mail->invoice_id;
            $mailid = $mail->id;  //// primary id of mail table
            $invoicemd5 = md5($invoice_id);
            $mail_status = 2;
            $mailobj_before = MailTicket::where('id',$mailid)->first();
            $mailobj_before->status=$mail_status;
            $mailobj_before->save();
            ///check whether the invoice is cancelled.
            $invoice_check = Invoice::where('id',$invoice_id)->first();
            if($invoice_check->status!=1)
                continue;
            ///////////////////////////////////////
            //generate ticket pdf
            $invoice = Invoice::where('id',$invoice_id)->where('status',1)->with('organisation','tickets')->first();
            if(isset($invoice))
            {
                $mail_status=1;
                $seatid =[];
                $seatname_ticket = [];
                $seat_count=0;
                $seat_name_row= [];
                $totalrows = "";
                $tickets = Ticket::where('invoice_id',$invoice_id)->where('status',1)->with('showtime','facility','invoice')->get();
                foreach($tickets as $ticket)
                {
                    if($ticket->facility->fixedseatflag)
                    {
                        $ticket_id = $ticket->id;
                        $facility_id = $ticket->facility_id;
                        $layouts[$facility_id] = Layout::where('facility_id', $facility_id)->first();
                        if(isset($layouts[$facility_id]))
                        {
                            $totalrows = $layouts[$facility_id]->total_row;
                            $layout_id = $layouts[$facility_id]->id;
                            //get seats
                            for($i=1;$i<=$totalrows;$i++)
                            {
                                $seats[$facility_id][$i] = Seats::where('facility_id',$facility_id)->where('layout_id',$layout_id)->where('row_no',$i)->get();
                                foreach($seats[$facility_id][$i] as $seatobj)
                                {
                                    $seat_name_row[$i][] = $seatobj->seat_name;
                                }
                            }
                        }
                        $ticket_seats = TicketSeat::where('ticket_id',$ticket_id)->where('status',1)->with('seat')->get();
                        foreach($ticket_seats as $ticket_seat)
                        {
                            $seat_count++;
                            $seatid[] = $ticket_seat->seat_id;
                            $seatname_ticket[] = $ticket_seat->seat->seat_name;
                        }
                    }
                }
                $invoice_pdf = \PDF::loadView('tickets.invoicepdf', compact('invoice','totalrows','seat_name_row','seatname_ticket'));
                \Storage::put('temp/'.$invoicemd5.'.pdf', $invoice_pdf->output());
                $ticketname = $invoicemd5.'.pdf';
                $path = public_path()."/temp/".$ticketname;
                if($email)
                {
                    $data= ['message' => 'Congrats, You have booked the tickets. Please find ticket in attachment!', 'mailto'=>$email, 'ticketname'=>$ticketname, 'attached_data'=>$path ];
                    //mailing to the registered email
                    //Mail::to($email)->send(new TicketMail($data));
                }
                //After mailing make the status 1
                $mailid = $mail->id;
                $mailobj = MailTicket::where('id',$mailid)->first();
                $mailobj->status=$mail_status;
                $mailobj->save();

                //unlink($path);
            }
            else
            {
                $mail_status =2;
                $mailobj = MailTicket::where('id',$mailid)->first();
                $mailobj->status=$mail_status;
                $mailobj->save();
            }
        }
        $todaytimeend = date("Y-m-d H:i:s");
        $scheudlerlogupd = ScheduleLog::where('id',$scheudleid)->where('status',0)->first();
        if(isset($scheudlerlogupd))
        {
            $scheudlerlogupd->status = 1;
            $scheudlerlogupd->endtime = $todaytimeend;
            $scheudlerlogupd->save();
        }
    }
}
