<?php

class ApiController extends BaseController {

	/**
	 * Display a listing of the resource.
	 *
	 * @return Response
	 */
	public function api() {
		$input				 = Input::all();
		$callback			 = $input['callback'];
		$action				 = $input['action'];
		$allowActions	 = array('newLead', 'getVisitor', 'newVisit', 'updateLead');
		$referrer			 = false;

		if (in_array($action, $allowActions)) {
			switch ($action) {
				case 'getVisitor':
					$visitor = $this->getVisitor($input);
					if ($visitor) {
//						$redirectPage	 = null;
						$cookie = Cookie::forever('LeadStat_visitorId', $visitor->id);
						if (isset($input['abtest']) && $input['abtest'] == 'false') {
							$input['abtest'] = false;
						}
						elseif (isset($input['abtest']) && $input['abtest']) {
							$input['abtest'] = true;
						}

						if (isset($input['site_id']) && isset($input['abtest']) && $input['abtest'] && isset($input['abtest_scriptId'])) {
							$abtestScript = AbTestScript::find($input['abtest_scriptId']);
							if ($abtestScript) {
								$script = AbTestScriptVisitor::whereVisitorId($visitor->id)->whereSiteId($input['site_id'])->first();
								if (!$script) {
									AbTestScriptVisitor::create(array(
											'visitor_id'				 => $visitor->id,
											'site_id'						 => $input['site_id'],
											'ab_test_id'				 => $abtestScript->ab_test_id,
											'ab_test_script_id'	 => $abtestScript->id,
											'date'							 => DB::raw('CURRENT_DATE()')
									));
								}
							}
						}
//						if (isset($input['site_id']) && isset($input['abtest']) && $input['abtest']) {
//							$abtestpages = AbTestPage::leftJoin('ab_tests', function ($join) {
//												$join->on('ab_tests.id', '=', 'ab_test_pages.ab_test_id');
//											})
//											->where('ab_tests.enabled', '=', 1)
//											->where('ab_tests.site_id', '=', $input['site_id'])
//											->select('ab_test_pages.id')
//											->get();
//							if ($abtestpages->count()) {
//								$page = AbTestPageVisitor::whereVisitorId($visitor->id)->whereSiteId($input['site_id'])->first();
//								if ($page) {
//									$redirectPage = $page->abTestPage->url;
//								}
//								else {
//									$abtestpage = AbTestPage::leftJoin('ab_test_page_visitors', function ($join) {
//														$join->on('ab_test_page_visitors.ab_test_page_id', '=', 'ab_test_pages.id')
//														->on('ab_test_page_visitors.date', '=', DB::raw('CURRENT_DATE()'));
//													})
//													->leftJoin('ab_tests', function ($join) {
//														$join->on('ab_tests.id', '=', 'ab_test_pages.ab_test_id');
//													})
//													->where('ab_tests.enabled', '=', 1)
//													->groupBy('ab_test_pages.id')
//													->orderBy('cnt', 'ASC')
//													->select(DB::raw('COUNT(ab_test_pages.id) as cnt, ab_test_pages.id, ab_test_pages.ab_test_id, ab_test_pages.url'))
//													->first();
//									if ($abtestpage) {
//										$redirectPage	 = $abtestpage->url;
//										$page					 = AbTestPageVisitor::create(array(
//																'visitor_id'			 => $visitor->id,
//																'site_id'					 => $input['site_id'],
//																'ab_test_id'			 => $abtestpage->ab_test_id,
//																'ab_test_page_id'	 => $abtestpage->id,
//																'date'						 => DB::raw('CURRENT_DATE()')
//										));
//									}
//								}
//							}
//						}

						$response = array(
								'status'		 => 'success',
								'visitorId'	 => $visitor->id,
//								'redirectPage' => $redirectPage
						);
						return Response::json($response)->setCallback($callback)->withCookie($cookie);
					}
					break;
				case 'newVisit':
					if (!isset($input['siteId']) || !is_numeric($input['siteId'])) {
						return \App::abort(404);
					}

					$visitor = $this->getVisitor($input);
					if ($visitor) {
						$site = Site::find($input['siteId']);
						if ($site) {
							$visit = Visit::whereRaw(DB::raw('updated_at > DATE_SUB(NOW(), interval 1 HOUR)'))->whereVisitorId($visitor->id)->whereProjectId($site->project->id)->whereSiteId($site->id)->first();
							if ($visit) {
								$visit->increment('views');
							}
							else {
//								if ($input['siteId'] == 85) {
//									$count = Visit::whereSiteId($input['siteId'])->where('params', 'LIKE', '%utm_source":"hiconversion%')->count();
//									if ($count < 10) {
//										$smsc	 = new SMSCService();
//										$smsc->sendSMS("79033243597,79063959102", "21 способ - новый визит {$count}");
//									}
//								}
								$referrer			 = '';
								$referrerHost	 = '';
								$searchWord		 = '';
								$url					 = '';
								if (!isset($input['params'])) {
									$input['params'] = array();
								}
								$IDN = new IDNAConvert();
								if (isset($input['referrer']) && $input['referrer'] != 'false') {
									$referrer	 = urldecode($input['referrer']);
									$referrer	 = $IDN->decode($referrer);

									$searchInfo = $this->getSearchEngineInfo($referrer);
									if ($searchInfo['searchWord'] || $searchInfo['searchEngine']) {
										$referrerHost	 = $searchInfo['searchEngine'];
										$searchWord		 = $searchInfo['searchWord'];
									}
								}

								if (isset($input['url'])) {
									$url = urldecode($input['url']);
									$url = $IDN->decode($url);
									if (mb_detect_encoding($url, 'UTF-8', true) === false) {
										$url = utf8_encode($url);
									}
								}
								$visit = Visit::create(array(
														"url"			 => $url,
														"referrer" => $referrer,
														"params"	 => json_encode($input['params'])
								));
								$visit->visitor()->associate($visitor);
								$visit->project()->associate($site->project);
								$visit->site()->associate($site);

								if ($referrerHost && $referrerHost != '') {
									$referrer = VisitReferrer::whereName($referrerHost)->first();
									if (!$referrer) {
										$referrer = VisitReferrer::create(array('name' => $referrerHost));
									}
									$visit->visitReferrer()->associate($referrer);
								}
								if ($searchWord && $searchWord != '') {
									$word = VisitWord::whereName($searchWord)->first();
									if (!$word) {
										$word = VisitWord::create(array('name' => $searchWord));
									}
									$visit->visitWord()->associate($word);
								}
								$params = array();
								foreach ($input['params'] as $key => $value) {
									$value = urldecode($value);
									$param = VisitParam::whereName($key)->first();
									if (!$param) {
										$param = VisitParam::create(array('name' => $key));
									}
									$params[$param->id] = array('value' => $value);
								}
								if (!empty($params)) {
									$visit->visitParams()->sync($params);
								}

								$visit->cost = 0;
								$params			 = array();
								$visitCosts	 = VisitCost::whereProjectId($site->project->id)->get();
								foreach ($input['params'] as $key => $value) {
									$params [] = "{$key}={$value}";
								}
								foreach ($visitCosts as $visitCost) {
									$costParams	 = explode("&", $visitCost->name);
									$result			 = array_diff($costParams, $params);
									if (!count($result)) {
										$visit->cost = $visitCost->cost;
									}
								}

								$visit->save();
							}
						}


						$cookie = Cookie::forever('LeadStat_visitorId', $visitor->id);

						$response = array(
								'status'		 => 'success',
								'visitorId'	 => $visitor->id,
						);
						return Response::json($response)->setCallback($callback)->withCookie($cookie);
					}
					break;
				case 'newLead':
					if (!isset($input['siteId']) || !is_numeric($input['siteId'])) {
						return \App::abort(404);
					}

					$visitor = $this->getVisitor($input);
					if ($visitor) {
						$referrer			 = '';
						$referrerHost	 = '';
						$searchWord		 = '';
						if (isset($input['referrer']) && $input['referrer'] != 'false') {
							$referrer	 = urldecode($input['referrer']);
							$IDN			 = new IDNAConvert();
							$referrer	 = $IDN->decode($referrer);

							$searchInfo = $this->getSearchEngineInfo($referrer);
							if ($searchInfo['searchWord'] || $searchInfo['searchEngine']) {
								$referrerHost	 = $searchInfo['searchEngine'];
								$searchWord		 = $searchInfo['searchWord'];
							}
						}

						if (!isset($input['entrypoint'])) {
							$input['entrypoint'] = '';
						}
						if (!isset($input['name'])) {
							$input['name'] = '';
						}
						if (!isset($input['email'])) {
							$input['email'] = '';
						}
						if (!isset($input['phone'])) {
							$input['phone'] = '';
						}
						if ((!$input['phone'] || $input['phone'] == '') && $input['email'] && $input['email'] != '') {
							$oldLead = Lead::withTrashed()->whereEmail($input['email'])->where('phone', '!=', '')->first();
							if ($oldLead) {
								$input['phone'] = $oldLead->phone;
							}
						}
						if (!isset($input['data'])) {
							$input['data'] = '';
						}
						if (is_array($input['data'])) {
							$input['data'] = json_encode($input['data']);
						}

						$site = Site::find($input['siteId']);
						if ($site) {
							$visit = Visit::whereVisitorId($visitor->id)->whereProjectId($site->project->id)->whereSiteId($site->id)->orderBy('created_at', 'DESC')->first();

							$lastLead = Lead::withTrashed()->whereProjectId($site->project->id)->orderBy('created_at', 'DESC')->first();
							if ($lastLead) {
								$leadCost = Visit::whereRaw(DB::raw('created_at>?'), array($lastLead->created_at))->whereSiteId($site->id)->sum('cost');
							}
							else {
								$leadCost = Visit::whereProjectId($site->project->id)->sum('cost');
							}

							$lead = Lead::create(array(
													"entrypoint"		 => $input['entrypoint'],
													"name"					 => $input['name'],
													"phone"					 => $this->preparePhone($input['phone']),
													"email"					 => $input['email'],
													"referrer"			 => $referrer,
													"referrer_host"	 => $referrerHost,
													"search_word"		 => $searchWord,
													"data"					 => $input['data'],
													"cost"					 => round($leadCost / 100, 2),
							));
							$lead->visitor()->associate($visitor);
							if ($visit) {
								$lead->visit()->associate($visit);
							}
							$lead->project()->associate($site->project);
							$lead->site()->associate($site);
							$lead->save();

							if ($site->id == 85) {
								$smsc = new SMSCService();
								$smsc->sendSMS("79033243597,79063959102", "21 способ {$input['email']}");
							}
						}

						$response = array(
								'status'		 => 'success',
								'visitorId'	 => $visitor->id,
								'leadId'		 => $lead->id,
								'input'			 => $input
						);
						return Response::json($response)->setCallback($callback);
					}
					break;
				case 'updateLead':
					if (!is_numeric($input['siteId'])) {
						return \App::abort(404);
					}

					$visitor = $this->getVisitor($input);
					if ($visitor) {
						if (isset($input['data'])) {
							DB::table('leads')
											->where('visitor_id', $visitor->id)
											->update(array('data' => json_encode($input['data'])));
						}

						$response = array(
								'status'		 => 'success',
								'visitorId'	 => $visitor->id,
								'input'			 => $input
						);
						return Response::json($response)->setCallback($callback);
					}
					break;
			}
		}

		$response = array(
				'status' => 'false'
		);
		return Response::json($response)->setCallback($callback);
	}

