<?php

namespace App\Http\Controllers\OwnerPanel;

use App\Http\Controllers\Controller;
use App\Models\User;;

use App\Models\CurrencyMaster;
use App\Models\CarWashOwner;
use App\Models\WashDetail;
use Illuminate\Http\Request;
use Auth;
use Carbon\Carbon;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\View;
use DB;

class OwnerDailySummaryReportController extends Controller
{
    public function index(Request $request)
    {
        $data['page_title'] = "Daily Summary Report";
        $data['page_sub_title'] = "Daily Summary Report";
        // $data['cards'] = $this->card_data();
        $today = date('Y-m-d');  
        $search_date = $request->input('search_date');
        if($search_date != ''){
            $date = date("Y-m-d", strtotime($search_date));
        } else {
            $date = $today;
        }  
        $data['cards'] = $this->card_data($date);
        // dd($data);
        return view('owner.daily-summary-report', $data);
    }

    protected function card_data($search_date)
    {
        $cwo_id = Auth::user()->cwo_id;
        // echo $cwo_id;exit;
        $today = date('Y-m-d');  
        /*$totalCarWashed = WashDetail::join('wash_categories', 'wash_categories.id', '=', 'wash_details.wash_type_id')
            ->where('wash_categories.cwo_id', $cwo_id)
            ->where('wash_details.status', 3)
            ->count();*/
        // $search_date = $request->input('search_date');
        if($search_date != ''){
            $date = date("Y-m-d", strtotime($search_date));
        } else {
            $date = $today;
        }    

        $getCurrency = CarWashOwner::leftJoin('currency_masters', 'currency_masters.id', '=', 'cwo_master.currency_id')->select('currency_masters.code', 'currency_masters.symbol')->where('cwo_master.id', $cwo_id)->get();
        // echo "<pre>";print_r($getCurrency->toArray());exit;

        /***************** total car washed starts *********************/ 
        $todayTotalCarWashed = WashDetail::where('cwo_id', $cwo_id)
            // ->whereDate('date_washed', '=', $today)
            ->whereDate('date_washed', '=', $date)
            // ->where('status', 3)
            ->count(); 
        /***************** total car washed ends *********************/ 

        /***************** cash starts *********************/
        $todayRevenueInCash = WashDetail::select(DB::raw('SUM(wash_details.total_amount) as total_revenue'))
            ->join('cwo_master','cwo_master.id','=','wash_details.cwo_id')
            ->where('wash_details.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'cash')
            // ->whereDate('wash_details.date_washed', '=', $today)
            ->whereDate('wash_details.date_washed', '=', $date)
            ->get();
        // echo "<pre>";print_r($todayRevenueInCash->toArray());exit;
        $todayRevenueInCash = $todayRevenueInCash[0]->total_revenue != '' ? $todayRevenueInCash[0]->total_revenue : 0;
        /***************** cash ends *********************/

        /***************** card starts *********************/
        $todayRevenueInCard = WashDetail::select(DB::raw('SUM(wash_details.total_amount) as total_revenue'))
            ->join('cwo_master','cwo_master.id','=','wash_details.cwo_id')
            ->where('wash_details.cwo_id', $cwo_id)
            // ->where('wash_details.payment_details', 'card')
            ->where('wash_details.payment_details', 'like', '%' . 'card' . '%')
            // ->whereDate('wash_details.date_washed', '=', $today)
            ->whereDate('wash_details.date_washed', '=', $date)
            ->get();
        // echo "<pre>";print_r($todayRevenueInCard->toArray());exit;
        $todayRevenueInCard = $todayRevenueInCard[0]->total_revenue != '' ? $todayRevenueInCard[0]->total_revenue : 0;
        /***************** card ends *********************/

        /***************** contract starts *********************/
        $todayRevenueInContract = WashDetail::select(DB::raw('SUM(wash_details.total_amount) as total_revenue'))
            ->join('cwo_master','cwo_master.id','=','wash_details.cwo_id')
            ->where('wash_details.cwo_id', $cwo_id)
            ->where('wash_details.payment_details', 'like', '%' . 'contract' . '%')
            // ->whereDate('wash_details.date_washed', '=', $today)
            ->whereDate('wash_details.date_washed', '=', $date)
            ->get();
        // echo "<pre>";print_r($todayRevenueInContract->toArray());exit;
        $todayRevenueInContract = $todayRevenueInContract[0]->total_revenue != '' ? $todayRevenueInContract[0]->total_revenue : 0;

        // $todayRevenueInCash = $todayRevenueInCash + $todayRevenueInContract;
        /******************* contract ends ************************/

        $card_data = [
            
            [
                'title' => 'Total # of Cars Washed',
                'count' => $todayTotalCarWashed,
                'icon' => 'icon-credit-card',
                'color' => '#e58e95'
            ],
            [
                'title' => 'Total Cash Payments',
                'count' => $getCurrency[0]->symbol . formatCurrency($todayRevenueInCash),
                'icon' => 'icon-credit-card',
                'color' => '#90afd0'
            ],
            [
                'title' => 'Total Card Payments',
                'count' => $getCurrency[0]->symbol . formatCurrency($todayRevenueInCard),
                'icon' => 'icon-credit-card',
                'color' => '#df3657'
            ],
            [
                'title' => 'Total by Contract/EFT',
                'count' => $getCurrency[0]->symbol . formatCurrency($todayRevenueInContract),
                'icon' => 'icon-credit-card',
                'color' => '#1e89c8'
            ],
        ];

        return $card_data;
    }
}
