<?php

namespace App\Http\Controllers\DS;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;

use Carbon\Carbon;
use Validator;
use PDF;

use App\Staff;
use App\Model\StaffDetail;

use App\Model\Coverage; 
use App\Model\DealerClaim;
use App\Model\Company;
use App\Model\Commission;

use App\Model\Form;
use App\Model\PackageDetail;
use App\Model\Subscriber;
use App\Model\WorkOrder;
use App\Model\Docket;
use App\Model\Product;


class MarketingController extends Controller
{
	public function dashboard()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$finalD1 = array(); $finalD2 = array(); $finalD3 = array(); $finalD4 = array(); $finalD5 = array(); $finalD6 = array();

		$jan = array(); $feb = array(); $mac = array(); $april = array(); $may = array(); $jun = array(); 
		$july = array(); $august = array(); $sep = array(); $oct = array(); $nov = array(); $dec = array();

		$jan1 = array(); $feb1 = array(); $mac1 = array(); $april1 = array(); $may1 = array(); $jun1 = array(); 
		$july1 = array(); $august1 = array(); $sep1 = array(); $oct1 = array(); $nov1 = array(); $dec1 = array();

		$de = Form::all();
		foreach ($de as $key => $d) {

			if(!empty($d->dealer_id)){
				$finalD1[] = $d;

				$mY = Carbon::parse($d->created_at)->format('m/Y');
				if($mY == '01/2019'){
					$jan[] = $d;
				}else if($mY == '02/2019'){
					$feb[] = $d;
				}else if($mY == '03/2019'){
					$mac[] = $d;
				}else if($mY == '04/2019'){
					$april[] = $d;
				}else if($mY == '05/2019'){
					$may[] = $d;
				}else if($mY == '06/2019'){
					$jun[] = $d;
				}else if($mY == '07/2019'){
					$july[] = $d;
				}else if($mY == '08/2019'){
					$august[] = $d;
				}else if($mY == '09/2019'){
					$sep[] = $d;
				}else if($mY == '10/2019'){
					$oct[] = $d;
				}else if($mY == '11/2019'){
					$nov[] = $d;
				}else if($mY == '12/2019'){
					$dec[] = $d;
				}

				$finalD6 = [count($jan),count($feb),count($mac),count($april),count($may),count($jun),count($july),count($august),count($sep),count($oct),count($nov),count($dec)];

			}else if(empty($d->dealer_id)){
				$mY = Carbon::parse($d->created_at)->format('m/Y');
				if($mY == '01/2019'){
					$jan1[] = $d;
				}else if($mY == '02/2019'){
					$feb1[] = $d;
				}else if($mY == '03/2019'){
					$mac1[] = $d;
				}else if($mY == '04/2019'){
					$april1[] = $d;
				}else if($mY == '05/2019'){
					$may1[] = $d;
				}else if($mY == '06/2019'){
					$jun1[] = $d;
				}else if($mY == '07/2019'){
					$july1[] = $d;
				}else if($mY == '08/2019'){
					$august1[] = $d;
				}else if($mY == '09/2019'){
					$sep1[] = $d;
				}else if($mY == '10/2019'){
					$oct1[] = $d;
				}else if($mY == '11/2019'){
					$nov1[] = $d;
				}else if($mY == '12/2019'){
					$dec1[] = $d;
				}

				$finalD5 = [count($jan1),count($feb1),count($mac1),count($april1),count($may1),count($jun1),count($july1),count($august1),count($sep1),count($oct1),count($nov1),count($dec1)];

				if($d->type_service != 'Rectification'){
					$finalD2[] = $d;
					$finalD4[] = $d;
				}
			}

			if($d->type_service == 'Rectification'){
				$finalD3[] = $d;
			}
		}