	public function papi() {
		$input		 = Input::all();
		$referrer	 = false;

		if (!is_numeric($input['site_id'])) {
			return \App::abort(404);
		}

		if (isset($input['referrer']) && $input['referrer'] != 'false') {
			$referrer	 = urldecode($input['referrer']);
			$IDN			 = new IDNAConvert();
			$referrer	 = $IDN->decode($referrer);

			$searchInfo = $this->getSearchEngineInfo($referrer);
			if ($searchInfo['searchWord'] || $searchInfo['searchEngine']) {
				$referrerHost	 = $searchInfo['searchEngine'];
				$searchWord		 = $searchInfo['searchWord'];
			}
		}
		else {
			$referrer			 = '';
			$referrerHost	 = '';
			$searchWord		 = '';
		}

		if (!isset($input['entrypoint'])) {
			$input['entrypoint'] = '';
		}
		if (!isset($input['name'])) {
			$input['name'] = '';
		}
		if (!isset($input['phone'])) {
			$input['phone'] = '';
		}
		if (!isset($input['email'])) {
			$input['email'] = '';
		}
		if (!isset($input['data'])) {
			$input['data'] = '';
		}

		$site = Site::find($input['site_id']);
		if ($site) {
			Lead::create(array(
					"site_id"				 => $input['site_id'],
					"project_id"		 => $site->project_id,
					"entrypoint"		 => $input['entrypoint'],
					"name"					 => $input['name'],
					"phone"					 => $this->preparePhone($input['phone']),
					"email"					 => $input['email'],
					"referrer"			 => $referrer,
					"referrer_host"	 => $referrerHost,
					"search_word"		 => $searchWord,
					"data"					 => $input['data'],
			));
			return json_encode(array('success' => 1, 'inputData' => $input));
		}
		else {
			return json_encode(array('success' => 0, 'inputData' => $input));
		}
	}

