<?php

namespace App\Http\Controllers;

use App\Http\Requests\ProfileUpdateRequest;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redirect;
use Illuminate\View\View;

use Illuminate\Support\Facades\Log;
use App\Models\WashDetail;
use App\Models\OptionalExtra;
use App\Models\CleanerWash;
use App\Models\WashTypeToWash;
use App\Models\WashCategory;
use Illuminate\Support\Facades\Http;
use Barryvdh\DomPDF\Facade\Pdf;

class WashReceiptController extends Controller
{

    public function downloadReceipt(Request $request)
    {
        $wash_id = decodeC($request->input('wash_id'));
        // echo $wash_id;exit;
        $data = WashDetail::select('wash_details.id', 'wash_details.car_id', 'wash_details.date_washed', 'wash_details.time_washed', 'wash_details.status', 'wash_details.payment_status', 'co_master.co_fname', 'co_master.co_lname', 'co_master.co_phone', 'co_car.car_registration_no', 'wash_details.otp', 'wash_details.payment_details', 'wash_details.amount', 'wash_details.total_amount', 'co_master.isd_code', 'wash_details.driver_name', 'wash_details.driver_isd_code', 'wash_details.driver_phone', 'cwo_master.cwo_logo', 'wash_details.wash_type_id', 'co_car.make', 'co_car.car_model', 'co_car.vehicle_color', 'cwo_master.cwo_company', 'cwo_master.cwo_isd', 'cwo_master.cwo_phone', 'wash_details.wash_count', 'wash_details.created_at')
        ->join('co_car', 'co_car.id', '=', 'wash_details.car_id')
        ->join('co_master', 'co_master.id', '=', 'co_car.co_id')
        ->join('users', 'users.id', '=', 'co_master.user_id')
        ->join('cwo_master', 'cwo_master.id', '=', 'wash_details.cwo_id')
        ->leftJoin('currency_masters', 'currency_masters.id', '=', 'cwo_master.currency_id')
        ->where('wash_details.id', $wash_id);
        $data = $data->get();
        // echo "<pre>";print_r($data->toArray());exit;
        $dataBag['id'] = $data[0]->id;
        $dataBag['car_id'] = $data[0]->car_id;
        $dataBag['cwo_company'] = $data[0]->cwo_company;
        if($data[0]->cwo_phone != ''){
            // $dataBag['cwo_isd'] = $data[0]->cwo_isd;
            $dataBag['cwo_phone'] = '+' . $data[0]->cwo_isd . $data[0]->cwo_phone;
        } else {
            $dataBag['cwo_phone'] = '';
        }
        $dataBag['wash_count'] = $data[0]->wash_count;
        $dataBag['in_queue_time']  = date("H:i", strtotime($data[0]->created_at));
        if($data[0]->driver_name != ''){
            $dataBag['co_fname'] = $data[0]->driver_name;
            $dataBag['co_lname'] = '';
        } else {
            $dataBag['co_fname'] = $data[0]->co_fname;
            $dataBag['co_lname'] = $data[0]->co_lname;
        }
        if($data[0]->driver_phone != ''){
            $dataBag['isd_code'] = '+' . $data[0]->driver_isd_code;
            $dataBag['co_phone'] = $data[0]->driver_phone;
        } else {
            $dataBag['isd_code'] = '+' . $data[0]->isd_code;
            $dataBag['co_phone'] = $data[0]->co_phone;
        }
        $dataBag['car_registration_no'] = $data[0]->car_registration_no;
        $dataBag['make'] = $data[0]->make;
        $dataBag['car_model'] = $data[0]->car_model;
        $dataBag['vehicle_color'] = $data[0]->vehicle_color;
        // $dataBag['wash_name'] = $data[0]->wash_name;
        if($data[0]->date_washed != '') {
            $dataBag['date_washed']  = date("Y/m/d", strtotime($data[0]->date_washed));
        } else {
            $dataBag['date_washed']  = '';
        }
        if($data[0]->time_washed != '') {
            $dataBag['time_washed']  = date("h:i a", strtotime($data[0]->time_washed));
        } else {
            $dataBag['time_washed']  = '';
        }
        $dataBag['payment_status_id'] = $data[0]->payment_status;
        if($data[0]->payment_status == 1) {
            $dataBag['payment_status'] = 'Paid';
        } else {
            $dataBag['payment_status'] = 'Not Paid';
        }
        $dataBag['status_id'] = $data[0]->status;
        if($data[0]->status == 0) {
            $dataBag['status'] = 'Car in-queue';
        }
        if($data[0]->status == 1) {
            $dataBag['status'] = 'In Wash Bay';
        }
        if($data[0]->status == 2) {
            $dataBag['status'] = 'Finishing Bay';
        }
        if($data[0]->status == 3) {
            $dataBag['status'] = 'Car Wash Completed';
        }
        if($data[0]->status == 4) {
            $dataBag['status'] = 'Cancelled';
        }
        $dataBag['otp'] = $data[0]->otp;
        $dataBag['payment_mode'] = $data[0]->payment_details;
        $dataBag['wash_amount'] = $data[0]->amount;
        $dataBag['total_amount'] = $data[0]->total_amount;
        $optionalExtra = OptionalExtra::where('wash_id', $data[0]->id)->select('optional_extra', 'price')->orderBy('id', 'asc')->get();
        $dataBag['extras'] = $optionalExtra;
        $cleaners = CleanerWash::select('cleaner_masters.name', 'cleaner_washes.description as cleaning_description')
                            ->join('cleaner_masters', 'cleaner_masters.id', '=', 'cleaner_washes.cleaner_id')
                            ->where('cleaner_washes.wash_id', $data[0]->id)
                            ->orderBy('cleaner_washes.id', 'asc')
                            ->get();
        $dataBag['cleaners'] = $cleaners;

        if($data[0]->cwo_logo != ''){
            $dataBag['cwo_logo'] = asset('images/cwo') . '/' . $data[0]->cwo_logo;
        } else {
            $dataBag['cwo_logo'] = '';
        }

        $wash_types = WashTypeToWash::select('wash_categories.wash_name', 'wash_type_to_washes.price')
                            ->join('wash_categories', 'wash_categories.id', '=', 'wash_type_to_washes.wash_type_id')
                            ->where('wash_type_to_washes.wash_id', $data[0]->id)
                            ->orderBy('wash_type_to_washes.id', 'asc')
                            ->get();
        $dataBag['wash_types'] = $wash_types;

        if($data[0]->wash_type_id > 0){
            $getWashType = WashCategory::where('id', $data[0]->wash_type_id)->select('wash_name')->first();
            if($getWashType != ''){
                $dataBag['wash_name'] = $getWashType->wash_name;    
            } else {
                $dataBag['wash_name'] = '';
            }
        } else {
            $dataBag['wash_name'] = '';
        }

        // echo "<pre>";print_r($dataBag);exit;
        // return view('receipt.index', $dataBag);
        $pdf = PDF::loadView('receipt.index', ['data'=>$dataBag]);
        // $pdf = PDF::loadView('receipt.index', [$dataBag]);
        $currentDate=date('d-m-Y');
        return $pdf->download("receipt_{$currentDate}.pdf");
    }
    



}
