File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/APIExpenseController.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\Expense;
use App\Models\ExpenseType;
use App\Models\ExpenseTypeTravel;
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 APIExpenseController extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
protected $userLib;
protected $dateFormat = 'dd-mm-yyyy';
public function __construct(UserLib $userLib)
{
$this->userLib = $userLib;
}
//User Registration
public function createExpense(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$expenseId = $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(!$data['UserId'])
{
$response = [
'success' => false,
'ResponseMessage' => "Customer Id Required",
'ResponseCode' => "302",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$ExpenseNo = "EXP-".time().'-'.rand();
$data['ExpenseNo'] = $ExpenseNo;
$data['ExpenseId'] = $expenseId;
// $data['expenseDate'] = $CreatedDate;
$data['Updated_at'] = $CreatedDate;
$data['Created_at'] = $CreatedDate;
$data['AssignTo'] = $UserId;
$data['Created_by'] = $UserId;
$data['Updated_by'] = $UserId;
$expense_insert = Expense::insert($data);
if($expense_insert)
{
$AmountOption = isset($data['AmountOption']) ? $data['AmountOption'] : '';
$Approved = isset($data['Approved']) ? $data['Approved'] : '';
$Date = isset($data['Date']) ? $data['Date'] : '';
$Description = isset($data['Description']) ? $data['Description'] : '';
$ExpenseAmount = isset($data['ExpenseAmount']) ? $data['ExpenseAmount'] : '';
$ExpenseTypeId = isset($data['ExpenseTypeId']) ? $data['ExpenseTypeId'] : '';
$ExpenseTypeTravelId = isset($data['ExpenseTypeTravelId']) ? $data['ExpenseTypeTravelId'] : '';
$ExpenseTypeTravelName = isset($data['ExpenseTypeTravelName']) ? $data['ExpenseTypeTravelName'] : '';
$TravelKm = isset($data['TravelKm']) ? $data['TravelKm'] : '';
$TypeOfExpense = isset($data['TypeOfExpense']) ? $data['TypeOfExpense'] : '';
$UserId = isset($data['UserId']) ? $data['UserId'] : '';
$IsDeleted = '0';
$Status = '1';
$Created_by = isset($data['Created_by']) ? $data['Created_by'] : '';
$Updated_by = isset($data['Updated_by']) ? $data['Updated_by'] : '';
$ExpenseQuery = "insert into salesforce.Expense__c (Expense_Id__c,Amount_Option__c,Approved_By__c,Date__c,Description__c,Expense_Amount__c,Expense_Type_Id__c,Expense_Type_Travel_Id__c,ExpenseTypeTravelName__c,TravelKm__c,Type_Of_Expense__c,UserId__c,Is_Deleted__c,Status__c,CreatedDate,Created_By__c,Updated_By__c,Name) values ('$expenseId','$AmountOption','$Approved','$Date','$Description','$ExpenseAmount','$ExpenseTypeId','$ExpenseTypeTravelId','$ExpenseTypeTravelName','$TravelKm','$TypeOfExpense','$UserId','$IsDeleted','$Status','$CreatedDate','$Created_by','$Updated_by','$ExpenseNo')";
DB::connection('pgsql')->insert($ExpenseQuery);
$expenseDetails = Expense::where('ExpenseId', '=', $expenseId)->get()->first();
if ($expenseDetails->UserId) {
$User = User::where('UserId', '=', $expenseDetails->UserId)->get()->first();
$FirstName = $User->FirstName;
$LastName = $User->LastName;
$UserName = $FirstName.' '.$LastName;
$expenseDetails->UserName = $UserName;
}
$response = [
'Success' => true,
'ResponseMessage' => "Expense has been created",
'ResponseCode' => "200",
'expense' => $expenseDetails,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'ExpenseQuery' => $ExpenseQuery
];
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//User Registration
public function updateexpense(Request $request) {
//TODO What is device_token
$data = $request->json()->all();
$expenseId = $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(!$data['UserId'])
{
$response = [
'success' => false,
'ResponseMessage' => "Customer Id Required",
'ResponseCode' => "302",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
$expenseId = $data['ExpenseId'];
// $data['expenseDate'] = $CreatedDate;
$data['Updated_at'] = $CreatedDate;
$data['Updated_by'] = $UserId;
unset($data['ExpenseId']);
$expense_insert = Expense::where('ExpenseId', '=', $expenseId)->update($data);
if($expense_insert)
{
$AmountOption = isset($data['AmountOption']) ? $data['AmountOption'] : '';
$Approved = isset($data['Approved']) ? $data['Approved'] : '';
$Date = isset($data['Date']) ? $data['Date'] : '';
$Description = isset($data['Description']) ? $data['Description'] : '';
$ExpenseAmount = isset($data['ExpenseAmount']) ? $data['ExpenseAmount'] : '';
$ExpenseTypeId = isset($data['ExpenseTypeId']) ? $data['ExpenseTypeId'] : '';
$ExpenseTypeTravelId = isset($data['ExpenseTypeTravelId']) ? $data['ExpenseTypeTravelId'] : '';
$ExpenseTypeTravelName = isset($data['ExpenseTypeTravelName']) ? $data['ExpenseTypeTravelName'] : '';
$TravelKm = isset($data['TravelKm']) ? $data['TravelKm'] : '';
$TypeOfExpense = isset($data['TypeOfExpense']) ? $data['TypeOfExpense'] : '';
$UserId = isset($data['UserId']) ? $data['UserId'] : '';
$Updated_by = $UserId;
$IsDeleted = isset($data['IsDeleted']) ? $data['IsDeleted'] : '';
$Status = isset($data['Status']) ? $data['Status'] : '';
$ExpenseQuery = "update salesforce.Expense__c set Amount_Option__c='$AmountOption',Approved_By__c='$Approved',Date__c='$Date',Description__c='$Description',Expense_Amount__c='$ExpenseAmount',Expense_Type_Id__c='$ExpenseTypeId',Expense_Type_Travel_Id__c='$ExpenseTypeTravelId',ExpenseTypeTravelName__c='$ExpenseTypeTravelName',TravelKm__c='$TravelKm',Type_Of_Expense__c='$TypeOfExpense',UserId__c='$UserId',Updated_At__c='$CreatedDate',Updated_By__c='$Updated_by',Is_Deleted__c='$IsDeleted',Status__c='$Status' where Expense_Id__c='$expenseId'";
DB::connection('pgsql')->update($ExpenseQuery);
$expenseDetails = Expense::where('ExpenseId', '=', $expenseId)->get()->first();
if ($expenseDetails->UserId) {
$User = User::where('UserId', '=', $expenseDetails->UserId)->get()->first();
$FirstName = $User->FirstName;
$LastName = $User->LastName;
$UserName = $FirstName.' '.$LastName;
$expenseDetails->UserName = $UserName;
}
$response = [
'Success' => true,
'ResponseMessage' => "Expense has been updated",
'ResponseCode' => "200",
'expense' => $expenseDetails,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
'ExpenseQuery' => $ExpenseQuery
];
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "204",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//Upload expense image
public function uploadexpensefiles(Request $request) {
//TODO What is device_token
// $data = $request->json()->all();
$CreatedDate = date('Y-m-d H:i:s',time());
$expenseId = $request->input('ExpenseId');
$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);
}
$data = array();
$data['Updated_by'] = session('UserId');;
$data['Updated_at'] = $CreatedDate;
##ExpenseUploadFile1
// $imageName = $this->userLib->useridGenrator();
// if ($request->hasFile('ExpenseFile1'))
// {
// $path = '';
// $file = $request->file('ExpenseFile1');
// $extension = $file->getClientOriginalExtension();
// $newFileName = $imageName . '-' . time() . '.' . $extension;
// Storage::putFileAs(
// 'public/expense',
// $file,
// $newFileName
// );
// $destinationPath = 'expense';
// $isUploaded = $file->move($destinationPath,$newFileName);
// if($isUploaded)
// {
// $path = 'expense/' . $newFileName;
// $ThumbnailUrl = $path;
// }
// $data['ExpenseFile1'] = $ThumbnailUrl;
// }
$imageName1 = $this->userLib->useridGenrator();
if ($request->hasFile('ExpenseFile1'))
{
$path1 = '';
$file1 = $request->file('ExpenseFile1');
$extension = $file1->getClientOriginalExtension();
$newFileName1 = $imageName1 . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/expense/',
$file1,
$newFileName1
);
$destinationPath = 'expense/';
$isUploaded = $file1->move($destinationPath,$newFileName1);
$uploadedFileURL1 = '';
if($isUploaded)
{
$path1 = 'expense/' . $newFileName1;
$ThumbnailUrl = $path1;
//File Upload Service as s3
$sourceFileURL = env('APP_URL').'/'.$path1;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/s3-file-server/api-upload.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_url' => $sourceFileURL),
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$uploadedFile = json_decode($response,true);
$uploadedFileURL1 = isset($uploadedFile['url']) ? $uploadedFile['url'] : '';
}
$data['ExpenseFile1'] = $uploadedFileURL1;
}
##ExpenseUploadFile2
// $imageName2 = $this->userLib->useridGenrator();
// if ($request->hasFile('ExpenseFile2'))
// {
// $path = '';
// $file = $request->file('ExpenseFile2');
// $extension = $file->getClientOriginalExtension();
// $newFileName = $imageName2 . '-' . time() . '.' . $extension;
// Storage::putFileAs(
// 'public/expense',
// $file,
// $newFileName
// );
// $destinationPath = 'expense';
// $isUploaded = $file->move($destinationPath,$newFileName);
// if($isUploaded)
// {
// $path = 'expense/' . $newFileName;
// $ThumbnailUrl = $path;
// }
// $data['ExpenseFile2'] = $ThumbnailUrl;
// }
$imageName2 = $this->userLib->useridGenrator();
if ($request->hasFile('ExpenseFile2'))
{
$path2 = '';
$file2 = $request->file('ExpenseFile2');
$extension = $file2->getClientOriginalExtension();
$newFileName2 = $imageName2 . '-' . time() . '.' . $extension;
Storage::putFileAs(
'public/expense',
$file2,
$newFileName2
);
$destinationPath = 'expense';
$isUploaded = $file2->move($destinationPath,$newFileName2);
$uploadedFileURL2='';
if($isUploaded)
{
$path2 = 'expense/' . $newFileName2;
$ThumbnailUrl = $path2;
//File Upload Service
$sourceFileURL = env('APP_URL').'/'.$path2;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'http://172.105.42.62/s3-file-server/api-upload.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file_url' => $sourceFileURL),
CURLOPT_HTTPHEADER => array(
'Cookie: private_content_version=3f7abce738dd8b52d0dcb8653bfe8e93; mage-messages=%5B%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%2C%7B%22type%22%3A%22error%22%2C%22text%22%3A%22Invalid%20Form%20Key.%20Please%20refresh%20the%20page.%22%7D%5D'
),
));
$response = curl_exec($curl);
curl_close($curl);
$uploadedFile = json_decode($response,true);
$uploadedFileURL2 = isset($uploadedFile['url']) ? $uploadedFile['url'] : '';
}
$data['ExpenseFile2'] = $uploadedFileURL2;
}
$expense_update = Expense::where('ExpenseId', $expenseId)->update($data);
if($expense_update)
{
$expenseDetails = Expense::where('ExpenseId', $expenseId)->get()->first();
if ($expenseDetails->UserId) {
$User = User::where('UserId', '=', $expenseDetails->UserId)->get()->first();
$FirstName = $User->FirstName;
$LastName = $User->LastName;
$UserName = $FirstName.' '.$LastName;
$expenseDetails->UserName = $UserName;
}
$response = [
'success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'ApiVersion' => env('APP_VERSION'),
'ApiUrl' => env('APP_URL'),
'expense'=>$expenseDetails,
];
return response()->json($response);
}
else
{
$response = [
'Success' => false,
'ResponseMessage' => "Invalid data",
'ResponseCode' => "202",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//expensePaymentType
public function expensePaymentType(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);
}
$Paymenttypes = PaymentType::select('*')
->where('Status', '=', 1)
->orderBy('PaymentTypeName', 'asc')
->get();
if ($Paymenttypes->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'Paymenttypes' => $Paymenttypes,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "expenses does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getOrderDetails
public function expenseList(Request $request, $expenseId='')
{
$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);
}
$expenses = Expense::select('*')
// ->where('ExpenseId', 'like', $expenseId)
->where('IsDeleted', '=', '0')
->where('AssignTo', '=', $UserId)
->orderBy('id', 'desc')
->get();
if ($expenses->count() > 0)
{
foreach ($expenses as $key => $ColletionValue)
{
$UserId = $ColletionValue->UserId;
$CreatedFormatedDate = $ColletionValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$ColletionValue->CreatedFormatedDate = $CreatedFormatedDate;
$ExpensCreatedFormatedDate = $ColletionValue->Date;
$ExpensCreatedFormatedDate = date("j M Y",strtotime($ExpensCreatedFormatedDate));
$ColletionValue->ExpensCreatedFormatedDate = $ExpensCreatedFormatedDate;
$User = User::where('UserId', $UserId)->get();
if ($User->count() > 0)
{ //email is not exist
$User = $User->first();
$FirstName = $User->FirstName;
$LastName = $User->LastName;
$UserName = $FirstName.' '.$LastName;
}
$ColletionValue['UserName'] = $UserName;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'expenses' => $expenses,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "expenses does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getOrderStatusList
public function getOrderStatusList(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);
}
$OrderStatus = OrderStatus::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->get();
if ($OrderStatus->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'OrderStatus' => $OrderStatus,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "OrderStatus does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//ExpenseTypeTravel
public function getExpenseTypeTravelList(Request $request, $ExpenseTypeId='') {
$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);
}
$ExpenseTypeTravel = ExpenseTypeTravel::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->where('ExpenseTypeId', $ExpenseTypeId)
->get();
if ($ExpenseTypeTravel->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'ExpenseTypeTravel' => $ExpenseTypeTravel,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "ExpenseTypeTravel does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//getOrderStatusList
public function getexpenseDetails(Request $request, $expenseId='') {
$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);
}
$expenses = Expense::select('*')
->where('ExpenseId', '=', $expenseId)
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->get();
if ($expenses->count() > 0)
{
$expenseData = $expenses->first();
$CreatedFormatedDate = $expenseData->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$expenseData->CreatedFormatedDate = $CreatedFormatedDate;
if ($expenseData->UserId) {
$User = User::where('UserId', '=', $expenseData->UserId)->get()->first();
$FirstName = $User->FirstName;
$LastName = $User->LastName;
$UserName = $FirstName.' '.$LastName;
$expenseData->UserName = $UserName;
}
// if ($expenseData->PaymentType) {
// $pt = PaymentType::where('PaymentTypeId', '=', $expenseData->PaymentType)->get()->first();
// $PaymentTypeName = $pt->PaymentTypeName;
// $expenseData->PaymentTypeName = $PaymentTypeName;
// }
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'expense' => $expenseData,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "expense does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
//tbl_expense_type
public function getExpenseTypeList(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);
}
$ExpenseType = ExpenseType::select('*')
->where('Status', '=', '1')
->where('IsDeleted', '=', '0')
->orderBy('id', 'asc')
->get();
if ($ExpenseType->count() > 0)
{
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'ExpenseType' => $ExpenseType,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "ExpenseType 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;
}
//expenseListSearch
public function expenseListSearch(Request $request, $SearchKey='')
{
$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($SearchKey)
{
$expenses = Expense::select('*')
->leftJoin('tbl_expense_type', 'tbl_expense_type.ExpenseTypeId', '=', 'tbl_expense.ExpenseTypeId')
->where('tbl_expense_type.ExpenseTypeName', 'iLIKE', '%'.$SearchKey.'%')
->where('tbl_expense.IsDeleted', '=', 0)
->where('tbl_expense.AssignTo', '=', $UserId)
->orderBy('tbl_expense.id', 'desc')
->get();
}
else
{
$expenses = Expense::select('*')
// ->where('ExpenseId', 'like', $expenseId)
->where('IsDeleted', '=', 0)
->where('AssignTo', '=', $UserId)
->orderBy('id', 'desc')
->get();
}
if ($expenses->count() > 0)
{
foreach ($expenses as $key => $ColletionValue)
{
$UserId = $ColletionValue->UserId;
$CreatedFormatedDate = $ColletionValue->Created_at;
$CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));
$ColletionValue->CreatedFormatedDate = $CreatedFormatedDate;
$User = User::where('UserId', $UserId)->get();
if ($User->count() > 0)
{ //email is not exist
$User = $User->first();
$FirstName = $User->FirstName;
$LastName = $User->LastName;
$UserName = $FirstName.' '.$LastName;
}
$ColletionValue['UserName'] = $UserName;
}
$response = [
'Success' => true,
'ResponseMessage' => "Success",
'ResponseCode' => "200",
'UserId' => $UserId,
'AuthToken' => $AuthToken,
'expenses' => $expenses,
'ApiUrl' => env('APP_URL'),
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
else
{
// fail
$response = [
'Success' => false,
'ResponseMessage' => "expenses does not exist",
'ResponseCode' => "201",
'ApiVersion' => env('APP_VERSION'),
];
return response()->json($response);
}
}
}