	public function papiLeadOrder() {
		$input = Input::all();

		if (!is_numeric($input['lead_id'])) {
			return \App::abort(404);
		}

		$input['sum']	 = intval($input['sum']);
		$lead					 = Lead::find($input['lead_id']);
		if ($lead) {
			$lead->order_sum = round($input['sum'] / 100, 2);
			$lead->save();
			return json_encode(array('success' => 1, 'inputData' => $input));
		}
		else {
			return json_encode(array('success' => 0, 'inputData' => $input));
		}
	}

	public function papiLeadPay() {
		$input = Input::all();

		if (!is_numeric($input['lead_id'])) {
			return \App::abort(404);
		}

		$input['sum']	 = intval($input['sum']);
		$lead					 = Lead::find($input['lead_id']);
		if ($lead) {
			$lead->payment_sum = round($input['sum'] / 100, 2);
			$lead->save();
			return json_encode(array('success' => 1, 'inputData' => $input));
		}
		else {
			return json_encode(array('success' => 0, 'inputData' => $input));
		}
	}

	public function robokassaPay() {
		$input = Input::all();

		if (!is_numeric($input['project_id'])) {
			return \App::abort(404);
		}
		$project = Project::find(e($input['project_id']));
		if (!$project || !$project->usebudget) {
			return \App::abort(404);
		}
		$budgetAccountRecipient = BudgetAccount::whereProjectId($project->id)->where('isrobokassa', '=', 1)->first();
		if (!$budgetAccountRecipient) {
			return \App::abort(404);
		}

		$input['sum'] = intval($input['sum']);

		$budgetOperation				 = BudgetOperation::create(array(
								'isuploaded'						 => 0,
								'user_id'						     => 1,
								'project_id'				     => $project->id,
								'date'									 => date('Y-m-d'),
								'amount'						     => round($input['sum'] / 100, 2),
								'bank_id'								 => 0,
								'type'									 => BudgetOperation::TYPE_INCOMING,
								'budget_cost_id'				 => 0,
								'budget_partner_id'			 => $project->budgetPartners->first()->id,
								'budget_in_account_id'	 => $budgetAccountRecipient->id,
								'budget_out_account_id'	 => 0,
								'comment'								 => "Оплата по Робокассе: {$input['comment']}",
                'from_api'							 => 1
		));
    // здесь перестало работать сохранение после добавления функционала истории операции
		//$budgetOperation->user()->associate(User::find(1));
		//$budgetOperation->project()->associate($project);
		//$budgetOperation->amount = round($input['sum'] / 100, 2);
		//$budgetOperation->save();

		return json_encode(array('success' => 1, 'inputData' => $input));
	}

