<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Services\CustomerService;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use PDF;


class CallCenterController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');
    }

    public function notisperingatan(Request $request){
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();

        return view('callcenter.notisperingatan',compact('cawangan_info','api_url'));
    }
    public function notisperingatanpertama(Request $request){
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();

        return view('callcenter.notisperingatanpertama',compact('cawangan_info','api_url'));
    }

    public function cariansag(Request $request)
    {
        // dd($request->all());
        $request->radaktif === 'aktif';
        $api_url = config('api.url');
        $auth_user = Auth::user();
        $current = Carbon::now();
        $current = new Carbon();
        $tarikh_cetak = $current->toDateString();
        $daritempoh = $request->daritempoh;
        $hinggatempoh = $request->hinggatempoh;
        

        $cawangan_all = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cawangan',[
            'daritempoh' => $daritempoh,
            'hinggatempoh' => $hinggatempoh,
        ])->json();

        $senarai = [];
        foreach($cawangan_all as $cawangan){
                    $kodcaw = $cawangan['kodcaw'];
                    // $kodcaw = 'WCY';
                    $datagadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/datagadai/'.$request->radaktif.'/'.$kodcaw ,[
                        'daritempoh' => $daritempoh,
                        'hinggatempoh' => $hinggatempoh,
                    ])->json();
                    
                        $data = [
                            'kodcaw'=>$cawangan['kodcaw'],
                            'caw_name'=>$cawangan['details_caw'],
                            'datagadai' => $datagadai ? $datagadai : '',
                        ];

                        array_push($senarai,$data);
                        
                        // dd($data);
            } 
           
            return view('callcenter.listcariansag', compact( 
                                                        'kodcaw',
                                                        'senarai',
                                                        'daritempoh',
                                                        'hinggatempoh',

                                                    ));
    }

    public function cariansagnotispertama(Request $request)
    {
        // dd($request->all());
        $request->radaktif === 'aktif';
        $api_url = config('api.url');
        $auth_user = Auth::user();
        $current = Carbon::now();
        $current = new Carbon();
        $tarikh_cetak = $current->toDateString();
        $fasa = $request->fasa;
        

        $cawangan_all = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cawangan',[
            'fasa' => $fasa,
        ])->json();
        // dd($cawangan_all );

        $senarai = [];
        foreach($cawangan_all as $cawangan){
                    $kodcaw = $cawangan['kodcaw'];
                    $datagadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cariannotispertama/'.$kodcaw,[
                        'fasa' => $fasa
                    ])->json();
                    
                        $data = [
                            'kodcaw'=>$cawangan['kodcaw'],
                            'caw_name'=>$cawangan['details_caw'],
                            'datagadai' => $datagadai ? $datagadai : '',
                        ];

                        array_push($senarai,$data);
        } 
           
            return view('callcenter.listcariansagnotispertama', compact( 
                                                        'kodcaw',
                                                        'senarai',
                                                        'fasa'
                                                    ));
    }

    public function janadatanotisperingatan(Request $request)
    {
        $current = Carbon::now();
        $current = new Carbon();
        $currentNow = Carbon::now();
        $senarai = [];
        $tarikh_savedaftarnotis = $current->toDateString();
        $daritempoh = $request->daritempoh;
        $hinggatempoh = $request->hinggatempoh;
        $kodcaw = $request->kodcaw;
        $selected_caw = $request->caw;
        // dd($selected_caw);

        $getbatchnotis=Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url').'/arcc/getbatchnotis',[
            'daritempoh' => $daritempoh,
            'hinggatempoh' => $hinggatempoh,
        ])->json();

        $newbatchnotis=$getbatchnotis;
        
        if(!empty($selected_caw))
        {
            foreach($selected_caw as $index=>$caw){
                $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $caw)->json();
                // dd($cawangan_info);
                $insertdatagadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/insertdatagadai/aktif/'.$caw ,[
                    'daritempoh' => $daritempoh,
                    'hinggatempoh' => $hinggatempoh,
                    'kodcaw' => $caw,
                    'notisid' => $newbatchnotis
                ])->json();

                $data = [
                        'kodcaw'=>$caw,
                        'caw_name'=>$cawangan_info['details_caw'],
                        'datagadai' => $insertdatagadai ? $insertdatagadai : '',
                    ];

                    array_push($senarai,$data);
            }
        }
        return redirect()->route('arcc.notisperingatan')->with('success','Berjaya Daftar Notis Peringatan.');

    }
    public function janadatanotispertama(Request $request)
    {
        $current = Carbon::now();
        $current = new Carbon();
        $currentNow = Carbon::now();
        $senarai = [];
        $tarikh_savedaftarnotis = $current->toDateString();
        $fasa = $request->fasa;
        $kodcaw = $request->kodcaw;
        $selected_caw = $request->caw;
        // dd($selected_caw);
        if(!empty($selected_caw))
        {
            $getbatchnotispertama=Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url').'/arcc/getbatchnotispertama',[
                'fasa' => $fasa
            ])->json();
            $newbatchnotis=$getbatchnotispertama;
        
            foreach($selected_caw as $index=>$caw){
                $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $caw)->json();
                // dd($cawangan_info);
                $insertnotispertama = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/insertnotispertama/'.$caw ,[
                    'fasa' => $fasa,
                    'kodcaw' => $caw,
                    'notisid' => $newbatchnotis
                ])->json();

                $data = [
                        'kodcaw'=>$caw,
                        'caw_name'=>$cawangan_info['details_caw'],
                        'datagadai' => $insertnotispertama ? $insertnotispertama : '',
                    ];

                    array_push($senarai,$data);
                }
            return redirect()->route('arcc.notisperingatanpertama')->with('success','Berjaya Daftar Notis Peringatan Pertama.');
        }else{
        return redirect()->route('arcc.notisperingatanpertama')->with('failed','Maaf,Tiada Cawangan Dipilih Sila Cuba Lagi...');
    }
    }

    public function rekodnotisperingatan()
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $arrayinfo = [];

        // $notis = Notis::select('tarikh_notis','id')
        // ->groupBy('tarikh_notis')
        // ->get();
        $notis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/senarainotisperingatan')->json();
        // dd($notis);
        foreach($notis as $info)
        {
            $getcawnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$info['id'])->json();

            array_push($arrayinfo, ['info'=> $info,'cawnotis' => $getcawnotis]);
        }
        // dd($arrayinfo);
        return view('callcenter.rekodnotisperingatan',compact('notis','arrayinfo'));
    }

    public function detailnotisperingatan($notisid)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];

        $detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$notisid)->json();
        foreach($detailnotis as $info)
        {
            $getcawnotisbycaw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisbycaw', [
                'kodcaw' => $info[0]['kodcaw'],
                'notisid' => $notisid
            ])->json();

            $data = [
                'detailnotis' => $info ? $info : '',
                'getcawnotisbycaw' => $getcawnotisbycaw ? $getcawnotisbycaw : '',
            ];

            array_push($senarai,$data);
        }
        return view('callcenter.detailnotisperingatan',compact('detailnotis','senarai','notisid'));
    }

    public function bycawnotisperingatan($kodcaw,$notisid, Request $request)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
        
        if($request->type == 'whatsapp')
        {

            $blastwhatsapp = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/notis/blastwasapbysag/'.$auth_user['cawangan'],
            ['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
            if($blastwhatsapp == 'success'){
                return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
                ->with('success','Blast Whatsapp Dalam Proses.');
            }
            elseif($blastwhatsapp == 'failed'){
                return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
                ->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
            }
            
        }
        return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
    }

    public function blastpertama($kodcaw,$notisid,Request $request)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();        
        if($request->type == 'whatsapp')
        {

            $blastwhatsapp = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/notis/blastwasapbysag',
            ['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
            if($blastwhatsapp == 'success'){
                return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
                ->with('success','Blast Whatsapp Dalam Proses.');
            }
            elseif($blastwhatsapp == 'failed'){
                return redirect()->route('arcc.bycawnotisperingatan',['kodcaw' => $kodcaw, 'notisid' => $notisid])
                ->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
            }
            
        }
        elseif($request->type == 'pdf')
        {
            $current = Carbon::now();
            $current = new Carbon();
            $tarikh_cetak = $current->toDateString();
            $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
            $cawangan_detail=$cawangan[0];
            $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();        
            return view('callcenter.pdfbycawdetailnotisperingatan', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
        }
        elseif($request->type == 'excel')
        {
            $current = Carbon::now();
            $current = new Carbon();
            $tarikh_cetak = $current->toDateString();
            $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
            $cawangan_detail=$cawangan[0];
            $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();        
            return view('callcenter.notisperingatanpertama_excel', compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
        }
        return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
    }

    public function pelanggan()
    {
        $search = false;

        $api_url = config('api.url');
        $auth_user = Auth::user();
        $idtype = 'nokp';
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
        $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json();
        if($auth_user->roles == 'admin'){
            return view('admin.customer_index',compact('search','cawangan_info','bank','api_url','idtype','auth_user'));
        }else{
            return view('callcenter.index',compact('search','cawangan_info','bank','api_url','idtype','auth_user'));
        }
    }

    public function search(Request $request){
        // dd($request->all());
        $noic = $request->noic;
        $idtype = $request->customerIDType;
        $kodcaw = $request->cawangan;
        Session::put('noic', $noic);
        Session::put('kodcaw', $kodcaw);

        $api_url = config('api.url');
        $auth_user = Auth::user();
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bank = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bank')->json();
        $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json();

        $request->session()->forget('page_reload');
        $request->session()->forget('norujukan');

        $search = true;

        if($customer_info){
            Session::put('customer_info_arcc',$customer_info);
                return redirect()->route('arcc.customer_info', ['customer_info' => $customer_info,'cawangan_info'=>$cawangan_info,'api_url'=>$api_url]);
        }else{
            return redirect()->route('arcc.pelanggan')
                ->with('failed','Maaf,Tiada Data Pelanggan...');
        }
    }

    public function info(Request $request){
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. Session::get('kodcaw'))->json();
        $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json();

        $bakilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . Session::get('kodcaw') . '/' . Session::get('noic') . '/baki')->json();
        $rugilelong = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/bakilelong/cawangan/' . Session::get('kodcaw') . '/' . Session::get('noic') . '/rugi')->json();

        $negeri = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/negeri/')->json();

        $request->session()->forget('page_reload');
        $request->session()->forget('norujukan');

            return view('callcenter.' . $cawangan_info['version'] . '.info',compact('cawangan_info','api_url','customer_info','bakilelong','rugilelong','negeri'));
    }

    public function notisperingatankedua(Request $request){
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();

        return view('callcenter.notisperingatankedua',compact('cawangan_info','api_url'));
    }


    public function kemaskininotisperingatan($notisid)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];

        $detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotiskemaskini/'.$notisid)->json();
        foreach($detailnotis as $index=>$info)
        {
            $kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
                'kodcaw' => $info['kodcaw'],
                'notisid' => $notisid
            ])->json();
        }   
            if($kemaskininotisperingatan == 'success'){
                return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
                ->with('success','Data Telah Dikemaskini.');
            }elseif($kemaskininotisperingatan == 'failed'){
                return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
                ->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
        }
        return view('callcenter.detailnotisperingatan',compact('detailnotis','senarai','notisid'));
    }

    public function cariansagnotiskedua(Request $request)
    {
        // dd($request->all());
        $api_url = config('api.url');
        $auth_user = Auth::user();
        $current = Carbon::now();
        $current = new Carbon();
        $tarikh_cetak = $current->toDateString();
        $fasa = $request->fasa;

        $notis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cariannotiskedua',[
            'fasa' => $fasa
        ])->json();

        
        return redirect()->route('arcc.notisperingatankedua')->with('success','Berjaya Daftar Notis Peringatan Kedua.');
    }

    public function rekodnotisperingatankedua()
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $arrayinfo = [];

        // $notis = Notis::select('tarikh_notis','id')
        // ->groupBy('tarikh_notis')
        // ->get();
        $notis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/senarainotisperingatankedua')->json();
        // dd($notis);
        foreach($notis as $info)
        {
            $getcawnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$info['id'])->json();

            array_push($arrayinfo, ['info'=> $info,'cawnotis' => $getcawnotis]);
        }
        // dd($arrayinfo);
        return view('callcenter.rekodnotisperingatankedua',compact('notis','arrayinfo'));
    }

    public function detailnotisperingatankedua($notisid)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];

        $detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotis/'.$notisid)->json();
        foreach($detailnotis as $info)
        {
            $getcawnotiskeduabycaw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotiskeduabycaw', [
                'kodcaw' => $info[0]['kodcaw'],
                'notisid' => $notisid
            ])->json();

            $data = [
                'detailnotis' => $info ? $info : '',
                'getcawnotisbycaw' => $getcawnotiskeduabycaw ? $getcawnotiskeduabycaw : '',
            ];

            array_push($senarai,$data);
        }
        return view('callcenter.detailnotisperingatankedua',compact('detailnotis','senarai','notisid'));
    }

    public function bycawnotisperingatankedua($kodcaw,$notisid, Request $request)
    {
        
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
        
        // if($request->type == 'whatsapp')
        // {

        //     $blastwhatsapp = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/blastwasapbysag/'.$auth_user['cawangan'],
        //     ['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
        //     if($blastwhatsapp == 'success'){
        //         return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
        //         ->with('success','Blast Whatsapp Dalam Proses.');
        //     }
        //     elseif($blastwhatsapp == 'failed'){
        //         return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
        //         ->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
        //     }
            
        // }
        
        return view('callcenter.bycawdetailnotisperingatankedua',compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','api_url'));
    }

    public function blastkedua($kodcaw,$notisid,Request $request)
    {
        $current = Carbon::now();
        $current = new Carbon();
        $tarikh_cetak = $current->toDateString();
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
        if($request->type == 'whatsapp')
        {

            $blastwhatsappkedua = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/notis/blastwasapbysagkedua',
            ['kodcaw' => $kodcaw,'notisid' => $notisid, 'namapengguna' => $auth_user['name'],])->json();
            if($blastwhatsappkedua == 'success'){
                return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
                ->with('success','Blast Whatsapp Dalam Proses.');
            }
            elseif($blastwhatsappkedua == 'failed'){
                return redirect()->route('arcc.bycawnotisperingatankedua',['kodcaw' => $kodcaw, 'notisid' => $notisid])
                ->with('failed','Blast Whatsapp Tidak Berjaya, Sila Semak Semula Rekod Blasted.');
            }
            
        }
        elseif($request->type == 'pdf')
        {
            if($request->fasa == 1)
            {
                $datanotiskedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getdatanotiskedua/'. $kodcaw.'/'.$notisid. '/' . 'fasa1')->json();
                $fasa = 'fasa1';
                $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
                $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
                $cawangan_detail=$cawangan[0];
    
                // return view('print.notislelong', compact('cawangan_info','notislelong','api_url','cawangan_detail','lelong','tarikh_cetak'));
                // dd($datanotiskedua);
                $pdf=PDF::loadView('callcenter.suratnotisperingatankeduafasa1', compact('cawangan_info','api_url','cawangan_detail','datanotiskedua','fasa','tarikh_cetak'))->setPaper('A4','potrait');
                return $pdf->download('notisperingatankedua_'.$tarikh_cetak.'_'.$fasa.'.pdf');
            }else{
                // dd(false);
                $datanotiskedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getdatanotiskedua/'. $kodcaw.'/'.$notisid. '/' . 'fasa2')->json();
                $fasa = 'fasa2';
                $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
                $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
                $cawangan_detail=$cawangan[0];
    
                // return view('print.notislelong', compact('cawangan_info','notislelong','api_url','cawangan_detail','lelong','tarikh_cetak'));
                // dd($datanotiskedua);
                $pdf=PDF::loadView('callcenter.suratnotisperingatankeduafasa2', compact('cawangan_info','api_url','cawangan_detail','datanotiskedua','fasa','tarikh_cetak'))->setPaper('A4','potrait');
                return $pdf->download('notisperingatankedua_'.$tarikh_cetak.'_'.$fasa.'.pdf');
            }
           
            
        }
        elseif($request->type == 'pdflist')
        {
            
            $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
            $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
            $cawangan_detail=$cawangan[0];
            $bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();

            return view('callcenter.pdfbycawdetailnotisperingatankedua', compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
            
        }
        return view('callcenter.bycawdetailnotisperingatankedua',compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','api_url'));
    }


    public function kemaskininotisperingatankedua($notisid)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];

        $detailnotis = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotiskemaskini/'.$notisid)->json();
        foreach($detailnotis as $info)
        {
            $kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
                'kodcaw' => $info['kodcaw'],
                'notisid' => $notisid
            ])->json();
        }
        if($kemaskininotisperingatan == 'success'){
            return redirect()->route('arcc.detailnotisperingatankedua',['notisid' => $notisid])
            ->with('success','Data Telah Dikemaskini.');
        }elseif($kemaskininotisperingatan == 'failed'){
            return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
            ->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
        }
        return view('callcenter.detailnotisperingatankedua',compact('detailnotis','senarai','notisid'));
    }

    public function kemaskininotisperingatanbycaw($kodcaw,$notisid)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatan/'.$kodcaw.'/'.$notisid)->json();
        $kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
                'kodcaw' => $kodcaw,
                'notisid' => $notisid
            ])->json();
            if($kemaskininotisperingatan == 'success'){
                return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
                // return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
                // ->with('success','Data Telah Dikemaskini.');
            }elseif($kemaskininotisperingatan == 'failed'){
                return redirect()->route('arcc.detailnotisperingatan',['notisid' => $notisid])
                ->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
            }
           
        // return view('callcenter.bycawdetailnotisperingatan',compact('cawangan_info','bycawnotisperingatan','kodcaw','notisid'));
    }

    public function kemaskininotisperingatankeduabycaw($kodcaw,$notisid)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisperingatankedua = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisperingatankedua/'.$kodcaw.'/'.$notisid)->json();
        $kemaskininotisperingatan = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url'). '/arcc/kemaskininotisperingatan', [
                'kodcaw' => $kodcaw,
                'notisid' => $notisid
            ])->json();
            if($kemaskininotisperingatan == 'success'){
                return view('callcenter.bycawdetailnotisperingatankedua',compact('cawangan_info','bycawnotisperingatankedua','kodcaw','notisid','api_url'));
            }elseif($kemaskininotisperingatan == 'failed'){
                return redirect()->route('arcc.detailnotisperingatankedua',['notisid' => $notisid])
                ->with('failed','Data Tidak Dikemaskini. Sila Semak Semula...');
            }
    }

    public function notisJbg(){
        $api_url = config('api.url');
        $auth_user = Auth::user();
        $caw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $auth_user['cawangan'])->json();
        //dd('sini');
        return view('callcenter.cariangadaian',compact('api_url','caw'));
    }

    public function carianJbg(Request $request){
        $current = Carbon::now();
        $current = new Carbon();
        $api_url = config('api.url');
        $auth_user = Auth::user();
        $jbgmula = $request->jbgmula;
        $jbghingga = $request->jbghingga;
        $tprint = $current->toDateString();
        
        $caw_all = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/cawangan/')->json();
        $senarai = [];
        foreach($caw_all as $cwgn)
        {
            $kodcaw = $cwgn['kodcaw'];
            $datagadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/arcc/gadaian/'.$kodcaw,[
                'jbgmula' => $request->jbgmula,
                'jbghingga' => $request->jbghingga,
                ])->json();

                $data = [
                    'kodcaw'=>$cwgn['kodcaw'],
                    'caw_name'=>$cwgn['details_caw'],
                    'datagadai'=>$datagadai ? $datagadai : '',
                ];
                array_push($senarai,$data);
        }
        // dd(1);
        return view('callcenter.gadaianjbg', compact('kodcaw','senarai','jbgmula','jbghingga'));
    }

    public function janadatanotisjbg(Request $request){
        $current = Carbon::now();
        $current = new Carbon();
        $currentNow = Carbon::now();
        $senarai = [];
        $tarikh_savedaftarnotis = $current->toDateString();
        $jbgmula = $request->jbgmula;
        $jbghingga = $request->jbghingga;
        $kodcaw = $request->kodcaw;
        $selected_caw = $request->caw;
        // dd($selected_caw);

        $getbatchnotisjbg=Http::withOptions(['verify' => config('app.api_verify')])->get( config('api.url').'/arcc/getbatchnotisjbg',[
            'jbgmula' => $jbgmula,
            'jbghingga' => $jbghingga,
        ])->json();

        $newbatchnotis=$getbatchnotisjbg;
        
        if(!empty($selected_caw))
        {
            foreach($selected_caw as $index=>$caw){
                $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $caw)->json();
                // dd($cawangan_info);
                $insertdatagadai = Http::withOptions(['verify' => config('app.api_verify')])->post(config('api.url').'/arcc/insertdatagadaijbg/'.$caw ,[
                    'jbgmula' => $jbgmula,
                    'jbghingga' => $jbghingga,
                    'kodcaw' => $caw,
                    'notisid' => $newbatchnotis
                ])->json();

                $data = [
                        'kodcaw'=>$caw,
                        'caw_name'=>$cawangan_info['details_caw'],
                        'datagadai' => $insertdatagadai ? $insertdatagadai : '',
                    ];

                    array_push($senarai,$data);
            }
        }
        return redirect()->route('arcc.notisjbg')->with('success','Berjaya Daftar Notis Jbg.');
    }

    public function rekodnotisjbg(){
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $arrayinfo = [];

        // $notis = Notis::select('tarikh_notis','id')
        // ->groupBy('tarikh_notis')
        // ->get();
        $notisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/senarainotisjbg')->json();
        // dd($notisjbg);
        foreach($notisjbg as $info)
        {
            $getcawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisjbg/'.$info['id'])->json();

            array_push($arrayinfo, ['info'=> $info,'cawnotis' => $getcawnotisjbg]);
        }
        // dd($arrayinfo);
        return view('callcenter.rekodnotisjbg',compact('notisjbg','arrayinfo'));
    }

    public function detailnotisjbg(Request $request){
        $auth_user = Auth::user();
        $api_url = config('api.url');

        $senarai = [];
        $notisid = $request->notisid;

        $detailnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisjbg/'.$notisid)->json();
         //dd($detailnotisjbg[0]);
        foreach($detailnotisjbg as $info)
        {
            $getcawnotisjbgbycaw = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/getcawnotisjbgbycaw', [
                'kodcaw' => $info[0]['kodcaw'],
                'notisid' => $notisid
            ])->json();
                //dd($getcawnotisjbgbycaw);
            $data = [
                // 'kodcaw'=>$info[0]['kodcaw'],
                // 'caw_name'=>$info[0]['details_caw'],
                'getcawnotisjbgbycaw' => $getcawnotisjbgbycaw ? $getcawnotisjbgbycaw : '',
            ];

            array_push($senarai,$data);
        }

        return view('callcenter.detailnotisjbg',compact('detailnotisjbg','senarai','notisid'));
    }

    public function bycawnotisjbg($kodcaw,$notisid, Request $request)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg/'.$kodcaw.'/'.$notisid)->json();
        
        return view('callcenter.bycawdetailnotisjbg',compact('cawangan_info','bycawnotisjbg','kodcaw','notisid'));
    }

    public function detsagcallbyjbg($kodcaw, $notisid, $id)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bysagnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbg/'.$kodcaw.'/'.$notisid.'/'.$id)->json();
        $bysagnotisjbgCustomer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbgcustomer/'.$kodcaw.'/'.$notisid.'/'.$id)->json();
        return view('callcenter.callnotisjbg',compact('cawangan_info','bysagnotisjbg','bysagnotisjbgCustomer'));
    }

    public function bycawnotisjbg2($kodcaw,$notisid, Request $request)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg2/'.$kodcaw.'/'.$notisid)->json();
        return view('callcenter.bycawdetailnotisjbg2',compact('cawangan_info','bycawnotisjbg','kodcaw','notisid'));
    }

    public function detsagcallbyjbg2($kodcaw, $notisid, $nokp)
    {
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bysagnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbg2/'.$kodcaw.'/'.$notisid.'/'.$nokp)->json();
        $bysagnotisjbgCustomer = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/arcc/bysagnotisjbgcustomer2/'.$kodcaw.'/'.$notisid.'/'.$nokp)->json();
        return view('callcenter.callnotisjbg2',compact('cawangan_info','bysagnotisjbg','bysagnotisjbgCustomer','kodcaw','notisid','nokp','api_url'));
    }
 
    public function printnotiscall($kodcaw,$notisid,Request $request)
    {
        $current = Carbon::now();
        $current = new Carbon();
        $tarikh_cetak = $current->toDateString();
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
        $bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg2/'.$kodcaw.'/'.$notisid)->json();
        
        if($request->type == 'pdflist')
        {
            $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. $kodcaw)->json();
            $cawangan = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url').'/api/cawangan/detail/'.$kodcaw)->json();
            $cawangan_detail=$cawangan[0];
            $bycawnotisjbg = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url'). '/arcc/bycawnotisjbg2/'.$kodcaw.'/'.$notisid)->json();

            return view('callcenter.pdfbycawdetailnotisjbg2', compact('cawangan_info','bycawnotisjbg','kodcaw','notisid','cawangan_detail','tarikh_cetak'));
        }
        return view('callcenter.bycawdetailnotisjbg2',compact('cawangan_info','bycawnotisjbg','kodcaw','notisid','api_url'));
    }

    public function history(Request $request)
    {
        $auth_user = Auth::user();

        $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $request->norujukan)->json();

        if(sizeof($gadai) > 0)
        {
            $history = $gadai[0][0]['historygadaian'];
            $dahtebus = $gadai[0][0]['sttebus'];
            $norujukan = $gadai[0][0]['norujukan'];

        }

        $count = 0;
        $arrayhist = [];

        while($history != "0" && $history != '' || $dahtebus == 'T')
        {
            if($history != "0" && $history != '')
            {
                $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $history)->json();
                $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/'. $gadai[0][0]['kodcaw'],[
                        "norujukan" => $history
                ])->json();

                if(sizeof($gadai) > 0)
                {
                    if($history == $gadai[0][0]['historygadaian'])
                        $history = 0;
                    else{
                        array_push($arrayhist,["tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0),"hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''), "pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0),"norujukan" => $history,"jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0),"jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0),"t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]);
                        $history = $gadai[0][0]['historygadaian'];
                    }
                }

            $count++;

            }
            else{
                $gadai = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json();
                $tebus = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/listpenebusanhistory/'. $gadai[0][0]['kodcaw'],[
                        "norujukan" => $norujukan
                ])->json();


                array_push($arrayhist,["tagbaru" => ((isset($gadai[0][0]['tagbaru'])) ? $gadai[0][0]['tagbaru'] : 0), "hargajualan" => ((isset($gadai[0][0]['hargajualan'])) ? $gadai[0][0]['hargajualan'] : ''),"pinjaman" => ((isset($tebus[0])) ? $tebus[0]['pinjaman'] : 0),"norujukan" => $norujukan,"jenistebus" => ((isset($tebus[0])) ? $tebus[0]['jenistebus'] : 0),"jbg" => ((isset($tebus[0])) ? $tebus[0]['jbg'] : 0),"t_tebus" => ((isset($tebus[0])) ? $tebus[0]['t_tebus'] : 0)]);
                break;
            }
        }

        return response()->json($arrayhist,200);
    }

    public function tukaranhargaemas($norujukan)
    {

       $marhunsaglama = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $norujukan)->json();

       $marhunsaglama = $marhunsaglama[0];
       $totalnilaimarhun = 0;

       foreach($marhunsaglama as $index=>$marhunloop)
       {
            $karatbaru = str_replace('.','-',$marhunloop['karat']);
            $hargabaru = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/harga_emas/'. $karatbaru)->json();

            $nilaimarhun = (floatval($hargabaru['harga']) * floatval($marhunloop['berat']));

            $totalnilaimarhun += $nilaimarhun;
       }

       return $totalnilaimarhun;
    }

    public function tanyaupah($norujukan){
        $auth_user = Auth::user();
        $api_url = config('api.url');
        $cawangan_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/cawangan/'. Session::get('kodcaw'))->json();
        $customer_info = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. Session::get('noic'))->json();

        $gadaidetail = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/gadai/norujukan/'. $norujukan)->json();
        $noic = $gadaidetail[0][0]['nokp'];
        $customerdetail = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/customers/'. $noic)->json();
        $marhundetail = Http::withOptions(['verify' => config('app.api_verify')])->get(config('api.url') . '/api/marhun/'. $norujukan)->json();

        $marhun = $marhundetail[0];
        $nama = $customerdetail['nama'];

        $gadai = $gadaidetail[0][0];

        $nilaihargasemasa = $this->tukaranhargaemas($norujukan);

        $pertambahpinjaman = 0.80;
        return view('callcenter.' . $cawangan_info['version'] . '.index',compact('cawangan_info','api_url','gadai','marhun','nama','nilaihargasemasa','pertambahpinjaman'));
    }
}
