<?php

namespace App\Http\Controllers;

use App\Branch;
use App\CancellationCode;
use App\CancellationPeriod;
use App\Http\Controllers\FileController;
use App\Http\Controllers\LeadController;
use App\Http\Controllers\HelperController;
use App\Http\Controllers\RAF\RAFController;
use App\Http\Requests\CancellationRequest;
use App\Information;
use App\Affiliates;
use App\Quotes;
use App\LogInformation;
use App\Models\RAF\RAFLoanDocuments;
use App\User;
use App\UserInfo;
use Auth;
use Carbon\Carbon;
use Config;
use DB;
use Excel;
use Flash;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Response;
use Spatie\Activitylog\Models\Activity;
use URL;
use View;
use Yajra\Datatables\Facades\Datatables;
use App\Components\CommonComponent;
use App\MailTracker;
use App\MmsCoverletterDetails;
use Mail;
use App\Jobs\Job;
use App\Jobs\RAF\DocumentSaveJob;
use Illuminate\Support\Facades\Storage;
use App\Models\RAF\RAFMtaLoanCron;
//use App\Models\RAF\RAFLoanDocuments;

class DatatablesController extends Controller {

	function __construct() {
		$this->fileuploader = new FileController();
		$this->helper = new HelperController();
		$this->leads = new LeadController();
	}

	/**
	 * Displays datatables front end view
	 *
	 * @return \Illuminate\View\View
	 */
	public function completedLead() {
		$subHome = 'Complete Leads List';
		$subHomeLink = '/account/leads?status=incompleted';
		//Breadcrumb Titles
		$breadcrumb = [
			'title' => 'Leads',
			'subTitle' => 'Incomplete Leads List',
			'home' => 'Leads',
			'homeLink' => '#',
			'subHome' => $subHome,
			'subHomeLink' => $subHomeLink,
			// 'subChildHome' => 'Vew leads',
			'menuColor' => '#fff',
			'menu' => 'completed-leads',
			'MenuClass' => 'active open',
			'SubMenuClass' => 'active',
		];
		return view('admin.leads.completed_leads', compact('breadcrumb'));
	}

	public function mmsLead() {
		$subHome = 'MMS Transfer Leads List';
		$subHomeLink = '/account/leads?status=incompleted';
		//Breadcrumb Titles
		$breadcrumb = [
			'title' => 'Leads',
			'subTitle' => 'MMS Transfer Leads List',
			'home' => 'Leads',
			'homeLink' => '#',
			'subHome' => $subHome,
			'subHomeLink' => $subHomeLink,
			// 'subChildHome' => 'Vew leads',
			'menuColor' => '#fff',
			'menu' => 'mms-leads',
			'MenuClass' => 'active open',
			'SubMenuClass' => 'active',
		];
		return view('admin.leads.mms_leads', compact('breadcrumb'));
	}

	public function bestToStandardLead() {
		$subHome = 'Best to Standard Transfer Leads List';
		$subHomeLink = '/account/leads?status=incompleted';
		//Breadcrumb Titles
		$breadcrumb = [
			'title' => 'Leads',
			'subTitle' => 'Best to Standard Transfer Leads List',
			'home' => 'Leads',
			'homeLink' => '#',
			'subHome' => $subHome,
			'subHomeLink' => $subHomeLink,
			// 'subChildHome' => 'Vew leads',
			'menuColor' => '#fff',
			'menu' => 'mms-leads',
			'MenuClass' => 'active open',
			'SubMenuClass' => 'active',
		];
		return view('admin.leads.besttostandard_leads', compact('breadcrumb'));
	}

	public function completedAffiliateLead() {
		$subHome = 'Complete Leads List';
		$subHomeLink = '/account/leads?status=incompleted';
		//Breadcrumb Titles
		$breadcrumb = [
			'title' => 'Leads',
			'subTitle' => 'Incomplete Leads List',
			'home' => 'Leads',
			'homeLink' => '#',
			'subHome' => $subHome,
			'subHomeLink' => $subHomeLink,
			// 'subChildHome' => 'Vew leads',
			'menuColor' => '#fff',
			'menu' => 'completed-leads',
			'MenuClass' => 'active open',
			'SubMenuClass' => 'active',
		];
		return view('affliate-admin.completed_leads', compact('breadcrumb'));
	}