	public function budgetPay()
	{
		$input = Input::all();

		if (!is_numeric($input['project_id'])) {
			return json_encode(array('success' => 0, 'message' => 'Wrong project number', 'inputData' => $input));
		}
		$project = Project::find(e($input['project_id']));
		if (!$project || !$project->usebudget) {
			return json_encode(array('success' => 0, 'message' => 'Project not found', 'inputData' => $input));
		}

		// счет в проекте, на который зачисляется
		$account_id = isset($input['account_id']) ? $input['account_id'] : '';
		$account_num = isset($input['account_num']) ? $input['account_num'] : '';
		$workBudgetAccount = '';

		// есть id
		if ($account_id != null) {
			if (is_numeric($account_id)) {
				$workBudgetAccount = BudgetAccount::whereProjectId($project->id)->whereId($account_id)->whereNoupload(0)->first();
				if (!$workBudgetAccount) {
					return json_encode(array('success' => 0, 'message' => 'Account not found in this project', 'inputData' => $input));
				}
			} else {
				return json_encode(array('success' => 0, 'message' => 'Wrong account Id', 'inputData' => $input));
			}
		} // есть номер счета
		else if ($account_num != null) {
			if (is_numeric($account_num)) {
				$workBudgetAccount = BudgetAccount::whereProjectId($project->id)->whereCurrentAccount($account_num)->whereNoupload(0)->first();
				if (!$workBudgetAccount) {
					return json_encode(array('success' => 0, 'message' => 'Account not found in this project', 'inputData' => $input));
				}
			} else {
				return json_encode(array('success' => 0, 'message' => 'Wrong account Number', 'inputData' => $input));
			}
		} // не пришло ничего
		else {
			return json_encode(array('success' => 0, 'message' => 'Account Id or Number are required', 'inputData' => $input));
		}

		$input['sum'] = intval($input['sum']);

		$budgetOperation = BudgetOperation::create(array(
			'isuploaded' => 0,
			'user_id' => 1,
			'project_id' => $project->id,
			'date' => date('Y-m-d'),
			'amount' => round($input['sum'] / 100, 2),
			'bank_id' => 0,
			'type' => BudgetOperation::TYPE_INCOMING,
			'budget_cost_id' => 0,
			'budget_partner_id' => $project->budgetPartners->first()->id,
			'budget_in_account_id' => $workBudgetAccount->id,
			'budget_out_account_id' => 0,
			'isnoincome' => 1,
			'comment' => $input['comment'],
			'from_api' => 1
		));

		return json_encode(array('success' => 1, 'inputData' => $input));
	}

