Current File : /home/inlingua/www/crm.vprotectindia.com/app/Http/Controllers/API/UserController_old_23_1_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\User;
use App\Model\OutstandingReport;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;
use Validator;


class UserController extends Controller
{
     public $successStatus = 200;

      /**
     * login api
     *
     * @return \Illuminate\Http\Response
     */
    public function login(){

      // return response()->json(['Sucess'=>request('email').'=>'.request('password')], 200); 
    	 
        if(Auth::attempt(['email' => request('email'), 'password' => request('password')])){
            $user = Auth::user();
            $success['token'] =  $user->createToken('MyApp')->accessToken;
            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]);
			  
			  $success['status']='success';
			  $success['token']=$password;
			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()
    {
        $user = Auth::user();
        return response()->json(['success' => $user], $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;
			$report=OutstandingReport::query()->where('customer_number',$customer_number)->orderBy('id', 'DESC')->get();
			
			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 = InvoiceMasters::get(['id']);
		
		
		
       //$customer_number='10000096';
        $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');


        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 ++;
            }
        }

        $report= array(
            'subscription' =>0,
            'invoice'=>$Invoicequery->count(),
            'paid'=>$paid,
            'unpaid'=>$unpaid,
			'balance'=>$total_recamt,
        );
    }
	//$report=OutstandingReport::query()->where('customer_number',$customer_number)->orderBy('id', 'DESC')->get();
			
			return response()->json(['success' => $report], $this->successStatus);
		
		}
	
	


}