File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/APIVisitsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Validator;
use DB;
use App\Library\UserLib;
use App\Models\User;
use App\Models\Product;
use App\Models\Customer;
use App\Models\PriceBookEntry;
use App\Models\Order;
use App\Models\OrderItems;
use App\Models\OrderStatus;
use App\Models\Countries;
use App\Models\PaymentType;
use App\Models\Visits;
use App\Models\VisitCustomer;
use App\Models\BeatPlan;
use App\Models\BeatPlanCustomer;
use App\Models\Expense;
use App\Models\ExpenseType;
use App\Models\ExpenseTypeTravel;
use App\Models\SalesArea;
use App\Models\SalesTerritory;
use App\Models\VisitNotes;
use DateTime;
use App\Http\Controllers\APICommonController;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\File;
class APIVisitsController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $userLib;
protected $dateFormat = 'dd-mm-yyyy';
protected $APICommonController;
public function __construct(UserLib $userLib, APICommonController $APICommonController)
{
$this->userLib = $userLib;
$this->APICommonController = $APICommonController;
}
//createVisits
public function createVisit(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$VisitId = $this->userLib->useridGenrator();
$CreatedDate = date('Y-m-d H:i:s',time());
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$CustomerIds = $data['CustomerIds'];
$CustomerIds = json_decode(json_encode($CustomerIds), true);
$cid = '';
if(count($CustomerIds) > 0)
{
for($p = 0; $p < count($CustomerIds); $p++)
{
$custid = $CustomerIds[$p];
$cid .= $custid.',';
}
}
$VisitDate = isset($data['VisitDate']) ? $data['VisitDate'] : '';
$cid = rtrim($cid, ',');
if(strtoupper($data['VisitType']) == "INDIVIDUAL")
{
if(count($CustomerIds) > 0)
{
for($i = 0; $i < count($CustomerIds); $i++)
{
$CustomerId = $CustomerIds[$i];
$cvdata = array();
// $cvdata['VisitCustomerId'] = $this->userLib->useridGenrator();
// $cvdata['VisitId'] = $VisitId;
// $cvdata['VisitDate'] = $data['VisitDate'];
// $cvdata['CustomerId'] = $CustomerId;
// $cvdata['Status'] = '1';
// $cvdata['IsDeleted'] = '0';
// $cvdata['Updated_at'] = $CreatedDate;
// $cvdata['Created_at'] = $CreatedDate;
// $cvdata['Created_by'] = $UserId;
// $cvdata['Updated_by'] = $UserId;
// $Visitsc_insert = VisitCustomer::insert($cvdata);
// if($Visitsc_insert)
// {
// }
$VisitNo = "VISIT-" . time() . '-' . rand();
$cvdata['VisitNo'] = $VisitNo;
$cvdata['CustomerId'] = $CustomerId;
$VisitId = $this->userLib->useridGenrator();
$cvdata['VisitId'] = $VisitId;
$cvdata['VisitType'] = $data['VisitType'];
$cvdata['SalesAreaId'] = $data['SalesAreaId'];
$cvdata['UserId'] = $data['UserId'];
$cvdata['OwnerId'] = $data['OwnerId'];
$cvdata['Status'] = '1';
$cvdata['IsDeleted'] = '0';
$cvdata['VisitDate'] = $VisitDate;
$cvdata['Updated_at'] = $CreatedDate;
$cvdata['Created_at'] = $CreatedDate;
$cvdata['AssignTo'] = $UserId;
$cvdata['Created_by'] = $UserId;
$cvdata['Updated_by'] = $UserId;
$Visits_insert = Visits::insert($cvdata);
$VisitType = isset($data['VisitType']) ? $data['VisitType'] : '';
$SalesAreaId = isset($data['SalesAreaId']) ? $data['SalesAreaId'] : '';
$UserId = isset($data['UserId']) ? $data['UserId'] : '';
$VisitDate = isset($data['VisitDate']) ? $data['VisitDate'] : '';
$Approved = isset($data['Approved']) ? $data['Approved'] : '';
$BeatPlanId = isset($data['BeatPlanId']) ? $data['BeatPlanId'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '0';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '0';
$OwnerId = isset($data['OwnerId']) ? $data['OwnerId'] : '';
$Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$VisitQuery = "insert into salesforce.Visit__c (Visit_Id__c,Visit_Type__c,Sales_Area_Id__c,User_Id__c,Visit_Date__c,Approved__c,BeatPlan_Id__c,CreatedDate,Updated_by__c,Fb_Status__c,IsDeleted__c,Fb_OwnerId__c,Fb_Created_By__c,Name) values ('$VisitId','$VisitType','$SalesAreaId','$UserId','$VisitDate','$Approved','$BeatPlanId','$CreatedDate','$Updated_by','$Status','$IsDeleted','$OwnerId','$Created_by','$VisitNo')";
DB::connection('pgsql')->insert($VisitQuery);
}
}
}
else
{
$BeatPlanId = isset($data['BeatPlanId']) ? $data['BeatPlanId'] : '';
//BeatPlanId
$BeatPlanName = '';
$BeatPlanCustomers = BeatPlanCustomer::where('BeatPlanId', $BeatPlanId)->get();
if ($BeatPlanCustomers->count() > 0)
{
foreach ($BeatPlanCustomers as $key => $BPValue)
{
$CustomerId = $BPValue->CustomerId;
$cvdata = array();
$g_visit = "VISIT-" . time() . '-' . rand();
$cvdata['VisitNo'] = $g_visit;
$cvdata['CustomerId'] = $CustomerId;
$cvdata['VisitId'] = $this->userLib->useridGenrator();
$cvdata['VisitType'] = $data['VisitType'];
$cvdata['SalesAreaId'] = $data['SalesAreaId'];
$cvdata['BeatPlanId'] = $data['BeatPlanId'];
$cvdata['UserId'] = $data['UserId'];
$cvdata['OwnerId'] = $data['OwnerId'];
$cvdata['Status'] = '1';
$cvdata['IsDeleted'] = '0';
$cvdata['VisitDate'] = $VisitDate;
$cvdata['Updated_at'] = $CreatedDate;
$cvdata['Created_at'] = $CreatedDate;
$cvdata['Created_by'] = $UserId;
$cvdata['AssignTo'] = $UserId;
$cvdata['Updated_by'] = $UserId;
$Visits_insert = Visits::insert($cvdata);
$VisitType = isset($data['VisitType']) ? $data['VisitType'] : '';
$SalesAreaId = isset($data['SalesAreaId']) ? $data['SalesAreaId'] : '';
$UserId = isset($data['UserId']) ? $data['UserId'] : '';
$VisitDate = isset($data['VisitDate']) ? $data['VisitDate'] : '';
$Approved = isset($data['Approved']) ? $data['Approved'] : '';
$BeatPlanId = isset($data['BeatPlanId']) ? $data['BeatPlanId'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '0';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '0';
$OwnerId = isset($data['OwnerId']) ? $data['OwnerId'] : '';
$Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$VisitQuery = "insert into salesforce.Visit__c (Visit_Id__c,Visit_Type__c,Sales_Area_Id__c,User_Id__c,Visit_Date__c,Approved__c,BeatPlan_Id__c,CreatedDate,Updated_by__c,Fb_Status__c,IsDeleted__c,Fb_OwnerId__c,Fb_Created_By__c,Name) values ('$VisitId','$VisitType','$SalesAreaId','$UserId','$VisitDate','$Approved','$BeatPlanId','$CreatedDate','$Updated_by','$Status','$IsDeleted','$OwnerId','$Created_by','$g_visit')";
DB::connection('pgsql')->insert($VisitQuery);
}
}
}
$Visits = Visits::select('*')
->where('VisitId',$VisitId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get()->first();
$response = [
'Success' => true,
'ResponseMessage' => "Visits has been created",
'ResponseCode' => "200",
'Visits' => $Visits,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'VisitQuery' =>$VisitQuery
];
return response()->json($response);
}
//updateVisits
public function updateVisit(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$CreatedDate = date('Y-m-d H:i:s',time());
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$VisitId = $data['VisitId'];
$data['Updated_at'] = $CreatedDate;
$data['Updated_by'] = $UserId;
unset($data['VisitId']);
if(isset($data['CheckedOut']))
{
$CheckedIn = $data['CheckedIn'];
$CheckedOut = $data['CheckedOut'];
$start_time = new DateTime($CheckedIn);
$end_time = new DateTime($CheckedOut);
$interval = $start_time->diff($end_time);
$h =($interval->format("%a") * 24) + $interval->format("%h");
$hour = $h. 'hour';
if($h > 1)
{
$hour = $h. 'hours';
}
$TotalSpentTime = $hour. $interval->format(" %i minutes ");
$data['TotalSpentTime'] = $TotalSpentTime;
}
$Visits_update = Visits::where('VisitId',$VisitId)->update($data);
if($Visits_update)
{
$VisitDate = isset($data['VisitDate']) ? $data['VisitDate'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$CheckedInLatitude = isset($data['CheckedInLocationLatitude']) ? $data['CheckedInLocationLatitude'] : '';
$CheckedInLongitude = isset($data['CheckedInLocationLongitude']) ? $data['CheckedInLocationLongitude'] : '';
$VisitNoteId = isset($data['VisitNoteId']) ? $data['VisitNoteId'] : '';
$CheckedIn = isset($data['CheckedIn']) ? $data['CheckedIn'] : '';
$CheckedOutLatitude = isset($data['CheckedOutLocationLatitude']) ? $data['CheckedOutLocationLatitude'] : '';
$CheckedOutLongitude = isset($data['CheckedOutLocationLongitude']) ? $data['CheckedOutLocationLongitude'] : '';
$CheckedInLocation = isset($data['CheckedInLocation']) ? $data['CheckedInLocation'] : '';
$CheckedOutLocation = isset($data['CheckedOutLocation']) ? $data['CheckedOutLocation'] : '';
$VisitDescription = isset($data['VisitDescription']) ? $data['VisitDescription'] : '';
$CheckedOut = isset($data['CheckedOut']) ? $data['CheckedOut'] : '';
// if($VisitDate != '' || $CreatedDate !='' || $Updated_by !='' || $CheckedIn !='' || $CheckedInLocation !='' || $CheckedInLatitude !='' || $CheckedInLongitude!='' || $VisitDescription='' || $VisitNoteId !=''){
// $VisitQuery = "update salesforce.Visit__c set Visit_Date__c='$VisitDate',Update_date__c='$CreatedDate',Updated_by__c='$Updated_by',Checked_In__c='$CheckedIn',Check_In_Address__c='$CheckedInLocation',Checked_In_Location__Latitude__s='$CheckedInLatitude',Checked_In_Location__Longitude__s='$CheckedInLongitude',Visit_Description__c='$VisitDescription',Visit_Note_Id__c='$VisitNoteId' where Visit_Id__c='$VisitId'";
// DB::connection('pgsql')->update($VisitQuery);
// }
// else{
// $VisitQuery = "update salesforce.Visit__c set Visit_Date__c='$VisitDate',Update_date__c='$CreatedDate',Updated_by__c='$Updated_by',Checked_In__c='$CheckedIn',Check_In_Address__c='$CheckedInLocation',Checked_In_Location__Latitude__s='$CheckedInLatitude',Checked_In_Location__Longitude__s='$CheckedInLongitude',Visit_Description__c='$VisitDescription',Checked_Out__c='$CheckedOut',Checked_Out_Address__c='$CheckedOutLocation',Checked_Out_Location__Latitude__s='$CheckedOutLatitude',Checked_Out_Location__Longitude__s='$CheckedOutLongitude',Visit_Description__c='$VisitDescription',Visit_Note_Id__c='$VisitNoteId' where Visit_Id__c='$VisitId'";
// DB::connection('pgsql')->update($VisitQuery);
// }
$Visits = Visits::select('*')
->where('VisitId',$VisitId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get()->first();
$CheckedIn = isset($Visits->CheckedIn) ? $Visits->CheckedIn : '';
$CheckedOut = isset($Visits->CheckedOut) ? $Visits->CheckedOut : '';
$VisitQuery='';
if($CheckedIn)
{
$Visits->CheckedIn = date('d-m-Y, H:i', strtotime($Visits->CheckedIn));
$VisitQuery = "update salesforce.Visit__c set Visit_Date__c='$VisitDate',Update_date__c='$CreatedDate',Updated_by__c='$Updated_by',Checked_In__c='$CheckedIn',Check_In_Address__c='$CheckedInLocation',Checked_In_Location__Latitude__s='$CheckedInLatitude',Checked_In_Location__Longitude__s='$CheckedInLongitude',Visit_Description__c='$VisitDescription',Visit_Note_Id__c='$VisitNoteId' where Visit_Id__c='$VisitId'";
DB::connection('pgsql')->update($VisitQuery);
}
if($CheckedOut)
{
$Visits->CheckedOut = date('d-m-Y, H:i', strtotime($Visits->CheckedOut));
$VisitQuery = "update salesforce.Visit__c set Visit_Date__c='$VisitDate',Update_date__c='$CreatedDate',Updated_by__c='$Updated_by',Checked_Out__c='$CheckedOut',Checked_Out_Address__c='$CheckedOutLocation',Checked_Out_Location__Latitude__s='$CheckedOutLatitude',Checked_Out_Location__Longitude__s='$CheckedOutLongitude',Visit_Description__c='$VisitDescription',Visit_Note_Id__c='$VisitNoteId' where Visit_Id__c='$VisitId'";
DB::connection('pgsql')->update($VisitQuery);
}
$response = [
'Success' => true,
'ResponseMessage' => "Visits has been updated",
'ResponseCode' => "200",
'Visits' => $Visits,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'VisitQuery' => $VisitQuery
];
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getVisitsDetails
public function getVisitDetails(Request $request, $VisitId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$Visits = Visits::select('*')
->where('VisitId',$VisitId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($Visits->count() > 0)
{
$BPValue = $Visits->first();
$VisitNoteTitle = '';
$VisitNoteId = $BPValue->VisitNoteId;
if($VisitNoteId)
{
$VisitNotes = VisitNotes::select('*')
->where('VisitNoteId', '=', $VisitNoteId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->orderBy('id', 'DESC')
->get();
if ($VisitNotes->count() > 0)
{
$VisitNote = $VisitNotes->first();
$VisitNoteTitle = $VisitNote->VisitNoteTitle;
}
}
$BPValue->VisitNoteTitle = $VisitNoteTitle;
if($BPValue->CheckedIn)
{
$BPValue->CheckedIn = date('d-m-Y, H:i', strtotime($BPValue->CheckedIn));
}
if($BPValue->CheckedOut)
{
$BPValue->CheckedOut = date('d-m-Y, H:i', strtotime($BPValue->CheckedOut));
}
//BeatPlanId
$BeatPlanId = $BPValue->BeatPlanId;
$BeatPlanName = '';
$BeatPlan = BeatPlan::where('BeatPlanId', $BeatPlanId)->get();
if ($BeatPlan->count() > 0)
{ //email is not exist
$BeatPlanData = $BeatPlan->first();
$BeatPlanName = $BeatPlanData->BeatPlanName;
}
$BPValue['BeatPlanName'] = $BeatPlanName;
//SalesAreaName
$SalesAreaId = $BPValue->SalesAreaId;
$SalesAreaName = '';
$SalesArea = SalesArea::where('SalesAreaId', $SalesAreaId)->get();
if ($SalesArea->count() > 0)
{ //email is not exist
$SalesAreaData = $SalesArea->first();
$SalesAreaName = $SalesAreaData->Name;
}
$BPValue['SalesAreaName'] = $SalesAreaName;
//Get Customer Name
$CustomerId = $BPValue->CustomerId;
$CustomerName = '';
$Customers = Customer::where('CustomerId', $CustomerId)->get();
if ($Customers->count() > 0)
{ //email is not exist
$CustomerData = $Customers->first();
$CustomerName = $CustomerData->CustomerName;
}
$BPValue['CustomerName'] = $CustomerName;
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'VisitDetails' => $BPValue,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Visit does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getTeamVisitList
public function getTeamVisitList(Request $request, $filter='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$TeamList = $this->APICommonController->getManagerTeamList($UserId);
$today = date('d-m-Y',time());
$Visits = Visits::select('*')
// ->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->whereIn('AssignTo', $TeamList)
->orderBy('id', 'DESC')
->get();
//dd(DB::getQueryLog());
if ($Visits->count() > 0)
{
if ($Visits->count() > 0)
{
foreach ($Visits as $key => $BPValue)
{
//Distributer
$CreatedFormatedDate = $BPValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$BPValue->CreatedFormatedDate = $CreatedFormatedDate;
//BeatPlanId
$BeatPlanId = $BPValue->BeatPlanId;
$BeatPlanName = '';
$BeatPlan = BeatPlan::where('BeatPlanId', $BeatPlanId)->get();
if ($BeatPlan->count() > 0)
{ //email is not exist
$BeatPlanData = $BeatPlan->first();
$BeatPlanName = $BeatPlanData->BeatPlanName;
}
$BPValue['BeatPlanName'] = $BeatPlanName;
//SalesAreaName
$SalesAreaId = $BPValue->SalesAreaId;
$SalesAreaName = '';
$SalesArea = SalesArea::where('SalesAreaId', $SalesAreaId)->get();
if ($SalesArea->count() > 0)
{ //email is not exist
$SalesAreaData = $SalesArea->first();
$SalesAreaName = $SalesAreaData->Name;
}
$BPValue['SalesAreaName'] = $SalesAreaName;
//Get Customer Name
$CustomerName = '';
$CustomerId = $BPValue->CustomerId;
// $CustomerId_arr = explode (",", $CustomerId);
// $cid = '';
// $CustomerNames = '';
// if(count($CustomerId_arr) > 0)
// {
// for($p = 0; $p < count($CustomerId_arr); $p++)
// {
// $CustomerId = $CustomerId_arr[$p];
// $Customers = Customer::where('CustomerId', $CustomerId)->get();
// if ($Customers->count() > 0)
// { //email is not exist
// $CustomerData = $Customers->first();
// $CustomerName = $CustomerData->CustomerName;
// $CustomerNames .= $CustomerName.', ';
// }
// }
// }
// $CustomerNames = rtrim($CustomerNames, ', ');
$Customers = Customer::where('CustomerId', $CustomerId)->get();
if ($Customers->count() > 0)
{ //email is not exist
$CustomerData = $Customers->first();
$CustomerName = $CustomerData->CustomerName;
// $CustomerNames .= $CustomerName.', ';
}
$BPValue['CustomerName'] = $CustomerName;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'VisitList' => $Visits,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "visit does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getVisitsList
public function getVisitList(Request $request, $filter='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$today = date('d-m-Y',time());
//DB::enableQueryLog();
if(strtoupper($filter)==strtoupper('Today'))
{
$Visits = Visits::select('*')
->where('IsDeleted', '=', 0)
->where('VisitDate', '=', $today)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
else if(strtoupper($filter)==strtoupper('UpComing'))
{
$Visits = Visits::select('*')
->where('IsDeleted', '=', 0)
->where('VisitDate', '>', $today)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
else if(strtoupper($filter)==strtoupper('Past'))
{
$Visits = Visits::select('*')
->where('VisitDate', '<', $today)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
else
{
$Visits = Visits::select('*')
// ->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
//dd(DB::getQueryLog());
if ($Visits->count() > 0)
{
if ($Visits->count() > 0)
{
foreach ($Visits as $key => $BPValue)
{
//Distributer
$CreatedFormatedDate = $BPValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$BPValue->CreatedFormatedDate = $CreatedFormatedDate;
//BeatPlanId
$BeatPlanId = $BPValue->BeatPlanId;
$BeatPlanName = '';
$BeatPlan = BeatPlan::where('BeatPlanId', $BeatPlanId)->get();
if ($BeatPlan->count() > 0)
{ //email is not exist
$BeatPlanData = $BeatPlan->first();
$BeatPlanName = $BeatPlanData->BeatPlanName;
}
$BPValue['BeatPlanName'] = $BeatPlanName;
//SalesAreaName
$SalesAreaId = $BPValue->SalesAreaId;
$SalesAreaName = '';
$SalesArea = SalesArea::where('SalesAreaId', $SalesAreaId)->get();
if ($SalesArea->count() > 0)
{ //email is not exist
$SalesAreaData = $SalesArea->first();
$SalesAreaName = $SalesAreaData->Name;
}
$BPValue['SalesAreaName'] = $SalesAreaName;
//Get Customer Name
$CustomerName = '';
$CustomerId = $BPValue->CustomerId;
// $CustomerId_arr = explode (",", $CustomerId);
// $cid = '';
// $CustomerNames = '';
// if(count($CustomerId_arr) > 0)
// {
// for($p = 0; $p < count($CustomerId_arr); $p++)
// {
// $CustomerId = $CustomerId_arr[$p];
// $Customers = Customer::where('CustomerId', $CustomerId)->get();
// if ($Customers->count() > 0)
// { //email is not exist
// $CustomerData = $Customers->first();
// $CustomerName = $CustomerData->CustomerName;
// $CustomerNames .= $CustomerName.', ';
// }
// }
// }
// $CustomerNames = rtrim($CustomerNames, ', ');
$Customers = Customer::where('CustomerId', $CustomerId)->get();
if ($Customers->count() > 0)
{ //email is not exist
$CustomerData = $Customers->first();
$CustomerName = $CustomerData->CustomerName;
// $CustomerNames .= $CustomerName.', ';
}
$BPValue['CustomerName'] = $CustomerName;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'VisitList' => $Visits,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "visit does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//get SalesAreaCustomer
public function SalesAreaCustomer(Request $request, $SalesAreaId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$Customers = Customer::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->where('SalesArea', $SalesAreaId)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
if ($Customers->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Customers' => $Customers,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Customer does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//get Distributor Retailers Name
public function DistributorRetailersList(Request $request, $DistributorId='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$Customers = Customer::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0) //Distributor
->where('Type', '=','Retailer')
->where('DistributorId', $DistributorId)
->orderBy('id', 'DESC')
->get();
if ($Customers->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Retailers' => $Customers,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Customer does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//get Distributor Retailers Name
public function getVisitNoteList(Request $request) {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$VisitNotes = VisitNotes::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->orderBy('id', 'DESC')
->get();
if ($VisitNotes->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'VisitNotes' => $VisitNotes,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Customer does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
function count_digit($number) {
return strlen($number);
}
function divider($number_of_digits)
{
$tens="1";
if($number_of_digits>8)
return 10000000;
while(($number_of_digits-1)>0)
{
$tens.="0";
$number_of_digits--;
}
return $tens;
}
//getVisitListSearch
public function getVisitListSearch(Request $request, $SearchText='') {
$data = $request->json()->all();
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'ResponseMessage' => "Authentication Failed",
'ResponseCode' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$today = date('d-m-Y',time());
$TeamList = $this->APICommonController->getManagerTeamList($UserId);
array_push($TeamList, $UserId);
if($SearchText)
{
// $Customers = Customer::select('*')
// ->where('CustomerName', 'iLIKE', '%'.$SearchText.'%')
// ->where('IsDeleted', '=', 0)
// ->where('AssignTo', '=', $UserId)
// ->orderBy('id', 'desc')
// ->get();
$Customers = Customer::select('*')
->where('CustomerName', 'iLIKE', '%'.$SearchText.'%')
->where('IsDeleted', '=', 0)
->whereIn('AssignTo', $TeamList)
->orderBy('id', 'desc')
->get();
$CustomerIds = array();
if($Customers->count() > 0)
{ //email is exist
foreach ($Customers as $key => $CValue)
{
$CustomerId = $CValue['CustomerId'];
$CustomerIds[] = $CustomerId;
}
}
$CustomerIds2 = implode(',',$CustomerIds);
$Visits = Visits::select('*')
->where('IsDeleted', '=', 0)
->whereIn('AssignTo', $TeamList)
->whereIn('CustomerId', $CustomerIds)
//->orWhere('CollectionType', 'like', '%'.$SearchText.'%')
->orderBy('id', 'desc')
->get();
}
else
{
$Visits = Visits::select('*')
->where('IsDeleted', '=', 0)
->whereIn('AssignTo', $TeamList)
->orderBy('id', 'desc')
->get();
}
if ($Visits->count() > 0)
{
if ($Visits->count() > 0)
{
foreach ($Visits as $key => $BPValue)
{
//Distributer
$CreatedFormatedDate = $BPValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$BPValue->CreatedFormatedDate = $CreatedFormatedDate;
//BeatPlanId
$BeatPlanId = $BPValue->BeatPlanId;
$BeatPlanName = '';
$BeatPlan = BeatPlan::where('BeatPlanId', $BeatPlanId)->get();
if ($BeatPlan->count() > 0)
{ //email is not exist
$BeatPlanData = $BeatPlan->first();
$BeatPlanName = $BeatPlanData->BeatPlanName;
}
$BPValue['BeatPlanName'] = $BeatPlanName;
//SalesAreaName
$SalesAreaId = $BPValue->SalesAreaId;
$SalesAreaName = '';
$SalesArea = SalesArea::where('SalesAreaId', $SalesAreaId)->get();
if ($SalesArea->count() > 0)
{ //email is not exist
$SalesAreaData = $SalesArea->first();
$SalesAreaName = $SalesAreaData->Name;
}
$BPValue['SalesAreaName'] = $SalesAreaName;
//Get Customer Name
$CustomerName = '';
$CustomerId = $BPValue->CustomerId;
$Customers = Customer::where('CustomerId', $CustomerId)->get();
if ($Customers->count() > 0)
{ //email is not exist
$CustomerData = $Customers->first();
$CustomerName = $CustomerData->CustomerName;
// $CustomerNames .= $CustomerName.', ';
}
$BPValue['CustomerName'] = $CustomerName;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'VisitList' => $Visits,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "visit does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
}