	public function getIncomingSum()
	{
		$input = Input::all();

		if (!is_numeric($input['project_id'])) {
			return json_encode(array('success' => 0, 'message' => 'Wrong project number', 'inputData' => $input));
		}
		$project = Project::find(e($input['project_id']));
		if (!$project || !$project->usebudget) {
			return json_encode(array('success' => 0, 'message' => 'Project not found', 'inputData' => $input));
		}

//		$startDate = isset($input['start_date']) ? $input['start_date'] : date("Y-m-d");
//		$endDate = isset($input['end_num']) ? $input['end_num'] : date("Y-m-d");

		$today = date("Y-m-d");
		$yeasterday = date("Y-m-d", time() - 60 * 60 * 24);

		$sumToday = $project->budgetOperations()->whereType(BudgetOperation::TYPE_INCOMING)->whereIsnoincome(0)->where('date', '=', $today)->sum('amount');

		$sumYearstaday = $project->budgetOperations()->whereType(BudgetOperation::TYPE_INCOMING)->whereIsnoincome(0)->where('date', '=', $yeasterday)->sum('amount');

		return json_encode(array('success' => 1, 'dateToday' => $today, 'dateYeasterday' => $yeasterday, 'sumToday' => $sumToday, 'sumYeasterday' => $sumYearstaday));
	}

