File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/APIBeatPlanController.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\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 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 APIBeatPlanController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $userLib;
protected $dateFormat = 'dd-mm-yyyy';
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
//createBeatPlan
public function createBeatPlan(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$BeatPlanId = $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);
}
if(strtoupper($data['BeatPlanType']) == strtoupper('SALESAREAWISE'))
{
$BeatPlanCustomers = isset($data['Customers']) ? $data['Customers'] :'';
}
else
{
$BeatPlanCustomers = isset($data['Retailers']) ? $data['Retailers'] :'';
}
$BeatPlanCustomers = json_decode(json_encode($BeatPlanCustomers),true);
$data['BeatPlanId'] = $BeatPlanId;
$data['Status'] = '1';
$data['IsDeleted'] = '0';
// $data['BeatPlanDate'] = $CreatedDate;
$data['Updated_at'] = $CreatedDate;
$data['Created_at'] = $CreatedDate;
$data['Created_by'] = $UserId;
$data['AssignTo'] = $UserId;
$data['Updated_by'] = $UserId;
unset($data['DistributorName']);
unset($data['RetailerNames']);
unset($data['SalesTerritoryName']);
unset($data['SalesAreaName']);
unset($data['Retailers']);
unset($data['Customers']);
$BeatPlan_insert = BeatPlan::insert($data);
$CustomerIds = '';
if($BeatPlan_insert)
{
$BeatPlanDate = isset($data['BeatPlanDate']) ? $data['BeatPlanDate'] : '';
$BeatPlanName = isset($data['BeatPlanName']) ? $data['BeatPlanName'] : '';
$BeatPlanType = isset($data['BeatPlanType']) ? $data['BeatPlanType'] : '';
$SalesAreaId = isset($data['SalesAreaId']) ? $data['SalesAreaId'] : '';
$SalesTerritoryId = isset($data['SalesTerritoryId']) ? $data['SalesTerritoryId'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
// $Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$BeatPlanQuery = "insert into salesforce.Beat_Plan__c (Beat_Plan_Id__c,BeatPlan_Date__c,Name,BeatPlan_Type__c,Sales_Area_Id__c,Sales_Territory_Id__c,CreatedDate,Status__c,Is_Deleted__c,Updated_by__c) values ('$BeatPlanId','$BeatPlanDate','$BeatPlanName','$BeatPlanType','$SalesAreaId','$SalesTerritoryId','$CreatedDate','$Status','$IsDeleted','$Updated_by')";
DB::connection('pgsql')->insert($BeatPlanQuery);
if(count($BeatPlanCustomers) > 0)
{
$p=0;
for($i =0; $i < count($BeatPlanCustomers); $i++)
{
$BeatPlanCustomerId = $this->userLib->useridGenrator();
$CustomerId = $BeatPlanCustomers[$i];
$CustomerIds .= $CustomerId.',';
$BeatPlanCustomerData = array();
$BeatPlanCustomerData['BeatPlanCustomerId'] = $BeatPlanCustomerId;
$BeatPlanCustomerData['BeatPlanId'] = $BeatPlanId;
$BeatPlanCustomerData['CustomerId'] = $CustomerId;
$BeatPlanCustomerData['AssignTo'] = $UserId;
$BeatPlanCustomerData['Status'] = '1';
$BeatPlanCustomerData['IsDeleted'] = '0';
$BeatPlanCustomerData['Updated_at'] = $CreatedDate;
$BeatPlanCustomerData['Created_at'] = $CreatedDate;
$BeatPlanCustomerData['Created_by'] = $UserId;
$BeatPlanCustomerData['Updated_by'] = $UserId;
$bpc_insert = BeatPlanCustomer::insert($BeatPlanCustomerData);
if($bpc_insert)
{
$p = $p + 1;
}
}
}
if($CustomerIds)
{
$CustomerIds = rtrim($CustomerIds, ',');
}
$RetailerNameId = array('RetailerNameId'=>$CustomerIds);
$BeatPlan_insert = BeatPlan::where('BeatPlanId',$BeatPlanId)->update($RetailerNameId);
$BPValue = array();
if($p == count($BeatPlanCustomers))
{
$BeatPlans = BeatPlan::select('*')
->where('BeatPlanId', $BeatPlanId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($BeatPlans->count() > 0)
{
$BPValue = $BeatPlans->first();
//Distributer
$DistributorNameId = $BPValue->DistributorNameId;
$CustomerName = '';
$Customer = Customer::where('CustomerId', $DistributorNameId)->get();
if ($Customer->count() > 0)
{ //email is not exist
$CustomerData = $Customer->first();
$CustomerName = $CustomerData->CustomerName;
}
$BPValue['DistributorName'] = $CustomerName;
//Retailer RetailerNameId
$RetailerNameIds = $BPValue->RetailerNameId;
$RetailerNames = '';
$RetailerNameValue = '';
if($RetailerNameIds)
{
$RetailerNameIdArray = explode(',', $RetailerNameIds);
for($h=0;$h < count($RetailerNameIdArray); $h++)
{
$RetailerNameId = $RetailerNameIdArray[$h];
$RCustomer = Customer::where('CustomerId', $RetailerNameId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
$RetailerNameValue .= $CustomerName.', ';
}
}
if($RetailerNameValue)
{
$RetailerNames = rtrim($RetailerNameValue, ', ');
}
}
$BPValue['RetailerNames'] = $RetailerNames;
//SalesTerritory
$SalesTerritory = $BPValue->SalesTerritoryId;
$SalesTerritoryName = '';
$SalesTerritory = SalesTerritory::where('TerritoryId', $SalesTerritory)->get();
if ($SalesTerritory->count() > 0)
{ //email is not exist
$SalesTerritoryData = $SalesTerritory->first();
$SalesTerritoryName = $SalesTerritoryData->Name;
}
$BPValue['SalesTerritoryName'] = $SalesTerritoryName;
//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;
$BeatPlanCustomer = BeatPlanCustomer::select('*')
->where('BeatPlanId', $BeatPlanId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($BeatPlanCustomer->count() > 0)
{
foreach ($BeatPlanCustomer as $key => $BPCValue)
{
$CustomerName = '';
$CustomerId = $BPCValue->CustomerId;
$RCustomer = Customer::where('CustomerId', $CustomerId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
}
$BPCValue['CustomerName']= $CustomerName;
}
}
$BPValue['Retailers'] = $BeatPlanCustomer;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "BeatPlan has been created",
'ResponseCode' => "200",
'BeatPlan' => $BPValue,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'BeatPlanQuery' => $BeatPlanQuery
];
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//updateBeatPlan
public function updateBeatPlan(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$BeatPlanId = $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);
}
if(strtoupper($data['BeatPlanType']) == strtoupper('SALESAREAWISE'))
{
$BeatPlanCustomers = isset($data['Customers']) ? $data['Customers'] :'';
}
else
{
$BeatPlanCustomers = isset($data['Retailers']) ? $data['Retailers'] :'';
}
$BeatPlanCustomers = json_decode(json_encode($BeatPlanCustomers),true);
$BeatPlanId = $data['BeatPlanId'];
// $data['BeatPlanDate'] = $CreatedDate;
$data['Updated_at'] = $CreatedDate;
$data['Created_at'] = $CreatedDate;
$data['Created_by'] = $UserId;
$data['Updated_by'] = $UserId;
unset($data['DistributorName']);
unset($data['RetailerNames']);
unset($data['SalesTerritoryName']);
unset($data['SalesAreaName']);
unset($data['Retailers']);
unset($data['Customers']);
unset($data['BeatPlanId']);
$BeatPlan_update = BeatPlan::where('BeatPlanId',$BeatPlanId)->update($data);
$CustomerIds = '';
if($BeatPlan_update)
{
$BeatPlanDate = isset($data['BeatPlanDate']) ? $data['BeatPlanDate'] : '';
$BeatPlanName = isset($data['BeatPlanName']) ? $data['BeatPlanName'] : '';
$BeatPlanType = isset($data['BeatPlanType']) ? $data['BeatPlanType'] : '';
$SalesAreaId = isset($data['SalesAreaId']) ? $data['SalesAreaId'] : '';
$SalesTerritoryId = isset($data['SalesTerritoryId']) ? $data['SalesTerritoryId'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '';
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '';
$Updated_by = $UserId;
// $Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$BeatPlanQuery = "update salesforce.Beat_Plan__c set BeatPlan_Date__c='$BeatPlanDate',Name='$BeatPlanName',BeatPlan_Type__c='$BeatPlanType',Sales_Area_Id__c='$SalesAreaId',Sales_Territory_Id__c='$SalesTerritoryId',Updated_at__c='$CreatedDate',Status__c='$Status',Is_Deleted__c='$IsDeleted',Updated_by__c='$Updated_by' where Beat_Plan_Id__c='$BeatPlanId'";
DB::connection('pgsql')->update($BeatPlanQuery);
if(count($BeatPlanCustomers) > 0)
{
$p=0;
for($i =0; $i < count($BeatPlanCustomers); $i++)
{
$BeatPlanCustomerId = $this->userLib->useridGenrator();
$CustomerId = $BeatPlanCustomers[$i];
$CustomerIds .= $CustomerId.',';
$BeatPlanCustomerData = array();
$BeatPlanCustomerData['BeatPlanCustomerId'] = $BeatPlanCustomerId;
$BeatPlanCustomerData['BeatPlanId'] = $BeatPlanId;
$BeatPlanCustomerData['CustomerId'] = $CustomerId;
$BeatPlanCustomerData['Status'] = '1';
$BeatPlanCustomerData['IsDeleted'] = '0';
$BeatPlanCustomerData['AssignTo'] = $UserId;
$BeatPlanCustomerData['Updated_at'] = $CreatedDate;
$BeatPlanCustomerData['Created_at'] = $CreatedDate;
$BeatPlanCustomerData['Created_by'] = $UserId;
$BeatPlanCustomerData['Updated_by'] = $UserId;
$bpc_delete = BeatPlanCustomer::where('BeatPlanId',$BeatPlanId)->delete();
if($bpc_delete)
{
$bpc_insert = BeatPlanCustomer::insert($BeatPlanCustomerData);
if($bpc_insert)
{
$p = $p + 1;
}
}
}
}
if($CustomerIds)
{
$CustomerIds = rtrim($CustomerIds, ',');
}
$RetailerNameId = array('RetailerNameId'=>$CustomerIds);
$BeatPlan_insert = BeatPlan::where('BeatPlanId',$BeatPlanId)->update($RetailerNameId);
$BPValue = '';
if($p == count($BeatPlanCustomers))
{
$BeatPlans = BeatPlan::select('*')
->where('BeatPlanId', $BeatPlanId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($BeatPlans->count() > 0)
{
$BPValue = $BeatPlans->first();
//Distributer
$DistributorNameId = $BPValue->DistributorNameId;
$CustomerName = '';
$Customer = Customer::where('CustomerId', $DistributorNameId)->get();
if ($Customer->count() > 0)
{ //email is not exist
$CustomerData = $Customer->first();
$CustomerName = $CustomerData->CustomerName;
}
$BPValue['DistributorName'] = $CustomerName;
//Retailer RetailerNameId
$RetailerNameIds = $BPValue->RetailerNameId;
$RetailerNames = '';
$RetailerNameValue = '';
if($RetailerNameIds)
{
$RetailerNameIdArray = explode(',', $RetailerNameIds);
for($h=0;$h < count($RetailerNameIdArray); $h++)
{
$RetailerNameId = $RetailerNameIdArray[$h];
$RCustomer = Customer::where('CustomerId', $RetailerNameId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
$RetailerNameValue .= $CustomerName.', ';
}
}
if($RetailerNameValue)
{
$RetailerNames = rtrim($RetailerNameValue, ', ');
}
}
$BPValue['RetailerNames'] = $RetailerNames;
//SalesTerritory
$SalesTerritory = $BPValue->SalesTerritoryId;
$SalesTerritoryName = '';
$SalesTerritory = SalesTerritory::where('TerritoryId', $SalesTerritory)->get();
if ($SalesTerritory->count() > 0)
{ //email is not exist
$SalesTerritoryData = $SalesTerritory->first();
$SalesTerritoryName = $SalesTerritoryData->Name;
}
$BPValue['SalesTerritoryName'] = $SalesTerritoryName;
//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;
$BeatPlanCustomer = BeatPlanCustomer::select('*')
->where('BeatPlanId', $BeatPlanId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($BeatPlanCustomer->count() > 0)
{
foreach ($BeatPlanCustomer as $key => $BPCValue)
{
$CustomerName = '';
$CustomerId = $BPCValue->CustomerId;
$RCustomer = Customer::where('CustomerId', $CustomerId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
}
$BPCValue['CustomerName']= $CustomerName;
}
}
$BPValue['Retailers'] = $BeatPlanCustomer;
}
}
$response = [
'Success' => true,
'ResponseMessage' => "BeatPlan has been updated",
'ResponseCode' => "200",
'BeatPlanData' => $BPValue,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'BeatPlanQuery' => $BeatPlanQuery
];
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getBeatPlanDetails
public function getBeatPlanDetails(Request $request, $BeatPlanId='') {
$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);
}
$BeatPlans = BeatPlan::select('*')
->where('BeatPlanId',$BeatPlanId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->get();
if ($BeatPlans->count() > 0)
{
$BPValue = $BeatPlans->first();
$CreatedFormatedDate = $BPValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$BPValue->CreatedFormatedDate = $CreatedFormatedDate;
$BeatPlanType = $BPValue->BeatPlanType;
//Distributer
$DistributorNameId = $BPValue->DistributorNameId;
$CustomerName = '';
$Customer = Customer::where('CustomerId', $DistributorNameId)->get();
if ($Customer->count() > 0)
{ //email is not exist
$CustomerData = $Customer->first();
$CustomerName = $CustomerData->CustomerName;
}
$BPValue['DistributorName'] = $CustomerName;
//Retailer RetailerNameId
$RetailerNameIds = $BPValue->RetailerNameId;
$RetailerNames = '';
$RetailerNameValue = '';
$userNames = array();
if($RetailerNameIds)
{
$RetailerNameIdArray = explode(',', $RetailerNameIds);
for($h=0;$h < count($RetailerNameIdArray); $h++)
{
$RetailerNameId = $RetailerNameIdArray[$h];
$RCustomer = Customer::where('CustomerId', $RetailerNameId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
$RetailerNameValue .= $CustomerName.', ';
$userNames[] = $RCustomerData->CustomerId;
}
}
if($RetailerNameValue)
{
$RetailerNames = rtrim($RetailerNameValue, ', ');
}
}
$BPValue['RetailerNames'] = $RetailerNames;
$BPValue['Retailers'] = $userNames;
//Customer CustomerNameId
// $CustomerNameIds = $BPValue->CustomerId;
// $CustomerNames = '';
// $CustomerNameValue = '';
// if($CustomerNameIds)
// {
// $CustomerNameIdArray = explode(',', $CustomerNameIds);
// for($c=0;$c < count($CustomerNameIdArray); $c++)
// {
// $CustomerNameId = $CustomerNameIdArray[$c];
// $GetCustomer = Customer::where('CustomerId', $CustomerNameId)->get();
// if ($GetCustomer->count() > 0)
// {
// $GetCustomerData = $GetCustomer->first();
// $CustomerName = $GetCustomerData->CustomerName;
// $CustomerNameValue .= $CustomerName.', ';
// echo $CustomerNameValue;
// }
// }
// if($CustomerNameValue)
// {
// $CustomerNames = rtrim($CustomerNameValue, ', ');
// }
// $BPValue['CustomerNames'] = $CustomerNames;
// }
//SalesTerritory
$SalesTerritory = $BPValue->SalesTerritoryId;
$SalesTerritoryName = '';
$SalesTerritory = SalesTerritory::where('TerritoryId', $SalesTerritory)->get();
if ($SalesTerritory->count() > 0)
{ //email is not exist
$SalesTerritoryData = $SalesTerritory->first();
$SalesTerritoryName = $SalesTerritoryData->Name;
}
$BPValue['SalesTerritoryName'] = $SalesTerritoryName;
//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;
if(strtoupper($BeatPlanType) == strtoupper('SALESAREAWISE'))
{
$BPValue['CustomerNameId'] = $BPValue['RetailerNameId'];
$BPValue['CustomerNames'] = $BPValue['RetailerNames'];
$BPValue['RetailerNames'] = '';
$BPValue['RetailerNameId'] = '';
$BPValue['Customers'] = $BPValue['Retailers'];
$BPValue['Retailers'] = '';
}
else
{
$BPValue['CustomerNames'] = '';
$BPValue['CustomerNameId'] = '';
$BPValue['Customers'] = array();
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'BeatPlanDetails' => $BPValue,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Beat plan does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getBeatPlanList
public function getBeatPlanList(Request $request, $BeatPlanType='') {
$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(strtoupper($BeatPlanType) == strtoupper('SALESAREAWISE'))
{
$BeatPlans = BeatPlan::select('*')
->where('BeatPlanType', 'like', $BeatPlanType)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
else if(strtoupper($BeatPlanType) == strtoupper('DistributorWise'))
{
$BeatPlans = BeatPlan::select('*')
->where('BeatPlanType', 'like', $BeatPlanType)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
else
{
$BeatPlans = BeatPlan::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'DESC')
->get();
}
if ($BeatPlans->count() > 0)
{
foreach ($BeatPlans as $key => $BPValue)
{
$CreatedFormatedDate = $BPValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$BPValue->CreatedFormatedDate = $CreatedFormatedDate;
//Distributer
$DistributorNameId = $BPValue->DistributorNameId;
$CustomerName = '';
$Customer = Customer::where('CustomerId', $DistributorNameId)->get();
if ($Customer->count() > 0)
{ //email is not exist
$CustomerData = $Customer->first();
$CustomerName = $CustomerData->CustomerName;
}
$BPValue['DistributorName'] = $CustomerName;
//Retailer RetailerNameId
$RetailerNameIds = $BPValue->RetailerNameId;
$RetailerNames = '';
$RetailerNameValue = '';
if($RetailerNameIds)
{
$RetailerNameIdArray = explode(',', $RetailerNameIds);
for($h=0;$h < count($RetailerNameIdArray); $h++)
{
$RetailerNameId = $RetailerNameIdArray[$h];
$RCustomer = Customer::where('CustomerId', $RetailerNameId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
$RetailerNameValue .= $CustomerName.', ';
}
}
if($RetailerNameValue)
{
$RetailerNames = rtrim($RetailerNameValue, ', ');
}
}
$BPValue['RetailerNames'] = $RetailerNames;
//SalesTerritory
$SalesTerritory = $BPValue->SalesTerritoryId;
$SalesTerritoryName = '';
$SalesTerritory = SalesTerritory::where('TerritoryId', $SalesTerritory)->get();
if ($SalesTerritory->count() > 0)
{ //email is not exist
$SalesTerritoryData = $SalesTerritory->first();
$SalesTerritoryName = $SalesTerritoryData->Name;
}
$BPValue['SalesTerritoryName'] = $SalesTerritoryName;
//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;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'BeatPlanList' => $BeatPlans,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Beat plan does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getBeatPlanListCustomer
public function getBeatPlanListCustomer(Request $request, $CustomerId='') {
$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($CustomerId)
{
$BeatPlans = BeatPlan::select('tbl_beat_plan.*')
->leftJoin('tbl_beat_plan_customers', 'tbl_beat_plan_customers.BeatPlanId', '=', 'tbl_beat_plan.BeatPlanId')
->where('tbl_beat_plan_customers.CustomerId', 'like', $CustomerId)
->where('tbl_beat_plan.Status', '=', '1')
->where('tbl_beat_plan.IsDeleted', '=', 0)
->where('tbl_beat_plan.AssignTo', '=', $UserId)
->orderBy('tbl_beat_plan.id', 'DESC')
->get();
}
else
{
$response = [
'success' => false,
'ResponseMessage' => "CustomerId required",
'ResponseCode' => "305",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
if ($BeatPlans->count() > 0)
{
foreach ($BeatPlans as $key => $BPValue)
{
$CreatedFormatedDate = $BPValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$BPValue->CreatedFormatedDate = $CreatedFormatedDate;
//Distributer
$DistributorNameId = $BPValue->DistributorNameId;
$CustomerName = '';
$Customer = Customer::where('CustomerId', $DistributorNameId)->get();
if ($Customer->count() > 0)
{ //email is not exist
$CustomerData = $Customer->first();
$CustomerName = $CustomerData->CustomerName;
}
$BPValue['DistributorName'] = $CustomerName;
//Retailer RetailerNameId
$RetailerNameIds = $BPValue->RetailerNameId;
$RetailerNames = '';
$RetailerNameValue = '';
if($RetailerNameIds)
{
$RetailerNameIdArray = explode(',', $RetailerNameIds);
for($h=0;$h < count($RetailerNameIdArray); $h++)
{
$RetailerNameId = $RetailerNameIdArray[$h];
$RCustomer = Customer::where('CustomerId', $RetailerNameId)->get();
if ($RCustomer->count() > 0)
{ //email is not exist
$RCustomerData = $RCustomer->first();
$CustomerName = $RCustomerData->CustomerName;
$RetailerNameValue .= $CustomerName.', ';
}
}
if($RetailerNameValue)
{
$RetailerNames = rtrim($RetailerNameValue, ', ');
}
}
$BPValue['RetailerNames'] = $RetailerNames;
//SalesTerritory
$SalesTerritory = $BPValue->SalesTerritoryId;
$SalesTerritoryName = '';
$SalesTerritory = SalesTerritory::where('TerritoryId', $SalesTerritory)->get();
if ($SalesTerritory->count() > 0)
{ //email is not exist
$SalesTerritoryData = $SalesTerritory->first();
$SalesTerritoryName = $SalesTerritoryData->Name;
}
$BPValue['SalesTerritoryName'] = $SalesTerritoryName;
//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;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'BeatPlanList' => $BeatPlans,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Beat plan does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
public function getSalesAreaList(Request $request, $TerritoryId='') {
$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($TerritoryId)
{
$SalesArea = SalesArea::select('*')
->where('SalesTerritoryId', 'like', $TerritoryId)
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
//->where('Created_by', '=', $UserId)
->Orderby('Name','Asc')
->get();
}
else
{
$SalesArea = SalesArea::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
// ->where('Created_by', '=', $UserId)
->Orderby('Name','Asc')
->get();
}
if ($SalesArea->count() > 0)
{
foreach ($SalesArea as $key => $SalesAreaValue)
{
$CreatedFormatedDate = $SalesAreaValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$SalesAreaValue->CreatedFormatedDate = $CreatedFormatedDate;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'SalesArea' => $SalesArea,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "SalesArea does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//tbl_expense_type
public function getSalesTerritoryList(Request $request, $UserId='') {
$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);
}
$SalesTerritory = SalesTerritory::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', 0)
->orderBy('Name','ASC')
->get();
if ($SalesTerritory->count() > 0)
{
foreach ($SalesTerritory as $key => $SalesTerritoryValue)
{
$CreatedFormatedDate = $SalesTerritoryValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$SalesTerritoryValue->CreatedFormatedDate = $CreatedFormatedDate;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'SalesTerritory' => $SalesTerritory,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "Sales territory does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
### Customer List
public function getAllCustomerList(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);
}
$Customer = Customer::where('Status', '=', '1')
->where('IsDeleted', '=', '0')->get();
$Retailer = Customer::select('tbl_customer.*', 'tbl_customer_type.Name as CustomerType')
->leftJoin('tbl_customer_type', 'tbl_customer.CustomerTypeId', '=', 'tbl_customer_type.CustomerTypeId')
->where('tbl_customer.CustomerTypeId', '=', '7zbZseyyTqvA6n7n5Bk01RvCm30KpPQa8M8k7')
->where('tbl_customer.Status', '=', '1')
->where('tbl_customer.IsDeleted', '=', '0')
->where('tbl_customer.AssignTo', '=', $UserId)
->orderBy('tbl_customer.id', 'desc')
->get();
$Distributor = Customer::select('tbl_customer.*', 'tbl_customer_type.Name as CustomerType')
->leftJoin('tbl_customer_type', 'tbl_customer.CustomerTypeId', '=', 'tbl_customer_type.CustomerTypeId')
->where('tbl_customer.CustomerTypeId', '=', '4zZVseyyTqvA6n7n5Bk01RvCm30KpPQa8M8k2')
->where('tbl_customer.Status', '=', '1')
->where('tbl_customer.IsDeleted', '=', '0')
->where('tbl_customer.AssignTo', '=', $UserId)
->orderBy('tbl_customer.id', 'desc')
->get();
$WholeSeller = Customer::select('tbl_customer.*', 'tbl_customer_type.Name as CustomerType')
->leftJoin('tbl_customer_type', 'tbl_customer.CustomerTypeId', '=', 'tbl_customer_type.CustomerTypeId')
->where('tbl_customer.CustomerTypeId', '=', 'ozbVseyyTqvA6n7n5Bk01RvCm40KpPQa8M8k3')
->where('tbl_customer.Status', '=', '1')
->where('tbl_customer.IsDeleted', '=', '0')
->where('tbl_customer.AssignTo', '=', $UserId)
->orderBy('tbl_customer.id', 'desc')
->get();
return response()->json([
'status' => 200,
'Customer' => $Customer,
'Retailer' => $Retailer,
'Distributor' => $Distributor,
'WholeSeller' => $WholeSeller,
]);
}
## Retailer List
public function getRetailerList(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);
}
$Retailer = Customer::select('tbl_customer.*', 'tbl_customer_type.Name as CustomerType')
->leftJoin('tbl_customer_type', 'tbl_customer.CustomerTypeId', '=', 'tbl_customer_type.CustomerTypeId')
->where('tbl_customer.CustomerTypeId', '=', '7zbZseyyTqvA6n7n5Bk01RvCm30KpPQa8M8k7')
->where('tbl_customer.Status', '=', '1')
->where('tbl_customer.IsDeleted', '=', '0')
->where('AssignTo', '=', $UserId)
->orderBy('tbl_customer.id', 'desc')
->get();
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Retailer' => $Retailer,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
## Distributor List
public function getDistributorList(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);
}
$Distributor = Customer::select('tbl_customer.*', 'tbl_customer_type.Name as CustomerType')
->leftJoin('tbl_customer_type', 'tbl_customer.CustomerTypeId', '=', 'tbl_customer_type.CustomerTypeId')
->where('tbl_customer.CustomerTypeId', '=', '4zZVseyyTqvA6n7n5Bk01RvCm30KpPQa8M8k2')
->where('tbl_customer.Status', '=', '1')
->where('tbl_customer.IsDeleted', '=', '0')
->where('AssignTo', '=', $UserId)
->orderBy('tbl_customer.id', 'desc')
->get();
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Distributor' => $Distributor,
'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;
}
}