		$total = count($finalD4);
		$dealer = count($finalD1);
		$normal = count($finalD2);
		$rec = count($finalD3);
		$rejected = count(Form::onlyTrashed()->get());
		return view('market.dashboard',compact('user','total','rec','dealer','normal','rejected','finalD5','finalD6'));
	}

	public function index(){
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		return view('market.index',compact('user'));
	}

	//Dealer's List
	public function marketindex(){

		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$marketdetail= Company::where('team','Dealer')->orderBy('created_at','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail)){
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'name' => $a->name,
					'address' => $a->address,
					'city' => $a->city,
					'state' => $a->state,
					'postcode' => $a->postcode,
					'action' => $a->_id
				));
			}
		}
		
		return \DataTables::of($nested_data)->make(true);
	}

	//Dealer form
	public function showDealerForm(){

		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		return view('market.add_dealer',compact('user'));
	}

	//Agent's list
	public function agentList()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		return view('market.agent_list',compact('user'));
	}

	//
	public function getAgentList()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		$agent = Staff::with('Company','StaffDetail')->orderBy('created_at','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($agent))
		{
			foreach ($agent as $a)
			{
				if($a->StaffDetail->position == 'Dealer')
				{
					$i++; $n1 = '';

					$reg_time = $a->created_at;
					$expiry_date = $reg_time->addDays(3);    
					$expiry_date = $expiry_date->getTimestamp();  

					if($curr < $expiry_date) {
						$n1 = "New/";
					}

					array_push($nested_data, array(
						'index' => $n1.$i,
						'user_pic' => $a->StaffDetail->user_pic,
						'name' => $a->StaffDetail->name,
						'ic' => $a->StaffDetail->ic,
						'email' => $a->StaffDetail->email,
						'phone' => $a->StaffDetail->phone,
						'company_id' => $a->Company->name,
						'position' => $a->StaffDetail->position,
						'action' => $a->_id
					));
				}
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	//Show form for adding agent
	public function showAgentForm()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		$company = Company::where('team', 'Dealer')->get();
		return view('market.agent_add',compact('user','company'));
	}

	//Show commission list R
	public function commissionListR()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		return view('market.commission_listR',compact('user'));
	}

	//Show comission list B
	public function commissionListB()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$staffDetails = StaffDetail::where('email',$email)->first();

		return view('market.commission_listB',compact('staffDetails','user'));
	}

	//Show form for adding new commission R 
	public function commissionFormR()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$staffDetails = StaffDetail::where('email',$email)->first();

		return view('market.commission_formR',compact('staffDetails','user'));
	}

	//Show form for adding new commission B
	public function commissionFormB()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$staffDetails = StaffDetail::where('email',$email)->first();

		return view('market.commission_formB',compact('staffDetails','user'));
	}

	public function getCommissionListR24()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$marketdetail= Commission::where('contract','24')->where('formT','R')->orderBy('created_by','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail))
		{
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'formT' => $a->formT,
					'ranges' => $a->ranges,
					'comm' => $a->comm,
					'category' => $a->category,
					'contract' => $a->contract,
					'action' => $a->_id
				));
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	public function getCommissionListR12()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$marketdetail= Commission::where('contract','12')->where('formT','R')->orderBy('created_by','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail))
		{
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'formT' => $a->formT,
					'ranges' => $a->ranges,
					'comm' => $a->comm,
					'category' => $a->category,
					'contract' => $a->contract,
					'action' => $a->_id
				));
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	public function getCommissionListB24Low()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$marketdetail= Commission::where('contract','24')->where('formT','B')->where('packageR','10,30,50,100')->orderBy('created_by','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail))
		{
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'packageR' => $a->packageR,
					'ranges' => $a->ranges,
					'comm' => $a->comm,
					'category' => $a->category,
					'contract' => $a->contract,
					'action' => $a->_id
				));
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	public function getCommissionListB24High()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$marketdetail= Commission::where('contract','24')->where('formT','B')->orwhere('packageR','300')->orwhere('packageR','500')->orwhere('packageR','1')->orderBy('created_by','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail))
		{
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'packageR' => $a->packageR,
					'ranges' => $a->ranges,
					'comm' => $a->comm,
					'category' => $a->category,
					'contract' => $a->contract,
					'action' => $a->_id
				));
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	public function getCommissionListB12Low()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$marketdetail= Commission::where('contract','12')->where('formT','B')->where('packageR','10,30,50,100')->orderBy('created_by','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail))
		{
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'packageR' => $a->packageR,
					'ranges' => $a->ranges,
					'comm' => $a->comm,
					'category' => $a->category,
					'contract' => $a->contract,
					'action' => $a->_id
				));
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	//Function to get commission list (1 year)
	public function getCommissionListB12High()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;

		$marketdetail= Commission::where('contract','12')->where('formT','B')->orwhere('packageR','300')->orwhere('packageR','500')->orwhere('packageR','1')->orderBy('created_by','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		if(!empty($marketdetail))
		{
			foreach ($marketdetail as $a)
			{
				$i++; $n1 = '';

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				array_push($nested_data, array(
					'index' => $n1.$i,
					'packageR' => $a->packageR,
					'ranges' => $a->ranges,
					'comm' => $a->comm,
					'category' => $a->category,
					'contract' => $a->contract,
					'action' => $a->_id
				));
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	//Function to add company
	public function requestAddCompany(Request $request)
	{
		$companyData = [
			'name' => $request->get('aname'),
			'address' => $request->get('address'),
			'city' => $request->get('city'),
			'state' => $request->get('state'),
			'postcode' => $request->get('postcode'),
			'color' => '',
			'team' => 'Dealer',
			'status' => '', 
		];

		$companyDetail = Company::create($companyData);

		return redirect()->back()->with('success_msg', 'message');
	}

	//Function to add commission R
	public function requestAddCommissionR(Request $request)
	{
		$commissionData = [
			'contract' => $request->get('contract'),
			'ranges' => $request->get('ranges'),
			'comm' => $request->get('comm'),
			'category' => $request->get('categori'),
			'formT' => 'R',
			'packageR' => '', 
		];

		$commissionDetail = Commission::create($commissionData);

		return redirect()->back()->with('success_msg', 'message');
	}

	//Function to add commission B
	public function requestAddCommissionB(Request $request)
	{
		$commissionData = [
			'packageR' => $request->get('packageR'),
			'contract' => $request->get('contract'),
			'ranges' => $request->get('ranges'),
			'comm' => $request->get('comm'),
			'category' => $request->get('categori'),
			'formT' => 'B',
		];

		$commissionDetail = Commission::create($commissionData);

		return redirect()->back()->with('success_msg', 'message');
	}

	/***
	/ Encrypt Password
	***/
	public function encryptPassword($action, $string) {
		$output = false;
		$encrypt_method = "AES-256-CBC";
		$secret_key = '28472B4B6250655368566D5970337336';
		$secret_iv =  md5(md5($string)); //'This is my secret iv';
		
		// hash
		$key = hash('sha256', $secret_key);
		
		$iv = substr(hash('sha256', $secret_iv), 0, 16);
		if ( $action == 'encrypt' ) {
			$output = openssl_encrypt($string, $encrypt_method, $key, 0, $iv);
			$output = base64_encode($output);
		} else if( $action == 'decrypt' ) {
			$output = openssl_decrypt(base64_decode($string), $encrypt_method, $key, 0, $iv);
		}
		return $output;
	}

	//Function to add agent
	public function requestAddAgent(Request $request)
	{
		$validator = Validator::make($request->all(), [
			'password' => 'min:8|confirmed',
		]);

		if ($validator->fails()) {
			return redirect()->back()->withInput()->withErrors($validator);
		}

		$user = Staff::where('email', $request->get('email'))->first();
		if (empty($user)) {

			$pass = $this->encryptPassword('encrypt', $request->get('password'));

			$dealerD = new StaffDetail;		
			$dealerD->name = $request->get('aname');
			$dealerD->ic =  $request->get('ic');
			$dealerD->email = $request->get('email');
			$dealerD->phone = $request->get('phone');
			$dealerD->company_id = $request->get('vendor');
			$dealerD->color = '';
			$dealerD->position = 'Dealer';
			$dealerD->password = $pass;
			$dealerD->user_pic = 'assets/avatar/user.png';	

			// Save Login Dealer
			$loginD = new Staff;
			$loginD->email = $request->get('email');
			$loginD->password = $pass;
			$loginD->roles_access = 'Dealer';
			$loginD->company_id = $request->get('vendor');
			$loginD->last_login_at	= '';
			$loginD->last_login_ip	= ''; 

			$company = Company::where('_id', $request->get('vendor'))->first();
			$company->staff()->save($loginD);
			// $dealer = DealerLaravel::create($loginData);		
			$loginD->staffdetail()->save($dealerD);

			return redirect()->back()->with('success_msg', '<strong>Success!</strong> register <strong>'.$request->get('email').'</strong>');

		}
		else 
		{
			return redirect()->back()->withInput()->withErrors('Email already exist!');
		}
	}

	//Function to delete company(dealer)
	public function deleteCompany(Request $request)
	{
		$company = Company::where('_id',$request->id)->first();
		
		if(!empty($company)){
			$company->delete();
			return 'true';
		}else {
			return 'false';
		}
	}

	//Function to delete Commission (R)
	public function deleteCommission(Request $request)
	{
		// CommissionLaravel::destroy($request);
		// return response()->json(['result'=>'success']);

        // return response()->json(['success'=>'Got Simple Ajax Request.']);

		$commission = Commission::where('_id',$request->id)->first();
		
		if(!empty($commission)){
			$commission->delete();
			return 'true';
		}else {
			return 'false';
		}
	}

	public function deleteAgent(Request $request)
	{
		// $agentdetail = StaffDetailLaravel::where('email',$request->email)->first();
		$agent = Staff::where('_id',$request->id)->first();	
		$agentdetail = $agent->staffdetail()->first();

		if(!empty($agentdetail) && !empty($agent))
		{
			$agent->delete();
			$agentdetail->delete();
			return 'true';
		}
		else 
		{
			return 'false';
		}
	}

	public function editCompany($company_id)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		$company = Company::where('_id', $company_id)->get();

		return view('market.edit_dealer',compact('user','company'));
	}

	public function updateCompany(Request $request)
	{
		$user = Company::where('_id', $request->get('company_id'))->first();

		$user->name = $request->get('aname');
		$user->address = $request->get('address');
		$user->city = $request->get('city');
		$user->state = $request->get('state');
		$user->postcode = $request->get('postcode');
		$user->color = '';
		$user->team = 'Dealer';
		$user->status = '';
		$user->save();

		return redirect()->route('mHome')->with('success_msg', 'message');
	}

	public function editCommissionR($commission_id)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('staffdetail')->find($id);
		$commission = Commission::where('_id', $commission_id)->get();

		return view('market.edit_commissionR',compact('user','commission'));
	}

	public function editCommissionB($commission_id)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::find($id);
		$email = $user->email;
		$staffDetails = StaffDetail::where('email',$email)->first();
		$commission = Commission::where('_id', $commission_id)->get();

		return view('market.edit_commissionB',compact('staffDetails','user','commission'));
	}

	public function editAgent($agent_id)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		$agentdetail = Staff::where('_id', $agent_id)->first();
		$company = Company::where('team', 'Dealer')->get();

		return view('market.edit_agent', compact('user', 'agentdetail', 'company'));
	}

	public function updateCommissionR(Request $request)
	{
		$commission = Commission::where('_id', $request->get('commission_id'))->first();

		$commission->contract = $request->get('contract');
		$commission->ranges = $request->get('ranges');
		$commission->comm = $request->get('comm');
		$commission->category = $request->get('categori');
		$commission->formT = 'R';
		$commission->packageR = '';
		$commission->save();

		return redirect()->route('commissionListR')->with('success_msg', 'message');
	}

	public function updateCommissionB(Request $request)
	{
		$commission = Commission::where('_id', $request->get('commission_id'))->first();
		
		$commission->packageR = $request->get('packageR');
		$commission->contract = $request->get('contract');
		$commission->ranges = $request->get('ranges');
		$commission->comm = $request->get('comm');
		$commission->category = $request->get('categori');
		$commission->formT = 'B';
		$commission->save();

		return redirect()->route('commissionListB')->with('success_msg', 'message');
	}

	public function updateAgent(Request $request)
	{
		$user = Staff::where('_id', $request->agent_id)->first();
		$validate = Staff::where('email', $request->email)->first();

		$detail = $user->staffdetail()->first();
		$getpass = $request->get('password');

		$pass = $this->encryptPassword('encrypt', $request->get('password'));

		if(empty($validate))
		{				
			$detail->name = $request->get('aname');
			$detail->ic = $request->get('ic');
			$detail->email = $request->get('email');
			$detail->phone = $request->get('phone');
			$detail->company_id = $request->get('vendor');

			$user->email = $request->get('email');
			$user->company_id = $request->get('vendor');		

			if(!empty($getpass))
			{ 
				$validator = Validator::make($request->all(), [
					'password' => 'min:8|confirmed',
				]);

				if ($validator->fails()) 
				{
					return redirect()->back()->withInput()->withErrors($validator);
				}

				$detail->password = $pass;
				$user->password = $pass;

				$detail->save();
				$user->save();
			}
			else
			{
				$detail->save();
				$user->save();
			}

			return redirect()->route('agentList')->with('success_msg', 'message');
		}
		else
		{
			if($user->email == $request->email)
			{
				echo "".$request->get('password');

				$detail->name = $request->get('aname');
				$detail->ic = $request->get('ic');
				$detail->email = $request->get('email');
				$detail->phone = $request->get('phone');
				$detail->company_id = $request->get('vendor');

				$detail->save();

				$user->email = $request->get('email');

				if(!empty($getpass))
				{
					$validator = Validator::make($request->all(), [
						'password' => 'min:8|confirmed',
					]);

					if ($validator->fails()) 
					{
						return redirect()->back()->withInput()->withErrors($validator);
					}

					$detail->password = $pass;
					$user->password = $pass;

					$detail->save();
					$user->save();
				}
				else
				{
					$detail->save();
					$user->save();
				}

				return redirect()->route('agentList')->with('success_msg', 'message');
			}
			else
			{
				echo "email is used";	
				return redirect()->back()->withInput()->withErrors('Email already exist!');
			}
		}
	}

	public function filterDocket($year, $month)
	{
		$year = $year;
		$month = $month;
		$nested_data = array();
		$arr = array();
		$i=0;

		if($year=='null' && $month=='null')
		{
			$docket = Docket::with('WorkOrder')->orderBy('created_at', 'desc')->get();
			$arr = array();

			$i = 0;$n1 = '';
			$nested_data = array();
			$test = 0;

			foreach ($docket as $a)
			{	
				$i++;
				$building = "";
				if(!empty($a->WorkOrder->_id)){
					$subDetail = Form::with('WorkOrder','Subscriber')->where('_id',$a->WorkOrder->_id)->first();
					$contractor = Company::where('_id', $a->WorkOrder->contractor_id)->first();
					$tempInstaller = Staff::with('StaffDetail')->withTrashed()->where('_id',$a->installer_id)->first();

					if(!empty($subDetail->Subscriber->building_name))
						$building=$subDetail->Subscriber->building_name;
					else
						$building=$subDetail->Subscriber->company_name;

					array_push($nested_data, array(
						'index' => $n1.$i,
						'docket_id' => $a->docket_id,
						'work_order_id' => $a->work_order_id,
						'nature_work' => $a->nature_work,
						'contractor_id' => $contractor->name,
						'installer_name' => $tempInstaller->StaffDetail->name,
						'customer_id' => $building,
						'installer_id' => $tempInstaller->StaffDetail->phone,
						'end_job' => $a->end_job,
						'rating' => round((($a->Rating1 + $a->Rating2 + $a->Rating3)/15) * 100)."%",
					));	
				}							
			}
		}

		elseif($year!='' && $month=='null')
		{
			$timestamp = $year."-01-01 00:00:00.000Z";
			$masa = strtotime($timestamp);
			$go = Carbon::createFromTimestamp($masa);
			$go2 = Carbon::createFromTimestamp($masa);
			$end_year = $go2->endOfYear();
			// $time = Carbon::createFromTimeString($timestamp);
			// echo $month;
			$docket = Docket::with('WorkOrder')->whereBetween('created_at', [$go, $end_year])->orderBy('created_at', 'desc')->get();
			$arr = array();

			$i = 0;$n1 = '';
			$nested_data = array();
			$test = 0;

			foreach ($docket as $a)
			{	
				$i++;
				$building = "";
				if(!empty($a->WorkOrder->_id)){
					$subDetail = Form::with('WorkOrder','Subscriber')->where('_id',$a->WorkOrder->_id)->first();
					$contractor = Company::where('_id', $a->WorkOrder->contractor_id)->first();
					$tempInstaller = StaffDetail::where('_id', $a->installer_id)->withTrashed()->first();

					if(!empty($subDetail->Subscriber->building_name))
						$building=$subDetail->Subscriber->building_name;
					else
						$building=$subDetail->Subscriber->company_name;

					array_push($nested_data, array(
						'index' => $n1.$i,
						'docket_id' => $a->docket_id,
						'work_order_id' => $a->work_order_id,
						'nature_work' => $a->nature_work,
						'contractor_id' => $contractor->name,
						'installer_name' => $tempInstaller->name,
						'customer_id' => $building,
						'installer_id' => $tempInstaller->phone,
						'end_job' => $a->end_job,
						'rating' => round((($a->Rating1 + $a->Rating2 + $a->Rating3)/15) * 100)."%",
					));	
				}						
			}
		}

		elseif($year!='' && $month !='')
		{
			$timestamp = $year."-".$month."-01 00:00:00.000Z";
			$masa = strtotime($timestamp);
			$go = Carbon::createFromTimestamp($masa);
			$go2 = Carbon::createFromTimestamp($masa);
			$end_year = $go2->endOfMonth();
			// $time = Carbon::createFromTimeString($timestamp);

			// $docket = Docket::whereBetween('created_at', [$go, $end_year])->get();
			$docket = Docket::with('WorkOrder')->whereBetween('created_at', [$go, $end_year])->orderBy('created_at', 'desc')->get();
			$arr = array();

			$i = 0;$n1 = '';
			$nested_data = array();
			$test = 0;

			foreach ($docket as $a)
			{	
				$i++;
				$building = "";
				if(!empty($a->WorkOrder->_id)){
					$subDetail = Form::with('WorkOrder','Subscriber')->where('_id',$a->WorkOrder->_id)->first();
					$contractor = Company::where('_id', $a->WorkOrder->contractor_id)->first();
					$tempInstaller = StaffDetail::where('_id', $a->installer_id)->withTrashed()->first();

					if(!empty($subDetail->Subscriber->building_name))
						$building=$subDetail->Subscriber->building_name;
					else
						$building=$subDetail->Subscriber->company_name;

					array_push($nested_data, array(
						'index' => $n1.$i,
						'docket_id' => $a->docket_id,
						'work_order_id' => $a->work_order_id,
						'nature_work' => $a->nature_work,
						'contractor_id' => $contractor->name,
						'installer_name' => $tempInstaller->name,
						'customer_id' => $building,
						'installer_id' => $tempInstaller->phone,
						'end_job' => $a->end_job,
						'rating' => round((($a->Rating1 + $a->Rating2 + $a->Rating3)/15) * 100)."%",
					));	
				}						
			}
		}

		return \DataTables::of($nested_data)->make(true);
	}
	
	public function requestClaim(Request $request)
	{
		$claim = DealerClaim::where('_id',$request->id)->first();
		// $agentdetail = StaffDetailLaravel::where('email',$request->email)->first();
		$mytime = Carbon::now();
		

		if(!empty($claim))
		{
			$claim->claim_dt = $mytime->toDateTimeString();
			$claim->save();
			return 'true';
		}
		else 
		{
			return 'false';
		}
	}

	public function docketList()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		return view('market.docket',compact('user'));
	}

	public function getDocketList()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$docket = Docket::with('WorkOrder')->orderBy('created_at', 'desc')->get();
		$arr = array();

		$i = 0;$n1 = '';
		$nested_data = array();
		$test = 0;

		foreach ($docket as $a)
		{	
			$i++;
			$building = "";
			if(!empty($a->WorkOrder->_id)){
				$subDetail = Form::with('WorkOrder','Subscriber')->where('_id',$a->WorkOrder->_id)->first();
				$contractor = Company::where('_id', $a->WorkOrder->contractor_id)->first();
				$tempInstaller = Staff::with('StaffDetail')->withTrashed()->where('_id',$a->installer_id)->first();

				if(!empty($subDetail->Subscriber->building_name))
					$building=$subDetail->Subscriber->building_name;
				else
					$building=$subDetail->Subscriber->company_name;

				array_push($nested_data, array(
					'index' => $n1.$i,
					'docket_id' => $a->docket_id,
					'work_order_id' => $a->work_order_id,
					'nature_work' => $a->nature_work,
					'contractor_id' => $contractor->name,
					'installer_name' => $tempInstaller->StaffDetail->name,
					'customer_id' => $building,
					'installer_id' => $tempInstaller->StaffDetail->phone,
					'end_job' => $a->end_job,
					'rating' => round((($a->Rating1 + $a->Rating2 + $a->Rating3)/15) * 100)."%",
				));								
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	public function updateClaimDate(Request $request)
	{
		$claim = DealerClaim::where("_id", $request->id)->first();

		if(!empty($claim))
		{
			$claim->claim_dt = $request->date." ".$request->time;
			$claim->save();

			return 'true';
		}
		else
			return 'false';	
	}
	
	public function downloadPDF()
	{
		$pdf = PDF::loadView('pdf.docket-pdf');
		return $pdf->download('invoice.pdf');
		// return view('pdf.docket-pdf');
	}

	public function woList()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		return view('market.workorder',compact('user'));
	}

	public function getWoList()
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		// $marketdetail= WorkOrder::with('Form')->where('_id','5b4c18a4ee0dc2b707473b7d')->first();
		// $b = array();
		$r=0;$b=0;
		$subDetail = Form::with('WorkOrder','Subscriber')->orderBy('created_at','desc')->get();
		$curr = Carbon::now()->getTimestamp();

		$i = 0;
		$nested_data = array();
		foreach($subDetail as $a)
		{
			$var1="";
			if(empty($a->WorkOrder)){}
			else	
			{
				$i++;
				$staff = StaffDetail::where('_id', $a->WorkOrder->installer_id)->withTrashed()->first();
				$contractor = Company::where('_id', $a->WorkOrder->contractor_id)->first();

				if(!empty($staff))
				{
					$var1 =$staff->name;
				}		

				$reg_time = $a->created_at;
				$expiry_date = $reg_time->addDays(3);    
				$expiry_date = $expiry_date->getTimestamp();  

				if($curr < $expiry_date) {
					$n1 = "New/";
				}

				$building = '';
				if($a->type_application == 'R'){
					$building = $a->Subscriber->building_name;
				}else if($a->type_application == 'B'){
					$building = $a->Subscriber->company_name;
				}

				if(!empty($a->Subscriber)){
					array_push($nested_data, array(
						'index' => $n1.$i.$a->type_application,
						'nature_work' => $a->WorkOrder->nature_work,
						'wo'=>$a->WorkOrder->wo,
						'customer_name' => $a->Subscriber->name,
						'customer_phone' => $a->Subscriber->phone1,
						'customer_unit' => $a->Subscriber->unit_no,
						'customer_building' => $building,
						'customer_postcode' => $a->Subscriber->postcode,
						'customer_city' => $a->Subscriber->city,
						'contractor_id' => $contractor->name,
						'installer_id' => $var1,
						'dateTimeEnd' => $a->WorkOrder->dateTimeEnd,
						'status' => $a->WorkOrder->status,
					));
				}
			}
		}
		return \DataTables::of($nested_data)->make(true);		
	}				
			

	public function filterWo($year, $month, $status)
	{
		$r = 0;
		$b = 0;
		$nested_data = array();

		if($year == 'null' && $month == 'null' & $status !='')
		{
			$i = 0;

			// $subDetail = Form::with('WorkOrder','Subscriber')->where('_id', $a->id)->first();			
			$wo = WorkOrder::with('Form')->orderBy('dateTimeStart', 'desc')->where('status', $status)->get();
			foreach($wo as $a)
			{
				$customer = Subscriber::where('_id', $a->Form->_id)->first();
				$contractor = Company::where('_id', $a->contractor_id)->first();
				$installer = StaffDetail::where('_id', $a->installer_id)->withTrashed()->first();
				
				$var1 = "";

				if(!empty($installer)){
					$var1 =$installer->name;
				}
					

				if($a->Form->type_application == "R")
				{
					$r++; $n1 = 'R';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $r.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => $customer->unit_no,
							'customer_building' => $customer->building_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}

				if($a->Form->type_application == "B")
				{
					$b++; $n1 = 'B';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $b.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => '-',
							'customer_building' => $customer->company_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}			
			}
		}

		if($year=='null' && $month == 'null' & $status == 'null')
		{
			$i = 0;

			// $subDetail = Form::with('WorkOrder','Subscriber')->where('_id', $a->id)->first();			
			$wo = WorkOrder::with('Form')->orderBy('dateTimeStart','desc')->get();
			foreach($wo as $a)
			{
				$customer = Subscriber::where('_id', $a->Form->_id)->first();
				$contractor = Company::where('_id', $a->contractor_id)->first();
				$installer = StaffDetail::where('_id', $a->installer_id)->withTrashed()->first();
				
				$var1 = "";

				if(!empty($installer)){
					$var1 =$installer->name;
				}
					

				if($a->Form->type_application == "R")
				{
					$r++; $n1 = 'R';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $r.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => $customer->unit_no,
							'customer_building' => $customer->building_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}
				if($a->Form->type_application == "B")
				{
					$b++; $n1 = 'B';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $b.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => '-',
							'customer_building' => $customer->company_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}			
			}
		}

		if($year!='' && $month!='' && $status !='')
		{
			$start_month = $year."-".$month."-01 00:00:00";
			$end_month = $year."-".$month."-32 23:59:59";
			// $wo = WorkOrder::orderBy('dateTimeStart', 'desc')->whereBetween('dateTimeStart', [$start_month, $end_month])->where('status',$status)->get();
			$i = 0;
			// $subDetail = Form::with('WorkOrder','Subscriber')->where('_id', $a->id)->first();			
			$wo = WorkOrder::with('Form')->orderBy('dateTimeStart', 'desc')->whereBetween('dateTimeStart', [$start_month, $end_month])->where('status', $status)->get();
			foreach($wo as $a)
			{
				$customer = Subscriber::where('_id', $a->Form->_id)->first();
				$contractor = Company::where('_id', $a->contractor_id)->first();
				$installer = StaffDetail::where('_id', $a->installer_id)->withTrashed()->first();
				
				$var1 = "";

				if(!empty($installer)){
					$var1 =$installer->name;
				}
					

				if($a->Form->type_application == "R")
				{
					$r++; $n1 = 'R';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $r.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => $customer->unit_no,
							'customer_building' => $customer->building_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}
				if($a->Form->type_application == "B")
				{
					$b++; $n1 = 'B';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $b.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => '-',
							'customer_building' => $customer->company_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}			
			}
		}

		if($year!='' && $month!='' && $status =='null')
		{
			$start_month = $year."-".$month."-01 00:00:00";
			$end_month = $year."-".$month."-32 23:59:59";
			$i = 0;
			// $subDetail = Form::with('WorkOrder','Subscriber')->where('_id', $a->id)->first();			
			$wo = WorkOrder::with('Form')->orderBy('dateTimeStart', 'desc')->whereBetween('dateTimeStart', [$start_month, $end_month])->get();
			foreach($wo as $a)
			{
				$customer = Subscriber::where('_id', $a->Form->_id)->first();
				$contractor = Company::where('_id', $a->contractor_id)->first();
				$installer = StaffDetail::where('_id', $a->installer_id)->withTrashed()->first();
				
				$var1 = "";

				if(!empty($installer)){
					$var1 =$installer->name;
				}
					

				if($a->Form->type_application == "R")
				{
					$r++; $n1 = 'R';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $r.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => $customer->unit_no,
							'customer_building' => $customer->building_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}
				if($a->Form->type_application == "B")
				{
					$b++; $n1 = 'B';

					$customer = Subscriber::where('_id', $a->Form->_id)->first();

					if(!empty($customer)){
						array_push($nested_data, array(
							'index' => $b.$n1,
							'nature_work' => $a->nature_work,
							'wo'=>$a->wo,
							'customer_name' => $customer->name,
							'customer_phone' => $customer->phone1,
							'customer_unit' => '-',
							'customer_building' => $customer->company_name,
							'customer_postcode' => $customer->postcode,
							'customer_city' => $customer->city,
							'contractor_id' => $contractor->name,
							'installer_id' => $var1,
							'dateTimeEnd' => $a->dateTimeEnd,

							'status' => $a->status,
						));
					}
				}			
			}
		}
		return \DataTables::of($nested_data)->make(true);
	}

	/**
	ALL DOWN HERE ARE FOR TESTING AND UTILITIES PURPOSES
	**/
	public function woToLaravel()
	{
		
	}

	public function checktry()
	{
		$data = Subscriber::where('wo','!=','')->get();
		$wo  = WorkOrder::all()->toArray();

		$adawork = array();
		$newarr = array();
		$hmm = array();

		$i = 0;

		foreach($data as $d){
			if(array_search($d->wo, array_column($wo, 'wo')) !== False) { // search value in the array
			  //  echo "FOUND";
			}else {
				$adawork[] = $d->wo;
				$i++;
			}
		}

		dd($adawork);
	}

	//Insert data into Commission_Laravel table
	public function commissionlara()
	{	
		$olddata = Commission::all();
		foreach($olddata as $od)
		{
			$subsData = [
				'formT' => $od['formT'],
				'ranges' => $od['ranges'],
				'comm' => $od['comm'],
				'category' => $od['category'],
				'contract' => $od['contract'],
				'reg_time' => $od['reg_time'],
				'packageR' => $od['packageR'],
			];
			Commission::create($subsData);
		}
		return "success";
	}

	//Insert data into Company_Laravel table
	public function companylara()
	{
		$olddata = Company::all();
		foreach($olddata as $od)
		{
			$subsData = [
				'name' => $od['name'],
				'address' => $od['address'],
				'city' => $od['city'],
				'state' => $od['state'],
				'postcode' => $od['postcode'],
				'color' => $od['color'],
				'team' => $od['team'],
				'status' => $od['status'],
				'reg_time' => $od['reg_time'],
			];
			Company::create($subsData);
		}
	}

	//Insert data into Claim_Laravel table
	public function claimtolara()
	{
		$olddata = DealerClaim::all();
		foreach($olddata as $od)
		{
			$subsData = [
				'_id' => $od['_id'],
				'formT' => $od['formT'],
				'wo' => $od['wo'],
				'dateTimeStart' => $od['dateTimeEnd'],
				'customer_id' => $od['customer_id'],
				'contractor_id' => $od['contractor_id'],
				'installer_id' => $od['installer_id'],
				'nature_work' => $od['nature_work'],
				'sub_category' => $od['sub_category'],
				'img_url' => $od['img_url'],
				'docket' => $od['docket'],
				'status'=>$od['status'],
				'remark'=>$od['remark'],
				'remarks_inst'=>$od['remarks_inst'],
				'customer_code'=>$od['customer_code'],
				'package_bandwidth'=>$od['package_bandwidth'],
				'subnet_mask'=>$od['subnet_mask'],
				'login_id'=>$od['login_id'],
				'password'=>$od['password'],
				'wan_ip'=>$od['wan_ip'],
				'lan_ip'=>$od['lan_ip'],
				'gateway'=>$od['getaway'],
				'service_id1'=>$od['service_id2'],
				'ip_address_onu'=>$od['ip_address_onu'],
				'gateway_onu'=>$od['gateaway_onu'],
				'subnet_mask_onu'=>$od['subnet_mask_onu'],
				'ip_address_srp'=>$od['ip_address_srp'],
				'dectphone1'=>$od['dectphone1'],
				'dectphone2'=>$od['dectphone2'],
				'onu'=>$od['onu'],
				'router'=>$od['router'],
				'wifi_extender'=>$od['wifi_extender'],
				'reg_time'=>$od['reg_time'],
			];
			DealerClaim::create($subsData);
		}
	}

	//Add total form by month to Claim Laravel collection 
	public function claimaddtotal()
	{
		$getdata = DealerClaim::all();
		$total = 0;

		foreach($getdata as $a)
		{
			if($a->activated_my == "2/2019")
			{
				$total += 1;
			}
		}

		$adddata = DealerClaim::all();

		foreach($adddata as $a)
		{
			if($a->activated_my == "2/2019")
			{
				$a->total_form_by_month = $total;
				$a->save();
			}
		}
	}

	public function generateWorkOrderPDF($wo){

    	$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$wo = WorkOrder::where('wo',$wo)->first();
		$form = Form::with('PackageDetail','Subscriber')->where('_id',$wo->_id)->first();
		$product = Product::where('formT',$form->type_application)->where('speed',$form->PackageDetail->name)->first();

		if(empty($product)){
			$product = 'RMbps';
		}else {
			$product = $product->package_name;
		}

		$created_by = Staff::with('StaffDetail')->where("_id",$wo->created_by)->first();
		if(empty($created_by)){
			$created_by = '';
		}

		$created_at = Carbon::parse($wo->created_at)->toDateTimeString();

		$address = '';
		if($form->type_application == 'R'){
			if($form->Subscriber->street != ''){
				$address = $form->Subscriber->unit_no. ' , '.$form->Subscriber->building_name. ' , '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
			}else {
				$address = $form->Subscriber->unit_no. ' , '.$form->Subscriber->building_name. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
			}

		}else if($form->type_application == 'B'){

			if($form->Subscriber->unit_no != ''){
				$address = $form->Subscriber->unit_no. ', '.$form->Subscriber->company_name. ', '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
			}else {
				$address = $form->Subscriber->company_name. ', '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
			}

		}


        $pdf = PDF::loadView('pdf.workorder-pdf',compact('wo','form','product','created_at','created_by','address'));
        $pdf->setPaper('A4', 'potrait');
        return $pdf->stream();
    }

    public function generateDocketPDF($do)
    {
    	$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
        $docket = Docket::with('WorkOrder')->where('docket_id',$do)->first();
        if(!empty($docket)){
            $form = Form::with('Subscriber','PackageDetail')->where('_id',$docket->WorkOrder->_id)->first();

            $address = '';
            if($form->type_application == 'R'){
                if($form->Subscriber->street != ''){
                    $address = $form->Subscriber->unit_no. ' , '.$form->Subscriber->building_name. ' , '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
                }else {
                    $address = $form->Subscriber->unit_no. ' , '.$form->Subscriber->building_name. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
                }

            }else if($form->type_application == 'B'){

                if($form->Subscriber->unit_no != ''){
                    $address = $form->Subscriber->unit_no. ', '.$form->Subscriber->company_name. ', '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
                }else {
                    $address = $form->Subscriber->company_name. ', '.$form->Subscriber->street. ' , '.$form->Subscriber->postcode. ' , '.$form->Subscriber->city. ' , '.$form->Subscriber->state;
                }

            }

            $product = Product::where('formT',$form->type_application)->where('speed',$form->PackageDetail->name)->first();
            $installer = Staff::with('StaffDetail')->where('_id',$docket->installer_id)->withTrashed()->first();

            if(empty($product)){
                $product = 'RMbps';
            }else {
                $product = $product->package_name;
            }

            $dateTime =  Carbon::parse($docket->WorkOrder->dateTimeStart)->toDateTimeString();
            $edateTime =  Carbon::parse($docket->end_job)->toDateTimeString();

            $pdf = PDF::loadView('pdf.docket-pdf',compact('docket','form','address','product','installer','dateTime','edateTime'));
            $pdf->setPaper('A4', 'potrait');
            return $pdf->stream();
        }
    }

    public function mClaimAll($agent_id)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$getid = $agent_id;
		$temp = StaffDetail::where('_id', $agent_id)->first();
		$company = $temp->company_id;

		return view('market.claim_list',compact('user','getid','company'));
	}

    //Show claim list by company
	public function mClaimListAll($company)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$dealer_claimAll = DealerClaim::where('dealer',$company)->orderBy('activated_dt','desc')->get();

		$i = 0;
		$nested_data = array();
		foreach ($dealer_claimAll as $c){
			$customer = Subscriber::with('Form')->where('_id', $c->customer_id)->first();
			$address = ''; $name = '';
			if($customer->Form->type_application == 'R'){
				if($customer->street != ''){
					$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
				}else {
					$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
				}

				$name = $customer->name;

			}else if($customer->Form->type_application == 'B'){

				if($customer->unit_no != ''){
					$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
				}else {
					$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
				}
				$name = $customer->company_name;
			}

			$i++;
			array_push($nested_data, array(
				'index' => $c->formT,
				'contract' => $c->contract,
				'wo' => $c->wo,
				'activated_dt' => $c->activated_dt,
				'name' => $name,
				'address' => $address,
				'package' => $c->package,
				'retail_price' => 'RM '.$c->retail_price,
				'incentives1' => '',
				'incentives2' => '',
				'total' => '',
				'claimed' => $c->laim_dt,
				'action' => 'null',
			));
		}
		
		return \DataTables::of($nested_data)->make(true);
	}

	// Get Dealer Claim Residential
	public function returnDataR($company,$year,$month){

		$dataCR = DealerClaim::where('formT','R')->where('dealer',$company)->orderBy('activated_dt', 'desc')->get();
		$final = array();

		// Month & Year
		$mY = '';
		if($year != 'null' && $month != 'null'){
			$mY = $month.'/'.$year;
		}

		if($mY != ''){

			$data12 = array(); $data24 = array(); 
			$countD12 = 0; $countD24 = 0;

			foreach($dataCR as $dc){
				if($dc->activated_my == $mY || $dc->activated_my == '0'.$mY ){
					if($dc->contract == "12"){
						$data12[] = $dc;
					}else if($dc->contract == "24"){
						$data24[] = $dc;
					}
				}
			}

			$countD24 = count($data24);
			$countD12 = count($data12);

			$comm = Commission::where('formT','R')->get();
			$commV12 = 0; $commV24 = 0;
			$comm12 = ''; $comm24 = '';

			foreach($comm as $c){
				if($c->contract =='12'){
					if(strpos($c->ranges, '>') !== false) {

						$pieces = explode(">", $c->ranges);

						if($countD12 >= intval($pieces[1])){
							$commV12 = floatval($c->comm)/100;
							$comm12 = $c->comm.'%';
						}
					}
					if(strpos($c->ranges,'-') !== false){

						$pieces = explode("-", $c->ranges);

						if($countD12 >= intval($pieces[0]) && $countD12 <= intval($pieces[1])){
							$commV12 = floatval($c->comm)/100;
							$comm12 = $c->comm.'%';
						}

					}

				}else if($c->contract =='24'){
					// Contract => 24
					if($countD24 != 0){
						if(strpos($c->ranges, '>') !== false) {

							$pieces = explode(">", $c->ranges);

							if($countD24 > intval($pieces[1])){
								$commV24 = floatval($c->comm)/100;
								$comm24 = $c->comm.'%';
							}
						}
						if(strpos($c->ranges,'-') !== false){

							$pieces = explode("-", $c->ranges);

							if($countD24 >= intval($pieces[0]) && $countD24 <= intval($pieces[1])){
								$commV24 = floatval($c->comm)/100;
								$comm24 = $c->comm.'%';
							}
						}
					}
				}
			}

			foreach ($data12 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $comm12,
					'incentives2' => '',
					'total' => 'RM '.number_format($d['retail_price']*$commV12,2),
					'claim' => $d['claim_dt'],
				);
			}

			foreach ($data24 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $comm24,
					'incentives2' => '',
					'total' => 'RM '.number_format($d['retail_price']*$commV24,2),
					'claim' => $d['claim_dt'],
				);
			}

		}else {

			foreach ($dataCR as $c){

				$customer = Subscriber::with('Form')->where('_id', $c['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$final[] = array(
					'index' => $c['formT'],
					'contract' => $c['contract'],
					'wo' => $c['wo'],
					'activation' => $c['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $c['package'],
					'retail_price' => 'RM '.$c['retail_price'],
					'incentives1' => '',
					'incentives2' => '',
					'total' => '',
					'claim' => $c['claim_dt'],
				);
			}

		}

		return $final;
	}


	// Get Claim Business
	public function returnDataB($company,$year,$month){

		$dataCB = DealerClaim::where('formT','B')->where('dealer',$company)->orderBy('activated_dt', 'desc')->get();
		$final = array();

		// Month & Year
		$mY = '';
		if($year != 'null' && $month != 'null'){
			$mY = $month.'/'.$year;
		}

		if($mY != ''){

			/** Contract 12 
			// 1=>10-100 2=>300 3=>500 4=>1
			**/
			$data12_1 = array(); $data12_2 = array(); 
			$data12_3 = array(); $data12_4 = array(); 

			$countD12_1 = 0; $countD12_2 = 0; 
			$countD12_3 = 0; $countD12_4 = 0; 
			/** Contract 24 
			// 1=>10-100 2=>300 3=>500 4=>1
			**/
			$data24_1 = array(); $data24_2 = array(); 
			$data24_3 = array(); $data24_4 = array();

			$countD24_1 = 0; $countD24_2 = 0; 
			$countD24_3 = 0; $countD24_4 = 0; 

			foreach($dataCB as $dc){
				if($dc->activated_my == $mY || $dc->activated_my == '0'.$mY){

					if($dc->contract == "12" && ($dc->package == "10" || $dc->package == "30" || $dc->package == "50" || $dc->package == "100")){
						$data12_1[] = $dc;
					}else if($dc->contract == "12" && $dc->package == "300"){
						$data12_2[] = $dc;
					}else if($dc->contract == "12" && $dc->package == "500"){
						$data12_3[] = $dc;
					}else if($dc->contract == "12" && $dc->package == "1"){
						$data12_4[] = $dc;
					}else if($dc->contract == "24" && ($dc->package == "10" || $dc->package == "30" || $dc->package == "50" || $dc->package == "100")){
						$data24_1[] = $dc;
					}else if($dc->contract == "24" && $dc->package == "300"){
						$data24_2[] = $dc;
					}else if($dc->contract == "24" && $dc->package == "500"){
						$data24_3[] = $dc;
					}else if($dc->contract == "24" && $dc->package == "1"){
						$data24_4[] = $dc;
					}

				}
			}

			$countD12_1 = count($data12_1); $countD12_2 = count($data12_2);
			$countD12_3 = count($data12_3); $countD12_4 = count($data12_4);

			$countD24_1 = count($data24_1); $countD24_2 = count($data24_2); 
			$countD24_3 = count($data24_3); $countD24_4 = count($data24_4); 

			$comm = Commission::where('formT','B')->get();

			$commV12_1 = 0; $commV12_2 = 0;
			$commV12_3 = 0; $commV12_4 = 0;

			$commV24_1 = 0; $commV24_2 = 0;
			$commV24_3 = 0; $commV24_4 = 0;

			$comm12_1 = ''; $comm12_2 = '';
			$comm12_3 = ''; $comm12_4 = '';

			$comm24_1 = ''; $comm24_2 = '';
			$comm24_3 = ''; $comm24_4 = '';

			$addRM12_1 = ''; $addRM12_2 = '';
			$addRM12_3 = ''; $addRM12_4 = '';

			$addRM24_1 = ''; $addRM24_2 = '';
			$addRM24_3 = ''; $addRM24_4 = '';

			foreach($comm as $c){

				/*** Contract 24 **/
				if($c->contract =='24' && $c->packageR == "300"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD24_2 >= intval($pieces[1])){
							if(strpos($c->comm, 'RM') !== false) {	
								$comm24_2 = '+ ' .$c->comm;
								$commV24_2 = '';
								$comms = explode("RM", $c->comm);
								$addRM24_2 =   floatval($comms[1]); 
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm24_2 = 'RM '.$comms[1];
									$commV24_2 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm24_2 = $comms[0].'%';
										$commV24_2 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}else if($c->contract =='24' && $c->packageR == "500"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD24_3 >= intval($pieces[1])){
							if(strpos($c->comm, 'RM') !== false) {	
								$comm24_3 = '+ ' .$c->comm;
								$commV24_3 = '';
								$comms = explode("RM", $c->comm);
								$addRM24_3 =   floatval($comms[1]); 
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm24_3 = 'RM '.$comms[1];
									$commV24_3 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm24_3 = $comms[0].'%';
										$commV24_3 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}else if($c->contract =='24' && $c->packageR == "1"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD24_4 >= intval($pieces[1])){
							if(strpos($c->comm, 'RM') !== false) {	
								$comm24_4 = '+ ' .$c->comm;
								$commV24_4 = '';
								$comms = explode("RM", $c->comm);
								$addRM24_4 =   floatval($comms[1]); 
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm24_4 = 'RM '.$comms[1];
									$commV24_4 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm24_4 = $comms[0].'%';
										$commV24_4 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}else if($c->contract =='24' && $c->packageR == "10,30,50,100"){

					if(strpos($c->ranges,'-') !== false){

						$pieces = explode("-", $c->ranges);

						if($countD24_1 >= intval($pieces[0]) && $countD24_1 <= intval($pieces[1])){

							if(strpos($c->comm, 'RM') !== false) {	
								$comm24_1 = '+ ' .$c->comm;
								$commV24_1 = '';
								$addRM24_1 = $c->comm;
							}else {
								$comms = explode("RM", $c->comm);
								if(!empty($comms[1])){
									$comm24_1 = 'RM '.$comms[1];
									$commV24_1 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm24_1 = $comms[0].'%';
										$commV24_1 = floatval($comms[0])/100;
									}
								}

							}

						}
					}

					if(strpos($c->ranges, '>') !== false) {	
						$pieces1 = explode(">", $c->ranges);
						if($countD24_1 >= intval($pieces1[1])){
							if(strpos($c->comm, "RM") === true) {	
								$comm24_1 = '+ ' .$c->comm;
								$commV24_1 = '';
								$addRM24_1 = $c->comm;
							}else {
								
								$comms = explode("RM", $c->comm);
								if(empty($comms[1])){
									$comm24_1 = 'RM '.$comms[1];
									$commV24_1 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm24_1 = str_replace ('+ ','',$comms[0]).'%';
										$commV24_1 = floatval($comms[0])/100;
										$addRM24_1 = $comms[1];
									}
								}
								
							}
						}
					}

				}

				/*** Contract 12 **/
				else if($c->contract =='12' && $c->packageR == "10,30,50,100"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD12_1 >= intval($pieces[1])){

							if(strpos($c->comm, 'RM') !== false) {	
								$comm12_1 = '+ ' .$c->comm;
								$commV12_1 = '';
								$addRM12_1 = $c->comm;
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm12_1 = 'RM '.$comms[1];
									$commV12_1 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm12_1 = $comms[0].'%';
										$commV12_1 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

					if(strpos($c->ranges,'-') !== false){

						$pieces = explode("-", $c->ranges);

						if($countD12_1 >= intval($pieces[0]) && $countD12_1 <= intval($pieces[1])){

							if(strpos($c->comm, 'RM') !== false) {	
								$comm12_1 = '+ ' .$c->comm;
								$commV12_1 = '';
								$addRM12_1 = $c->comm;
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm12_1 = 'RM '.$comms[1];
									$commV12_1 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm12_1 = $comms[0].'%';
										$commV12_1 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}else if($c->contract =='12' && $c->packageR == "300"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD12_2 >= intval($pieces[1])){
							if(strpos($c->comm, 'RM') !== false) {	
								$comm12_2 = '+ ' .$c->comm;
								$commV12_2 = '';
								$addRM12_2 = $c->comm;
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm12_2 = 'RM '.$comms[1];
									$commV12_2 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm12_2 = $comms[0].'%';
										$commV12_2 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}else if($c->contract =='12' && $c->packageR == "500"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD12_3 >= intval($pieces[1])){
							if(strpos($c->comm, 'RM') !== false) {	
								$comm12_3 = '+ ' .$c->comm;
								$commV12_3 = '';
								$addRM12_3 = $c->comm;
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm12_3 = 'RM '.$comms[1];
									$commV12_3 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm12_3 = $comms[0].'%';
										$commV12_3 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}else if($c->contract =='12' && $c->packageR == "1"){

					if(strpos($c->ranges, '>') !== false) {	
						$pieces = explode(">", $c->ranges);

						if($countD12_4 >= intval($pieces[1])){
							if(strpos($c->comm, 'RM') !== false) {	
								$comm12_4 = '+ ' .$c->comm;
								$commV12_4 = '';
								$addRM12_4 = $c->comm;
							}else {
								$comms = explode("RM", $c->comm);
								if(isset($comms[1])){
									$comm12_4 = 'RM '.$comms[1];
									$commV12_4 = floatval($comms[1]);
								}else {
									if($comms[0] != ''){
										$comm12_4 = $comms[0].'%';
										$commV12_4 = floatval($comms[0])/100;
									}
								}
							}
						}
					}

				}
			}

			// Category 10,30,50,100
			foreach ($data12_1 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}

					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$total = '';
				if($commV12_1 == ''){
					$total = $addRM12_1;
				}else {
					$total = number_format($d['retail_price']*$commV12_1,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $comm12_1,
					'incentives2' => $addRM12_1,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);

			}

			foreach ($data24_1 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}

					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}
				$total = '';
				if($commV24_1 == ''){
					$total = $addRM24_1;
				}else {
					$total = number_format(($d['retail_price']*$commV24_1) + floatval($addRM24_1),2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $comm24_1,
					'incentives2' => $addRM24_1,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);

			}

			// Category 300
			foreach ($data12_2 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}
				$total = '';
				if($commV12_2 == ''){
					$total = $addRM12_2;
				}else {
					$total = number_format($d['retail_price']*$commV12_2,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $commV12_2,
					'incentives2' => $addRM12_2,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);

			}

			foreach ($data24_2 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}
				$total = '';
				if($commV24_2 == ''){
					$total = $addRM24_2;//number_format($d['retail_price']+$addRM24_2,2);
				}else {
					$total = number_format($d['retail_price']*$commV24_2,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $commV24_2,
					'incentives2' => $comm24_2,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);

			}

			// Category 500
			foreach ($data12_3 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$total = '';
				if($commV12_3 == ''){
					$total = $addRM12_3;
				}else {
					$total = number_format($d['retail_price']*$commV12_3,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $commV12_3,
					'incentives2' => $addRM12_3,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);

			}

			foreach ($data24_3 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$total = '';
				if($commV24_3 == ''){
					$total = $addRM24_3; //number_format($d['retail_price']+$addRM24_3,2);
				}else {
					$total = number_format($d['retail_price']*$commV24_3,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $commV24_3,
					'incentives2' => $comm24_3,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);
			}

			// Category 1
			foreach ($data12_4 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}
				$total = '';
				if($commV12_4 == ''){
					$total = $addRM12_4;
				}else {
					$total = number_format($d['retail_price']*$commV12_4,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $commV12_4,
					'incentives2' => $addRM12_4,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);
			}

			foreach ($data24_4 as $key => $d) {

				$customer = Subscriber::with('Form')->where('_id', $d['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}

				$total = '';
				if($commV24_4 == ''){
					$total = $addRM24_4; //number_format($d['retail_price']+$addRM24_4,2);
				}else {
					$total = number_format($d['retail_price']*$commV24_4,2);
				}

				$final[] = array(
					'index' => $d['formT'],
					'contract' => $d['contract'],
					'wo' => $d['wo'],
					'activation' => $d['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $d['package'],
					'retail_price' => 'RM '.$d['retail_price'],
					'incentives1' => $commV24_4,
					'incentives2' => $comm24_4,
					'total' => 'RM '.$total,
					'claim' => $c['claim_dt'],
				);
			}

		}else {

			foreach ($dataCB as $c){

				$customer = Subscriber::with('Form')->where('_id', $c['customer_id'])->first();
				$address = ''; $name = '';
				if($customer->Form->type_application == 'R'){
					if($customer->street != ''){
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->unit_no. ' , '.$customer->building_name. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->name;
				}else if($customer->Form->type_application == 'B'){

					if($customer->unit_no != ''){
						$address = $customer->unit_no. ', '.$customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}else {
						$address = $customer->company_name. ', '.$customer->street. ' , '.$customer->postcode. ' , '.$customer->city. ' , '.$customer->state;
					}
					$name = $customer->company_name;
				}	

				$final[] = array(
					'index' => $c['formT'],
					'contract' => $c['contract'],
					'wo' => $c['wo'],
					'activation' => $c['activated_dt'],
					'name' => $name,
					'address' => $address,
					'package' => $c['package'],
					'retail_price' => 'RM '.$c['retail_price'],
					'incentives1' => '',
					'incentives2' => '',
					'total' => '',
					'claim' => $c['claim_dt'],
				);
			}

		}

		return $final;
	}

	// public function filterclaim($company,$year,$month,$app)
	// {
	// 	$id = Auth::guard('ms')->id();
	// 	$user = Staff::with('StaffDetail')->find($id);

	// 	$dataR = array(); $dataB = array(); $combineData = array();
	// 	if($year!='null' && $month!='null' && $app=='null'){

	// 		if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '1')){
	// 			$dataDis = $this->returnDataR($company,'2019','12');
	// 			$dataJan = $this->returnDataR($company,'2020','1');

	// 			$count_cyberjaya = array(); $count_jasin = array();
	// 			foreach ($dataDis as $key => $d) {
	// 				if(date('d/m/Y', strtotime($d['activation'])) >= '12/12/2019'){
	// 					if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 					    $count_cyberjaya[] = $d;
	// 					}

	// 					if (strpos($d['address'], 'Jasin') !== false) {
	// 					    $count_jasin[] = $d;
	// 					}

	// 				}else {
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						$combineData[] = $d;
	// 					}
	// 				}
	// 			}

	// 			foreach ($dataJan as $key => $d) {
	// 				if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 					$count_cyberjaya[] = $d;
	// 				}

	// 				if (strpos($d['address'], 'Jasin') !== false) {
	// 					$count_jasin[] = $d;
	// 				}
	// 			}

	// 			// Store to combineData New Incentives Cyberjaya
	// 			foreach ($count_cyberjaya as $key => $d) {
	// 				if(count($count_cyberjaya) > 50){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){

	// 						if($d['contract'] == '12'){
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => $d['incentives1'],
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => $d['total'],
	// 								'claim' => $d['claim'],
	// 							));
	// 						}else {
	// 							$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => '230%',
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => 'RM '.$total,
	// 								'claim' => $d['claim'],
	// 							));
	// 						}
	// 					}

	// 				}else if(count($count_cyberjaya) < 50){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						array_push($combineData, array(
	// 							'index' => $d['index'],
	// 							'contract' => $d['contract'],
	// 							'wo' => $d['wo'],
	// 							'activation' => $d['activation'],
	// 							'name' =>  $d['name'],
	// 							'address' => $d['address'],
	// 							'package' => $d['package'],
	// 							'retail_price' => $d['retail_price'],
	// 							'incentives1' => $d['incentives1'],
	// 							'incentives2' => $d['incentives2'],
	// 							'total' => $d['total'],
	// 							'claim' => $d['claim'],
	// 						));
	// 					}
	// 				}
	// 			}

	// 			// Store to combineData New Incentives Jasin
	// 			foreach ($count_jasin as $key => $d) {
	// 				if(count($count_jasin) > 10){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 						array_push($combineData, array(
	// 							'index' => $d['index'],
	// 							'contract' => $d['contract'],
	// 							'wo' => $d['wo'],
	// 							'activation' => $d['activation'],
	// 							'name' =>  $d['name'],
	// 							'address' => $d['address'],
	// 							'package' => $d['package'],
	// 							'retail_price' => $d['retail_price'],
	// 							'incentives1' => '230%',
	// 							'incentives2' => $d['incentives2'],
	// 							'total' => 'RM '.$total,
	// 							'claim' => $d['claim'],
	// 						));
	// 					}

	// 				}else if(count($count_jasin) < 10){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						array_push($combineData, array(
	// 							'index' => $d['index'],
	// 							'contract' => $d['contract'],
	// 							'wo' => $d['wo'],
	// 							'activation' => $d['activation'],
	// 							'name' =>  $d['name'],
	// 							'address' => $d['address'],
	// 							'package' => $d['package'],
	// 							'retail_price' => $d['retail_price'],
	// 							'incentives1' => $d['incentives1'],
	// 							'incentives2' => $d['incentives2'],
	// 							'total' => $d['total'],
	// 							'claim' => $d['claim'],
	// 						));
	// 					}
	// 				}
	// 			}

	// 		}else {
	// 			$dataR = $this->returnDataR($company,$year,$month);
	// 			foreach($dataR as $r){
	// 				$combineData[] = $r;
	// 			}
	// 		}

	// 		$dataB = $this->returnDataB($company,$year,$month);
	// 		foreach($dataB as $b){
	// 			$combineData[] = $b;
	// 		}

	// 		$i = 0;
	// 		$nested_data = array();
	// 		if(!empty($combineData)){
	// 			foreach ($combineData as $c){
	// 				$i++;
	// 				array_push($nested_data, array(
	// 					'index' => $c['index'],
	// 					'contract' => $c['contract'],
	// 					'wo' => $c['wo'],
	// 					'activated_dt' => $c['activation'],
	// 					'name' =>  $c['name'],
	// 					'address' => $c['address'],
	// 					'package' => $c['package'],
	// 					'retail_price' => $c['retail_price'],
	// 					'incentives1' => $c['incentives1'],
	// 					'incentives2' => $c['incentives2'],
	// 					'total' => $c['total'],
	// 					'claimed' => $c['claim'],
	// 				));
	// 			}
	// 		}

	// 		usort($nested_data, function ($a, $b) {
	// 		    $dateA = $a['activated_dt'];
	// 		    $dateB = $b['activated_dt'];
	// 		    // ascending ordering, use `<=` for descending
	// 		    return $dateA <= $dateB;
	// 		});

	// 		return \DataTables::of($nested_data)->make(true);
			
	// 	}else if($year=='null' && $month=='null' && $app!='null'){

	// 		if($app == 'Residential'){
	// 			$dataR = $this->returnDataR($company,$year,$month);
	// 		}else if($app == 'Business'){
	// 			$dataB = $this->returnDataB($company,$year,$month);
	// 		}
		
	// 		foreach($dataR as $r){
	// 			$combineData[] = $r;
	// 		}

	// 		foreach($dataB as $b){
	// 			$combineData[] = $b;
	// 		}

	// 		$i = 0;
	// 		$nested_data = array();
	// 		if(!empty($combineData)){
	// 			foreach ($combineData as $c){
	// 				$i++;
	// 				array_push($nested_data, array(
	// 					'index' => $c['index'],
	// 					'contract' => $c['contract'],
	// 					'wo' => $c['wo'],
	// 					'activated_dt' => $c['activation'],
	// 					'name' =>  $c['name'],
	// 					'address' => $c['address'],
	// 					'package' => $c['package'],
	// 					'retail_price' => $c['retail_price'],
	// 					'incentives1' => $c['incentives1'],
	// 					'incentives2' => $c['incentives2'],
	// 					'total' => $c['total'],
	// 					'claimed' => $c['claim'],
	// 				));
	// 			}
	// 		}

	// 		usort($nested_data, function ($a, $b) {
	// 		    $dateA = $a['activated_dt'];
	// 		    $dateB = $b['activated_dt'];
	// 		    // ascending ordering, use `<=` for descending
	// 		    return $dateA <= $dateB;
	// 		});

	// 		return \DataTables::of($nested_data)->make(true);

	// 	}else if($year!='null' && $month!='null' && $app!='null'){

	// 		if($app == 'Residential'){
	// 			if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '1')){
	// 				$dataDis = $this->returnDataR($company,'2019','12');
	// 				$dataJan = $this->returnDataR($company,'2020','1');

	// 				$count_cyberjaya = array(); $count_jasin = array();
	// 				foreach ($dataDis as $key => $d) {
	// 					if(date('d/m/Y', strtotime($d['activation'])) >= '12/12/2019'){
	// 						if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 						    $count_cyberjaya[] = $d;
	// 						}

	// 						if (strpos($d['address'], 'Jasin') !== false) {
	// 						    $count_jasin[] = $d;
	// 						}

	// 					}else {
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							$combineData[] = $d;
	// 						}
	// 					}
	// 				}

	// 				foreach ($dataJan as $key => $d) {
	// 					if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 						$count_cyberjaya[] = $d;
	// 					}

	// 					if (strpos($d['address'], 'Jasin') !== false) {
	// 						$count_jasin[] = $d;
	// 					}
	// 				}

	// 				// Store to combineData New Incentives Cyberjaya
	// 				foreach ($count_cyberjaya as $key => $d) {
	// 					if(count($count_cyberjaya) > 50){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){

	// 							if($d['contract'] == '12'){
	// 								array_push($combineData, array(
	// 									'index' => $d['index'],
	// 									'contract' => $d['contract'],
	// 									'wo' => $d['wo'],
	// 									'activation' => $d['activation'],
	// 									'name' =>  $d['name'],
	// 									'address' => $d['address'],
	// 									'package' => $d['package'],
	// 									'retail_price' => $d['retail_price'],
	// 									'incentives1' => $d['incentives1'],
	// 									'incentives2' => $d['incentives2'],
	// 									'total' => $d['total'],
	// 									'claim' => $d['claim'],
	// 								));
	// 							}else {

	// 								$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 								array_push($combineData, array(
	// 									'index' => $d['index'],
	// 									'contract' => $d['contract'],
	// 									'wo' => $d['wo'],
	// 									'activation' => $d['activation'],
	// 									'name' =>  $d['name'],
	// 									'address' => $d['address'],
	// 									'package' => $d['package'],
	// 									'retail_price' => $d['retail_price'],
	// 									'incentives1' => '230%',
	// 									'incentives2' => $d['incentives2'],
	// 									'total' => 'RM '.$total,
	// 									'claim' => $d['claim'],
	// 								));
	// 							}
	// 						}

	// 					}else if(count($count_cyberjaya) < 50){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => $d['incentives1'],
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => $d['total'],
	// 								'claim' => $d['claim'],
	// 							));
	// 						}
	// 					}
	// 				}

	// 				// Store to combineData New Incentives Jasin
	// 				foreach ($count_jasin as $key => $d) {
	// 					if(count($count_jasin) > 10){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => '230%',
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => 'RM '.$total,
	// 								'claim' => $d['claim'],
	// 							));
	// 						}

	// 					}else if(count($count_jasin) < 10){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => $d['incentives1'],
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => $d['total'],
	// 								'claim' => $d['claim'],
	// 							));
	// 						}
	// 					}
	// 				}

	// 			}else {
	// 				$dataR = $this->returnDataR($company,$year,$month);
	// 				foreach($dataR as $r){
	// 					$combineData[] = $r;
	// 				}
	// 			}

	// 		}else if($app == 'Business'){
	// 			$dataB = $this->returnDataB($company,$year,$month);
	// 		}
		
	// 		foreach($dataB as $b){
	// 			$combineData[] = $b;
	// 		}

	// 		$i = 0;
	// 		$nested_data = array();
	// 		if(!empty($combineData)){
	// 			foreach ($combineData as $c){
	// 				$i++;
	// 				array_push($nested_data, array(
	// 					'index' => $c['index'],
	// 					'contract' => $c['contract'],
	// 					'wo' => $c['wo'],
	// 					'activated_dt' => $c['activation'],
	// 					'name' =>  $c['name'],
	// 					'address' => $c['address'],
	// 					'package' => $c['package'],
	// 					'retail_price' => $c['retail_price'],
	// 					'incentives1' => $c['incentives1'],
	// 					'incentives2' => $c['incentives2'],
	// 					'total' => $c['total'],
	// 					'claimed' => $c['claim'],
	// 				));
	// 			}
	// 		}

	// 		usort($nested_data, function ($a, $b) {
	// 		    $dateA = $a['activated_dt'];
	// 		    $dateB = $b['activated_dt'];
	// 		    // ascending ordering, use `<=` for descending
	// 		    return $dateA <= $dateB;
	// 		});
	// 		return \DataTables::of($nested_data)->make(true);
	// 	}
	// }

	// public function exportPDFClaim($company,$year,$month,$app) {

	// 	$final = array();

	// 	$id = Auth::guard('ms')->id();
	// 	$user = Staff::with('StaffDetail')->find($id);
	// 	$com = Company::where('_id',$company)->first();

	// 	$dataR = array(); $dataB = array(); $combineData = array();

	// 	if($year!='null' && $month!='null' && $app=='null'){

	// 		$count_cyberjaya = array(); $count_jasin = array(); 
	// 		$extra = 0; $basic_total = 0; $totals = 0; 

	// 		if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '1')){
	// 			$dataDis = $this->returnDataR($company,'2019','12');
	// 			$dataJan = $this->returnDataR($company,'2020','1');
				
	// 			foreach ($dataDis as $key => $d) {
	// 				if(date('d/m/Y', strtotime($d['activation'])) >= '12/12/2019'){
	// 					if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 					    $count_cyberjaya[] = $d;
	// 					}

	// 					if (strpos($d['address'], 'Jasin') !== false) {
	// 					    $count_jasin[] = $d;
	// 					}

	// 				}else {
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						$combineData[] = $d;
	// 					}
	// 				}
	// 			}

	// 			foreach ($dataJan as $key => $d) {
	// 				if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 					$count_cyberjaya[] = $d;
	// 				}

	// 				if (strpos($d['address'], 'Jasin') !== false) {
	// 					$count_jasin[] = $d;
	// 				}
	// 			}

	// 			// Store to combineData New Incentives Cyberjaya
	// 			foreach ($count_cyberjaya as $key => $d) {
	// 				if(count($count_cyberjaya) > 50){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){

	// 						if($d['contract'] == '12'){
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => $d['incentives1'],
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => $d['total'],
	// 								'claim' => $d['claim'],
	// 							));
	// 						}else {
	// 							$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => '230%',
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => 'RM '.$total,
	// 								'claim' => $d['claim'],
	// 							));
	// 						}
	// 					}

	// 				}else if(count($count_cyberjaya) < 50){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.1, 2);
	// 						array_push($combineData, array(
	// 							'index' => $d['index'],
	// 							'contract' => $d['contract'],
	// 							'wo' => $d['wo'],
	// 							'activation' => $d['activation'],
	// 							'name' =>  $d['name'],
	// 							'address' => $d['address'],
	// 							'package' => $d['package'],
	// 							'retail_price' => $d['retail_price'],
	// 							'incentives1' => $d['incentives1'],
	// 							'incentives2' => $d['incentives2'],
	// 							'total' => $d['total'],
	// 							'claim' => $d['claim'],
	// 						));
	// 					}
	// 				}
	// 			}

	// 			// Store to combineData New Incentives Jasin
	// 			foreach ($count_jasin as $key => $d) {
	// 				if(count($count_jasin) > 10){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 						array_push($combineData, array(
	// 							'index' => $d['index'],
	// 							'contract' => $d['contract'],
	// 							'wo' => $d['wo'],
	// 							'activation' => $d['activation'],
	// 							'name' =>  $d['name'],
	// 							'address' => $d['address'],
	// 							'package' => $d['package'],
	// 							'retail_price' => $d['retail_price'],
	// 							'incentives1' => '230%',
	// 							'incentives2' => $d['incentives2'],
	// 							'total' => 'RM '.$total,
	// 							'claim' => $d['claim'],
	// 						));
	// 					}

	// 				}else if(count($count_jasin) < 10){
	// 					if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 						array_push($combineData, array(
	// 							'index' => $d['index'],
	// 							'contract' => $d['contract'],
	// 							'wo' => $d['wo'],
	// 							'activation' => $d['activation'],
	// 							'name' =>  $d['name'],
	// 							'address' => $d['address'],
	// 							'package' => $d['package'],
	// 							'retail_price' => $d['retail_price'],
	// 							'incentives1' => $d['incentives1'],
	// 							'incentives2' => $d['incentives2'],
	// 							'total' => $d['total'],
	// 							'claim' => $d['claim'],
	// 						));
	// 					}
	// 				}
	// 			}
			
	// 		}else {
	// 			$dataR = $this->returnDataR($company,$year,$month);
	// 			foreach($dataR as $r){
	// 				$combineData[] = $r;
	// 			}
	// 		}

	// 		$dataB = $this->returnDataB($company,$year,$month);

	// 		foreach($dataB as $b){
	// 			$combineData[] = $b;
	// 		}

	// 		$i = 0;
	// 		$nested_data = array();
	// 		if(!empty($combineData)){
	// 			foreach ($combineData as $c){
	// 				$i++;
	// 				array_push($final, array(
	// 					'index' => $c['index'],
	// 					'contract' => $c['contract'],
	// 					'wo' => $c['wo'],
	// 					'activated_dt' => $c['activation'],
	// 					'name' =>  $c['name'],
	// 					'address' => $c['address'],
	// 					'package' => $c['package'],
	// 					'retail_price' => $c['retail_price'],
	// 					'incentives1' => $c['incentives1'],
	// 					'incentives2' => $c['incentives2'],
	// 					'total' => $c['total'],
	// 					'claimed' => $c['claim'],
	// 				));
	// 			}
	// 		}

	// 		foreach($final as $f){
	// 			$basic_total += floatval(str_replace('RM ', '', $f['total'])); 
	// 		}
			
	// 		// Calculate extra incentves
	// 		if($month == '1' && $year == '2020'){
	// 			if(count($count_cyberjaya) > 50){
	// 				$balance = count($count_cyberjaya) - 50;
	// 				$extra += $balance * 50;
	// 			}

	// 			if(count($count_jasin) > 10){
	// 				$balance = count($count_jasin) - 10;
	// 				$extra += $balance * 50;
	// 			}
	// 		}else {
	// 			$extra = 0;
	// 		}

	// 		$totals = $basic_total + $extra;

	// 		usort($final, function ($a, $b) {
	// 		    $dateA = $a['activated_dt'];
	// 		    $dateB = $b['activated_dt'];
	// 		    // ascending ordering, use `<=` for descending
	// 		    return $dateA <= $dateB;
	// 		});

	// 		$pdf = PDF::loadView('pdf.agent-claim', compact('final', 'month', 'year','com','basic_total','extra','totals'));
	// 		$pdf->setPaper('A4', 'landscape');
	// 		$pdfName = preg_replace('/\s+/', '-', $com->name).'-'.$month.'-'.$year.'.pdf';

	// 		return $pdf->download( $pdfName );
			
	// 	}else if($year!='null' && $month!='null' && $app!='null'){

	// 		$count_cyberjaya = array(); $count_jasin = array(); 
	// 		$extra = 0; $basic_total = 0; $totals = 0; 

	// 		if($app == 'Residential'){
	// 			if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '1')){
	// 				$dataDis = $this->returnDataR($company,'2019','12');
	// 				$dataJan = $this->returnDataR($company,'2020','1');
					
	// 				foreach ($dataDis as $key => $d) {
	// 					if(date('d/m/Y', strtotime($d['activation'])) >= '12/12/2019'){
	// 						if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 						    $count_cyberjaya[] = $d;
	// 						}

	// 						if (strpos($d['address'], 'Jasin') !== false) {
	// 						    $count_jasin[] = $d;
	// 						}

	// 					}else {
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							$combineData[] = $d;
	// 						}
	// 					}
	// 				}

	// 				foreach ($dataJan as $key => $d) {
	// 					if (strpos($d['address'], 'Cyberjaya') !== false) {
	// 						$count_cyberjaya[] = $d;
	// 					}

	// 					if (strpos($d['address'], 'Jasin') !== false) {
	// 						$count_jasin[] = $d;
	// 					}
	// 				}

	// 				// Store to combineData New Incentives Cyberjaya
	// 				foreach ($count_cyberjaya as $key => $d) {
	// 					if(count($count_cyberjaya) > 50){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							if($d['contract'] == '12'){
	// 								array_push($combineData, array(
	// 									'index' => $d['index'],
	// 									'contract' => $d['contract'],
	// 									'wo' => $d['wo'],
	// 									'activation' => $d['activation'],
	// 									'name' =>  $d['name'],
	// 									'address' => $d['address'],
	// 									'package' => $d['package'],
	// 									'retail_price' => $d['retail_price'],
	// 									'incentives1' => $d['incentives1'],
	// 									'incentives2' => $d['incentives2'],
	// 									'total' => $d['total'],
	// 									'claim' => $d['claim'],
	// 								));
	// 							}else {
	// 								$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 								array_push($combineData, array(
	// 									'index' => $d['index'],
	// 									'contract' => $d['contract'],
	// 									'wo' => $d['wo'],
	// 									'activation' => $d['activation'],
	// 									'name' =>  $d['name'],
	// 									'address' => $d['address'],
	// 									'package' => $d['package'],
	// 									'retail_price' => $d['retail_price'],
	// 									'incentives1' => '230%',
	// 									'incentives2' => $d['incentives2'],
	// 									'total' => 'RM '.$total,
	// 									'claim' => $d['claim'],
	// 								));
	// 							}
	// 						}

	// 					}else if(count($count_cyberjaya) < 50){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => $d['incentives1'],
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => $d['total'],
	// 								'claim' => $d['claim'],
	// 							));
	// 						}
	// 					}
	// 				}

	// 				// Store to combineData New Incentives Jasin
	// 				foreach ($count_jasin as $key => $d) {
	// 					if(count($count_jasin) > 10){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							$total = number_format(floatval(str_replace("RM ", "" , $d['retail_price'])) * 2.3, 2);
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => '230%',
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => 'RM '.$total,
	// 								'claim' => $d['claim'],
	// 							));
	// 						}

	// 					}else if(count($count_jasin) < 10){
	// 						if(date('n/Y', strtotime($d['activation'])) == $month.'/'.$year){
	// 							array_push($combineData, array(
	// 								'index' => $d['index'],
	// 								'contract' => $d['contract'],
	// 								'wo' => $d['wo'],
	// 								'activation' => $d['activation'],
	// 								'name' =>  $d['name'],
	// 								'address' => $d['address'],
	// 								'package' => $d['package'],
	// 								'retail_price' => $d['retail_price'],
	// 								'incentives1' => $d['incentives1'],
	// 								'incentives2' => $d['incentives2'],
	// 								'total' => $d['total'],
	// 								'claim' => $d['claim'],
	// 							));
	// 						}
	// 					}
	// 				}

	// 			}else {
	// 				$dataR = $this->returnDataR($company,$year,$month);
	// 				foreach($dataR as $r){
	// 					$combineData[] = $r;
	// 				}
	// 			}

	// 		}else if($app == 'Business'){
	// 			$dataB = $this->returnDataB($company,$year,$month);
	// 		}

	// 		foreach($dataB as $b){
	// 			$combineData[] = $b;
	// 		}

	// 		$i = 0;
	// 		$nested_data = array();
	// 		if(!empty($combineData)){
	// 			foreach ($combineData as $c){
	// 				$i++;
	// 				array_push($final, array(
	// 					'index' => $c['index'],
	// 					'contract' => $c['contract'],
	// 					'wo' => $c['wo'],
	// 					'activated_dt' => $c['activation'],
	// 					'name' =>  $c['name'],
	// 					'address' => $c['address'],
	// 					'package' => $c['package'],
	// 					'retail_price' => $c['retail_price'],
	// 					'incentives1' => $c['incentives1'],
	// 					'incentives2' => $c['incentives2'],
	// 					'total' => $c['total'],
	// 					'claimed' => $c['claim'],
	// 				));
	// 			}
	// 		}

	// 		foreach($final as $f){
	// 			$basic_total += floatval(str_replace('RM ', '', $f['total'])); 
	// 		}

	// 		//Calculate extra incentves
	// 		if($month == '1' && $year == '2020'){
	// 			if(count($count_cyberjaya) > 50){
	// 				$balance = count($count_cyberjaya) - 50;
	// 				$extra += $balance * 50;
	// 			}

	// 			if(count($count_jasin) > 10){
	// 				$balance = count($count_jasin) - 10;
	// 				$extra += $balance * 50;
	// 			}
	// 		}else {
	// 			$extra = 0;
	// 		}
			
	// 		$totals = $basic_total + $extra;

	// 		usort($final, function ($a, $b) {
	// 		    $dateA = $a['activated_dt'];
	// 		    $dateB = $b['activated_dt'];
	// 		    // ascending ordering, use `<=` for descending
	// 		    return $dateA <= $dateB;
	// 		});
			
	// 		$pdf = PDF::loadView('pdf.agent-claim', compact('final', 'month', 'year','com','basic_total','extra','totals'));
	// 		$pdf->setPaper('A4', 'landscape');
	// 		$pdfName = preg_replace('/\s+/', '-', $com->name).'-'.$month.'-'.$year.'.pdf';

	// 		return $pdf->download( $pdfName );
	// 	}
	// }

	public function filterclaim($company,$year,$month,$app)
	{
		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);

		$count_cyberjaya = array(); $count_jasin = array(); $count_ayerKeroh = array(); $count_alorGajah = array();
		$extra = 0; $basic_total = 0; $totals = 0; 
		
		if($year!='null' && $month!='null' && $app=='null'){

			$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
				$q->with('Form');
			}],'Staff')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();

			if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '01')){
				
				foreach ($dataClaim as $key => $d) {
					if(date('d/m/Y', strtotime($d->activated_dt)) >= '12/12/2019' &&
					date('d/m/Y', strtotime($d->activated_dt)) <= '31/01/2020'){
						if (strpos($d['address'], 'Cyberjaya') !== false) {
						    $count_cyberjaya[] = $d;
						}

						if (strpos($d['address'], 'Jasin') !== false) {
						    $count_jasin[] = $d;
						}

						if (strpos($d['address'], 'Ayer Keroh') !== false) {
						    $count_ayerKeroh[] = $d;
						}

						if (strpos($d['address'], 'Alor Gajah') !== false) {
						    $count_alorGajah[] = $d;
						}
					}
				}
			
			}else if($year == '2020' && ($month == '04' || $month == '05' || $month == '06' || $month == '07')){

				foreach ($dataClaim as $key => $d) {
					if(date('d/m/Y', strtotime($d->activated_dt)) >= '27/04/2020' &&
					date('d/m/Y', strtotime($d->activated_dt)) <= '31/07/2020'){
						if (strpos($d['address'], 'Cyberjaya') !== false) {
						    $count_cyberjaya[] = $d;
						}

						if (strpos($d['address'], 'Jasin') !== false) {
						    $count_jasin[] = $d;
						}

						if (strpos($d['address'], 'Ayer Keroh') !== false) {
						    $count_ayerKeroh[] = $d;
						}

						if (strpos($d['address'], 'Alor Gajah') !== false) {
						    $count_alorGajah[] = $d;
						}
					}
				}

			}
			
		}else if($year=='null' && $month=='null' && $app!='null'){

			// if($app == 'Residential'){
			// 	$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
			// 		$q->with('Form');
			// 	}],'Staff')->where('formT', 'R')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();
			// }else if($app == 'Business'){
			// 	$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
			// 		$q->with('Form');
			// 	}],'Staff')->where('formT', 'B')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();
			// }

		}else if($year!='null' && $month!='null' && $app!='null'){

			if($app == 'Residential'){
				$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
					$q->with('Form');
				}],'Staff')->where('formT', 'R')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();
				
				if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '01')){
				
					foreach ($dataClaim as $key => $d) {
						if(date('d/m/Y', strtotime($d->activated_dt)) >= '12/12/2019' &&
						date('d/m/Y', strtotime($d->activated_dt)) <= '31/01/2020'){
							if (strpos($d['address'], 'Cyberjaya') !== false) {
							    $count_cyberjaya[] = $d;
							}

							if (strpos($d['address'], 'Jasin') !== false) {
							    $count_jasin[] = $d;
							}

							if (strpos($d['address'], 'Ayer Keroh') !== false) {
							    $count_ayerKeroh[] = $d;
							}

							if (strpos($d['address'], 'Alor Gajah') !== false) {
							    $count_alorGajah[] = $d;
							}
						}
					}
				
				}else if($year == '2020' && ($month == '04' || $month == '05' || $month == '06' || $month == '07')){

					foreach ($dataClaim as $key => $d) {
						if(date('d/m/Y', strtotime($d->activated_dt)) >= '27/04/2020' &&
						date('d/m/Y', strtotime($d->activated_dt)) <= '31/07/2020'){
							if (strpos($d['address'], 'Cyberjaya') !== false) {
							    $count_cyberjaya[] = $d;
							}

							if (strpos($d['address'], 'Jasin') !== false) {
							    $count_jasin[] = $d;
							}

							if (strpos($d['address'], 'Ayer Keroh') !== false) {
							    $count_ayerKeroh[] = $d;
							}

							if (strpos($d['address'], 'Alor Gajah') !== false) {
							    $count_alorGajah[] = $d;
							}
						}
					}

				}

			}else if($app == 'Business'){
				$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
					$q->with('Form');
				}],'Staff')->where('formT', 'B')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();
			}
		}

		$i = 0;
		$nested_data = array();
		if(!empty($dataClaim)){
			foreach ($dataClaim as $c){

				$address = ''; $name = '';
				if($c->Subscriber->Form->type_application == 'R'){

					if($c->Subscriber->street != ''){
						$address = $c->Subscriber->unit_no. ' , '.$c->Subscriber->building_name. ' , '.$c->Subscriber->street. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}else {
						$address = $c->Subscriber->unit_no. ' , '.$c->Subscriber->building_name. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}

					$name = $c->Subscriber->name;

				}else if($c->Subscriber->Form->type_application == 'B'){

					if($c->Subscriber->unit_no != ''){
						$address = $c->Subscriber->unit_no. ', '.$c->Subscriber->company_name. ', '.$c->Subscriber->street. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}else {
						$address = $c->Subscriber->company_name. ', '.$c->Subscriber->street. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}

					$name = $c->Subscriber->company_name;
				}

				$i++;
				array_push($nested_data, array(
					'index' => $c->formT,
					'contract' => $c->contract,
					'wo' =>  $c->wo,
					'activated_dt' => $c->activated_dt,
					'name' =>  $name,
					'address' => $address,
					'package' => $c->package,
					'retail_price' => 'RM '.$c->retail_price,
					'incentives1' => $c->incentives1,
					'incentives2' => $c->incentives2,
					'total' => 'RM '.$c->total_claim,
					'claimed' => $c->claim_dt,
				));
			}
		}

		return \DataTables::of($nested_data)->make(true);
	}

	public function exportPDFClaim($company,$year,$month,$app) {

		$final = array();

		$id = Auth::guard('ms')->id();
		$user = Staff::with('StaffDetail')->find($id);
		$com = Company::where('_id',$company)->first();
		$i = 0;

		$dataR = array(); $dataB = array(); $combineData = array();

		$count_cyberjaya = array(); $count_jasin = array(); $count_ayerKeroh = array(); $count_alorGajah = array();
		$extra = 0; $basic_total = 0; $totals = 0; 

		if($year!='null' && $month!='null' && $app=='null'){

			$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
				$q->with('Form');
			}],'Staff')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();

			if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '01')){
				
				foreach ($dataClaim as $key => $d) {
					if(date('d/m/Y', strtotime($d->activated_dt)) >= '12/12/2019' &&
					date('d/m/Y', strtotime($d->activated_dt)) <= '31/01/2020'){
						if (strpos($d['address'], 'Cyberjaya') !== false) {
						    $count_cyberjaya[] = $d;
						}

						if (strpos($d['address'], 'Jasin') !== false) {
						    $count_jasin[] = $d;
						}

						if (strpos($d['address'], 'Ayer Keroh') !== false) {
							$count_ayerKeroh[] = $d;
						}

						if (strpos($d['address'], 'Alor Gajah') !== false) {
							$count_alorGajah[] = $d;
						}
					}
				}
			
			}else if($year == '2020' && ($month == '04' || $month == '05' || $month == '06' || $month == '07')){

				foreach ($dataClaim as $key => $d) {
					if(date('d/m/Y', strtotime($d->activated_dt)) >= '27/04/2020' &&
					date('d/m/Y', strtotime($d->activated_dt)) <= '31/07/2020'){
						if (strpos($d['address'], 'Cyberjaya') !== false) {
						    $count_cyberjaya[] = $d;
						}

						if (strpos($d['address'], 'Jasin') !== false) {
						    $count_jasin[] = $d;
						}

						if (strpos($d['address'], 'Ayer Keroh') !== false) {
							$count_ayerKeroh[] = $d;
						}

						if (strpos($d['address'], 'Alor Gajah') !== false) {
							$count_alorGajah[] = $d;
						}
					}
				}

			}

		}else if($year!='null' && $month!='null' && $app!='null'){

			if($app == 'Residential'){
				$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
					$q->with('Form');
				}],'Staff')->where('formT', 'R')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();
				
				if(($year == '2019' || $year == '2020') && ($month == '12' || $month == '01')){
				
					foreach ($dataClaim as $key => $d) {
						if(date('d/m/Y', strtotime($d->activated_dt)) >= '12/12/2019' &&
						date('d/m/Y', strtotime($d->activated_dt)) <= '31/01/2020'){
							if (strpos($d['address'], 'Cyberjaya') !== false) {
							    $count_cyberjaya[] = $d;
							}

							if (strpos($d['address'], 'Jasin') !== false) {
							    $count_jasin[] = $d;
							}
							if (strpos($d['address'], 'Ayer Keroh') !== false) {
							    $count_ayerKeroh[] = $d;
							}

							if (strpos($d['address'], 'Alor Gajah') !== false) {
							    $count_alorGajah[] = $d;
							}
						}
					}
				
				}else if($year == '2020' && ($month == '04' || $month == '05' || $month == '06' || $month == '07')){

					foreach ($dataClaim as $key => $d) {
						if(date('d/m/Y', strtotime($d->activated_dt)) >= '27/04/2020' &&
						date('d/m/Y', strtotime($d->activated_dt)) <= '31/07/2020'){
							if (strpos($d['address'], 'Cyberjaya') !== false) {
							    $count_cyberjaya[] = $d;
							}

							if (strpos($d['address'], 'Jasin') !== false) {
							    $count_jasin[] = $d;
							}

							if (strpos($d['address'], 'Ayer Keroh') !== false) {
							    $count_ayerKeroh[] = $d;
							}

							if (strpos($d['address'], 'Alor Gajah') !== false) {
							    $count_alorGajah[] = $d;
							}
						}
					}

				}

			}else if($app == 'Business'){
				$dataClaim = DealerClaim::with(['Subscriber' => function($q) {
					$q->with('Form');
				}],'Staff')->where('formT', 'B')->where('dealer',$company)->where('activated_my',$month.'/'.$year)->orderBy('activated_dt','DESC')->get();
			}

		}

		if(!empty($dataClaim)){
			foreach ($dataClaim as $c){

				$address = ''; $name = '';
				if($c->Subscriber->Form->type_application == 'R'){

					if($c->Subscriber->street != ''){
						$address = $c->Subscriber->unit_no. ' , '.$c->Subscriber->building_name. ' , '.$c->Subscriber->street. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}else {
						$address = $c->Subscriber->unit_no. ' , '.$c->Subscriber->building_name. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}

					$name = $c->Subscriber->name;

				}else if($c->Subscriber->Form->type_application == 'B'){

					if($c->Subscriber->unit_no != ''){
						$address = $c->Subscriber->unit_no. ', '.$c->Subscriber->company_name. ', '.$c->Subscriber->street. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}else {
						$address = $c->Subscriber->company_name. ', '.$c->Subscriber->street. ' , '.$c->Subscriber->postcode. ' , '.$c->Subscriber->city. ' , '.$c->Subscriber->state;
					}

					$name = $c->Subscriber->company_name;
				}

				$i++;
				array_push($final, array(
					'index' => $c->formT,
					'contract' => $c->contract,
					'wo' =>  $c->wo,
					'activated_dt' => $c->activated_dt,
					'name' =>  $name,
					'address' => $address,
					'package' => $c->package,
					'retail_price' => 'RM '.$c->retail_price,
					'incentives1' => $c->incentives1,
					'incentives2' => $c->incentives2,
					'total' => 'RM' .$c->total_claim,
					'claimed' => $c->claim_dt,
				));
			}


			foreach($dataClaim as $f){
				$basic_total += $f->total_claim; 
			}
			
			// Calculate extra incentves
			if($month == '01' && $year == '2020'){
				if(count($count_cyberjaya) > 50){
					$balance = count($count_cyberjaya) - 50;
					$extra += $balance * 50;
				}

				if(count($count_jasin) > 10){
					$balance = count($count_jasin) - 10;
					$extra += $balance * 50;
				}

				if(count($count_ayerKeroh) > 10){
					$balance = count($count_ayerKeroh) - 10;
					$extra += $balance * 50;
				}

				if(count($count_alorGajah) > 10){
					$balance = count($count_alorGajah) - 10;
					$extra += $balance * 50;
				}
			}else if($year == '2020' && ($month == '04' || $month == '05' || $month == '06' || $month == '07')){

				if(count($count_cyberjaya) > 50){
					$balance = count($count_cyberjaya) - 50;
					$extra += $balance * 50;
				}

				if(count($count_jasin) > 20){
					$balance = count($count_jasin) - 20;
					$extra += $balance * 50;
				}

				if(count($count_ayerKeroh) > 20){
					$balance = count($count_ayerKeroh) - 20;
					$extra += $balance * 50;
				}

				if(count($count_alorGajah) > 20){
					$balance = count($count_alorGajah) - 20;
					$extra += $balance * 50;
				}

			}else {
				$extra = 0;
			}

			$totals = $basic_total + $extra;

			$pdf = PDF::loadView('pdf.agent-claim', compact('final', 'month', 'year','com','basic_total','extra','totals'));
			$pdf->setPaper('A4', 'landscape');
			$pdfName = preg_replace('/\s+/', '-', $com->name).'-'.$month.'-'.$year.'.pdf';

			return $pdf->download( $pdfName );
		}
	}

	public function manualDate(){
		$final = array();

		$com = Company::where('_id','5bb2bc66ee0dc2271c6fedf6')->first();

		$dataR = array(); $dataB = array(); $combineData = array();

		$count_cyberjaya = array(); $count_jasin = array(); $count_ayerKeroh = array(); $count_alorGajah = array();
		$extra = 0; $basic_total = 0; $totals = 0; 

		$dataDis = $this->returnDataR('5bb2bc66ee0dc2271c6fedf6','2019','12');
				
		foreach ($dataDis as $key => $d) {
			if(date('d/m/Y', strtotime($d['activation'])) >= '12/12/2019'){
				$combineData[] = $d;
			}
		}

		$dataB = $this->returnDataB('5bb2bc66ee0dc2271c6fedf6','2019','12');

		foreach($dataB as $b){
			$combineData[] = $b;
		}

		$i = 0;
		$nested_data = array();
		if(!empty($combineData)){
			foreach ($combineData as $c){
				$i++;
				array_push($final, array(
					'index' => $c['index'],
					'contract' => $c['contract'],
					'wo' => $c['wo'],
					'activated_dt' => $c['activation'],
					'name' =>  $c['name'],
					'address' => $c['address'],
					'package' => $c['package'],
					'retail_price' => $c['retail_price'],
					'incentives1' => $c['incentives1'],
					'incentives2' => $c['incentives2'],
					'total' => $c['total'],
					'claimed' => $c['claim'],
				));
			}
		}

		usort($final, function ($a, $b) {
			$dateA = $a['activated_dt'];
			$dateB = $b['activated_dt'];
			    // ascending ordering, use `<=` for descending
			return $dateA <= $dateB;
		});

		return json_encode($final);
	}
}