	private function getVisitor($input) {
		$visitor	 = null;
		$visitorId = null;
		if (isset($input['visitorId'])) {
			$visitorId = $input['visitorId'];
		}
		if (!$visitorId) {
			$visitorId = Cookie::get('LeadStat_visitorId');
		}
		if ($visitorId) {
			$visitor = Visitor::find($visitorId);
		}
		if (!$visitor) {
			$visitor = Visitor::create(array());
		}
		return $visitor;
	}

	private function getSearchEngineInfo($referrer) {
		$searchEngines	 = array(
				'yandex.'				 => 'text',
				'google.'				 => 'q',
				'mail.ru'				 => 'q',
				'rambler.'			 => 'query',
				'bing.'					 => 'q',
				'webalta.'			 => 'q',
				'nigma.'				 => 's',
				'search.qip.'		 => 'query',
				'yahoo.'				 => 'p',
				'live.'					 => 'q',
				'msn.'					 => 'q',
				'aol.'					 => 'query',
				'aol.'					 => 'encquery',
				'lycos.'				 => 'query',
				'ask.'					 => 'q',
				'altavista.'		 => 'q',
				'netscape.'			 => 'query',
				'cnn.'					 => 'query',
				'looksmart.'		 => 'qt',
				'about.'				 => 'terms',
				'mamma.'				 => 'query',
				'alltheweb.'		 => 'q',
				'gigablast.'		 => 'q',
				'voila.'				 => 'rdata',
				'virgilio.'			 => 'qs',
				'baidu.'				 => 'wd',
				'alice.'				 => 'qs',
				'najdi.'				 => 'q',
				'aol.'					 => 'q',
				'club-internet.' => 'q',
				'mama.'					 => 'query',
				'seznam.'				 => 'q',
				'search.'				 => 'q',
				'szukaj.'				 => 'szukaj',
				'szukaj.'				 => 'qt',
				'netsprint.'		 => 'q',
				'szukacz.'			 => 'q',
				'yam.'					 => 'k',
				'pchome.'				 => 'q',
				'rambler.ru'		 => 'words',
				'meta.ua'				 => 'q',
				'bigmir.net'		 => 'q',
				'aport.ru'			 => 'r',
				'a-counter'			 => 'sub_data',
				'i.ua'					 => 'q'
		);
		$swReferrerHost	 = parse_url($referrer, PHP_URL_HOST);
		$swReferrerQuery = parse_url($referrer, PHP_URL_QUERY);

		$queryItems = array();
		parse_str($swReferrerQuery, $queryItems);

		$searchWord = false;
		foreach ($searchEngines as $needle => $param) {
			if (strpos($swReferrerHost, $needle) !== false && !empty($queryItems[$param])) {
				$searchWord = urldecode($queryItems[$param]);
				break;
			}
		}

		return array('searchEngine' => $swReferrerHost, 'searchWord' => $searchWord);
	}

