HEX
Server: Apache/2.4.46 (Ubuntu)
System: Linux localhost 5.11.0-49-generic #55-Ubuntu SMP Wed Jan 12 17:36:34 UTC 2022 x86_64
User: root (0)
PHP: 7.4.16
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/fieldsblaze-heroku/app/Http/Controllers/APIAttendanceController.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\Leave;
use App\Models\LeaveType;
use App\Models\Attendance;
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 APIAttendanceController extends BaseController
{
    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
 
    protected $userLib;
    protected $dateFormat = 'dd-mm-yyyy';
    public function __construct(UserLib $userLib)
	{
		$this->userLib = $userLib;		 
	}

    //createAttendance
public function createAttendance(Request $request) {
    //TODO What is device_token
    $data = $request->json()->all();	                 
    $AttendanceId = $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);
    }        
    $data['AttendanceId'] = $AttendanceId;
    $data['Status'] = '1';
    $data['IsDeleted'] = '0';
   // $data['AttendanceDate'] = $CreatedDate;
    $data['Updated_at'] = $CreatedDate;
    $data['Created_at'] = $CreatedDate;
    $data['Created_by'] = $UserId;
    $data['Updated_by'] = $UserId;
    $data['CreatedDate'] = $CreatedDate;
    $data['ModifiedDate'] = $CreatedDate;
    
    $Attendance_insert = Attendance::insert($data);

    $CustomerIds = '';
    if($Attendance_insert)
    { 
        $AttendanceDate = isset($data['AttendanceDateTime']) ? $data['AttendanceDateTime'] : '';
        // $CheckInDateTime = isset($data['CheckInDateTime']) ? $data['CheckInDateTime'] : ''; 
        $CheckIn = date('Y-m-d H:i:s',time());
        $Location = isset($data['Location']) ? $data['Location'] : '';
        $Latitude = '';
        $Longitude = '';
        if($Location){
            $values = explode(',', $Location);
            $Latitude = isset($values[0]) ? $values[0] : '';
            $Longitude = isset($values[1]) ? $values[1] : '';
        }
        $OwnerId = isset($data['OwnerId']) ? $data['OwnerId'] : '';
        $Status = '1';
        $IsDeleted = '0';
        $Created_by = $UserId;
        $CreatedDate = date('Y-m-d H:i:s',time());

        $AttendanceQuery = "insert into salesforce.Attendance__c (AttendanceId__c,Attendance_Date__c,Check_In__c,Location__Latitude__s,Location__Longitude__s,OwnerId__c,Status__c,IsDeleted__c,Created_by__c,Created_at__c) values ('$AttendanceId','$AttendanceDate','$CheckIn','$Latitude','$Longitude','$OwnerId','$Status','$IsDeleted','$Created_by','$CreatedDate')"; 
        
        DB::connection('pgsql')->insert($AttendanceQuery);

        $Attendance = Attendance::select('*')  
        ->where('AttendanceId',$AttendanceId)         
        ->where('Status', '=', '1')  
        ->where('IsDeleted', '=', 0)          
        ->get()->first();                                                                                
        $response = [
            'Success' => true,
            'ResponseMessage' => "Attendance has been created",
            'ResponseCode' => "200",                                                            
            'Attendance' => $Attendance, 
            'ApiUrl' => env('APP_URL'),    
            'ApiVersion' => env('APP_VERSION'),
            'AttendanceQuery' => $AttendanceQuery                           
        ];                                               
        return response()->json($response);           
    }
    else
    {            
        $response = [
            'Success' => false,
            'ResponseMessage' => "Invalid data",
            'ResponseCode' => "204",   
            'ApiVersion' => env('APP_VERSION'),                      
        ];
        return response()->json($response);
    }
}  

 
//updateAttendance

public function updateAttendance(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);
    }        
    $AttendanceId = $data['AttendanceId'];     
    $data['Updated_at'] = $CreatedDate;     
    $data['Updated_by'] = $UserId;
    unset($data['AttendanceId']);
    $Attendance_update = Attendance::where('AttendanceId',$AttendanceId)->update($data);    
    if($Attendance_update)
    {  
        $AttendanceDate = isset($data['AttendanceDateTime']) ? $data['AttendanceDateTime'] : '';
        $CheckOutDateTime = isset($data['CheckOutDateTime']) ? $data['CheckOutDateTime'] : '';
        $CheckOut = date('Y-m-d H:i:s',time());
        $CheckOutDate = isset($data['CheckOutDate']) ? $data['CheckOutDate'] : ''; 
        $Location = isset($data['Location']) ? $data['Location'] : '';
        $Latitude = '';
        $Longitude = '';
        if($Location){
            $values = explode(',', $Location);
            $Latitude = isset($values[0]) ? $values[0] : '';
            $Longitude = isset($values[1]) ? $values[1] : '';
        }
        $OwnerId = isset($data['OwnerId']) ? $data['OwnerId'] : '';
        $Updated_by = $UserId;
        $UpdatedDate = date('Y-m-d H:i:s',time());

        $updateQury = '';
        if($Latitude)
        {
            $updateQury .= ", Location__Latitude__s='$Latitude'";
        }

        if($Longitude)
        {
            $updateQury .= ", Location__Longitude__s='$Longitude'";
        }

        $AttendanceQuery = "update salesforce.Attendance__c set Attendance_Date__c='$AttendanceDate',Check_Out__c='$CheckOut' $updateQury ,OwnerId__c='$OwnerId',Updated_by__c='$Updated_by',Updated_at__c='$UpdatedDate' where AttendanceId__c='$AttendanceId'"; 
        
        DB::connection('pgsql')->update($AttendanceQuery); 
        
        $Attendance = Attendance::select('*')  
        ->where('AttendanceId',$AttendanceId)                                
        ->get()->first();  
     
        $response = [
            'Success' => true,
            'ResponseMessage' => "Attendance has been updated",
            'ResponseCode' => "200",                                                            
            'Attendance' => $Attendance, 
            'ApiUrl' => env('APP_URL'),    
            'ApiVersion' => env('APP_VERSION'),
            'AttendanceQuery' => $AttendanceQuery                           
        ];                                               
        return response()->json($response);           
    }
    else
    {            
        $response = [
            'Success' => false,
            'ResponseMessage' => "Invalid data",
            'ResponseCode' => "204",   
            'ApiVersion' => env('APP_VERSION'),                      
        ];
        return response()->json($response);
    }
}   

 

