<?php

namespace app\Helpers;
use PDF;
use Mail;
use DB;
use DatePeriod;
use DateTime;
use DateInterval;
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;

/**
* class MSG91 to send SMS on Mobile Numbers.
* @author Shashank Tiwari
*/
class ReportClass {

    function __construct() {
       
    }

    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;
            $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 =[];
            ///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 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);
            }
        }
    }
}
?>