File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/APIPerformanceController.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\Stocks;
use App\Models\StockProducts;
use App\Models\Performance;
use App\Models\PerformanceLineItem;
use App\Models\TargetType;
use App\Models\SalesTerritory;
use App\Http\Controllers\APICommonController;
use DateTime;
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 APIPerformanceController 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 createPerformance(Request $request)
{
//TODO What is device_token
$data = $request->json()->all();
$TargetId = $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);
}
$NoOfVisits = isset($data['NoOfVisits']) ? $data['NoOfVisits'] : '';
$TotalRevenue = isset($data['TotalRevenue']) ? $data['TotalRevenue'] : '';
$TargetType = isset($data['TargetType']) ? $data['TargetType'] : '';
$TerritoryId = isset($data['TerritoryId']) ? $data['TerritoryId'] : '';
$AssignTo = isset($data['AssignTo']) ? $data['AssignTo'] : '';
$Products = isset($data['Products']) ? $data['Products'] : '';
$Products = json_decode(json_encode($Products), true);
$cvdata = array();
$TargetNo = "PERFORMANCE-" . time() . '-' . rand();
$cvdata['TargetNo'] = $TargetNo;
$cvdata['UserId'] = $AssignTo;
$cvdata['TargetId'] = $TargetId;
$cvdata['TerritoryId'] = $TerritoryId;
$cvdata['NoOfVisits'] = $NoOfVisits;
$cvdata['TotalRevenue'] = $TotalRevenue;
$cvdata['TargetType'] = $TargetType;
// $cvdata['StartDate'] = date('Y-m-d',strtotime($data['StartDate']));
// $cvdata['EndDate'] = date('Y-m-d',strtotime($data['EndDate']));
$cvdata['StartDate'] = $data['StartDate'];
$cvdata['EndDate'] = $data['EndDate'];
$cvdata['Status'] = '1';
$cvdata['IsDeleted'] = '0';
$cvdata['Updated_at'] = $CreatedDate;
$cvdata['Created_at'] = $CreatedDate;
$cvdata['CreatedDate'] = $CreatedDate;
$cvdata['ModifiedDate'] = $CreatedDate;
$cvdata['Created_by'] = $UserId;
if($UserId){
$user_details = User::select('tbl_user.*')
->where('tbl_user.UserId', $UserId)
->get()->first();
$cvdata['CreatedByName'] = $user_details->FirstName.' '.$user_details->LastName;
$cvdata['UpdatedByName'] = $user_details->FirstName.' '.$user_details->LastName;
}
$cvdata['AssignTo'] = $AssignTo;
$cvdata['Updated_by'] = $UserId;
$StockInsert = Performance::insert($cvdata);
$AssignTo = isset($data['AssignTo']) ? $data['AssignTo'] : '';
$StartDate = isset($data['StartDate']) ? $data['StartDate'] : '';
// $StartDate = date('Y-m-d', strtotime($StartDate1));
$EndDate = isset($data['EndDate']) ? $data['EndDate'] : '';
// $EndDate = date('Y-m-d', strtotime($EndDate1));
$NoOfVisits = isset($data['NoOfVisits']) ? $data['NoOfVisits'] : '0';
$TargetType = isset($data['TargetType']) ? $data['TargetType'] : '';
$TerritoryId = isset($data['TerritoryId']) ? $data['TerritoryId'] : '';
$TotalRevenue = isset($data['TotalRevenue']) ? $data['TotalRevenue'] : '0';
$UserId = isset($data['UserId']) ? $data['UserId'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '0';
$Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$PerformanceQuery = "insert into salesforce.Performance__c (TargetId__c,AssignTo__c,StartDate__c,EndDate__c,NoOfVisits__c,TargetType__c,TerritoryId__c,TotalRevenue__c,UserId__c,Created_at__c,Status__c,IsDeleted__c,Created_by__c,Updated_by__c,Name) values ('$TargetId','$AssignTo','$StartDate','$EndDate','$NoOfVisits','$TargetType','$TerritoryId','$TotalRevenue','$UserId','$CreatedDate','$Status','$IsDeleted','$Created_by','$Updated_by','$TargetNo')";
DB::connection('pgsql')->insert($PerformanceQuery);
if(count($Products) > 0)
{
for($i = 0; $i < count($Products); $i++)
{
$ProductData = $Products[$i];
$ProductPrice = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] : '0.00';
$cvstdata = array();
$cvstdata['TargetId'] = $TargetId;
$cvstdata['ProductId'] = $ProductData['ProductId'];
$cvstdata['ProductName'] = $ProductData['ProductName'];
$cvstdata['ProductPrice'] = $ProductPrice;
$cvstdata['TargetQuantity'] = $ProductData['TargetQuantity'];
$cvstdata['UserId'] = $AssignTo;
$cvstdata['Status'] = '1';
$cvstdata['IsDeleted'] = '0';
$cvstdata['Updated_at'] = $CreatedDate;
$cvstdata['Created_at'] = $CreatedDate;
$cvstdata['Created_by'] = $UserId;
$cvstdata['Updated_by'] = $UserId;
$cvstdata['CreatedDate'] = $CreatedDate;
$cvstdata['ModifiedDate'] = $CreatedDate;
$StockProductInsert = PerformanceLineItem::insert($cvstdata);
$ProductId = isset($ProductData['ProductId']) ? $ProductData['ProductId'] : '';
$ProductName = isset($ProductData['ProductName']) ? $ProductData['ProductName'] : '';
$ProductPrice = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] : '0.00';
$TargetQuantity = isset($ProductData['TargetQuantity']) ? $ProductData['TargetQuantity'] : '';
$Status = '1';
$IsDeleted = '0';
$Created_by = $UserId;
$PerformanceLIQuery = "insert into salesforce.Performance_Line_item__c (Target_Id__c,Product_Id__c,Product_Name__c,Product_Price__c,Target_Quantity__c,User_Id__c,Created_at__c,Status__c,IsDeleted__c,Created_by__c) values ('$TargetId','$ProductId','$ProductName','$ProductPrice','$TargetQuantity','$UserId','$CreatedDate','$Status','$IsDeleted','$Created_by')";
DB::connection('pgsql')->insert($PerformanceLIQuery);
}
}
$Performances = Performance::select('*')
->where('TargetId',$TargetId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get()->first();
$UserName = '';
$Users = User::where('UserId', $AssignTo)->get();
if ($Users->count() > 0)
{ //email is not exist
$UserData = $Users->first();
$UserName = $UserData->FirstName." ".$UserData->LastName;
}
$Performances->UserName = $UserName;
$PerformanceLineItem = PerformanceLineItem::where('TargetId', $TargetId)->get();
$Performances->Products = array();
if ($PerformanceLineItem->count() > 0)
{ //email is not exist
$PerformanceLineItemData = $PerformanceLineItem;
$Performances->Products = $PerformanceLineItemData;
}
foreach ($Performances->Products as $key => $PerformanceProductValue)
{
$CustomerId = $PerformanceProductValue->CustomerId;
$UserName='';
$Users = User::where('UserId', $AssignTo)->get();
if ($Users->count() > 0)
{ //email is not exist
$UserData = $Users->first();
$UserName = $UserData->FirstName." ".$UserData->LastName;
}
$PerformanceProductValue->UserName = $UserName;
}
$response = [
'Success' => true,
'ResponseMessage' => "Performance has been added",
'ResponseCode' => "200",
'Performance' => $Performances,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'PerformanceQuery' => $PerformanceQuery
// 'PerformanceLIQuery' => $PerformanceLIQuery
];
return response()->json($response);
}
//updatePerformance
public function updatePerformance(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);
}
$NoOfVisits = isset($data['NoOfVisits']) ? $data['NoOfVisits'] : '0';
$TotalRevenue = isset($data['TotalRevenue']) ? $data['TotalRevenue'] : '0';
$TargetType = isset($data['TargetType']) ? $data['TargetType'] : '';
$TerritoryId = isset($data['TerritoryId']) ? $data['TerritoryId'] : '';
$TargetId = isset($data['TargetId']) ? $data['TargetId'] : '';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '0';
$AssignTo = '';
$cvdata = array();
$Products = array();
if($IsDeleted == '0')
{
$AssignTo = isset($data['AssignTo']) ? $data['AssignTo'] : '';
$Products = isset($data['Products']) ? $data['Products'] : '';
$Products = json_decode(json_encode($Products), true);
$cvdata['UserId'] = $AssignTo;
$cvdata['TerritoryId'] = $TerritoryId;
$cvdata['NoOfVisits'] = $NoOfVisits;
$cvdata['TotalRevenue'] = $TotalRevenue;
$cvdata['TargetType'] = $TargetType;
// $cvdata['StartDate'] = date('Y-m-d',strtotime($data['StartDate']));
// $cvdata['EndDate'] = date('Y-m-d',strtotime($data['EndDate']));
$cvdata['StartDate'] = $data['StartDate'];
$cvdata['EndDate'] = $data['EndDate'];
}
$cvdata['Status'] = '1';
$cvdata['IsDeleted'] = $IsDeleted;
$cvdata['Updated_at'] = $CreatedDate;
$cvdata['Updated_by'] = $UserId;
if($UserId){
$user_details = User::select('tbl_user.*')
->where('tbl_user.UserId', $UserId)
->get()->first();
$cvdata['UpdatedByName'] = $user_details->FirstName.' '.$user_details->LastName;
}
$PerformanceUpdate = Performance::where('TargetId',$TargetId)->update($cvdata);
$AssignTo = isset($data['AssignTo']) ? $data['AssignTo'] : '';
$StartDate = isset($data['StartDate']) ? $data['StartDate'] : '';
// $StartDate = date('Y-m-d', strtotime($StartDate1));
$EndDate = isset($data['EndDate']) ? $data['EndDate'] : '';
// $EndDate = date('Y-m-d', strtotime($EndDate1));
$NoOfVisits = isset($data['NoOfVisits']) ? $data['NoOfVisits'] : '';
$TargetType = isset($data['TargetType']) ? $data['TargetType'] : '';
$TerritoryId = isset($data['TerritoryId']) ? $data['TerritoryId'] : '';
$TotalRevenue = isset($data['TotalRevenue']) ? $data['TotalRevenue'] : '';
$UserId = isset($data['UserId']) ? $data['UserId'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '';
// $Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$PerformanceQuery = "update salesforce.Performance__c set AssignTo__c='$AssignTo',StartDate__c='$StartDate',EndDate__c='$EndDate',NoOfVisits__c='$NoOfVisits',TargetType__c='$TargetType',TerritoryId__c='$TerritoryId',TotalRevenue__c='$TotalRevenue',UserId__c='$UserId',Updated_at__c='$CreatedDate',Status__c='$Status',IsDeleted__c='$IsDeleted',Updated_by__c='$Updated_by' where TargetId__c='$TargetId'";
DB::connection('pgsql')->update($PerformanceQuery);
if(count($Products) > 0)
{
for($i = 0; $i < count($Products); $i++)
{
$ProductData = $Products[$i];
$ProductPrice = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] : '0.00';
$ProductId = $ProductData['ProductId'];
$CheckPerformanceLineItem = PerformanceLineItem::where('TargetId',$TargetId)->where('ProductId',$ProductId)->get();
if(count($CheckPerformanceLineItem) > 0)
{
$cvstdata = array();
$cvstdata['ProductName'] = $ProductData['ProductName'];
$cvstdata['ProductPrice'] = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] :'0.00';
$cvstdata['TargetQuantity'] = $ProductData['TargetQuantity'];
$cvstdata['UserId'] = $AssignTo;
$cvstdata['Status'] = $ProductData['Status'];
$cvstdata['IsDeleted'] = $ProductData['IsDeleted'];
$cvstdata['Updated_at'] = $CreatedDate;
$cvstdata['CreatedDate'] = $CreatedDate;
$cvstdata['ModifiedDate'] = $CreatedDate;
$cvstdata['Updated_by'] = $UserId;
$StockProductInsert = PerformanceLineItem::where('TargetId',$TargetId)->where('ProductId',$ProductId)->update($cvstdata);
// $ProductId = isset($data['ProductId']) ? $data['ProductId'] : '';
$ProductName = $ProductData['ProductName'];
$ProductPrice = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] : '';
$TargetQuantity = isset($ProductData['TargetQuantity']) ? $ProductData['TargetQuantity'] : '';
$Status = isset($ProductData['Status']) ? $ProductData['Status'] : '';
$IsDeleted = isset($ProductData['IsDeleted']) ? $ProductData['IsDeleted'] : '';
$Updated_by = $UserId;
$PerformanceLIQuery = "update salesforce.Performance_Line_item__c set Product_Name__c='$ProductName',Product_Price__c='$ProductPrice',Target_Quantity__c='$TargetQuantity',User_Id__c='$UserId',Updated_at__c='$CreatedDate',Status__c='$Status',IsDeleted__c='$IsDeleted',Updated_by__c='$Updated_by' where Target_Id__c='$TargetId' and Product_Id__c='$ProductId'";
DB::connection('pgsql')->update($PerformanceLIQuery);
}
else
{
$cvstdata = array();
$cvstdata['TargetId'] = $TargetId;
$cvstdata['ProductId'] = $ProductData['ProductId'];
$cvstdata['ProductName'] = $ProductData['ProductName'];
$cvstdata['ProductPrice'] = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] :'0.00';
$cvstdata['TargetQuantity'] = $ProductData['TargetQuantity'];
$cvstdata['UserId'] = $AssignTo;
$cvstdata['Status'] = '1';
$cvstdata['IsDeleted'] = '0';
$cvstdata['Updated_at'] = $CreatedDate;
$cvstdata['Created_at'] = $CreatedDate;
$cvstdata['CreatedDate'] = $CreatedDate;
$cvstdata['ModifiedDate'] = $CreatedDate;
$cvstdata['Created_by'] = $UserId;
$cvstdata['Updated_by'] = $UserId;
$StockProductInsert = PerformanceLineItem::insert($cvstdata);
$ProductId = isset($ProductData['ProductId']) ? $ProductData['ProductId'] : '';
$ProductName = isset($ProductData['ProductName']) ? $ProductData['ProductName'] : '';
$ProductPrice = isset($ProductData['ProductPrice']) ? $ProductData['ProductPrice'] : '0.00';
$TargetQuantity = isset($ProductData['TargetQuantity']) ? $ProductData['TargetQuantity'] : '';
$Status = '1';
$IsDeleted = '0';
$Created_by = $UserId;
$PerformanceLIQuery = "insert into salesforce.Performance_Line_item__c (Target_Id__c,Product_Id__c,Product_Name__c,Product_Price__c,Target_Quantity__c,User_Id__c,Created_at__c,Status__c,IsDeleted__c,Created_by__c) values ('$TargetId','$ProductId','$ProductName','$ProductPrice','$TargetQuantity','$UserId','$CreatedDate','$Status','$IsDeleted','$Created_by')";
DB::connection('pgsql')->insert($PerformanceLIQuery);
}
}
}
$Performance = Performance::select('*')
->where('TargetId',$TargetId)
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->get()->first();
$Performance = json_decode(json_encode($Performance),true);
$UserName = '';
$Users = User::where('UserId', $AssignTo)->get();
if ($Users->count() > 0)
{ //email is not exist
$UserData = $Users->first();
$UserName = $UserData->FirstName." ".$UserData->LastName;
}
$Performance['UserName'] = $UserName;
$PerformanceLineItem = PerformanceLineItem::where('TargetId', $TargetId)->get();
$Performance['Products'] = $PerformanceLineItem;
$PerformanceProducts = $Performance['Products'];
foreach ($PerformanceProducts as $key => $PerformanceProductValue)
{
$CustomerId = $PerformanceProductValue->CustomerId;
$UserName='';
$Users = User::where('UserId', $AssignTo)->get();
if ($Users->count() > 0)
{ //email is not exist
$UserData = $Users->first();
$UserName = $UserData->FirstName." ".$UserData->LastName;
}
$PerformanceProductValue->UserName = $UserName;
}
if($IsDeleted == '1'){
$message = "Performance has been deleted";
}
else{
$message = "Performance has been updated";
}
$response = [
'Success' => true,
'ResponseMessage' => $message,
'ResponseCode' => "200",
'Performance' => $Performance,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'PerformanceQuery' => $PerformanceQuery
// 'PerformanceLIQuery' => $PerformanceLIQuery
];
return response()->json($response);
}
//User get getPerformanceUserList
public function getPerformanceUserList(Request $request, $ManagerId='') {
//TODO What is device_token
$data = $request->json()->all();
$tblData = array();
//check auth token
if($this->userLib->tokenChecker($request) == FALSE)
{
$response = [
'success' => false,
'error_message' => "Authentication Failed",
'error_code' => "301",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
//Check Memeber is exist or not
$users = User::select('UserId', 'FirstName', 'LastName', 'Email','Mobile')->where('ManagerId',$ManagerId)->get();
if ($users->count() > 0)
{ //email is exist
$UserId = $request->header('UserId');
$AuthToken = $request->header('AuthToken');
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Users' => $users,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "User does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getStock List
public function getPerformanceList(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);
}
$TeamList = $this->APICommonController->getManagerTeamList($UserId);
if($TeamList)
{
array_push($TeamList, $UserId);
$Performances = Performance::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->whereIn('Created_by', $TeamList)
->orderBy('id', 'desc')
->get();
}
else
{
$Performances = Performance::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->Where('AssignTo', $UserId)
->orderBy('id', 'desc')
->get();
}
if ($Performances->count() > 0)
{
foreach ($Performances as $key => $PerformanceValue)
{
//Distributer
$CreatedFormatedDate = $PerformanceValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$PerformanceValue->CreatedFormatedDate = $CreatedFormatedDate;
$StartFormatedDate = $PerformanceValue->StartDate;
$StartFormatedDate = date("j M Y",strtotime($StartFormatedDate));
$PerformanceValue->StartFormatedDate = $StartFormatedDate;
$EndFormatedDate = $PerformanceValue->EndDate;
$EndFormatedDate = date("j M Y",strtotime($EndFormatedDate));
$PerformanceValue->EndFormatedDate = $EndFormatedDate;
$pUserId = $PerformanceValue->UserId;
$userDetails = User::where('UserId', $pUserId)->get();
$userData = $userDetails->first();
$asignUserFirstName = isset($userData->FirstName) ? $userData->FirstName : '';
$asignUserLastName = isset($userData->LastName) ? $userData->LastName : '';
$PerformanceValue->AssignToName = $asignUserFirstName." ".$asignUserLastName;
$Created_by = $PerformanceValue->Created_by;
$userCreatedBy = User::where('UserId', $Created_by)->get();
$userCreatedByData = $userCreatedBy->first();
$createUserFirstName = isset($userCreatedByData->FirstName) ? $userCreatedByData->FirstName : '';
$createUserLastName = isset($userCreatedByData->LastName) ? $userCreatedByData->LastName : '';
$PerformanceValue->CreatedByName = $createUserFirstName." ".$createUserLastName;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'Performances' => $Performances,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'TeamList' => $TeamList
];
return response()->json($response);
}
//getVisitsDetails
public function getPerformanceDetails(Request $request, $TargetId='') {
$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);
}
if($TargetId == '')
{
$response = [
'success' => false,
'ResponseMessage' => "Please provide TargetId",
'ResponseCode' => "305",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$Performance = Performance::select('*')
->where('TargetId',$TargetId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get()->first();
$Performance = json_decode(json_encode($Performance),true);
$TerritoryId = isset($Performance['TerritoryId']) ? $Performance['TerritoryId'] : '';
$StartDate = isset($Performance['StartDate']) ? $Performance['StartDate'] : '';
$EndDate = isset($Performance['EndDate']) ? $Performance['EndDate'] : '';
$AssignTo = isset($Performance['UserId']) ? $Performance['UserId'] : '';
$StartDate = date('Y-m-d',strtotime($StartDate));
$EndDate = date('Y-m-d',strtotime($EndDate));
//DB::enableQueryLog();
$Orders = Order::select('*')
->leftJoin('tbl_order_item', 'tbl_order_item.OrderId', '=', 'tbl_order.OrderId')
->where('tbl_order.IsDeleted', '=', 0)
->where('tbl_order_item.Created_at', '>=', $StartDate)
->where('tbl_order_item.Created_at', '<=', $EndDate)
->where('tbl_order.OrderStatusId','JUDFg673F4sd2') //Delivered
->where('tbl_order.AssignTo',$AssignTo)
->orderBy('tbl_order.id', 'desc')
->get();
//dd(DB::getQueryLog());
$OrderTotalAmount = 0.00;
if ($Orders->count() > 0)
{
foreach ($Orders as $key => $OrderValue)
{
$TotalPrice = $OrderValue->TotalPrice;
$OrderTotalAmount = $OrderTotalAmount + $TotalPrice;
}
}
$OrderTotalAmount = number_format((float)$OrderTotalAmount, 2, '.', '');
$Performance['TotalAmountAchieved'] = $OrderTotalAmount;
$Performance['AchievedAmount'] = $OrderTotalAmount;
$TotalRevenue = isset($Performance['TotalRevenue']) ? $Performance['TotalRevenue'] : '';
$TotalRevenue = number_format((float)$TotalRevenue, 2, '.', '');
$Performance['TotalRevenue'] = $TotalRevenue;
$TerritoryName = '';
$Territory = SalesTerritory::where('TerritoryId', $TerritoryId)->get();
if ($Territory->count() > 0)
{ //email is not exist
$TerritoryData = $Territory->first();
$TerritoryName = $TerritoryData->Name;
}
$Performance['TerritoryName'] = $TerritoryName;
$UserId = isset($Performance['UserId']) ? $Performance['UserId'] : '';
$UserName = '';
$User = User::where('UserId', $UserId)->get();
if ($User->count() > 0)
{ //email is not exist
$UserData = $User->first();
$UserName = $UserData->FirstName." ".$UserData->LastName;
}
$Performance['UserName'] = $UserName;
$PerformanceLineItem = PerformanceLineItem::where('TargetId', $TargetId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
$Performance['Products'] = array();
if ($PerformanceLineItem->count() > 0)
{ //email is not exist
$StockProductData = $PerformanceLineItem;
$Performance['Products'] = $StockProductData;
}
$CreatedFormatedDate = $Performance['Created_at'];
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$Performance['CreatedFormatedDate'] = $CreatedFormatedDate;
$CreatedFormatedDate = $Performance['StartDate'];
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$Performance['StartFormatedDate'] = $CreatedFormatedDate;
$CreatedFormatedDate = $Performance['EndDate'];
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$Performance['EndFormatedDate'] = $CreatedFormatedDate;
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'Performance' => $Performance,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
//getStock List
public function getTargetType(Request $request, $StockId='') {
$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);
}
$TargetTypes = TargetType::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'TargetTypes' => $TargetTypes,
'ApiUrl' => env('APP_URL'),
'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;
}
}