	public function abtest($siteId) {
		$abtestScripts = AbTestScript::leftJoin('ab_tests', function ($join) {
							$join->on('ab_tests.id', '=', 'ab_test_scripts.ab_test_id');
						})
						->where('ab_tests.enabled', '=', 1)
						->where('ab_tests.site_id', '=', $siteId)
						->select(array(DB::raw('ab_test_scripts.id, ab_test_scripts.script')))
						->get();

		$abtestScript = AbTestScript::leftJoin('ab_test_script_visitors', function ($join) {
							$join->on('ab_test_script_visitors.ab_test_script_id', '=', 'ab_test_scripts.id')
							->on('ab_test_script_visitors.date', '=', DB::raw('CURRENT_DATE()'));
						})
						->leftJoin('ab_tests', function ($join) {
							$join->on('ab_tests.id', '=', 'ab_test_scripts.ab_test_id');
						})
						->where('ab_tests.enabled', '=', 1)
						->where('ab_tests.site_id', '=', $siteId)
						->groupBy('ab_test_scripts.id')
						->orderBy('cnt', 'ASC')
						->select(DB::raw('COUNT(ab_test_scripts.id) as cnt, ab_test_scripts.id, ab_test_scripts.ab_test_id, ab_test_scripts.script'))
						->first();

		$content = View::make('abtest')->with("abtestScripts", $abtestScripts)->with("abtestScript", $abtestScript)->render();

		return Response::make($content)->header('Content-Type', 'application/javascript');
	}

    /**
     *  Создает нового клиента в partners
     */
    public function createParther() {
		$input = Input::all();
        $phone = urldecode($input['phone']);
        $email = urldecode($input['email']);

        // Проект
		if (!isset($input['project_id']) || !is_numeric($input['project_id'])) {
			return Response::json(array('success' => 0, 'message' => 'Wrong project id', 'inputData' => $input));
		}
		$project = Project::find(e($input['project_id']));
		if (!$project) {
			return Response::json(array('success' => 0, 'message' => 'Project not find', 'inputData' => $input));
		}
        // Менеджер
		if (!isset($input['user_id']) || !is_numeric($input['user_id'])) {
			return Response::json(array('success' => 0, 'message' => 'Wrong manager id ', 'inputData' => $input));
		}
		$user = User::find($input['user_id']);
		if (!$user) {
			return Response::json(array('success' => 0, 'message' => 'Manager not find', 'inputData' => $input));
		}

        // есть ли уже такие клиенты
        $clientCopy = Partner::wherePhone($phone)->orWhere('email',$email)->first();
        if(!$clientCopy){
            try {
                $newClient = Partner::create(array(
                                            'project_id'	   => $project->id,
                                            'user_id'		   => $user->id,
                                            'info_source_id'   => 0,
                                            'status'		   => Partner::STATUS_WORK,
                                            'name'			   => urldecode($input['name']),
                                            'phone'			   => $phone,
                                            'email'			   => $email,
                                            'comment'		   => 'Сайт: '.urldecode($input['website']).'. Комментарии: '.urldecode($input['comment']),
                                            'salenextdatetime' => DB::raw('NOW()'),
                                            'city' => urldecode($input['city'])
                ));
                Refrence::create(array(
                                            'partner_id'	  => $newClient->id,
                                            'comment'		  => 'Клиент отправлен из crm.whitesaas.com. WS id-'.$input['ws_id'],
                                            'status'		  => Partner::STATUS_WORK,
                                            'sender_user_id'  => $user->id,
                                            'reciver_user_id' => $user->id
                ));

                if($newClient){
                    return Response::json(array('success' => 1, 'ldst_client_id' => $newClient->id));
                }
            } catch (Exception $e) {
                return Response::json(array('success' => 0, 'message' => 'Ошибка создания клиента в Leadstat', 'inputData' => $input.' Exception:'.$e));
			}
        }
        else {
            return Response::json(array('success' => 0, 'iscopy' => 1, 'ldst_client_id' => $clientCopy->id));
        }
        
        return Response::json(array('success' => 0, 'message' => 'Ошибка создания клиента в Leadstat', 'inputData' => $input));
	}
}