	/**
	 * Process datatables ajax request.
	 *
	 * @return \Illuminate\Http\JsonResponse
	 */
	public static function completedLeadData(Request $request) {
		/* Normal products */
		$user = Auth::user();

		if ($user->role == 3) {

			$affiliate_data = DB::table('users')
				->join('affiliate_users', 'affiliate_users.user_id', '=', 'users.id')
				->join('affiliates', 'affiliates.id', '=', 'affiliate_users.affiliate_id')
				->where('users.id', '=', Auth::user()->id)
				->select('affiliates.uid')
				->first();

			$information = Information::where('policy_number_full', '<>', '')
				->where('affid', '=', $affiliate_data->uid)
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'desc');
			/*->get();    */

		} elseif ($user->role == 6) {
			//branch manager

			$branch_id = Auth::user()->branch->id;
			$broker_users = User::where('role', 3)
				->where('branch_id', $branch_id)
				->pluck('id')->toArray();

			$broker_users = array_merge($broker_users, [$user->id]);

			$information = Information::where('policy_number_full', '<>', '')
				->with('products', 'tempwebline.webline')
				->whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc');
			/*->get();    */

		} elseif (($user->role == 4) || ($user->role == 5)) {
			//Affliate admin or Ho user

			$affliate_admin_user = Auth::user();
			if ($user->role == 5) {
				$affiliate_id = $affliate_uid = $affliate_admin_user->uid;
				$branches = Branch::where('branch_affliate_admin_uid', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();
				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			} else {
				$affiliate_id = $affliate_admin_user->affliate_user->affiliate_id;

				$branches = Branch::where('branch_affliate_admin_id', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();

				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			}
			$information = Information::
				// where('accountnumber','<>', '')->
				with('products', 'tempwebline.webline')->
				whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc');
			/*->get();    */

		} else {
			$information = Information::
				where('policy_number_full', '<>', '')

			// ->where('product_id','<>', '28')
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'desc');
			/*->get();  */

		}

		return Datatables::of($information)
			->editColumn('product_name', function ($query_data) {
				if ($query_data->is_webline_product == 'Yes') {
					return $query_data->tempwebline->ProductName;
				} else {
					if (!empty($query_data->products)) {
						return $query_data->products->product_name;
					}
					return "";
				}
			})
			->editColumn('insurance_startdate', function ($query_data) {
				if ($query_data->insurance_startdate != '0000-00-00') {
					$insurance_startdate = date('d-m-Y', strtotime($query_data->insurance_startdate));
				} else {
					$insurance_startdate = '';
				}

				return $insurance_startdate;
			})->editColumn('lead_source_field', function ($query_data) {

			$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];
			
			if($query_data->lead_source_field=="Synaptic - Webline")
			{	
				
				$quote_information=Quotes::find($query_data->quote_id);

			//	dd($quote_information);
				$affiliate_details_frn=Affiliates::where('frn_number',$quote_information->frn_number)->first();
				if(empty($affiliate_details_frn))
				{
					$result = $query_data->lead_source_field;
					return $result;
				}
				$result = $query_data->lead_source_field."/".$affiliate_details_frn->broker_firm;
			//	$result = $quote_information->agent_first_name . " " . $quote_information->agent_last_name."/".$affiliate_details_frn->broker_firm;
				return $result;
			}

			if ($query_data->lead_source_field != '' || $query_data->lead_source_field != 'Web Site') {
				$result = $query_data->lead_source_field;
			} elseif (isset($query_data->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $query_data->affid) {
						$result = $value;
					}
				}
			} else {
				$result = $lead_source_field['bi-app'];
			}

			//
			return $result;
		})->editColumn('submitted_by', function ($query_data) {
			$result = "";
			if($query_data->lead_source_field=="Synaptic - Webline")
			{	
				
				$quote_information=Quotes::find($query_data->quote_id);

			//	dd($quote_information);
				$affiliate_details_frn=Affiliates::where('frn_number',$quote_information->frn_number)->first();
				if(empty($affiliate_details_frn))
				{
					$result = $quote_information->agent_first_name . " " . $quote_information->agent_last_name;
					return $result;
				}
				$result = $quote_information->agent_first_name . " " . $quote_information->agent_last_name."/".$affiliate_details_frn->broker_firm;
				return $result;
			}
			if (!empty($query_data->created_id_by) && ($query_data->created_id_by != 0)) {
				$created_user = User::find($query_data->created_id_by);
				if (!empty($created_user)) {
					if (!empty($created_user->branch)) {
						$branch_name = $created_user->branch->branch_name;
					} else {
						$branch_name = "-";
					}

					$result = $created_user->profile->full_name . "/" . $branch_name;
				}
			} 
			
			else {
				$result = "Default/Default";
			}

			if($query_data->product_id==17 && $query_data->policy_number==12901)
			{
				$result = "Thomas Hill/Best Risk Management & Financial Service Limited";
			}
			return $result;
		})
			->editColumn('payment', function ($query_data) {
				if ((Auth::user()->role == 1 || Auth::user()->role == 7 || Auth::user()->role == 8)) {
					$payment = "";

					if (empty($query_data->payment_date)) {
						$payment .= "<button data-toggle='modal'  data-target='#myModal' class='payment btn btn-primary' data-atr=" . $query_data->id . ">Payment</button>";
					} else {
						$payment .= "Payment made";
					}

					if (!empty($query_data->cancel_date)) {
						if (empty($query_data->refund_date)) {
							$payment .= "<button data-toggle='modal'  data-target='#myModal' class='refund btn btn-primary ' data-atr=" . $query_data->id . ">Refund</button>";
						} else {
							$payment .= "Refunded";
						}
					}
					return $payment;
				}
			})
			->editColumn('status', function ($query_data) {
				$user_role = Auth::user()->role;
				if (!empty($query_data->cancellation_approve_date)) {
					$current_date = Carbon::now();
					$cancelled_date = Carbon::parse($query_data->cancellation_approve_date);
					if ($current_date->lt($cancelled_date)) {
						$status = '<span class="text-red">To be cancelled on:' . $cancelled_date->format('Y-m-d') . '</span><br/>
                                <button class="btn-warning revert" data-atr=' . $query_data->id . '>Revert</button>';
					} else {
						$status = '<span class="text-red">Cancelled</span>';
					}

				} elseif ($query_data->status == 1) {
					$status = '<span class="text-green">Approved</span>';
				} elseif ($query_data->status == -1) {

					if ($user_role == 1 || $user_role == 7 || $user_role == 8) {
						$status = '<span class="text-blue">Submitted</span><br><span style="text-align:center"><a target="_blank" href="' . url('account/completed-leads', $query_data->id) . '" title="Approve" class="pendingBtn"><i class="fa fa-check-circle text-green" aria-hidden="true" ></i></a>&nbsp;&nbsp;&nbsp;&nbsp;<a target="_blank" href="' . url('account/completed-leads', $query_data->id) . '" title="Reject"  class="rejectBtng"><i class="fa fa-times-circle-o text-red" aria-hidden="true"></i></a></span>';
					} else {
						$status = '<span class="text-blue">Submitted</span>';
					}} else {
					$status = '<span class="text-red">Rejected &nbsp; <a href="javascript:void(0)" style="color: #000">
                                    <span title="' . $query_data->comments_for_rejection . '"><i class="fa fa-info-circle" aria-hidden="true"></i>
                                    </span>
                                    </a></span>';
				}
				return $status;
			})->editColumn('customer_status', function ($query_data) {
				$user_role = Auth::user()->role;

				

				if($query_data->status=="1" && empty($query_data->cancellation_approve_date))
				{
					$select_arrears="";
					$dd_cancelled="";
					$fnol="";
					$sold="";
					$sold_claim="";
					$sold_claim_arrears="";
					$sold_claim_complaint="";
					$sold_complaint="";


					if($query_data->customer_status=="Arrears")
					{
						$select_arrears="selected";
					}

					if($query_data->customer_status=="DD Cancelled")
					{
						$dd_cancelled="selected";
					}

					if($query_data->customer_status=="FNOL")
					{
						$fnol="selected";
					}

					if($query_data->customer_status=="Sold")
					{
						$sold="selected";
					}
					if($query_data->customer_status=="Sold-Claim-Arrears")
					{
						$sold_claim_arrears="selected";
					}

					if($query_data->customer_status=="Sold-Claim")
					{
						$sold_claim="selected";
					}
					if($query_data->customer_status=="Sold-Claim-Complaint")
					{
						$sold_claim_complaint="selected";
					}

					if($query_data->customer_status=="Sold-Complaint")
					{
						$sold_complaint="selected";
					}

					$customer_status = '<span class="text-blue">'.$query_data->customer_status.'</span>';

				/*	$customer_status="<select name='update_customer_status' id='update_customer_status_".$query_data->id."'>
					<option value='Arrears' $select_arrears>Arrears</option>
					<option value='DD Cancelled' $dd_cancelled>DD Cancelled</option>
					<option value='FNOL' $fnol>FNOL</option>
					<option value='Sold' $sold>Sold</option>
					<option value='Sold-Claim' $sold_claim>Sold-Claim</option>
					<option value='Sold-Claim-Arrears' $sold_claim_arrears>Sold-Claim-Arrears</option>
					<option value='Sold-Claim-Complaint'  $sold_claim_complaint>Sold-Claim-Complaint</option>
					<option value='Sold-Complaint' $sold_complaint>Sold-Complaint</option>
					</select>";*/


					$customer_status.="<br><br><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id."><span style='text-align:center'><button  class=' btn btn-primary updateStatusBtn ' data-atr=" . $query_data->id . ">Update Status</button></a>";

				}

				else
				{

					if($query_data->customer_status=="Submitted")
					{
						$customer_status = '<span style="color:#dd9d39 !important;">'.$query_data->customer_status.'</span>';
					}
					else
					{
						$customer_status = '<span  class="text-red">'.$query_data->customer_status.'</span>';
					}
					
				}
				
				return $customer_status;
			})->editColumn('actions', function ($query_data) {
			$user_role = Auth::user()->role;
			if (!empty($query_data->cancel_date)) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.BEST_ACCIDENT') || $query_data->product_id == Config::get('constant.BEST_ACCIDENT_PROFIT_TREE')) {
					$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';
				} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
					$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				} else {
					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
				}

				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
					$view .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';

					$view .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$view .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
				}

				$action_result .= $view;
				$action_result .= '</ul></div>';

			} elseif ($query_data->product_id == Config::get('constant.BEST_ACCIDENT') || $query_data->product_id == Config::get('constant.BEST_ACCIDENT_PROFIT_TREE')) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';

				$action_result .= $view;
				if ($query_data->status != 0) {
					$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead-bestaccident/" . $query_data->id) . '" target="_blank">Edit</a></li>';

					$schedule = '';

					$action_result .= $Edit . $schedule;
				}

				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {

				//	$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
				}

				$action_result .= '</ul></div>';
			} elseif (strtoupper($query_data->is_webline_product) != 'YES') {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_LONGTERM') || $query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_SHORTERM') || $query_data->product_id == Config::get('constant.APRIL_UK_SHORTERM_INCOME_PROTECTION')) {

					$action_result .= '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';

					if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {

					//	$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';

						//  $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";

						$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';
					}

					$action_result .= $action_result;
				} else {

					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
					$action_result .= $view;
					if (($user_role == 5)) {

						$action_result .= '<li><a href="' . URL::to("account/completed-leads/generate-application/" . $query_data->id) . '">Generate Application</a></li>';

						$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';
					}
					if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
						$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead/" . $query_data->id) . '" target="_blank">Edit</a></li>';
						$Application = '<li><a href="' . URL::to("account/completed-leads/generate-application/" . $query_data->id) . '">Generate Application</a></li>';

						$mta_activity = DB::table('activity_log')
							->where('subject_id', $query_data->id)
							->where('description', 'mta')
							->orderBy('id', 'desc')
							->first();
						$current_date = Carbon::now();
						$current_hours = Carbon::now()->format('H');
						$current_date1 = explode(" ", $current_date);
						$current_date1 = $current_date1[0];
						$approved_date = Carbon::parse($query_data->approved_date);
						$diff_in_days = $current_date->diffInDays($approved_date);
						$mta_eligibile = 1;
						if ($query_data->mta_date != "") {
							if ($mta_activity) {

								$updated_at = explode(" ", $mta_activity->updated_at);
								$updated_at = $updated_at[0];

								$current_date1 = Carbon::parse($current_date1);
								$mta_date = Carbon::parse($updated_at);
								$diff_in_days_mta = $current_date1->diffInDays($mta_date);

								if (($diff_in_days_mta == 1 && $current_hours < 8) || $diff_in_days_mta == 0) {
									$mta_eligibile = 0;
								}
							}

						}

						if ($diff_in_days >= 3 && $mta_eligibile == 1) {
							$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank">MTA</a></li>';
						} elseif ($query_data->approved_date == "" && $query_data->status == 1) {
							$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank">MTA</a></li>';
						} else
						//  
						{

							$MTA = '<li style="padding-left:20px;">MTA</li>';
						//	$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank">MTA</a></li>';
						}

						$Renew = '<li><a href="' . URL::to("account/completed-leads/renew-completed-lead/" . $query_data->id) . '" target="_blank">Renew</a></li>';
						$Reject = '';
						/*if ($query_data->status == 1) {
							$Reject = '<li ><a href="#" class=" text text-red rejectBtn" data-id="' . $query_data->id . '">Reject</a></li>';
						}*/
						// polacy transfer from best income insurance to simple income insurance adding button -- bhaskar (06-02-2018)
						$transfer = '';
						if ($query_data->product_id == 1) {
							$transfer = '<li><a href="' . URL::to("/account/completed-leads/polacy-transfer-bestincome-to-simple/" . $query_data->id) . '" target="_blank">Policy Transfer</a></li>';
						}
						$action_result .= $Edit . $Application . $MTA . $Renew . $Reject . $transfer;
						$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';
					}
				}

				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
					$current_date = Carbon::now();
					$approved_date = Carbon::parse($query_data->approved_date);
					$diff_in_days = $current_date->diffInDays($approved_date);

					if ($diff_in_days >= 3) {
						// $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";

						//$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					} elseif ($query_data->approved_date == "" && $query_data->status == 1) {
						//  $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";

						//$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					} else {
						// $action_result.="<li style='padding-left:20px;'>Cancel Policy</li>";
						// $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";
						//$action_result .= '<li>Cancel Policy</li>';
					}

					$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
					if ($query_data->status == 1 && $query_data->product_id=="29") {
					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
					}

					if ($query_data->status == 1 && $query_data->product_id=="34") {
						$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
						}

						if ($query_data->status == 1 && $query_data->product_id=="35") {
							$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
							}

					if ($query_data->status == 1 && $query_data->product_id=="36") {
								$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
					}
				}

				$action_result .= '</ul></div>';

			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$action_result = '<div class="btn-group">
    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
    <span class="caret"></span>
    <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				$action_result .= $view;
				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
				//	$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
					$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';
				}
				$action_result .= '</ul></div>';
			} else {
				$action_result = '==';
			}
			return $action_result;
		})
			->make(true);

	}


	/**
	 * Process datatables ajax request.
	 *
	 * @return \Illuminate\Http\JsonResponse
	 */
	public static function completedLeadDataOld(Request $request) {
		/* Normal products */
		$user = Auth::user();

		if ($user->role == 3) {

			$affiliate_data = DB::table('users')
				->join('affiliate_users', 'affiliate_users.user_id', '=', 'users.id')
				->join('affiliates', 'affiliates.id', '=', 'affiliate_users.affiliate_id')
				->where('users.id', '=', Auth::user()->id)
				->select('affiliates.uid')
				->first();

			$information = Information::where('accountnumber', '<>', '')
				->where('affid', '=', $affiliate_data->uid)
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'desc');
			/*->get();    */

		} elseif ($user->role == 6) {
			//branch manager

			$branch_id = Auth::user()->branch->id;
			$broker_users = User::where('role', 3)
				->where('branch_id', $branch_id)
				->pluck('id')->toArray();

			$broker_users = array_merge($broker_users, [$user->id]);

			$information = Information::where('accountnumber', '<>', '')
				->with('products', 'tempwebline.webline')
				->whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc');
			/*->get();    */

		} elseif (($user->role == 4) || ($user->role == 5)) {
			//Affliate admin or Ho user

			$affliate_admin_user = Auth::user();
			if ($user->role == 5) {
				$affiliate_id = $affliate_uid = $affliate_admin_user->uid;
				$branches = Branch::where('branch_affliate_admin_uid', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();
				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			} else {
				$affiliate_id = $affliate_admin_user->affliate_user->affiliate_id;

				$branches = Branch::where('branch_affliate_admin_id', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();

				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			}
			$information = Information::
				// where('accountnumber','<>', '')->
				with('products', 'tempwebline.webline')->
				whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc');
			/*->get();    */

		} else {
			$information = Information::
				where('accountnumber', '<>', '')

			// ->where('product_id','<>', '28')
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'desc');
			/*->get();  */

		}

		return Datatables::of($information)
			->editColumn('product_name', function ($query_data) {
				if ($query_data->is_webline_product == 'Yes') {
					return $query_data->tempwebline->ProductName;
				} else {
					if (!empty($query_data->products)) {
						return $query_data->products->product_name;
					}
					return "";
				}
			})
			->editColumn('insurance_startdate', function ($query_data) {
				if ($query_data->insurance_startdate != '0000-00-00') {
					$insurance_startdate = date('d-m-Y', strtotime($query_data->insurance_startdate));
				} else {
					$insurance_startdate = '';
				}

				return $insurance_startdate;
			})->editColumn('lead_source_field', function ($query_data) {

			$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];

			if ($query_data->lead_source_field != '' || $query_data->lead_source_field != 'Web Site') {
				$result = $query_data->lead_source_field;
			} elseif (isset($query_data->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $query_data->affid) {
						$result = $value;
					}
				}
			} else {
				$result = $lead_source_field['bi-app'];
			}

			//
			return $result;
		})->editColumn('submitted_by', function ($query_data) {
			$result = "";
			if (!empty($query_data->created_id_by) && ($query_data->created_id_by != 0)) {
				$created_user = User::find($query_data->created_id_by);
				if (!empty($created_user)) {
					if (!empty($created_user->branch)) {
						$branch_name = $created_user->branch->branch_name;
					} else {
						$branch_name = "-";
					}

					$result = $created_user->profile->full_name . "/" . $branch_name;
				}
			} else {
				$result = "Default/Default";
			}
			return $result;
		})
			->editColumn('payment', function ($query_data) {
				if ((Auth::user()->role == 1 || Auth::user()->role == 7 || Auth::user()->role == 8)) {
					$payment = "";

					if (empty($query_data->payment_date)) {
						$payment .= "<button data-toggle='modal'  data-target='#myModal' class='payment btn btn-primary' data-atr=" . $query_data->id . ">Payment</button>";
					} else {
						$payment .= "Payment made";
					}

					if (!empty($query_data->cancel_date)) {
						if (empty($query_data->refund_date)) {
							$payment .= "<button data-toggle='modal'  data-target='#myModal' class='refund btn btn-primary ' data-atr=" . $query_data->id . ">Refund</button>";
						} else {
							$payment .= "Refunded";
						}
					}
					return $payment;
				}
			})
			->editColumn('status', function ($query_data) {
				$user_role = Auth::user()->role;
				if (!empty($query_data->cancellation_approve_date)) {
					$current_date = Carbon::now();
					$cancelled_date = Carbon::parse($query_data->cancellation_approve_date);
					if ($current_date->lt($cancelled_date)) {
						$status = '<span class="text-red">To be cancelled on:' . $cancelled_date->format('Y-m-d') . '</span><br/>
                                <button class="btn-warning revert" data-atr=' . $query_data->id . '>Revert</button>';
					} else {
						$status = '<span class="text-red">Cancelled</span>';
					}

				} elseif ($query_data->status == 1) {
					$status = '<span class="text-green">Approved</span>';
				} elseif ($query_data->status == -1) {

					if ($user_role == 1 || $user_role == 7 || $user_role == 8) {
						$status = '<span class="text-blue">Submitted</span><br><span style="text-align:center"><a target="_blank" href="' . url('account/completed-leads', $query_data->id) . '" title="Approve" class="pendingBtn"><i class="fa fa-check-circle text-green" aria-hidden="true" ></i></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" title="Reject" data-id="' . $query_data->id . '" class="rejectBtn"><i class="fa fa-times-circle-o text-red" aria-hidden="true"></i></a></span>';
					} else {
						$status = '<span class="text-blue">Submitted</span>';
					}} else {
					$status = '<span class="text-red">Rejected &nbsp; <a href="javascript:void(0)" style="color: #000">
                                    <span title="' . $query_data->comments_for_rejection . '"><i class="fa fa-info-circle" aria-hidden="true"></i>
                                    </span>
                                    </a></span>';
				}
				return $status;
			})->editColumn('customer_status', function ($query_data) {
				$user_role = Auth::user()->role;

				

				if($query_data->status=="1" && empty($query_data->cancellation_approve_date))
				{
					$select_arrears="";
					$dd_cancelled="";
					$fnol="";
					$sold="";
					$sold_claim="";
					$sold_claim_arrears="";
					$sold_claim_complaint="";
					$sold_complaint="";


					if($query_data->customer_status=="Arrears")
					{
						$select_arrears="selected";
					}

					if($query_data->customer_status=="DD Cancelled")
					{
						$dd_cancelled="selected";
					}

					if($query_data->customer_status=="FNOL")
					{
						$fnol="selected";
					}

					if($query_data->customer_status=="Sold")
					{
						$sold="selected";
					}
					if($query_data->customer_status=="Sold-Claim-Arrears")
					{
						$sold_claim_arrears="selected";
					}

					if($query_data->customer_status=="Sold-Claim")
					{
						$sold_claim="selected";
					}
					if($query_data->customer_status=="Sold-Claim-Complaint")
					{
						$sold_claim_complaint="selected";
					}

					if($query_data->customer_status=="Sold-Complaint")
					{
						$sold_complaint="selected";
					}

					$customer_status="<select name='update_customer_status' id='update_customer_status_".$query_data->id."'>
					<option value='Arrears' $select_arrears>Arrears</option>
					<option value='DD Cancelled' $dd_cancelled>DD Cancelled</option>
					<option value='FNOL' $fnol>FNOL</option>
					<option value='Sold' $sold>Sold</option>
					<option value='Sold-Claim' $sold_claim>Sold-Claim</option>
					<option value='Sold-Claim-Arrears' $sold_claim_arrears>Sold-Claim-Arrears</option>
					<option value='Sold-Claim-Complaint'  $sold_claim_complaint>Sold-Claim-Complaint</option>
					<option value='Sold-Complaint' $sold_complaint>Sold-Complaint</option>
					</select>";


					$customer_status.="<br><br><span style='text-align:center'><button  class='updateStatus btn btn-primary ' data-atr=" . $query_data->id . ">Update Status</button>";

				}

				else
				{
					$customer_status = '<span class="text-red">'.$query_data->customer_status.'</span>';
				}
				
				return $customer_status;
			})->editColumn('actions', function ($query_data) {
			$user_role = Auth::user()->role;
			if (!empty($query_data->cancel_date)) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.BEST_ACCIDENT') || $query_data->product_id == Config::get('constant.BEST_ACCIDENT_PROFIT_TREE')) {
					$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';
				} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
					$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				} else {
					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
				}

				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
					$view .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';

					$view .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$view .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
				}

				$action_result .= $view;
				$action_result .= '</ul></div>';

			} elseif ($query_data->product_id == Config::get('constant.BEST_ACCIDENT') || $query_data->product_id == Config::get('constant.BEST_ACCIDENT_PROFIT_TREE')) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';

				$action_result .= $view;
				if ($query_data->status != 0) {
					$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead-bestaccident/" . $query_data->id) . '" target="_blank">Edit</a></li>';

					$schedule = '';

					$action_result .= $Edit . $schedule;
				}

				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {

					$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
				}

				$action_result .= '</ul></div>';
			} elseif (strtoupper($query_data->is_webline_product) == 'NO') {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_LONGTERM') || $query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_SHORTERM') || $query_data->product_id == Config::get('constant.APRIL_UK_SHORTERM_INCOME_PROTECTION')) {

					$action_result .= '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';

					if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {

						$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';

						//  $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";

						$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';
					}

					$action_result .= $action_result;
				} else {

					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
					$action_result .= $view;
					if (($user_role == 5)) {

						$action_result .= '<li><a href="' . URL::to("account/completed-leads/generate-application/" . $query_data->id) . '">Generate Application</a></li>';

						$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';
					}
					if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
						$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead/" . $query_data->id) . '" target="_blank">Edit</a></li>';
						$Application = '<li><a href="' . URL::to("account/completed-leads/generate-application/" . $query_data->id) . '">Generate Application</a></li>';

						$mta_activity = DB::table('activity_log')
							->where('subject_id', $query_data->id)
							->where('description', 'mta')
							->orderBy('id', 'desc')
							->first();
						$current_date = Carbon::now();
						$current_hours = Carbon::now()->format('H');
						$current_date1 = explode(" ", $current_date);
						$current_date1 = $current_date1[0];
						$approved_date = Carbon::parse($query_data->approved_date);
						$diff_in_days = $current_date->diffInDays($approved_date);
						$mta_eligibile = 1;
						if ($query_data->mta_date != "") {
							if ($mta_activity) {

								$updated_at = explode(" ", $mta_activity->updated_at);
								$updated_at = $updated_at[0];

								$current_date1 = Carbon::parse($current_date1);
								$mta_date = Carbon::parse($updated_at);
								$diff_in_days_mta = $current_date1->diffInDays($mta_date);

								if (($diff_in_days_mta == 1 && $current_hours < 8) || $diff_in_days_mta == 0) {
									$mta_eligibile = 0;
								}
							}

						}

						if ($diff_in_days >= 3 && $mta_eligibile == 1) {
							$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank">MTA</a></li>';
						} elseif ($query_data->approved_date == "" && $query_data->status == 1) {
							$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank">MTA</a></li>';
						} else
						//  
						{

							$MTA = '<li style="padding-left:20px;">MTA</li>';
						//	$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank">MTA</a></li>';
						}

						$Renew = '<li><a href="' . URL::to("account/completed-leads/renew-completed-lead/" . $query_data->id) . '" target="_blank">Renew</a></li>';
						$Reject = '';
						if ($query_data->status == 1) {
							$Reject = '<li ><a href="#" class=" text text-red rejectBtn" data-id="' . $query_data->id . '">Reject</a></li>';
						}
						// polacy transfer from best income insurance to simple income insurance adding button -- bhaskar (06-02-2018)
						$transfer = '';
						if ($query_data->product_id == 1) {
							$transfer = '<li><a href="' . URL::to("/account/completed-leads/polacy-transfer-bestincome-to-simple/" . $query_data->id) . '" target="_blank">Policy Transfer</a></li>';
						}
						$action_result .= $Edit . $Application . $MTA . $Renew . $Reject . $transfer;
						$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';
					}
				}

				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
					$current_date = Carbon::now();
					$approved_date = Carbon::parse($query_data->approved_date);
					$diff_in_days = $current_date->diffInDays($approved_date);

					if ($diff_in_days >= 3) {
						// $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";

						$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					} elseif ($query_data->approved_date == "" && $query_data->status == 1) {
						//  $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";

						$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					} else {
						// $action_result.="<li style='padding-left:20px;'>Cancel Policy</li>";
						// $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Cancel Policy</li>";
						$action_result .= '<li>Cancel Policy</li>';
					}

					$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
					if ($query_data->status == 1 && $query_data->product_id=="29") {
					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
					}

					if ($query_data->status == 1 && $query_data->product_id=="34") {
						$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
						}
					
					if ($query_data->status == 1 && $query_data->product_id=="35") {
							$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
							}

					if ($query_data->status == 1 && $query_data->product_id=="36") {
								$action_result .= '<li><a target="_blank" href="' . URL::to("/account/fnol-claim", $query_data->id) . '">FNOL </a></li>';
								}
				}

				$action_result .= '</ul></div>';

			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$action_result = '<div class="btn-group">
    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
    <span class="caret"></span>
    <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				$action_result .= $view;
				if (($user_role == 1 || $user_role == 7 || $user_role == 8)) {
					$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versions </a></li>';

					$action_result .= '<li><a target="_blank" href="' . URL::to("/account/lead-log", $query_data->id) . '">Activity log </a></li>';
					$action_result .= '<li><a href="' . URL::to("/account/notes/" . $query_data->id) . '" target="_blank">Notes</a></li>';
				}
				$action_result .= '</ul></div>';
			} else {
				$action_result = '';
			}
			return $action_result;
		})
			->make(true);

	}

	/**
	 * Process datatables ajax request.
	 *
	 * @return \Illuminate\Http\JsonResponse
	 */
	public static function mmsLeadData(Request $request) {
		/* Normal products */
		$user = Auth::user();

		if ($user->role == 3) {

			$affiliate_data = DB::table('users')
				->join('affiliate_users', 'affiliate_users.user_id', '=', 'users.id')
				->join('affiliates', 'affiliates.id', '=', 'affiliate_users.affiliate_id')
				->where('users.id', '=', Auth::user()->id)
				->select('affiliates.uid')
				->first();

			$schemeids = "['RBS128','RBS129','RBS130']";
			$information = Information::where('accountnumber', '<>', '')
				->whereIn('mms_scheme', ['RBS128', 'RBS129', 'RBS130'])
				->where('affid', '=', $affiliate_data->uid)
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'desc')
				->get();

		} elseif ($user->role == 6) {
			//branch manager

			$branch_id = Auth::user()->branch->id;
			$broker_users = User::where('role', 3)
				->where('branch_id', $branch_id)
				->pluck('id')->toArray();

			$broker_users = array_merge($broker_users, [$user->id]);

			$information = Information::where('accountnumber', '<>', '')
				->whereIn('mms_scheme', ['RBS128', 'RBS129', 'RBS130'])
				->with('products', 'tempwebline.webline')
				->whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc')
				->get();

		} elseif (($user->role == 4) || ($user->role == 5)) {
			//Affliate admin or Ho user

			$affliate_admin_user = Auth::user();
			if ($user->role == 5) {
				$affiliate_id = $affliate_uid = $affliate_admin_user->uid;
				$branches = Branch::where('branch_affliate_admin_uid', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();
				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			} else {
				$affiliate_id = $affliate_admin_user->affliate_user->affiliate_id;

				$branches = Branch::where('branch_affliate_admin_id', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();

				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			}

			$information = Information::
				// where('accountnumber','<>', '')->
				with('products', 'tempwebline.webline')->
				whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc')
				->get();

		} else {

			$information = Information::
				where('accountnumber', '<>', '')->
				whereIn('mms_scheme', ['RBS128', 'RBS129', 'RBS130'])
				->with('products', 'tempwebline.webline')->
				limit(3000)->
				orderBy('date_added', 'desc')->
				get();

		}

		return Datatables::of($information)
			->editColumn('product_name', function ($query_data) {
				if ($query_data->is_webline_product == 'Yes') {
					return $query_data->tempwebline->ProductName;
				} else {
					if (!empty($query_data->products)) {
						return $query_data->products->product_name;
					}
					return "";
				}
			})
		// ->setTotalRecords($information_count)
			->editColumn('date_added1', function ($query_data) {
				return $query_data->date_added;
			})
			->editColumn('insurance_startdate', function ($query_data) {
				if ($query_data->insurance_startdate != '0000-00-00') {
					$insurance_startdate = date('d-m-Y', strtotime($query_data->insurance_startdate));
				} else {
					$insurance_startdate = '';
				}

				return $insurance_startdate;
			}) /*->editColumn('policy_number', function ($query_data)
	                    {
	                        if(strtoupper($query_data->is_webline_product) == 'NO'){
	                            if(!empty($query_data->products)){
	                                  $policy_number = $query_data->products->policy_prefix.$query_data->policy_number;
	                                }else{
	                                    $policy_number = "";
	                                }

	                        }elseif (strtoupper($query_data->is_webline_product) == 'YES') {
	                            $policy_number = $query_data->policy_number;
	                        }else {
	                            $policy_number = ' ';
	                        }
	                            return $policy_number;
*//*->editColumn('full_name', function ($query_data) {
		return $query_data->fname." ".$query_data->lname;

		})*/	->editColumn('lead_source_field', function ($query_data) {

				$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];

				if ($query_data->lead_source_field != '' || $query_data->lead_source_field != 'Web Site') {
					$result = $query_data->lead_source_field;
				} elseif (isset($query_data->affid)) {
					foreach ($lead_source_field as $key => $value) {
						if ($key == $query_data->affid) {
							$result = $value;
						}
					}
				} else {
					$result = $lead_source_field['bi-app'];
				}

				//
				return $result;
			})->editColumn('submitted_by', function ($query_data) {
			$result = "";
			if (!empty($query_data->created_id_by) && ($query_data->created_id_by != 0)) {
				$created_user = User::find($query_data->created_id_by);
				if (!empty($created_user)) {
					if (!empty($created_user->branch)) {
						$branch_name = $created_user->branch->branch_name;
					} else {
						$branch_name = "-";
					}

					$result = $created_user->profile->full_name . "/" . $branch_name;
				}
			} else {
				$result = "Default/Default";
			}
			return $result;
		})
			->editColumn('rates', function ($query_data) {
				if (strtoupper($query_data->is_webline_product) == 'NO') {
					$premium = 'Reviewable';
				} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
					$premium = $query_data->rates;
				} else {
					$premium = ' ';
				}
				return $premium;
			})->editColumn('status', function ($query_data) {
			if (!empty($query_data->cancellation_approve_date)) {
				$current_date = Carbon::now();
				$cancelled_date = Carbon::parse($query_data->cancellation_approve_date);
				if ($current_date->lt($cancelled_date)) {
					$status = '<span class="text-red">To be cancelled on:' . $cancelled_date->format('Y-m-d') . '</span><br/>
                                <button class="btn-warning revert" data-atr=' . $query_data->id . '>Revert</button>';
				} else {
					$status = '<span class="text-red">Cancelled</span>';
				}

			} elseif ($query_data->status == 1) {
				$status = '<span class="text-green">Approved</span>';
			} elseif ($query_data->status == -1) {
				$status = '<span class="text-blue">Submitted</span><br><span style="text-align:center"><a href="#" title="Approve" data-id="' . $query_data->id . '" data-target="#pendingBtn" data-toggle="modal" class="pendingBtn"><i class="fa fa-check-circle text-green" aria-hidden="true" ></i></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" title="Reject" data-id="' . $query_data->id . '" class="rejectBtn"><i class="fa fa-times-circle-o text-red" aria-hidden="true"></i></a></span>';
			} else {
				$status = '<span class="text-red">Rejected &nbsp; <a href="javascript:void(0)" style="color: #000">
                                    <span title="' . $query_data->comments_for_rejection . '"><i class="fa fa-info-circle" aria-hidden="true"></i>
                                    </span>
                                    </a></span>';
			}
			return $status;
		})->editColumn('payment', function ($query_data) {
			if ($query_data->status != 0 && (Auth::user()->role == 1 || Auth::user()->role == 7 || Auth::user()->role == 8)) {
				$payment = "<ul>";

				if (empty($query_data->payment_date)) {
					$payment .= "<li><a data-toggle='modal'  data-target='#myModal' class='payment' data-atr=" . $query_data->id . ">Payment</a></li>";
				}

				if (empty($query_data->refund_date) && !empty($query_data->cancel_date)) {
					$payment .= "<li><a data-toggle='modal'  data-target='#myModal' class='refund' data-atr=" . $query_data->id . ">Refund</a></li>";
				}
				return $payment . "</ul>";
			} else {
				return "";
			}
		})->editColumn('actions', function ($query_data) {
			if (!empty($query_data->cancel_date)) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.BEST_ACCIDENT')) {
					$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';
				} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
					$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				} else {
					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
				}

				$action_result .= $view;
				$action_result .= '<li><a target="_blank" href="' . URL::to("account/lead-log", $query_data->id) . '">Activity Log </a><a ></a></li>';
				$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versiosn </a><a ></a></li>';
				$action_result .= '</ul></div>';

			} elseif ($query_data->product_id == Config::get('constant.BEST_ACCIDENT')) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';
				$action_result .= $view;
				if ($query_data->status != 0) {
					$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead-bestaccident/" . $query_data->id) . '" target="_blank">Edit</a></li>';

					// $schedule = '<li><a href="#" data-id="'.$query_data->id.'" class="gnrtSceduleBtn">Generate schedule </a><a ></a></li>';
					$schedule = '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versiosn </a><a ></a></li>';

					$schedule .= '<li><a target="_blank" href="' . URL::to("account/lead-log", $query_data->id) . '">Activity Log </a><a ></a></li>';

					$action_result .= $Edit . $schedule;
				}

				$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
				$action_result .= '</ul></div>';
			} elseif (strtoupper($query_data->is_webline_product) == 'NO') {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_LONGTERM') || $query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_SHORTERM') || $query_data->product_id == Config::get('constant.APRIL_UK_SHORTERM_INCOME_PROTECTION')) {

					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
					$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					$action_result .= $view;
				} else {

					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
					$action_result .= $view;
					if ($query_data->status != 0 && (Auth::user()->role == 1 || Auth::user()->role == 7 || Auth::user()->role == 8)) {

						$scedule = '<li><a href="#" data-id="' . $query_data->id . '" class="gnrtSceduleBtn">Generate schedule 1 </a><a ></a></li>';

						$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead/" . $query_data->id) . '" target="_blank">Edit</a></li>';
						$Application = '<li><a href="' . URL::to("account/completed-leads/generate-application/" . $query_data->id) . '">Generate Application</a></li>';
						$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank" >MTA</a></li>';
						$Renew = '<li><a href="' . URL::to("account/completed-leads/renew-completed-lead/" . $query_data->id) . '" target="_blank">Renew</a></li>';
						$Reject = '';
						if ($query_data->status == 1) {
							$Reject = '<li ><a href="#" class=" text text-red rejectBtn" data-id="' . $query_data->id . '">Reject</a></li>';
						}
						// polacy transfer from best income insurance to simple income insurance adding button -- bhaskar (06-02-2018)
						$transfer = '';
						if ($query_data->product_id == 1) {
							$transfer = '<li><a href="' . URL::to("/account/completed-leads/polacy-transfer-bestincome-to-simple/" . $query_data->id) . '" target="_blank">Policy Transfer</a></li>';
						}
						$action_result .= $scedule . $Edit . $Application . $MTA . $Renew . $Reject . $transfer;
					}
				}
				$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
				$action_result .= '<li><a target="_blank" href="' . URL::to("account/lead-log", $query_data->id) . '">Activity Log </a><a ></a></li>';
				$action_result .= '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versiosn </a><a ></a></li>';

				$action_result .= '</ul></div>';

			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				$action_result .= $view;
				$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
				$action_result .= '</ul></div>';
			} else {
				$action_result = '';
			}
			return $action_result;
		})
			->make(true);

	}

	/**
	 * Process datatables ajax request.
	 *
	 * @return \Illuminate\Http\JsonResponse
	 */
	public static function besttostandardLeadData(Request $request) {
		/* Normal products */
		$user = Auth::user();

		if ($user->role == 3) {

			$affiliate_data = DB::table('users')
				->join('affiliate_users', 'affiliate_users.user_id', '=', 'users.id')
				->join('affiliates', 'affiliates.id', '=', 'affiliate_users.affiliate_id')
				->where('users.id', '=', Auth::user()->id)
				->select('affiliates.uid')
				->first();

			$information = Information::where('accountnumber', '<>', '')
				->where('product_id', '=', '28')
				->where('affid', '=', $affiliate_data->uid)
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'desc')
				->get();

		} elseif ($user->role == 6) {
			//branch manager

			$branch_id = Auth::user()->branch->id;
			$broker_users = User::where('role', 3)
				->where('branch_id', $branch_id)
				->pluck('id')->toArray();

			$broker_users = array_merge($broker_users, [$user->id]);

			$information = Information::where('accountnumber', '<>', '')
				->where('product_id', '=', '28')
				->with('products', 'tempwebline.webline')
				->whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc')
				->get();

		} elseif (($user->role == 4) || ($user->role == 5)) {
			//Affliate admin or Ho user

			$affliate_admin_user = Auth::user();
			if ($user->role == 5) {
				$affiliate_id = $affliate_uid = $affliate_admin_user->uid;
				$branches = Branch::where('branch_affliate_admin_uid', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();
				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			} else {
				$affiliate_id = $affliate_admin_user->affliate_user->affiliate_id;

				$branches = Branch::where('branch_affliate_admin_id', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();

				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			}

			$information = Information::
				// where('accountnumber','<>', '')->
				with('products', 'tempwebline.webline')->
				whereIn('information.created_id_by', $broker_users)
				->orderBy('date_added', 'desc')
				->get();

		} else {

			$information = Information::
				where('accountnumber', '<>', '')->
				where('product_id', '=', '28')->
				with('products', 'tempwebline.webline')->
				limit(1000)->
				orderBy('date_added', 'desc')->
				get();

		}

		return Datatables::of($information)
			->editColumn('product_name', function ($query_data) {
				if ($query_data->is_webline_product == 'Yes') {
					return $query_data->tempwebline->ProductName;
				} else {
					if (!empty($query_data->products)) {
						return $query_data->products->product_name;
					}
					return "";
				}
			})
		// ->setTotalRecords($information_count)
			->editColumn('date_added1', function ($query_data) {
				return $query_data->date_added;
			})
			->editColumn('insurance_startdate', function ($query_data) {
				if ($query_data->insurance_startdate != '0000-00-00') {
					$insurance_startdate = date('d-m-Y', strtotime($query_data->insurance_startdate));
				} else {
					$insurance_startdate = '';
				}

				return $insurance_startdate;
			}) /*->editColumn('policy_number', function ($query_data)
	                    {
	                        if(strtoupper($query_data->is_webline_product) == 'NO'){
	                            if(!empty($query_data->products)){
	                                  $policy_number = $query_data->products->policy_prefix.$query_data->policy_number;
	                                }else{
	                                    $policy_number = "";
	                                }

	                        }elseif (strtoupper($query_data->is_webline_product) == 'YES') {
	                            $policy_number = $query_data->policy_number;
	                        }else {
	                            $policy_number = ' ';
	                        }
	                            return $policy_number;
*//*->editColumn('full_name', function ($query_data) {
		return $query_data->fname." ".$query_data->lname;

		})*/	->editColumn('lead_source_field', function ($query_data) {

				$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];

				if ($query_data->lead_source_field != '' || $query_data->lead_source_field != 'Web Site') {
					$result = $query_data->lead_source_field;
				} elseif (isset($query_data->affid)) {
					foreach ($lead_source_field as $key => $value) {
						if ($key == $query_data->affid) {
							$result = $value;
						}
					}
				} else {
					$result = $lead_source_field['bi-app'];
				}

				//
				return $result;
			})->editColumn('submitted_by', function ($query_data) {
			$result = "";
			if (!empty($query_data->created_id_by) && ($query_data->created_id_by != 0)) {
				$created_user = User::find($query_data->created_id_by);
				if (!empty($created_user)) {
					if (!empty($created_user->branch)) {
						$branch_name = $created_user->branch->branch_name;
					} else {
						$branch_name = "-";
					}

					$result = $created_user->profile->full_name . "/" . $branch_name;
				}
			} else {
				$result = "Default/Default";
			}
			return $result;
		})
			->editColumn('rates', function ($query_data) {
				if (strtoupper($query_data->is_webline_product) == 'NO') {
					$premium = 'Reviewable';
				} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
					$premium = $query_data->rates;
				} else {
					$premium = ' ';
				}
				return $premium;
			})->editColumn('status', function ($query_data) {
			if (!empty($query_data->cancellation_approve_date)) {
				$current_date = Carbon::now();
				$cancelled_date = Carbon::parse($query_data->cancellation_approve_date);
				if ($current_date->lt($cancelled_date)) {
					$status = '<span class="text-red">To be cancelled on:' . $cancelled_date->format('Y-m-d') . '</span><br/>
                                <button class="btn-warning revert" data-atr=' . $query_data->id . '>Revert</button>';
				} else {
					$status = '<span class="text-red">Cancelled</span>';
				}

			} elseif ($query_data->status == 1) {
				$status = '<span class="text-green">Approved</span>';
			} elseif ($query_data->status == -1) {
				$status = '<span class="text-blue">Submitted</span><br><span style="text-align:center"><a href="#" title="Approve" data-id="' . $query_data->id . '" data-target="#pendingBtn" data-toggle="modal" class="pendingBtn"><i class="fa fa-check-circle text-green" aria-hidden="true" ></i></a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="#" title="Reject" data-id="' . $query_data->id . '" class="rejectBtn"><i class="fa fa-times-circle-o text-red" aria-hidden="true"></i></a></span>';
			} else {
				$status = '<span class="text-red">Rejected &nbsp; <a href="javascript:void(0)" style="color: #000">
                                    <span title="' . $query_data->comments_for_rejection . '"><i class="fa fa-info-circle" aria-hidden="true"></i>
                                    </span>
                                    </a></span>';
			}
			return $status;
		})->editColumn('payment', function ($query_data) {
			if ($query_data->status != 0 && (Auth::user()->role == 1 || Auth::user()->role == 7 || Auth::user()->role == 8)) {
				$payment = "<ul>";

				if (empty($query_data->payment_date)) {
					$payment .= "<li><a data-toggle='modal'  data-target='#myModal' class='payment' data-atr=" . $query_data->id . ">Payment</a></li>";
				}

				if (empty($query_data->refund_date) && !empty($query_data->cancel_date)) {
					$payment .= "<li><a data-toggle='modal'  data-target='#myModal' class='refund' data-atr=" . $query_data->id . ">Refund</a></li>";
				}
				return $payment . "</ul>";
			} else {
				return "";
			}
		})->editColumn('actions', function ($query_data) {
			if (!empty($query_data->cancel_date)) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.BEST_ACCIDENT')) {
					$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';
				} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
					$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				} else {
					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
				}

				$action_result .= $view;
				$action_result .= '</ul></div>';

			} elseif ($query_data->product_id == Config::get('constant.BEST_ACCIDENT')) {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/bestaccident-lead-info/' . $query_data->id) . '" target="_blank">View</a></li>';
				$action_result .= $view;
				if ($query_data->status != 0) {
					$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead-bestaccident/" . $query_data->id) . '" target="_blank">Edit</a></li>';

					// $schedule = '<li><a href="#" data-id="'.$query_data->id.'" class="gnrtSceduleBtn">Generate schedule </a><a ></a></li>';

					$schedule = '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versiosn </a><a ></a></li>';

					$schedule .= '<li><a target="_blank" href="' . URL::to("log-activity", $query_data->id) . '">Activity Log </a><a ></a></li>';

					$action_result .= $Edit . $schedule;
				}

				$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
				$action_result .= '</ul></div>';
			} elseif (strtoupper($query_data->is_webline_product) == 'NO') {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				if ($query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_LONGTERM') || $query_data->product_id == Config::get('constant.SHEPHERDS_FRIENDLY_SHORTERM') || $query_data->product_id == Config::get('constant.APRIL_UK_SHORTERM_INCOME_PROTECTION')) {

					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
					// $action_result.="<li><a data-toggle='modal'  data-target='#myModal' class='cancelled' data-atr=".$query_data->id.">Policy Cancel</li>";

					$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
					$action_result .= $view;
				} else {

					$view = '<li><a href="' . URL::to("/account/completed-leads/" . $query_data->id) . '" target="_blank">View</a></li>';
					$action_result .= $view;
					if ($query_data->status != 0 && (Auth::user()->role == 1 || Auth::user()->role == 7 || Auth::user()->role == 8)) {

						// $scedule = '<li><a href="#" data-id="'.$query_data->id.'" class="gnrtSceduleBtn">Generate schedule 1 </a><a ></a></li>';

						$schedule = '<li><a target="_blank" href="' . URL::to("version-details", $query_data->id) . '">Document Versiosn </a><a ></a></li>';

						$schedule .= '<li><a target="_blank" href="' . URL::to("log-activity", $query_data->id) . '">Activity Log </a><a ></a></li>';

						$Edit = '<li><a href="' . URL::to("/account/edit-completed-lead/" . $query_data->id) . '" target="_blank">Edit</a></li>';
						$Application = '<li><a href="' . URL::to("account/completed-leads/generate-application/" . $query_data->id) . '">Generate Application</a></li>';
						$MTA = '<li><a href="' . URL::to("account/completed-leads/mta-completed-lead/" . $query_data->id) . '" target="_blank" >MTA</a></li>';
						$Renew = '<li><a href="' . URL::to("account/completed-leads/renew-completed-lead/" . $query_data->id) . '" target="_blank">Renew</a></li>';
						$Reject = '';
						if ($query_data->status == 1) {
							$Reject = '<li ><a href="#" class=" text text-red rejectBtn" data-id="' . $query_data->id . '">Reject</a></li>';
						}
						// polacy transfer from best income insurance to simple income insurance adding button -- bhaskar (06-02-2018)
						$transfer = '';
						if ($query_data->product_id == 1) {
							$transfer = '<li><a href="' . URL::to("/account/completed-leads/polacy-transfer-bestincome-to-simple/" . $query_data->id) . '" target="_blank">Policy Transfer</a></li>';
						}
						$action_result .= $schedule . $Edit . $Application . $MTA . $Renew . $Reject . $transfer;
					}
				}
				$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
				$action_result .= '</ul></div>';

			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$action_result = '<div class="btn-group">
                                    <button data-toggle="dropdown" title="Actions" class="btn btn-primary dropdown-toggle" type="button" aria-expanded="false">Actions&nbsp;&nbsp;
                                      <span class="caret"></span>
                                      <span class="sr-only">Toggle Dropdown</span>
                                    </button>
                                    <ul role="menu" class="dropdown-menu actionsIndex" >';
				$view = '<li><a href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/completed') . '" target="_blank">View</a></li>';
				$action_result .= $view;
				$action_result .= '<li><a href="' . URL::to("cancelled/" . $query_data->id) . '" target="_blank">Cancel Policy</a></li>';
				$action_result .= '</ul></div>';
			} else {
				$action_result = '';
			}
			return $action_result;
		})
			->make(true);

	}

	/**
	 * Displays datatables front end view for incomplete leads
	 *
	 * @return \Illuminate\View\View
	 */
	public function incompleteLead() {
		$subHome = 'Incomplete Leads List';
		$subHomeLink = '/account/incomplete-leads';
		//Breadcrumb Titles
		$breadcrumb = [
			'title' => 'Leads',
			'subTitle' => 'Incomplete Leads List',
			'home' => 'Leads',
			'homeLink' => '#',
			'subHome' => $subHome,
			'subHomeLink' => $subHomeLink,
			// 'subChildHome' => 'Vew leads',
			'menuColor' => '#fff',
			'menu' => 'incompleted-leads',
			'MenuClass' => 'active open',
			'SubMenuClass' => 'active',
		];
		return view('admin.leads.incomplete_leads', compact('breadcrumb'));
	}

	/**
	 * Process datatables ajax request for incomplete leads
	 *
	 * @return \Illuminate\Http\JsonResponse
	 */

	public static function incompleteLeadData() {
		/* Normal products */
		$user = Auth::user();
		if ($user->role == 3) {
			$affliate_admin_user = $user;
			$affiliate_id = $affliate_admin_user->affliate_user->affiliate_id;
			$branches = Branch::where('branch_affliate_admin_uid', $affiliate_id)->pluck('id');
			$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();
			//including affliate admin
			$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);

			$information = Information::where('accountnumber', '')
				->whereIn('created_id_by', $broker_users)
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'asc');
			/*->get();*/

		} elseif ($user->role == 6) {
			//branch manager
			//branch manager

			$branch_id = $user->branch->id;
			$broker_users = User::where('role', 3)
				->where('branch_id', $branch_id)
				->pluck('id')->toArray();
			$broker_users = array_merge($broker_users, [$user->id]);

			$information = Information::where('accountnumber', '')
				->whereIn('created_id_by', $broker_users)
				->with('products', 'tempwebline.webline')
				->orderBy('date_added', 'asc');
			/*->get();*/

		} elseif (($user->role == 4) || ($user->role == 5)) {
			//Affliate admin or Ho user
			$affliate_admin_user = Auth::user();
			if ($user->role == 5) {
				$affiliate_id = $affliate_uid = $affliate_admin_user->uid;
				$branches = Branch::where('branch_affliate_admin_uid', $affiliate_id)->pluck('id');
				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();
				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			} else {
				$affiliate_id = $affliate_admin_user->affliate_user->affiliate_id;

				$branches = Branch::where('branch_affliate_admin_id', $affiliate_id)->pluck('id');

				$brokers_and_branch_admin_user_ids = User::whereIn('branch_id', $branches)->pluck('id')->toArray();

				//including affliate admin
				$broker_users = array_merge($brokers_and_branch_admin_user_ids, [$affliate_admin_user->id]);
			}

			$information = Information::where('policy_number_full', NULL)
				->whereIn('created_id_by', $broker_users)
				->with('products', 'tempwebline.webline')
				->orderBy('id', 'desc');
			/*->get();*/
		} else {

			$information = Information::where('policy_number_full',NULL)
			//   ->where('information.is_webline_product','Yes')
				->with('products', 'tempwebline.webline')
				->orderBy('id', 'desc');
			/*->get();*/
		}
		//
		return Datatables::of($information)
			->editColumn('product_name', function ($query_data) {
				if ($query_data->is_webline_product == 'Yes') {
					return $query_data->tempwebline->ProductName;
				} else {
					if (!empty($query_data->products)) {
						return $query_data->products->product_name;
					}
					return "";
				}
			})->editColumn('insurer', function ($query_data) {
			if ($query_data->is_webline_product == 'Yes') {
				if (!empty($query_data->tempwebline)) {
					if (!empty($query_data->tempwebline->webline)) {
						return $query_data->tempwebline->webline->insurer;
					} else {
						return "";
					}
				} else {
					return "";
				}
			} else {
				return $query_data->insurer;
			}
		})
			->editColumn('created_date', function ($query_data) {
				$application_date = date('d-m-Y H:i:s', strtotime($query_data->date_added));
				return $application_date;
			})->editColumn('insurance_startdate', function ($query_data) {
			if ($query_data->insurance_startdate != '0000-00-00') {
				$insurance_startdate = date('d-m-Y', strtotime($query_data->insurance_startdate));
			} else {
				$insurance_startdate = '';
			}

			return $insurance_startdate;
		})->editColumn('policy_number', function ($query_data) {
			if (strtoupper($query_data->is_webline_product) == 'NO') {
				$policy_number = "";
			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$policy_number = "";
			} else {
				$policy_number = ' ';
			}
			return $policy_number;
		})->editColumn('lead_source_field', function ($query_data) {

			$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];

			if ($query_data->lead_source_field != '' || $query_data->lead_source_field != 'Web Site') {
				$result = $query_data->lead_source_field;
			} elseif (isset($query_data->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $query_data->affid) {
						$result = $value;
					}
				}
			} else {
				$result = $lead_source_field['bi-app'];
			}

			//
			return $result;
		})->editColumn('submitted_by', function ($query_data) {
			$result = "";
			if (!empty($query_data->created_id_by) && ($query_data->created_id_by != 0)) {
				$created_user = User::find($query_data->created_id_by);
				if (!empty($created_user)) {
					if (!empty($created_user->branch)) {
						$branch_name = $created_user->branch->branch_name;
					} else {
						$branch_name = "-";
					}

					$result = $created_user->profile->full_name . "/" . $branch_name;
				}
			} else {
				$result = "Default/Default";
			}
			return $result;
		})->editColumn('rates', function ($query_data) {
			if (strtoupper($query_data->is_webline_product) == 'NO') {
				$premium = 'Reviewable';
			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$premium = $query_data->rates;
			} else {
				$premium = ' ';
			}
			return $premium;
		})->editColumn('status', function ($query_data) {
			if ($query_data->status == '0' || $query_data->status == '1' || $query_data->status == '') {
				$status = '<p class="label label-warning">Yet to connect</p>';
			} else {
				$status = '<p class="label label-success">' . $query_data->status . ' </p>';
			}
			return $status;
		})->editColumn('view', function ($query_data) {
			if (strtoupper($query_data->is_webline_product) == 'NO' || empty($query_data->is_webline_product)) {
				$view = '<a id="View" value="" class="text-green" href="' . URL::to('/account/incompleted-leads/' . $query_data->id . '') . '" target="_blank"><i class="fa fa-eye"></i></a>';
			} elseif (strtoupper($query_data->is_webline_product) == 'YES') {
				$view = '<a id="View" value="" class="text-green" href="' . URL::to('/account/view-webline-lead-info/' . $query_data->id . '/' . $query_data->quote_id . '/' . $query_data->rates . '/incompleted') . '" target="_blank"><i class="fa fa-eye"></i></a>';
			} else {
				$view = '<a id="View" value="" class="text-green" href="' . URL::to('/account/incompleted-leads/' . $query_data->id . '') . '" target="_blank"><i class="fa fa-eye"></i></a>';
			}
			$user = Auth::user();
			if (($user->role == 6) ||
				($user->role == 4) || ($user->role == 5) || ($user->role == 3)) {
				//branch manager or Affliate admin
				$view .= '<button type="button" class="btn btn-success btn-sm" data-toggle="modal" data-target-id="1" data-target="#myModal" data-atr=' . $query_data->id . '>Assign</button>';
			}
			return $view;
		})->editColumn('delete', function ($query_data) {
			$status = 'incompleted';
			$delete = '<a id="index" value="" class="text-red deleteBtn" href="#" data-status=' . $status . ' data-id=' . $query_data->id . '><i class="fa fa-remove"> </i></a>';
			return $delete;
		})
			->make(true);
		//
	}

		/**
	 * [completedleadsExportToExcel : export completed leads for server side sata grid
	 * @param  string $value [description]
	 * @return [type]        [description]
	 */
	public static function completedleadsRenewExportToExcel(Request $request) {
		/* Normal products */
		$information = DB::table('information')
		//	->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
			//->join('quotes', 'information.quote_id', '=', 'quotes.id', 'LEFT')
		//	->join('industries', 'quotes.industry_type_id', '=', 'industries.id', 'LEFT')
			->where('accountnumber', '<>', '')
			->where('dob','like','%-%')
			->where('id', '<', '50485')
			->where('cancel_date', NULL)
			->where('information.product_id','!=','17')
			->where('information.product_id','!=','27')
			->where('information.is_webline_product', 'No')
			->select('information.mta_date','information.reason','information.quote_id','information.product_id','information.insurance_startdate', 'information.title', 'information.fname', 'information.lname', 'information.id','information.policy_number_full','information.age','information.cancel_date','information.dob','information.monthlybenefit','information.monthlycost','information.excessperiod','information.monthlycost','information.typeofcover','information.renewal_date', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.id', 'desc')
			->limit(4000)
			->get();

			//dd($information);
			// $information = array_merge($information,$webline_info);
		$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];


		foreach ($information as $key => $value) {

			//dd($information);
			
		//	$final_data[$key]['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$final_data[$key]['Insurance Start Date'] = $insurance_startdate;
			
		//	exit;
			
			//exit;
			if ($value->renewal_date != "") {

				$renwalday = date('d/m/Y', (strtotime($value->renewal_date . '+1 year')));
			
				//$renewalEndDay = date('d/m/Y', (strtotime($information->renewal_date . '+2 year' . '-1 day')));
			} else {
				$renwalday = date('d/m/Y', (strtotime($value->insurance_startdate . '+1 year')));
			
			//	$renewalEndDay = date('d/m/Y', (strtotime($information->insurance_startdate . '+2 year' . '-1 day')));
			}

			//$monthly_cost = CommonComponent::getQuoteProductCost($value->quote_id, $value->product_id);

			
			//$request = new Request($request);

			$request->merge(['renew_date' => $renwalday]);
			$request->merge(['dob' => $value->dob]);
			$request->merge(['information_id' => $value->id]);
			$request->merge(['typeofcover' => $value->typeofcover]);
			$request->merge(['excessperiod' => $value->excessperiod]);
			$request->merge(['monthlybenefit' => $value->monthlybenefit]);

			//dd($request);

			$monthly_cost = LeadController::calculateMonthlyPremiumRenew($request);
			$product_id=$value->product_id;

			if ($product_id == Config::get('constant.SIMPLE_INCOME_INSURANCE_COVEA') || $product_id == Config::get('constant.BEST_INSURANCE_ULTRA_COVEA') || $product_id == Config::get('constant.BEST_INSURANCE_COVEA') || $product_id == Config::get('constant.BEST_INCOME_BEE_120') || $product_id == Config::get('constant.BEST_INCOME_BEE_90') || $product_id == Config::get('constant.BEST_INCOME_BEE_60') || $value->policy_number_full == 'BIG90/06005A930MMS' || $value->policy_number_full == 'BIG90/06005A957MMS' || $value->policy_number_full == 'BIG90/06005A645MMS' || $value->policy_number_full == 'BIG90/06005A962MMS' || $value->policy_number_full == 'BIG90/06005A1062MMS'|| $value->policy_number_full == 'LPBST/05333A006' || $value->policy_number_full == 'BIG120/06005A499MMS' || $value->policy_number_full == 'BSI6839-233' || $value->policy_number_full == 'BIG120/06005A536MMS' || $value->policy_number_full == 'IPBST/05333A7273/SII' || $value->policy_number_full == ' IPBST/05333A6885/SII' || $value->policy_number_full == 'BSI6839-233' || $value->policy_number_full == 'IPBST/05333A461-1/SII' || $value->policy_number_full == 'BIG90/06005A869MMS' || $value->policy_number_full == 'IPBST/05333A459-1/SII' || $value->policy_number_full == 'IPBST/05333A424-1/SII' || $value->policy_number_full == 'BIG90/06005A1433MMS' || $value->policy_number_full == 'CC/CMII1/1015388SII' || $value->policy_number_full == 'BIG90/06005A1508MMS' || $value->policy_number_full == 'BIG90/06005A1530MMS' || $value->policy_number_full == 'BSI6839-493' || $value->policy_number_full == 'BIG90/06005A1675MMS' || $value->policy_number_full == 'BIG120/06005A801MMS' || $value->policy_number_full == 'BIG120/06005A729MMS') {

				$monthly_cost = $value->monthlycost;

			}

			if(endsWith($value->policy_number_full,'SII') && $product_id=="28")
			{
				$monthly_cost = $value->monthlycost;
			}

		//	echo $monthly_cost;
		//	exit;

			$final_data[$key]['Policy Number'] = $value->policy_number_full;
			

			//  $final_data[$key]['Policy Number'] = $value->policy_number_full;

			//$final_data[$key]['Policy_Number'] = $value->product_name;
			
			$final_data[$key]['Monthly Benefit'] = $value->monthlybenefit;
			$final_data[$key]['Current Monthly Premium'] = $value->monthlycost;
			$final_data[$key]['Last Renewal Date'] = $value->renewal_date;
			$final_data[$key]['New Renewal Date'] =$renwalday;
			$final_data[$key]['New Renewal Premium'] = $monthly_cost;
			$final_data[$key]['MTA date'] = $value->mta_date;
			$final_data[$key]['Reason'] = $value->reason;
			$final_data[$key]['Id'] = $value->id;
		

			// $final_data[$key]['Status'] = ($value->status=='1' ? 'Accepted' : 'Rejected');
		} // BI products array formation - end

		
		return Excel::create('Completed-leads-information', function ($excel) use ($final_data) {

			$excel->sheet('mySheet', function ($sheet) use ($final_data) {
				$sheet->fromArray($final_data);
			});

		})->download('xlsx');
	}


	/**
	 * [completedleadsExportToExcel : export completed leads for server side sata grid
	 * @param  string $value [description]
	 * @return [type]        [description]
	 */
	public static function completedleadsExportToExcel($value = '') {
		/* Normal products */
		$information = DB::table('information')
			->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
			->join('quotes', 'information.quote_id', '=', 'quotes.id', 'LEFT')
			->join('industries', 'quotes.industry_type_id', '=', 'industries.id', 'LEFT')
			->where('accountnumber', '<>', '')
			->where('information.is_webline_product', 'No')
			->select('information.accountnumber', 'information.marketingOptOut', 'products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.date_added', 'information.time_added', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname','information.email', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number_full', 'information.age', 'information.telephone', 'information.is_webline_product', 'information.cancel_date', 'information.mms_scheme','information.dob','information.postcode','information.occupation','information.employer_name','information.monthlybenefit','information.monthlycost','information.excessperiod','information.monthlycost','industries.industry_name','information.emp_status','information.address1','information.address2','information.address3','information.address4','information.postcode','information.postaltown','information.county','information.renewal_date','information.customer_status','information.cancellation_approve_date','information.payment_type','information.salary','information.updated_at', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->get();

		/* Webline products */
		$webline_info = DB::table('information')
		->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
		->join('quotes', 'information.quote_id', '=', 'quotes.id', 'LEFT')
		->join('industries', 'quotes.industry_type_id', '=', 'industries.id', 'LEFT')
			->where('accountnumber', '!=', '')
			->where('information.is_webline_product', 'Yes')
			->select('information.accountnumber', 'information.marketingOptOut', 'products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.date_added', 'information.time_added', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname','information.email', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number_full', 'information.age', 'information.telephone', 'information.is_webline_product', 'information.cancel_date', 'information.mms_scheme','information.dob','information.postcode','information.occupation','information.employer_name','information.monthlybenefit','information.monthlycost','information.excessperiod','information.monthlycost','industries.industry_name','information.emp_status','information.address1','information.address2','information.address3','information.address4','information.postcode','information.postaltown','information.county','information.renewal_date','information.customer_status','information.cancellation_approve_date','information.payment_type','information.salary','information.updated_at', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->get();
		foreach ($webline_info as $key => $value) {
			$webline_product_details = DB::table('temp_quot_webline_products')
				->join('webline_insurers', 'temp_quot_webline_products.ProviderName', '=', 'webline_insurers.insurer_code')
				->where('QuoteId', $value->quote_id)
				->where('ProductId', $value->product_id)
				->where('Rates', $value->rates)
				->first();
			if (isset($webline_product_details)) {

				$webline_info[$key]->product_name = $webline_product_details->ProductName;
				$webline_info[$key]->insurer = $webline_product_details->insurer;
			}
		}

		// $information = array_merge($information,$webline_info);
		$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];
		foreach ($information as $key => $value) {

			
			

			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$final_data[$key]['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$final_data[$key]['Insurance Start Date'] = date('d/m/Y', strtotime($insurance_startdate));

			if ($value->product_id == 17 || $value->product_id == 27) {
				$final_data[$key]['Policy Number'] = $value->policy_prefix . "/" . $value->policy_number_full;
			} elseif ($value->product_id == 4) {

				if ($value->mms_scheme != "RBS128" && $value->mms_scheme != "RBS129" && $value->mms_scheme != "RBS130") {
					$final_data[$key]['Policy Number'] = $value->policy_prefix . "/" . $value->policy_number_full;

				} else {
					$final_data[$key]['Policy Number'] = $value->policy_number_full;
				}
			} else {
				$final_data[$key]['Policy Number'] = $value->policy_number_full;
			}

			//  $final_data[$key]['Policy Number'] = $value->policy_number_full;

			$final_data[$key]['Policy'] = $value->product_name;
			$final_data[$key]['Insurer'] = $value->insurer;
			$final_data[$key]['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$final_data[$key]['DateofBirth'] = $value->dob;
			$final_data[$key]['Address1'] = $value->address1;
			$final_data[$key]['Address2'] = $value->address2;
			$final_data[$key]['Address3'] = $value->address3;
			$final_data[$key]['Address4'] = $value->address4;
			$final_data[$key]['Postal Town'] = $value->postaltown;
			$final_data[$key]['County'] = $value->county;
			$final_data[$key]['Postcode'] = $value->postcode;
			$final_data[$key]['Email'] = $value->email;
			$final_data[$key]['Cover Type'] = $value->typeofcover;
			$final_data[$key]['Industry Name'] = $value->industry_name;
			$final_data[$key]['Occupation'] = $value->occupation;
			$final_data[$key]['Employer Name'] = $value->employer_name;
			$final_data[$key]['Employee Status'] = $value->emp_status;
			$final_data[$key]['Monthly Benefit'] = $value->monthlybenefit;
			$final_data[$key]['Monthly Cost'] = $value->monthlycost;
			$final_data[$key]['Excess Period'] = $value->excessperiod;
			$final_data[$key]['Source'] = $source;
		//	$final_data[$key]['Premium Type'] = 'Reviewable';
			//  $final_data[$key]['Marketing Preference'] = $value->marketingOptOut;

			if ($value->cancel_date != '') {
				$final_data[$key]['Status'] = "Cancelled";
			} elseif ($value->status == '1') {
				$final_data[$key]['Status'] = "Accepted";
			} elseif ($value->status == '-1') {
				$final_data[$key]['Status'] = "Submitted";
			} elseif ($value->status == '0') {
				$final_data[$key]['Status'] = "Rejected";
			}

			$final_data[$key]['Customer Status'] = $value->customer_status;

			if(empty($value->cancellation_approve_date))
			{
				$final_data[$key]['Cancel Date'] =  "";
			}
			else{

			//	$log_information=LogInformation::where('application_id',$value->id)->select('updated_at')->orderBy('id', 'desc')->first();

				$final_data[$key]['Cancel Date'] =  date('d/m/Y', strtotime($value->cancellation_approve_date));
			}


			if(empty($value->renewal_date))
			{
				$final_data[$key]['Renewal Date'] =  "";
			}
			else{
				$final_data[$key]['Renewal Date'] =  date('d/m/Y', strtotime($value->renewal_date));
			}

			$final_data[$key]['Payment Type']=$value->payment_type;
			$final_data[$key]['Annaul Salary']=round($value->salary*12);

		//	$final_data[$key]['Cancel Approve'] =  date('d/m/Y', strtotime($value->cancellation_approve_date));
		//	$final_data[$key]['Renewal Date'] = date('d/m/Y', strtotime($value->renewal_date));

			// $final_data[$key]['Status'] = ($value->status=='1' ? 'Accepted' : 'Rejected');
		} // BI products array formation - end

		// Webline products array formation -- start
		foreach ($webline_info as $key => $value) {
			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$array_new['Application date'] = date('d/m/Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d/m/Y', strtotime($value->insurance_startdate));
			}

			$array_new['Insurance Start Date'] = $insurance_startdate;

			$array_new['Policy Number'] = $value->policy_number_full;
			$array_new['Policy'] = $value->product_name;
			$array_new['Insurer'] = $value->insurer;
			$array_new['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$array_new['DateofBirth'] = $value->dob;
			$array_new['Address1'] = $value->address1;
			$array_new['Address2'] = $value->address2;
			$array_new['Address3'] = $value->address3;
			$array_new['Address4'] = $value->address4;
			$array_new['Postal Town'] = $value->postaltown;
			$array_new['County'] = $value->county;
			$array_new['Postcode'] = $value->postcode;
			$array_new['Email'] = $value->email;
			$array_new['Cover Type'] = $value->typeofcover;
			$array_new['Industry Name'] = $value->industry_name;
			$array_new['Occupation'] = $value->occupation;
			$array_new['Employer Name'] = $value->employer_name;
			$array_new['Employee Status'] = $value->emp_status;
			$array_new['Monthly Benefit'] = $value->monthlybenefit;
			$array_new['Monthly Cost'] = $value->monthlycost;
			$array_new['Excess Period'] = $value->excessperiod;
			$array_new['Source'] = $source;
		//	$array_new['Premium Type'] = $value->rates;

			if ($value->cancel_date != '') {
				$array_new['Status'] = "Cancelled";
			} elseif ($value->status == '1') {
				$array_new['Status'] = "Accepted";
			} elseif ($value->status == '-1') {
				$array_new['Status'] = "Submitted";
			} elseif ($value->status == '0') {
				$array_new['Status'] = "Rejected";
			}

			$array_new['Customer Status'] = $value->customer_status;

			if($value->cancellation_approve_date!="")
			{
				//$array_new['Cancel Date'] =  date('d/m/Y', strtotime($value->updated_at));
			//	$log_information=LogInformation::where('application_id',$value->id)->select('updated_at')->orderBy('id', 'desc')->first();

				$array_new['Cancel Date'] =  date('d/m/Y', strtotime($value->cancellation_approve_date));
				
			}
			else{
				$array_new['Cancel Date'] =  "---";
			}


			if(empty($value->renewal_date))
			{
				$array_new['Renewal Date'] =  "";
			}
			else{
				$array_new['Renewal Date'] =  date('d/m/Y', strtotime($value->renewal_date));
			}
			$array_new['Payment Type']=$value->payment_type;
			$array_new['Annaul Salary']=round($value->salary*12);
		//	$array_new['Renewal Date Status'] = date('d/m/Y', strtotime($value->renewal_date));
			// $array_new['Marketing Preference'] = $value->marketingOptOut;
			// $array_new['Status'] = ($value->status=='1' ? 'Accepted' : 'Rejected');
			// $array_w[] = $array_new;
			array_push($final_data, $array_new);
		} // Webline products array formation --

		//print_r($final_data);
		// exit;
		return Excel::create('Completed-leads-information', function ($excel) use ($final_data) {

			$excel->sheet('mySheet', function ($sheet) use ($final_data) {
				$sheet->fromArray($final_data);
			});

		})->download('xlsx');
	}

	/**
	 * [completedleadsExportToExcel : export completed leads for server side sata grid
	 * @param  string $value [description]
	 * @return [type]        [description]
	 */
	public static function completedleadsExportToExcelOld($value = '') {
		/* Normal products */
		$information = DB::table('information')
			->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
			->join('quotes', 'information.quote_id', '=', 'quotes.id', 'LEFT')
			->join('industries', 'quotes.industry_type_id', '=', 'industries.id', 'LEFT')
			->where('accountnumber', '<>', '')
			->where('information.is_webline_product', 'No')
			->select('information.accountnumber', 'information.marketingOptOut', 'products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.date_added', 'information.time_added', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname','information.email', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number_full', 'information.age', 'information.telephone', 'information.is_webline_product', 'information.cancel_date', 'information.mms_scheme','information.dob','information.postcode','information.occupation','information.employer_name','information.monthlybenefit','information.monthlycost','information.excessperiod','information.monthlycost','industries.industry_name','information.emp_status','information.address1','information.address2','information.address3','information.address4','information.postcode','information.postaltown','information.county', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			//->limit(7000)
			->get();

		/* Webline products */
		$webline_info = DB::table('information')
		->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
		->join('quotes', 'information.quote_id', '=', 'quotes.id', 'LEFT')
		->join('industries', 'quotes.industry_type_id', '=', 'industries.id', 'LEFT')
			->where('accountnumber', '!=', '')
			->where('information.is_webline_product', 'Yes')
			->select('information.accountnumber', 'information.marketingOptOut', 'products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.date_added', 'information.time_added', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname','information.email', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number_full', 'information.age', 'information.telephone', 'information.is_webline_product', 'information.cancel_date', 'information.mms_scheme','information.dob','information.postcode','information.occupation','information.employer_name','information.monthlybenefit','information.monthlycost','information.excessperiod','information.monthlycost','industries.industry_name','information.emp_status','information.address1','information.address2','information.address3','information.address4','information.postcode','information.postaltown','information.county', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->get();
		foreach ($webline_info as $key => $value) {
			$webline_product_details = DB::table('temp_quot_webline_products')
				->join('webline_insurers', 'temp_quot_webline_products.ProviderName', '=', 'webline_insurers.insurer_code')
				->where('QuoteId', $value->quote_id)
				->where('ProductId', $value->product_id)
				->where('Rates', $value->rates)
				->first();
			if (isset($webline_product_details)) {

				$webline_info[$key]->product_name = $webline_product_details->ProductName;
				$webline_info[$key]->insurer = $webline_product_details->insurer;
			}
		}

		// $information = array_merge($information,$webline_info);
		$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];
		foreach ($information as $key => $value) {

			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$final_data[$key]['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$final_data[$key]['Insurance Start Date'] = $insurance_startdate;

			if ($value->product_id == 17 || $value->product_id == 27) {
				$final_data[$key]['Policy Number'] = $value->policy_prefix . "/" . $value->policy_number_full;
			} elseif ($value->product_id == 4) {

				if ($value->mms_scheme != "RBS128" && $value->mms_scheme != "RBS129" && $value->mms_scheme != "RBS130") {
					$final_data[$key]['Policy Number'] = $value->policy_prefix . "/" . $value->policy_number_full;

				} else {
					$final_data[$key]['Policy Number'] = $value->policy_number_full;
				}
			} else {
				$final_data[$key]['Policy Number'] = $value->policy_number_full;
			}

			//  $final_data[$key]['Policy Number'] = $value->policy_number_full;

			$final_data[$key]['Policy'] = $value->product_name;
			$final_data[$key]['Insurer'] = $value->insurer;
			$final_data[$key]['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$final_data[$key]['DateofBirth'] = $value->dob;
			$final_data[$key]['Address1'] = $value->address1;
			$final_data[$key]['Address2'] = $value->address2;
			$final_data[$key]['Address3'] = $value->address3;
			$final_data[$key]['Address4'] = $value->address4;
			$final_data[$key]['Postal Town'] = $value->postaltown;
			$final_data[$key]['County'] = $value->county;
			$final_data[$key]['Postcode'] = $value->postcode;
			$final_data[$key]['Email'] = $value->email;
			$final_data[$key]['Cover Type'] = $value->typeofcover;
			$final_data[$key]['Industry Name'] = $value->industry_name;
			$final_data[$key]['Occupation'] = $value->occupation;
			$final_data[$key]['Employer Name'] = $value->employer_name;
			$final_data[$key]['Employee Status'] = $value->emp_status;
			$final_data[$key]['Monthly Benefit'] = $value->monthlybenefit;
			$final_data[$key]['Monthly Cost'] = $value->monthlycost;
			$final_data[$key]['Excess Period'] = $value->excessperiod;
			$final_data[$key]['Source'] = $source;
		//	$final_data[$key]['Premium Type'] = 'Reviewable';
			//  $final_data[$key]['Marketing Preference'] = $value->marketingOptOut;

			if ($value->cancel_date != '') {
				$final_data[$key]['Status'] = "Cancelled";
			} elseif ($value->status == '1') {
				$final_data[$key]['Status'] = "Accepted";
			} elseif ($value->status == '-1') {
				$final_data[$key]['Status'] = "Submitted";
			} elseif ($value->status == '0') {
				$final_data[$key]['Status'] = "Rejected";
			}

			// $final_data[$key]['Status'] = ($value->status=='1' ? 'Accepted' : 'Rejected');
		} // BI products array formation - end

		// Webline products array formation -- start
		foreach ($webline_info as $key => $value) {
			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$array_new['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$array_new['Insurance Start Date'] = $insurance_startdate;

			$array_new['Policy Number'] = $value->policy_number_full;
			$array_new['Policy'] = $value->product_name;
			$array_new['Insurer'] = $value->insurer;
			$array_new['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$array_new['DateofBirth'] = $value->dob;
			$array_new['Address1'] = $value->address1;
			$array_new['Address2'] = $value->address2;
			$array_new['Address3'] = $value->address3;
			$array_new['Address4'] = $value->address4;
			$array_new['Postal Town'] = $value->postaltown;
			$array_new['County'] = $value->county;
			$array_new['Postcode'] = $value->postcode;
			$array_new['Email'] = $value->email;
			$array_new['Cover Type'] = $value->typeofcover;
			$array_new['Industry Name'] = $value->industry_name;
			$array_new['Occupation'] = $value->occupation;
			$array_new['Employer Name'] = $value->employer_name;
			$array_new['Employee Status'] = $value->emp_status;
			$array_new['Monthly Benefit'] = $value->monthlybenefit;
			$array_new['Monthly Cost'] = $value->monthlycost;
			$array_new['Excess Period'] = $value->excessperiod;
			$array_new['Source'] = $source;
		//	$array_new['Premium Type'] = $value->rates;

			if ($value->cancel_date != '') {
				$array_new['Status'] = "Cancelled";
			} elseif ($value->status == '1') {
				$array_new['Status'] = "Accepted";
			} elseif ($value->status == '-1') {
				$array_new['Status'] = "Submitted";
			} elseif ($value->status == '0') {
				$array_new['Status'] = "Rejected";
			}

			// $array_new['Marketing Preference'] = $value->marketingOptOut;
			// $array_new['Status'] = ($value->status=='1' ? 'Accepted' : 'Rejected');
			// $array_w[] = $array_new;
			array_push($final_data, $array_new);
		} // Webline products array formation --

		//print_r($final_data);
		// exit;
		return Excel::create('Completed-leads-information', function ($excel) use ($final_data) {

			$excel->sheet('mySheet', function ($sheet) use ($final_data) {
				$sheet->fromArray($final_data);
			});

		})->download('xlsx');
	}

	public static function incompleteleadsExportToExcel($value = '') {
		/* Normal products */
		$information = DB::table('information')
			->leftjoin('products', 'information.product_id', '=', 'products.id', 'LEFT')
			->leftjoin('quotes', 'information.quote_id', '=', 'quotes.id', 'LEFT')
			->leftjoin('industries', 'quotes.industry_type_id', '=', 'industries.id', 'LEFT')
			->where('policy_number_full', NULL)
		//	->where('information.is_webline_product', 'No')
			->select('information.accountnumber', 'information.marketingOptOut', 'products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.date_added', 'information.time_added', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number_full', 'information.age', 'information.telephone','information.email', 'information.is_webline_product', 'information.cancel_date', 'information.mms_scheme','information.dob','information.postcode','information.occupation','information.employer_name','information.monthlybenefit','information.monthlycost','information.excessperiod','information.monthlycost','industries.industry_name','information.emp_status', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->limit(30000)
			->get();

	

		// $information = array_merge($information,$webline_info);
		$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];
		foreach ($information as $key => $value) {

			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$final_data[$key]['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$final_data[$key]['Insurance Start Date'] = $insurance_startdate;

			

			//  $final_data[$key]['Policy Number'] = $value->policy_number_full;

			$final_data[$key]['Policy'] = $value->product_name;
			$final_data[$key]['Insurer'] = $value->insurer;
			$final_data[$key]['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$final_data[$key]['Contact Number'] = $value->telephone;
			$final_data[$key]['Email'] = $value->email;
			$final_data[$key]['DateofBirth'] = $value->dob;
			$final_data[$key]['Postcode'] = $value->postcode;
			$final_data[$key]['Cover Type'] = $value->typeofcover;
			$final_data[$key]['Industry Name'] = $value->industry_name;
			$final_data[$key]['Occupation'] = $value->occupation;
			$final_data[$key]['Employer Name'] = $value->employer_name;
			$final_data[$key]['Employee Status'] = $value->emp_status;
			$final_data[$key]['Monthly Benefit'] = $value->monthlybenefit;
			$final_data[$key]['Monthly Cost'] = $value->monthlycost;
			$final_data[$key]['Excess Period'] = $value->excessperiod;
			$final_data[$key]['Source'] = $source;
			$final_data[$key]['Status'] = "Yet to connect";
		//	$final_data[$key]['Premium Type'] = 'Reviewable';
			//  $final_data[$key]['Marketing Preference'] = $value->marketingOptOut;

			
			// $final_data[$key]['Status'] = ($value->status=='1' ? 'Accepted' : 'Rejected');
	//	} // BI products array formation - end

		
		//	array_push($final_data, $array_new);
		} // Webline products array formation --

		//print_r($final_data);
		// exit;
		return Excel::create('Incompleted-leads-information', function ($excel) use ($final_data) {

			$excel->sheet('mySheet', function ($sheet) use ($final_data) {
				$sheet->fromArray($final_data);
			});

		})->download('xlsx');
	}

	public function incompleteleadsExportToExcelOld($value = '') {
		$webline_info = DB::table('information')
			->where('policy_number_full', NULL)
			->where('information.is_webline_product', 'Yes')
			->select('information.insurance_startdate', 'information.title', 'information.fname', 'information.lname', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number', 'information.age', 'information.telephone', 'information.date_added', 'information.time_added', 'information.typeofprotection', 'information.accountnumber', 'information.is_webline_product', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->get();

		foreach ($webline_info as $key => $value) {
			$webline_product_details = DB::table('temp_quot_webline_products')
				->join('webline_insurers', 'temp_quot_webline_products.ProviderName', '=', 'webline_insurers.insurer_code')
				->where('QuoteId', $value->quote_id)
				->where('ProductId', $value->product_id)
				->where('Rates', $value->rates)
				->first();
			if (isset($webline_product_details)) {
				$webline_info[$key]->product_name = $webline_product_details->ProductName;
				$webline_info[$key]->insurer = $webline_product_details->insurer;
			}
		}

		// getting Bi info with is_webline_product is No
		$BIP_information = DB::table('information')
			->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
			->where('policy_number_full', NULL)
			->where('information.is_webline_product', 'No')
			->select('products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number', 'information.age', 'information.telephone', 'information.date_added', 'information.time_added', 'information.typeofprotection', 'information.is_webline_product', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->get();
		// getting Bi info with is_webline_product is empty
		$both_information = DB::table('information')
			->join('products', 'information.product_id', '=', 'products.id', 'LEFT')
			->where('policy_number_full', NULL)
			->where('information.is_webline_product', '=', null)
			->select('products.insurer', 'products.product_name', 'products.policy_prefix', 'products.pdf_underwritten_txt', 'information.insurance_startdate', 'information.title', 'information.fname', 'information.lname', 'information.typeofcover', 'information.lead_source_field', 'information.affid', 'information.status', 'information.id', 'information.quote_id', 'information.product_id', 'information.rates', 'information.policy_number', 'information.age', 'information.telephone', 'information.date_added', 'information.time_added', 'information.typeofprotection', 'information.is_webline_product', DB::raw('CONCAT(date_added, " ", time_added) AS created_date'))
			->orderBy('information.date_added', 'desc')
			->get();
		$lead_source_field = ['bi-app' => 'BestInsurance', 'tle-app' => 'Theleadexpert', 'dlet-app' => 'Discountlettings', '' => 'Direct'];
		$information = array_merge($BIP_information,$both_information);
		foreach ($information as $key => $value) {

			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$final_data[$key]['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$final_data[$key]['Insurance Start Date'] = $insurance_startdate;

		//	$final_data[$key]['Policy Number'] = $value->policy_prefix . $value->policy_number;
			$final_data[$key]['Policy'] = $value->product_name;
			$final_data[$key]['Insurer'] = $value->insurer;
			$final_data[$key]['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$final_data[$key]['Cover Type'] = $value->typeofcover;
			$final_data[$key]['Source'] = $source;
			$final_data[$key]['Premium Type'] = 'Reviewable';
			/* if($value->status == '0' ||  $value->status == '1' || $value->status == ''){
				                    $status = 'Yet to connect';
				                }else{
				                    $status = $value->status;
			*/
			$final_data[$key]['Status'] = 'Yet to connect';
		} // BI products array formation - end

		// Webline products array formation -- start
		foreach ($webline_info as $key => $value) {
			if ($value->lead_source_field != '' || $value->lead_source_field != 'Web Site') {
				$source = $value->lead_source_field;
			} elseif (isset($value->affid)) {
				foreach ($lead_source_field as $key => $value) {
					if ($key == $value->affid) {
						$source = $value;
					}
				}
			} else {
				$source = $lead_source_field['bi-app'];
			}

			$array_new['Application date'] = date('d-m-Y', strtotime($value->date_added)) . ' ' . $value->time_added;

			if ($value->insurance_startdate == '0000-00-00') {
				$insurance_startdate = '00-00-0000';
			} elseif ($value->insurance_startdate == '') {
				$insurance_startdate = $value->insurance_startdate;
			} else {
				$insurance_startdate = date('d-m-Y', strtotime($value->insurance_startdate));
			}

			$array_new['Insurance Start Date'] = $insurance_startdate;

		//	$array_new['Policy Number'] = $value->policy_number;
			$array_new['Policy'] = "";
			$array_new['Insurer'] = "";
			$array_new['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			$array_new['Cover Type'] = $value->typeofcover;
			$array_new['Source'] = $source;
			$array_new['Premium Type'] = $value->rates;
			/*if($value->status == '0' ||  $value->status == '1' || $value->status == ''){
				                    $status = 'Yet to connect';
				                }else{
				                    $status = $value->status;
			*/
			$array_new['Status'] = 'Yet to connect';
			// $array_w[] = $array_new;
			array_push($final_data, $array_new);
		}
		// print_r($final_data);
		return Excel::create('Incomplete-leads-information', function ($excel) use ($final_data) {

			$excel->sheet('mySheet', function ($sheet) use ($final_data) {
				$sheet->fromArray($final_data);
			});

		})->download('xlsx');

	}

	public function getCancelled($lead_id) {

		$breadcrumb = [
			'title' => 'Completed Applications',
			'subTitle' => 'Cancel Application',
			'home' => 'Leads',
			'homeLink' => URL::to('account/leads?status=completed'),
			'subHome' => 'Completed Applications',
			'subHomeLink' => URL::to('account/leads?status=completed'),
			'subChildHome' => 'Cancel Application',
			'menu' => 'completed-leads',
			'MenuClass' => 'active open',
			'menuColor' => '#fff',
			'SubMenuClass' => 'active',
		];
		$cancellation_codes = CancellationCode::all();
		$cancellation_periods = CancellationPeriod::all();
		//  $view = view('modals.cancelled_window',compact('lead_id','cancellation_codes'));
		//  $contents = (string) $view;
		// return $contents = $view->render();

		return view('admin.leads.cancel_policy', compact('lead_id', 'breadcrumb', 'cancellation_codes', 'cancellation_periods'));

	}

	public function postCancelledStep1(CancellationRequest $request) {
		$all = Input::all();
		$all['flag'] = 1;
		// dd($all);
		return redirect()->back()->withInput($all);
	}

	public function postCancelled(CancellationRequest $request) {

		$lead_id = $request->lead_id;
		$cancel_code = $request->cancel_code;
		$cancel_period_code = $request->cancel_period;
		$cancel_reason = $request->reason;
		$reason = $request->reason;
		$cancel_date = $request->cancel_date;


		



		// Adding log information if not exists
		$this->helper->insertLogInfo($lead_id);

		$information = Information::find($lead_id);
		$information->cancel_code = $cancel_code;
		$information->cancel_period_code = $cancel_period_code;
		$information->cancel_reason = $cancel_reason;
		$information->reason = $reason;
		$information->cancel_date = $cancel_date;

		
		
		//$raf_cancel_date->addMonths(1)

		if (($cancel_period_code == 10) || ($cancel_period_code == 11)) {
			$CancelFromPaidUpTo = false;
			if($information->renewal_date!="")

			{	
				if ($information->mms_scheme == "RBS128" || $information->mms_scheme == "RBS129" || $information->mms_scheme == "RBS130") {
					$max_renewaldate_to_test=Carbon::parse($information->renewal_date)->addMonths(2);
				}
				else{
					$max_renewaldate_to_test=Carbon::parse($information->renewal_date)->addMonths(1);
				}
				
				$ins_start_date_to_cancel_yr = Carbon::parse($information->renewal_date);

				if($max_renewaldate_to_test<date('Y-m-d') && Carbon::parse($information->renewal_date)<date('Y-m-d'))
				{
					\Flash::error("Unable to cancel as not within 30 days of last renewal");
				//	return rediret()->back();
					//\Flash::error($error_message);
					return redirect()->back();
				}
		


			}
			else
			{
				$ins_start_date_to_cancel_yr = Carbon::parse($information->insurance_startdate);

				if ($information->mms_scheme == "RBS128" || $information->mms_scheme == "RBS129" || $information->mms_scheme == "RBS130") {
					$max_startdate_to_test=Carbon::parse($information->insurance_startdate)->addMonths(2);
				}

				else
				{
					$max_startdate_to_test=Carbon::parse($information->insurance_startdate)->addMonths(1);
				}
				

				if($max_startdate_to_test<date('Y-m-d') && Carbon::parse($information->insurance_startdate)<date('Y-m-d'))
				{
					\Flash::error("Unable to cancel as not within 30 days");
					return redirect()->back();
				}
			}

			//exit;
		//	$ins_start_date_to_cancel_yr = Carbon::parse($information->insurance_startdate);
		//	$ins_start_date_to_cancel_yr->year = date('Y');
			$raf_cancel_date=$ins_start_date_to_cancel_yr;

			if ($information->mms_scheme == "RBS128" || $information->mms_scheme == "RBS129" || $information->mms_scheme == "RBS130") {
				$raf_cancel_date->addMonths(1);
			}

			//$information->cancel_date = $ins_start_date_to_cancel_yr;
		} else {
			$CancelFromPaidUpTo = true;
			$raf_cancel_date=$cancel_date;
		}
		echo $raf_cancel_date;
		$information->cancellation_approve_date = "$request->cancellation_approve_date";
		//echo $cancel_date;
		//echo $request->cancellation_approve_date;
		// dd($information);
		// Cancelling the loan at red apple finance end and updating the required tables
		//print_r($information);
		//exit;
		$i = Information::with('RAFCustomerInfo')->find($lead_id);
		// dd($i->RAFCustomerInfo);
		if (!empty($i->RAFCustomerInfo->id)) {
			$result_data = RAFController::CancelCustomer($i->RAFCustomerInfo->id, $information, $CancelFromPaidUpTo,$raf_cancel_date);
			if ($result_data['http_code'] != 200) {
				$error_message = json_encode($result_data['response']);
				\Flash::error($error_message);
				return redirect()->back();
			}
		}

		//dd($result_data);
		//$information->cancellation_approve_date = $request->cancellation_approve_date;
	
		$information->customer_status="Cancelled";
		$information->save();

		/*$activity = Activity::all()->last();
		$activity->description = "cancel";
		$activity->save();*/

		$version = DB::table('log_information')
			->select('version as last_version')
			->where('application_id', $lead_id)
			->orderBy('version', 'desc')
			->first();
		if (empty($version)) {
			$version = 0;
		} else {
			$version = $version->last_version;
		}

		// Adding log information
		$logInfoId = DB::table('log_information')
			->insertGetId([
				'application_id' => $information->id,
				'product_id' => $information->product_id,
				'title' => $information->title,
				'fname' => $information->fname,
				'lname' => $information->lname,
				'dob' => $information->dob,
				'emp_status' => $information->emp_status,
				'occupation' => $information->occupation,
				'employer_name' => $information->employer_name,
				'building' => $information->building,
				'premiseName' => $information->premiseName,
				'address1' => $information->address1,
				'address2' => $information->address2,
				'address3' => $information->address3,
				'address4' => $information->address4,
				'postcode' => $information->postcode,
				'formattedPO' => $information->formattedPO,
				'postaltown' => $information->postaltown,
				'county' => $information->county,
				'email' => $information->email,
				'telephone' => $information->telephone,
				'mobile' => $information->mobile,
				'marketingOptOut' => $information->marketingOptOut,
				'under_writing_q1' => $information->under_writing_q1,
				'under_writing_ans' => $information->under_writing_ans,
				'under_writing_accept' => $information->under_writing_accept,
				'insurance_startdate' => $information->insurance_startdate,
				'transfer' => $information->transfer,
				'current_provider' => $information->current_provider,
				'current_policy_date' => $information->current_policy_date,
				'typeofcover' => $information->typeofcover,
				'loan_to_pay' => $information->loan_to_pay,
				'monthlycommitment' => $information->monthlycommitment,
				'monthlygrossincome' => $information->monthlygrossincome,
				'mortgagesalary' => $information->mortgagesalary,
				'mortgage' => $information->mortgage,
				'salary' => $information->salary,
				'age' => $information->age,
				'monthlybenefit' => $information->monthlybenefit,
				'monthlycost' => $information->monthlycost,
				'cover' => $information->cover,
				'cover_term' => $information->cover_term,
				'accept' => $information->accept,
				'accountname' => $information->accountname,
				'accountname2' => $information->accountname2,
				'accountnumber' => $information->accountnumber,
				'sortcode' => $information->sortcode,
				'iban' => $information->iban,
				'bank' => $information->bank,
				'bankbic' => $information->bankbic,
				'branch' => $information->branch,
				'branchbic' => $information->branchbic,
				'branch_address' => $information->branch_address,
				'town' => $information->town,
				'bank_postcode' => $information->bank_postcode,
				'bank_phone' => $information->bank_phone,
				'directdebits' => $information->directdebits,
				'preferreddate' => $information->preferreddate,
				'affid' => $information->affid,
				'ip' => $information->ip,
				'date_added' => $information->date_added,
				'time_added' => $information->time_added,
				'guid' => $information->guid,
				'status' => $information->status,
				'comment' => $information->comment,
				'mail_send' => $information->mail_send,
				'mms_senddate' => $information->mms_senddate,
				'mms_sendmonth' => $information->mms_sendmonth,
				'subscription' => $information->subscription,
				'formtype' => $information->formtype,
				'typeofprotection' => $information->typeofprotection,
				'excessperiod' => $information->excessperiod,
				'insurer' => $information->insurer,
				'smoker' => $information->smoker,
				'life_cover' => $information->life_cover,
				'life_cover_term' => $information->life_cover_term,
				'life_cover_type' => $information->life_cover_type,
				'life_cover_premium_type' => $information->life_cover_premium_type,
				'CIC' => $information->CIC,
				'lead_from' => $information->lead_from,
				'lead_source_field' => $information->lead_source_field,
				'benefit_period' => $information->benefit_period,
				'duration' => $information->duration,
				'duration_year' => $information->duration_year,
				'duration_month' => $information->duration_month,
				'contractor_deirectdebitref' => $information->contractor_deirectdebitref,
				'contractor_id' => $information->contractor_id,
				'policy_number' => $information->policy_number,
				'policy_number_full' => $information->policy_number_full,
				'mta_updated' => $information->mta_updated,
				'renew_updated' => '0',
				'insurance_enddate' => $information->insurance_enddate,
				'version' => $version + 1,
				'edit_updated' => $information->edit_updated,
				'mta_date' => $information->mta_date,
				'cancel_code' => $information->cancel_code,
				'cancel_reason' => $information->cancel_reason,
				'reason' => $information->cancel_reason,
				'cancel_date' => $information->cancel_date,
				'cancellation_approve_date' => $request->cancellation_approve_date,
				'action' => 'CANCEL',
				'active_loan_id' => $information->active_loan_id,
			]);

		if (!empty($i->RAFCustomerInfo->id)) {
			// $raf_customer_id = $result_data['response']['CustomerId'];

			$raf_docs = RAFLoanDocuments::where('CustomerId', $i->RAFCustomerInfo->id)
				->where('action_type', "cancel")
				->whereNull('log_info_id')
				->get();
			foreach ($raf_docs as $raf_doc) {
				$raf_doc->log_info_id = $logInfoId;
				$raf_doc->save();
			}
		}

		// saving cancel file
		$cancel_filename = $this->fileuploader->saveCancelPdf($logInfoId);

		$update_info = DB::table('information')
			->where('id', $information->id)
			->update(['cancel_pdf' => $cancel_filename]);

		$table_info = DB::table('log_information')
			->where('id', $logInfoId)
			->update(['cancel_pdf' => $cancel_filename]);

		$file_path = $email_data['cancel_filename'] = $cancel_filename;

		\Flash::success('Cacnellation completed successfully');
		return redirect('account/leads?status=completed');
		//end of saving file
		// return redirect()->back();
		if (isset($logInfoId) &&
			empty($request->get('send_mail'))
		) {
			//echo $file_path;
			//exit;
			// $file_path = public_path().$file_path;
			if ($request->ajax()) {
				return Response::json([
					'logInfoId' => $logInfoId,
				]);
			} else {
				return response()->download($file_path);
			}

		} elseif (!empty($request->get('send_mail'))) {
			$status = $this->helper->sendEmailWithCancelDocuemnts($logInfoId, $request);
			if ($status) {
				if ($request->ajax()) {
					return response()->json(['status' => 'success', 'message' => 'Email sent successfully']);
				} else {
					flash()->sucess("Email sent successfully");
					return rediret()->back();
				}
			} else {
				if ($request->ajax()) {
					return response()->json(['status' => 'error', 'message' => "Something went wrong in processing request"]);
				} else {
					flash()->error("Something went wrong in processing request");
					return rediret()->back();
				}
			}
		}
	}

	/* public function insertMailTracker($data)
		    {
		        $mailtracker = new MailTracker;
		        $mailtracker->mt_lead_id = $data['mt_lead_id'];
		        $mailtracker->mt_cc_mails = $data['mt_cc_mails'];
		        $mailtracker->mt_bcc_mails = $data['mt_bcc_mails'];
		        $mailtracker->mt_from_mail = $data['mt_from_mail'];
		        $mailtracker->mt_sent_status = $data['mt_sent_status'];
		        $mailtracker->mt_contents = $data['mt_contents'];
		        $mailtracker->mt_type = $data['mt_type'];
		        $mailtracker->mt_created_u_id = \Auth::user()->id;
		        $mailtracker->save();
		    }

		    public function getCancelDownload(Request  $request)
		    {
		        $this->leads->download($request);
	*/

	public function getRevert($lead_id) {
		$information = Information::find($lead_id);
		$information->cancel_code = null;
		$information->cancel_reason = null;
		$information->cancel_date = null;
		$information->cancellation_approve_date = null;
		$information->customer_status ="Reverted";
		$information->save();

		$user_details=UserInfo::where('user_id',Auth::user()->id)->first();


		//$email_data['cc'] = $request->cc_emails;
		//$email_data['bcc'] = $request->bcc_emails;
		$email_data['subject'] = "Admin Panel Revert";
		$email_data['from'] = "advisor@bestinsurance.co.uk";
		$email_data['email'] = "adminpanelrevert@bestinsurance.co.uk";
		$email_data['first_name'] = $information->fname;
		$email_data['last_name'] = $information->lname;
		$email_data['ufirst_name'] = $user_details->first_name;
		$email_data['ulast_name'] = $user_details->last_name;
		$email_data['title'] = $information->title;
		$email_data['policy_number_full'] = $information->policy_number_full;

		$view = View::make('admin.mail.mail-revert', ['first_name' => $email_data['first_name'], 'last_name' => $email_data['last_name'], 'ufirst_name' => $email_data['ufirst_name'], 'ulast_name' => $email_data['ulast_name'],'policy_number_full' => $email_data['policy_number_full']]);

		try {
			$mailSuccess = Mail::send(['html' => 'admin.mail.mail-revert'], $email_data, function ($message) use ($email_data) {
				$message->from($email_data['from']);
				$message->to($email_data['email'])
					->subject($email_data['subject']);
				if (!empty($email_data['cc'])) {
					$message->cc($email_data['cc']);
				}

				if (!empty($email_data['bcc'])) {
					$message->bcc($email_data['bcc']);
				}
				
			});

			
		//	return true;
		} catch (Exception $e) {
			
			//return false;
		}



		\Flash::success('Reverted successfully');
		return redirect()->back();
	}


	public function updateCustomerStatus(Request $request) {
		echo $request->customer_status;

		$information = Information::find($request->id);
		$information->customer_status = $request->customer_status;
		$information->save();

		\Flash::success('Customer Status updated successfully');
		//return redirect()->back();

	}

	public function getPayment($lead_id) {
		$view = view('modals.payment_window', compact('lead_id'));
		$contents = (string) $view;
		return $contents = $view->render();
	}

	public function postPayment(Request $req) {
		$lead_id = $req->lead_id;
		$information = Information::find($lead_id);
		$information->payment_date = $req->payment_date;
		$information->save();

		\Flash::success('Payment added successfully');
		return redirect()->back();
	}

	public function getRefund($lead_id) {
		$view = view('modals.refund_window', compact('lead_id'));
		$contents = (string) $view;
		return $contents = $view->render();
	}

	public function postRefund(Request $req) {
		$lead_id = $req->lead_id;
		$information = Information::find($lead_id);
		$information->refund_date = $req->refund_date;
		$information->refund_amount = $req->refund_amount;
		$information->save();

		\Flash::success('Refund added successfully');
		return redirect()->back();
	}

	/**
	 * [MMS leads data  : export 
	 * @param  string $value [description]
	 * @return [type]        [description]
	 */
	public static function mmsreportsExportToExcel($value = '') {

		$mms_simple_policies = Information::where('status', 1)
					//->whereIn('policy_number_full',['MMS/SPBST/05A10314','MMS/SPBST/05A11920'])
				//	->where('policy_number_full','MMS/SPBST/05A9708')
					->whereNotIn('policy_number_full',['MMS/SPBST/05A11056','MMS/SPBST/05A10939','MMS/SPBST/05A10884','MMS/SPBST/05A10867','MMS/SPBST/05A10773A','MMS/SPBST/05A10770','MMS/SPBST/05A10645','MMS/SPBST/05A10510','MMS/SPBST/05A10446','MMS/SPBST/A10352/1','MMS/SPBST/05A1031','MMS/SPBST/05A126','MMS/SPBST/05A12519','MMS/SPBST/05A12375','MMS/SPBST/05A12290','MMS/SPBST/05A12283','MMS/SPBST/05A12280','MMS/SPBST/05A12227','MMS/SPBST/05A12221','MMS/SPBST/05A12128','MMS/SPBST/05A12104','MMS/SPBST/05A12103','MMS/SPBST/05A12097','MMS/SPBST/05A12021','MMS/SPBST/05A11929','MMS/SPBST/05A11895','MMS/SPBST/05A11746','MMS/SPBST/05A11553','MMS/SPBST/05A11443','MMS/SPBST/05A978','MMS/SPBST/05A9667','MMS/SPBST/05A958','MMS/SPBST/05A708','MMS/SPBST/05A519','MMS/SPBST/05A518','MMS/SPBST/05A442','MMS/SPBST/6005A352','MMS/SPBST/05A236-2','MMS/SPBST/05A177-2','MMS/SPBST/05A130','MMS/SPBST/05A11090','MMS/SPBST/05A11161','MMS/SPBST/05A11282','MMS/SPBST/05A11007','MMS/SPBST/05A10839','MMS/SPBST/05A10812','MMS/SPBST/05A10715','MMS/SPBST/05A10441','MMS/SPBST/05A10432','MMS/SPBST/05A11483','MMS/SPBST/05A9940','MMS/SPBST/05A9631','MMS/SPBST/05A11110'])
					->where('product_id','26')
					->where('cancel_date', NULL)
				//	->limit(1)
					->get();
					
			//	dd($mms_simple_policies);
		foreach($mms_simple_policies as $key => $value)
			{
						
			//echo $policy['id']."<br/>\n";

			$logInfo  = DB::table('information')
							->where('id', $value->id)
							->first();
		
						
					if ($logInfo->monthlybenefit <= 2000 || ($logInfo->policy_number_full=='MMS/SPBST/05A10314' || $logInfo->policy_number_full=='MMS/SPBST/05A11920' || $logInfo->policy_number_full=='MMS/SPBST/05A885' || $logInfo->policy_number_full=='MMS/SPBST/05A12504' || $logInfo->policy_number_full=='MMS/SPBST/05A10768' || $logInfo->policy_number_full=='MMS/SPBST/05A11945' || $logInfo->policy_number_full=='MMS/SPBST/05A10585' || $logInfo->policy_number_full=='MMS/SPBST/05A12167' || $logInfo->policy_number_full=='MMS/SPBST/05A10461' || $logInfo->policy_number_full=='MMS/SPBST/05A11566' || $logInfo->policy_number_full=='MMS/SPBST/05A12607' || $logInfo->policy_number_full=='MMS/SPBST/A10313/1' || $logInfo->policy_number_full=='MMS/SPBST/A10608-1' || $logInfo->policy_number_full=='MMS/SPBST/05A11970' || $logInfo->policy_number_full=='MMS/SPBST/05A11985' || $logInfo->policy_number_full=='MMS/SPBST/05A11495' || $logInfo->policy_number_full=='MMS/SPBST/05A9600' || $logInfo->policy_number_full=='MMS/SPBST/05A12191' || $logInfo->policy_number_full=='MMS/SPBST/05A9874' || $logInfo->policy_number_full=='MMS/SPBST/05A12411' || $logInfo->policy_number_full=='MMS/SPBST/05A10691A' || $logInfo->policy_number_full=='MMS/SPBST/05A12040' || $logInfo->policy_number_full=='MMS/SPBST/05A11234' || $logInfo->policy_number_full=='MMS/SPBST/05A1016' || $logInfo->policy_number_full=='MMS/SPBST/05A10504' || $logInfo->policy_number_full=='MMS/SPBST/05A11242' || $logInfo->policy_number_full=='MMS/SPBST/05A11316' || $logInfo->policy_number_full=='MMS/SPBST/05A11145' || $logInfo->policy_number_full=='MMS/SPBST/05A10482' || $logInfo->policy_number_full=='MMS/SPBST/05A11131' || $logInfo->policy_number_full=='MMS/SPBST/05A9565-1')) {

					//	$this->fileuploader = new FileController();
					//	$this->helper = new HelperController();
				//	$file_path = $this->fileuploader->createMMSCoverLetterLowerAmount($logInfo->id);

					$dob = explode("/", $logInfo->dob);
					$dob_actual = $dob[2] . "-" . $dob[1] . "-" . $dob[0];
					$dob = Carbon::parse($dob_actual)->format('Y-m-d');
					$age = date_diff(date_create($dob), date_create($logInfo->insurance_startdate))->y;

					$monthly_premium = CommonComponent::fetchMonthlyCostSimpleCovea($age, $logInfo->monthlybenefit, $logInfo->typeofcover, $logInfo->excessperiod, $logInfo->product_id, 0);
					$new_premium=number_format($monthly_premium,2);
					//$new_benefit_amount=$logInfo->monthlybenefit;
					$new_benefit_amount=number_format($logInfo->monthlybenefit,2);
					//echo $monthly_premium;
					} else {
						//$file_path = FileController::createMMSCoverLetterHigherAmount($logInfo->id);
						$new_benefit_amount="2000.00";

						$dob = explode("/", $logInfo->dob);
					$dob_actual = $dob[2] . "-" . $dob[1] . "-" . $dob[0];
					$dob = Carbon::parse($dob_actual)->format('Y-m-d');
					$age = date_diff(date_create($dob), date_create($logInfo->insurance_startdate))->y;

					$monthly_premium = CommonComponent::fetchMonthlyCostSimpleCovea($age, 2000, $logInfo->typeofcover, $logInfo->excessperiod, $logInfo->product_id, 0);
					$new_premium=number_format($monthly_premium,2);
						}
				
			
			
			$final_data[$key]['Policy Number'] = $value->policy_number_full;
				
			
			$final_data[$key]['Name'] = $value->title . ' ' . $value->fname . ' ' . $value->lname;
			
			$final_data[$key]['Current Monthly Benefit'] = $value->monthlybenefit;
			$final_data[$key]['New Monthly Benefit'] = $new_benefit_amount;
			$final_data[$key]['Old Premium'] = $value->monthlycost;
			$final_data[$key]['New Premium'] = $new_premium;

		}					
		//print_r($final_data);
		// exit;
		return Excel::create('mms-leads-new-premium', function ($excel) use ($final_data) {

			$excel->sheet('mySheet', function ($sheet) use ($final_data) {
				$sheet->fromArray($final_data);
			});

		})->download('xlsx');
	}

	public static function updatemailtracker()
	{

		$mail_tracker = MailTracker::where('to_email', NULL)
		->limit(5000)
		->get();

	//	dd($mail_tracker);

		foreach($mail_tracker as $mail)
		{
			echo $mail->mt_id;
			$information=Information::where('id', $mail->mt_lead_id)
			->first();
			//dd($information);

			if($information){
			$mail_tracker_update= MailTracker::find($mail->mt_id);
			//dd($mail_tracker_update);

			//$mail_tracker_update->created_at=$mail->created_at;
			$mail_tracker_update->to_email=$information->email;
			$mail_tracker_update->save();
			}
			//exit;

		}

	}

	public static function mmscoverletters() {
		
		$mms_simple_policies = Information::where('status', 1)
				//	->where('insurance_startdate','LIKE', '%31')
					->whereIn('policy_number_full',['MMS/SPBST/05A11945','MMS/SPBST/05A10461','MMS/SPBST/05A11566','MMS/SPBST/05A11495','MMS/SPBST/05A11242'])
					->get();
		
		
		//dd($mms_simple_policies);
		//exit;
		
		foreach($mms_simple_policies as $logInfo)
		{
		$cover_letter_details = MmsCoverletterDetails::where('policy_number_full',$logInfo->policy_number_full)
						->first();
		if (@count($cover_letter_details) != 0) 
		{
		if ($logInfo->monthlybenefit <= 2000)  {

			$fileuploader = new FileController();
		//$helper = new HelperController();

			$file_path = $fileuploader->createMMSCoverLetterHigherAmount($logInfo->id);
		} else {
			$file_path = $fileuploader->createMMSCoverLetterHigherAmount($logInfo->id);
		}


		echo $file_path;
	//	exit;
		    

			$cover_letter_pdf = env('S3_BUCKET_URL') . $file_path;
			$email_data['cover_letter_pdf'] = $cover_letter_pdf;
			//$email_data['cc'] = "ranjith.nagabandi@quadone.com";
			$email_data['bcc'] = "it@bestinsurance.co.uk";
			$email_data['subject'] = "An Update Regarding Your Policy With Us";
			$email_data['from'] = "advisor@bestinsurance.co.uk";
			$email_data['email'] = $logInfo->email;
			if (env('SEND_EMAIL_ENV') == 'test') {
				$email_data['email'] = env('SEND_EMAIL_ID');
			}
			$email_data['first_name'] = $logInfo->fname;
			$email_data['last_name'] = $logInfo->lname;
			$email_data['title'] = $logInfo->title;

			

		$view = View::make('admin.mail.mail-mms-coverletter', ['first_name' => $email_data['first_name'], 'last_name' => $email_data['last_name'], 'title' => $email_data['title']]);

		
		
			
			$mailSuccess = Mail::send(['html' => 'admin.mail.mail-mms-coverletter'], $email_data, function ($message) use ($email_data) {
				$message->from($email_data['from']);
				$message->to($email_data['email'])
					->subject($email_data['subject']);
				/*if (!empty($email_data['cc'])) {
					$message->cc($email_data['cc']);
				}*/

				if (!empty($email_data['bcc'])) {
					$message->bcc($email_data['bcc']);
				}
				$display_name="MMS_SimpleIncome_Update.pdf";
				if (!empty($email_data['cover_letter_pdf'])) {
					$message->attach(str_replace(" ", "+", trim($email_data['cover_letter_pdf'])), ['as' => $display_name]);
				}
				
			});

		
		}

	}
		
	}
	public static function mmsmtaAutomation()
	{
			// $raf_started_date = config('raf.raf_started_date');
			$date = date('d');
				
			//	$date="01";
			echo $date;
				$mms_simple_policies = Information::where('status', 1)
					->where('insurance_startdate','LIKE', '%03')
					//->whereIn('policy_number_full',['BIG90/06005A2723MMS'])
				//	->where('policy_number_full','MMS/BIU/28A0105/SII')
				//	->where('reason','!=','10/2020 Price Increase')
				//	->where('mta_date',NULL)
					->whereNotIn('policy_number_full',['MMS/BIU/28A0105/SII','MMS/SPBST/05A10708','MMS/SPBST/5A11451/1','MMS/SPBST/05A9969','MMS/SPBST/05A11075','MMS/SPBST/05A10644','BIG90/06005A252MMS','BIG120/06005A3133MMS','BIG120/06005A696MMS','MMS/SPBST/05A652','BIG90/06005A3748MMS','BIG120/06005A687MMS','MMS/SPBST/05A10491','BIG120/06005A247MMS','MMS/SPBST/05A9639','BIG120/06005A1878MMS','MMS/SPBST/05A9724','MMS/SPBST/05A11667','MMS/SPBST/05A9529','MMS/SPBST/05A9693','BIG120/06005A2427MMS','BIG90/06005A1539MMS','BIG90/06005A448MMS','BIG120/06005A2511MMS','MMS/SPBST/05A12616','MMS/SPBST/05A210','BIG90/06005A1218MMS','MMS/SPBST/6005A404','BIG120/06005A1385MMS','MMS/SPBST/05A11411','BIG120/06005A3096MMS','BIG90/06005A1002MMS','MMS/SPBST/05A534','BIG120/06005A1104MMS','BIG90/06005A1178MMS','MMS/SPBST/05A11166','BIG120/06005A2494MMS','MMS/SPBST/05A9972','MMS/SPBST/05A12250','BIG120/06005A2478MMS','MMS/SPBST/05A12258','BIG90/06005A239MMS','MMS/SPBST/05A531','MMS/SPBST/05A10457','BIG90/06005A3590MMS','MMS/SPBST/05A12275','BIG120/06005A472MMS','MMS/SPBST/05A856','BIG90/06005A1336MMS','MMS/SPBST/05A9729','BIG120/06005A2688MMS','BIG90/06005A2501MMS','BIG120/06005A2044MMS','BIG120/06005A3092MMS','BIG120/06005A3097MMS','BIG90/06005A1046MMS','BIG120/06005A1258MMS','MMS/SPBST/5A10600/1','MMS/SPBST/05A1154','BIG90/06005A2826MMS','BIG120/06005A2833MMS','BIG90/06005A2063MMS','BIG120/06005A1978MMS','BIG90/06005A3169MMS','BIG90/06005A2527MMS','BIG90/06005A3126MMS','BIG120/06005A3069MMS','BIG90/06005A1471MMS','BIG90/06005A156MMS','BIG90/06005A3337MMS','MMS/SPBST/005A9679','MMS/SPBST/A10313/1','BIG120/06005A1477MMS','MMS/SPBST/05A804'])	
					
					->whereIn('product_id',['26','25','24'])
					->where('cancel_date', NULL)
					//->where('mta_date',NULL)
					//->limit(80)
					->get();

				//	dd($mms_simple_policies);
					
				//print_r($mms_simple_policies);
				//	exit;
				$total_records=0;
				foreach($mms_simple_policies as $key => $value)
				{
					
				
				//echo $policy['id']."<br/>\n";

					$logInfo  = Information::where('id', $value->id)
								->first();

					if($logInfo->mta_date!="2020-10-03")
					{
						$total_records=$total_records+1;

						//	print_r($logInfo);

					$log_id = HelperController::insertLogInfo($value->id);
					
					
					//	$this->fileuploader = new FileController();
					//	$this->helper = new HelperController();
				//	$file_path = $this->fileuploader->createMMSCoverLetterLowerAmount($logInfo->id);

					$dob = explode("/", $logInfo->dob);
					$dob_actual = $dob[2] . "-" . $dob[1] . "-" . $dob[0];
					$dob = Carbon::parse($dob_actual)->format('Y-m-d');
					$age = date_diff(date_create($dob), date_create($logInfo->insurance_startdate))->y;

					
					$new_benefit_amount=$logInfo->monthlybenefit;


					$monthly_premium = CommonComponent::fetchMonthlyCostSimpleCoveaMtaRenew($age, $new_benefit_amount, $logInfo->typeofcover, $logInfo->excessperiod, $logInfo->product_id, 0);
					$new_premium=number_format($monthly_premium,2);
			
					// mta functionality begins..updating information and log information tables as per the changes.


					$loan_data['monthlycost'] = $new_premium;
					$loan_data['mta_date'] = date('Y-m-d');
					$loan_data['reason'] = "10/2020 Price Increase";
				//	$loan_data['preferreddate'] = $information->preferreddate;
					$logInfo->monthlybenefit = $new_benefit_amount;
					$logInfo->monthlycost = $monthly_premium;
					$logInfo->mta_updated = 1;
					$logInfo->mta_date = date('Y-m-d');
					$logInfo->action = 'MTA';
					$logInfo->reason = "10/2020 Price Increase";
					//$data_info_update->age = $age;
					$update_info= $logInfo->save();   

					$version = DB::table('log_information')
					->select('version as last_version')
					->where('application_id', $value->id)
					->orderBy('version', 'desc')
					->first();

					$information = DB::table('information')
				//	->select('version as last_version')
					->where('id', $value->id)
					//->orderBy('version', 'desc')
					->first();

				if (empty($version)) {
					$version = 0;
				} else {
					$version = $version->last_version;
				}

					// Adding log information
				$logId = DB::table('log_information')
				->insertGetId([
					'application_id' => $information->id,
					'product_id' => $information->product_id,
					'title' => $information->title,
					'fname' => $information->fname,
					'lname' => $information->lname,
					'full_name' => $information->fname . " " . $information->lname,
					'dob' => $information->dob,
					'emp_status' => $information->emp_status,
					'occupation' => $information->occupation,
					'employer_name' => $information->employer_name,
					'building' => $information->building,
					'premiseName' => $information->premiseName,
					'address1' => $information->address1,
					'address2' => $information->address2,
					'address3' => $information->address3,
					'address4' => $information->address4,
					'postcode' => $information->postcode,
					'formattedPO' => $information->formattedPO,
					'postaltown' => $information->postaltown,
					'county' => $information->county,
					'email' => $information->email,
					'telephone' => $information->telephone,
					'mobile' => $information->mobile,
					'marketingOptOut' => $information->marketingOptOut,
					'under_writing_q1' => $information->under_writing_q1,
					'under_writing_ans' => $information->under_writing_ans,
					'under_writing_accept' => $information->under_writing_accept,
					'insurance_startdate' => $information->insurance_startdate,
					'transfer' => $information->transfer,
					'current_provider' => $information->current_provider,
					'current_policy_date' => $information->current_policy_date,
					'typeofcover' => $information->typeofcover,
					'loan_to_pay' => $information->loan_to_pay,
					'monthlycommitment' => $information->monthlycommitment,
					'monthlygrossincome' => $information->monthlygrossincome,
					'mortgagesalary' => $information->mortgagesalary,
					'mortgage' => $information->mortgage,
					'salary' => $information->salary,
					'age' => $information->age,
					'monthlybenefit' => $new_benefit_amount,
					'monthlycost' => $monthly_premium,
					'cover' => $information->cover,
					'cover_term' => $information->cover_term,
					'accept' => $information->accept,
					'accountname' => $information->accountname,
					'accountname2' => $information->accountname2,
					'accountnumber' => $information->accountnumber,
					'sortcode' => $information->sortcode,
					'iban' => $information->iban,
					'bank' => $information->bank,
					'bankbic' => $information->bankbic,
					'branch' => $information->branch,
					'branchbic' => $information->branchbic,
					'branch_address' => $information->branch_address,
					'town' => $information->town,
					'bank_postcode' => $information->bank_postcode,
					'bank_phone' => $information->bank_phone,
					'directdebits' => $information->directdebits,
					'preferreddate' => $information->preferreddate,
					'affid' => $information->affid,
					'ip' => $information->ip,
					'date_added' => $information->date_added,
					'time_added' => $information->time_added,
					'guid' => $information->guid,
					'status' => $information->status,
					'comment' => $information->comment,
					'mail_send' => $information->mail_send,
					'mms_senddate' => $information->mms_senddate,
					'mms_sendmonth' => $information->mms_sendmonth,
					'subscription' => $information->subscription,
					'formtype' => $information->formtype,
					'typeofprotection' => $information->typeofprotection,
					'excessperiod' => $information->excessperiod,
					'insurer' => $information->insurer,
					'smoker' => $information->smoker,
					'life_cover' => $information->life_cover,
					'life_cover_term' => $information->life_cover_term,
					'life_cover_type' => $information->life_cover_type,
					'life_cover_premium_type' => $information->life_cover_premium_type,
					'CIC' => $information->CIC,
					'lead_from' => $information->lead_from,
					'lead_source_field' => $information->lead_source_field,
					'benefit_period' => $information->benefit_period,
					'duration' => $information->duration,
					'duration_year' => $information->duration_year,
					'duration_month' => $information->duration_month,
					'contractor_deirectdebitref' => $information->contractor_deirectdebitref,
					'contractor_id' => $information->contractor_id,
					'policy_number' => $information->policy_number,
					'policy_number_full' => $information->policy_number_full,
					'mta_updated' => 1,
					'renew_updated' => '0',
					'insurance_enddate' => $information->insurance_enddate,
					'version' => $version + 1,
					'edit_updated' => $information->edit_updated,
					'mta_date' => date('Y-m-d'),
					'action' => 'MTA',
					'reason' => '10/2020 Price Increase',
				]);


				
				$activity = Activity::all()->last();
				$activity->description = "mta";
				$activity->save();
			//	exit;
		}
					
				
					

			
		}

		echo "Total records mta applied are ".$total_records;

	}

	public function rafmtamanual()
	{
		$raf_cron_id = "14640";
		$raf_update = RAFMtaLoanCron::find($raf_cron_id);
		//print_r($raf_update);
		//$logInfo = $this->raf_data;
		//Log::info("checking from raf scheduler job".print_r($this->raf_data));
		//Log::info("checking from raf scheduler job data".print_r($logInfo));
		//$raf_data = $this->raf_data;
		//echo $raf_update->info_id;
		$information = LogInformation::find($raf_update->info_id);
		//print_r($information);
		//exit;

		$loan_data['mta_date'] = $raf_update->mta_date;
		$loan_data['reason'] = $raf_update->reason;
		$loan_data['premium'] = $raf_update->new_premium;

		$result_data = RAFController::updateLoanCustomer($raf_update->CustomerId, $information->application_id, $loan_data, 'mta');

		print_r($result_data);
		echo $result_data['response']['Message'];
	//	exit;

		if ($result_data['http_code'] != 200) {

			$raf_update->raf_mta_error_message = $result_data['response']['Message'];
			$raf_update->save();
			throw new \ErrorException("Error in updating RAF loan customer");
		}

		//print_r($result_data);

		$raf_docs = RAFLoanDocuments::where('CustomerId', $raf_update->CustomerId)
			->where('action_type', "mta")
			->whereNull('log_info_id')
			->get();

		// print_r($raf_docs);

		foreach ($raf_docs as $raf_doc) {
			$raf_doc->log_info_id = $raf_update->info_id;
			$raf_doc->save();
		}

		$raf_update->status = 1;
		$raf_update->save();
	}

	public function documentstatus()
    {

		$documents_generated = RAFLoanDocuments::where('IsGenerated', 0)
		->where('primary_id','>','39611')
		->limit(10)
		->get();



		//dd($documents);

		foreach($documents_generated as $documents){

		$docuement_id = $documents->id;
		$customer_id = $documents->CustomerId;
		echo $docuement_id;
		echo $customer_id;
		//exit;

       // echo "<br>".$docuement_id;
      //  echo "<br>".date('Y-m-d H:i:s');
        $curl = curl_init();

        $post_data['SchemeId'] = config('raf.raf_scheme_id');       
        $post_data_raw_json = json_encode($post_data);

        $raf_get_document_status_api = config('raf.raf_get_document_status_api').$docuement_id."/view";

        curl_setopt_array($curl, array(
            CURLOPT_URL => $raf_get_document_status_api,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "GET",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS => $post_data_raw_json,
            CURLOPT_HTTPHEADER => array(
                "Authorization:".config('raf.raf_auth_key'),
                "Content-Type: application/json"
            ),
        ));

        $response = curl_exec($curl);
        $response = json_decode($response,true);
        $err = curl_error($curl);
        $info = curl_getinfo($curl);
		curl_close($curl);
		
		//dd($info);

        if (($err)) {
            // failure case
            $data['error'] = $err;
            $data['response'] = $response;
            $data['http_code'] = $info['http_code'];
            $delayInSeconds = 20;
            $this->release($delayInSeconds);
            throw new \ErrorException(json_encode($response));
        } elseif(($info['http_code']!=200)){
            //other than 200 status
            $data['response'] = $response;
            $data['http_code'] = $info['http_code'];
            $delayInSeconds = 20;
            $this->release($delayInSeconds);
            throw new \ErrorException(json_encode($response));
        }else {
            // success response
            $data['response'] = $response;
            $data['http_code'] = $info['http_code'];
            if($data['http_code'] == 200){
                $loan_doc = RAFLoanDocuments::where('id',$docuement_id)
               // ->where('CustomerId',$customer_id)
                ->whereNull('s3_url')
				->first();
			//	dd($loan_doc);
                if($loan_doc){
					echo "inthis";
                    $loan_doc->IsGenerated = 1;
                    $loan_doc->byte_data = $response['Data'];
					$loan_doc->save();
					print_r($documents);
					$information=LogInformation::where('id',$documents->log_info_id)->first();
				//	dd($information);
					$policy_number = str_replace('/', '_', $information->policy_number_full);
            
					$file_path_to_save = 'policy_documents/' . $policy_number."/raf/";
					$file_path_to_save = $file_path_to_save.$loan_doc->FileName;
			
					Storage::disk('s3')->put($file_path_to_save,base64_decode($loan_doc->byte_data));
					$loan_doc->s3_url = $file_path_to_save;
					$loan_doc->save();
			

                  //  dispatch(new DocumentSaveJob($docuement_id));
                } 
            }
        }
	}
        
    }

}
