Current File : /home/inlingua/www/crm.vprotectindia.com/app/Http/Controllers/API/UserController_old_4_3_25.php
<?php

namespace App\Http\Controllers\API;
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Model\Customer\Customer;
use App\Model\User;
use App\Model\OutstandingReport;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Validator;
use Laravel\Passport\Passport;


class UserController extends Controller
{
     public $successStatus = 200;
	 
	 private $client;
private $domain;


public function __construct()
{
    $this->domain =env('APP_URL');
}
	 
	
      /**
     * login api
     *
     * @return \Illuminate\Http\Response
     */
    public function login(Request $request){

    //return response()->json(['Sucess'=>request('email').'=>'.request('password')], 200); 
    //print_r($request->all());
        if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
            $user = Auth::user();
			$success['token'] =  $user->createToken('MyApp')->accessToken;
			//$success['token'] =$user->createToken('MyToken', ['place-orders'])->accessToken;
			$success[]='1';
            return response()->json(['success' => $success], $this->successStatus);
        }
        else{
            return response()->json(['error'=>'Unauthorised'], 401);
        }
    }
	
	
	public function customer_login(Request $request){


      // return response()->json(['Sucess'=>request('email').'=>'.request('password')], 200);
    if(Auth::guard('customers')->attempt(['email' => request('email'), 'password' => request('password')])){
            $customer = Auth::guard('customers')->user();
			$date=time();
			$password = Hash::make($date);	
			$query=DB::table('customers')
              ->where('id', $customer->id)
              ->update(['remember_token' => $password]);
			  //echo $customer->HasApiTokens('MyApp')->accessToken;
			  
			  //$success['token'] =  $user->createToken('MyApp')->accessToken;
			  $success['status']='success';
			  $success['token']=$password;
			  $success['detals']=$customer;
			return response()->json(['success' => $success], 200);
        }
        else{
            return response()->json(['error'=>'Unauthorised'], 401);
			
			exit;
        }
		
		
    }

    /**
     * Register api
     *
     * @return \Illuminate\Http\Response
     */
    public function register(Request $request)
    {
    	 //return response()->json(['sucess'=>$request], 401);
 

        $validator = Validator::make($request->all(), [
            'name' => 'required',
            'email' => 'required|email',
            'password' => 'required',
            'c_password' => 'required|same:password',
        ]);


        if ($validator->fails()) {
            return response()->json(['error'=>$validator->errors()], 401);            
        }


        $input = $request->all();
        $input['password'] = bcrypt($input['password']);
        $user = User::create($input);
        $success['token'] =  $user->createToken('MyApp')->accessToken;
        $success['name'] =  $user->name;


        return response()->json(['success'=>$success], $this->successStatus);
    }


    /**
     * details api
     *
     * @return \Illuminate\Http\Response
     */
    public function details()
    {
		//print_r($request->all());
        $user = Auth::user();
		//$success['token'] =  $user->createToken('MyApp')->accessToken;
        return response()->json(['success' => $user], $this->successStatus);
    }
	
	
	
	
	  public function gatewaydetails(Request $request)
    {
        $request->header('Authorization');
		$splittoke=explode(" ",$request->header('Authorization'));
        $token=$splittoke[1];
		$exists =$this->varify_user_token($token);
	
		if($exists===null){	  
			return response()->json(['error'=>'Unauthorised'], 401);
		}else{
			//return($query);
			$report['CCAvenue_MERCHANT_ID']=config('indipay.ccavenue.merchantId');
			$report['CCAvenue_ACCESS_CODE']=config('indipay.ccavenue.accessCode');
			$report['CCAvenue_WORKING_KEY']=config('indipay.ccavenue.workingKey');
			
			
			
			
			return response()->json(['success' => $report], $this->successStatus);
		
		}
    }
	
  public function getpayments(Request $request)
    {
        $request->header('Authorization');
		$splittoke=explode(" ",$request->header('Authorization'));
        $token=$splittoke[1];
		$exists =$this->varify_user_token($token);
	
		if($exists===null){	  
			return response()->json(['error'=>'Unauthorised'], 401);
		}else{
			//return($query);
			$customer_number=$exists->ACCOUNT_NUMBER;
			$reports=OutstandingReport::query()->where('customer_number',$customer_number)->orderBy('id', 'DESC')->get();
			
			
			if(count($reports)>0){
				$report['status']=$reports;
				
			}else {
				$report['status']='no record found';
			}
			
			
			return response()->json(['success' => $report], $this->successStatus);
		
		}
    }
	public function varify_user_token($token){
		
	$query=DB::table('customers')
              ->where('remember_token', $token)
              ->first();
			 return $query;
    }
	
	public   function deshboard_count(Request $request)
    { 
	
	$request->header('Authorization');
		$splittoke=explode(" ",$request->header('Authorization'));
        $token=$splittoke[1];
		 $exists =$this->varify_user_token($token);
	
		if($exists===null){	  
			return response()->json(['error'=>'Unauthorised'], 401);
		}else{
			//return($query);
			$customer_number=$exists->ACCOUNT_NUMBER;
		$paid=0;
        $unpaid=0;
        $totalamt=0;
        $recamt=0;
        //$id = Auth::user()->user_name;         
        //$cust_id=CustomerMasterModel::where('customer_code',$id)->first()->id;
		//$customer_number=Auth::guard('customers')->user()->ACCOUNT_NUMBER;
		
        $Subscriptionquery = 0;
        $Invoicequery=  DB::table('outstanding_reports')
        ->where('customer_number',$customer_number)
        ->get();
		
		
$total_recamt=DB::table('outstanding_reports')
            
        
           ->where('customer_number',$customer_number)
           ->where('txn_status','0')
		   ->sum('bal_func_amt');
$id['id']='';

        foreach ($Invoicequery as $row) {
         //$totalamt = isset(InvoiceMasters::find($row->id)->ledgers()->first()->amount)?InvoiceMasters::find($row->id)->ledgers()->first()->amount:"0";
           //$recamt =InvoiceMasters::find($row->id)->receipt()->sum('amount');
		   
		   
            if($row->txn_status=='1')
            {
                $paid++;
            }
            else{
                $unpaid ++;
				$id['id'].=$row->id.'@';
				
            }
        }

        $report= array(
            'subscription' =>0,
            'invoice'=>$Invoicequery->count(),
            'paid'=>$paid,
            'unpaid'=>$unpaid,
			'balance'=>$total_recamt,
			'orderid'=>$id['id'],
			
        );
    }
	//$report=OutstandingReport::query()->where('customer_number',$customer_number)->orderBy('id', 'DESC')->get();
			
			return response()->json(['success' => $report], $this->successStatus);
		
		}
	
	
	public function changepassword(Request $request)
	{
		$request->header('Authorization');
		$splittoke=explode(" ",$request->header('Authorization'));
        $token=$splittoke[1];
		$exists =$this->varify_user_token($token);
	
		if($exists===null){	  
			return response()->json(['error'=>'Unauthorised'], 401);
		}else{
			//return($query);
			$customer_number=$exists->ACCOUNT_NUMBER;
			$curPassword = $request->current_password;
		$newPassword = $request->password;
		
			
			$id=$exists->id;
			//$obj_user = Customer::where('id', $id)->first();
			//$obj_user = Customer::find($id);
			$password = Hash::make($newPassword);
			//$obj_user->save();
			$report=DB::table('customers')
			->where('id', $id)
			->update(['password' => $password]);
			
			$reports['status']='success';
			$reports['details']=$report;
			return response()->json(['success' => $reports], $this->successStatus);
		
		}
	
	}

}