//getAttendanceDetails
public function getAttendanceDetails(Request $request, $AttendanceId='') {
    $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);
    }
    
     
        $Attendance = Attendance::select('*')  
        ->where('AttendanceId',$AttendanceId)         
        ->where('Status', '=', '1')  
        ->where('IsDeleted', '=', 0)        
        ->get();
     
   
                             
    if ($Attendance->count() > 0)
    {   
        $BPValue = $Attendance->first();     
        
        $CreatedFormatedDate = $BPValue->Created_at;      
        $CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));    
        $BPValue->CreatedFormatedDate = $CreatedFormatedDate;


        // $AttendanceTypeId = $BPValue->AttendanceTypeId;     
        // $AttendanceType = AttendanceType::where('AttendanceTypeId', $AttendanceTypeId)->get(); 
        // $AttendanceTypeName = '';    
        // $AttendanceTypeSortName = '';          
        // if ($AttendanceType->count() > 0)
        // {   //email is not exist

        //     $AttendanceTypeData = $AttendanceType->first();   
        //     $AttendanceTypeName = $AttendanceTypeData->Name;
        //     $AttendanceTypeSortName = $AttendanceTypeData->SortName;
        // }  
        // $BPValue->AttendanceTypeName = $AttendanceTypeName;
        // $BPValue->AttendanceTypeSortName = $AttendanceTypeSortName;
        $response = [
            'Success' => true,
            'ResponseMessage' => "Success",
            'ResponseCode' => "200",
            'UserId' => $UserId,                            
            'AuthToken' => $AuthToken,                
            'AttendanceDetails' => $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);                                                                                                           
    }
}

//getAttendanceList
public function getAttendanceList(Request $request, $searchquery='') {
    $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($searchquery)
    {
        $Attendance = Attendance::select('*')          
        ->where('OwnerId', $searchquery)  
        ->where('Status', '=', '1')  
        ->where('IsDeleted', '=', 0)  
        ->orderBy('id', 'DESC')      
        ->get();
    }
    else
    {
        $Attendance = Attendance::select('*')          
        ->where('Status', '=', '1')  
        ->where('IsDeleted', '=', 0)  
        ->orderBy('id', 'DESC')      
        ->get();
    }
                             
    if ($Attendance->count() > 0)
    {       
        foreach ($Attendance as $key => $LValue) 
        {     
            //Distributer 

            $CreatedFormatedDate = $LValue->Created_at;      
            $CreatedFormatedDate = date("j M Y",strtotime($CreatedFormatedDate));    
            $LValue->CreatedFormatedDate = $CreatedFormatedDate;
                 
        //     $AttendanceTypeId = $LValue->AttendanceTypeId;     
        //     $AttendanceType = AttendanceType::where('AttendanceTypeId', $AttendanceTypeId)->get(); 
        //     $AttendanceTypeName = '';    
        //     $AttendanceTypeSortName = '';          
        //     if ($AttendanceType->count() > 0)
        //     {   //email is not exist

        //         $AttendanceTypeData = $AttendanceType->first();   
        //         $AttendanceTypeName = $AttendanceTypeData->Name;
        //         $AttendanceTypeSortName = $AttendanceTypeData->SortName;
        //     }  
        //     $LValue['AttendanceTypeName'] = $AttendanceTypeName;
        //     $LValue['AttendanceTypeSortName'] = $AttendanceTypeSortName;
        }
         

        $response = [
            'Success' => true,
            'ResponseMessage' => "Success",
            'ResponseCode' => "200",
            'UserId' => $UserId,                            
            'AuthToken' => $AuthToken,                
            'AttendanceList' => $Attendance, 
            'ApiUrl' => env('APP_URL'),    
            'ApiVersion' => env('APP_VERSION'),                           
        ];                                               
        return response()->json($response);   
    }
    else
    {   
        // fail
        $response = [
            'Success' => false,
            'ResponseMessage' => "Beat attendance 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;
}

}