<?php
namespace App\Http\Controllers;
use App\Book;
use App\TestSeries;
use App\Course;
use App\Order;
use App\Cart;
use App\UserCart;
use App\UserMeta;
use App\Wallet;
use App\Cms;
use Illuminate\Http\Request;
use Auth;
use Mail;
use Redirect;
use App\Educator;
class OrderController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function __construct()
    {
        $this->middleware('auth');
    }
    public function index()
    {
        $pageid = 16;
        $wallet_id=1;
        $wallet = Wallet::find($wallet_id);
        $carts = Cart::all()->where( 'user_id' , Auth::user()->id);
        $ucart_data = UserCart::where( 'user_id' ,Auth::user()->id )->get()->first();
        $usermeta = UserMeta::all()->where( 'user_id' , Auth::user()->id )->first();
        $cms = Cms::find($pageid);
        return view('user.pages.checkout')->withCarts($carts)->withUcart_data($ucart_data)->withUsermeta($usermeta)->withCms($cms)->withWallet($wallet);
    }

    
    public function chckout_page($coupon)
    {

        $pageid = 16;
        $wallet_id=1;
        $wallet = Wallet::find($wallet_id);
        $carts = Cart::all()->where( 'user_id' , Auth::user()->id);
        $ucart_data = UserCart::where( 'user_id' ,Auth::user()->id )->get()->first();
        $usermeta = UserMeta::all()->where( 'user_id' , Auth::user()->id )->first();
        $cms = Cms::find($pageid);
        return view('user.pages.checkout')->withCarts($carts)->withUcart_data($ucart_data)->withUsermeta($usermeta)->withCms($cms)->withWallet($wallet)->withCoupon($coupon);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(Request $request)
    {
        //

    }
    /**
     * CCAvenue Encrypt Function
     *
     * @param $plainText
     * @param $key
     * @return string
     */
    protected function encrypt($plainText,$key)
    {
        $secretKey = $this->hextobin(md5($key));
        $initVector = pack("C*", 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f);
        $openMode = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '','cbc', '');
        $blockSize = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, 'cbc');
        $plainPad = $this->pkcs5_pad($plainText, $blockSize);
        if (mcrypt_generic_init($openMode, $secretKey, $initVector) != -1)
        {
            $encryptedText = mcrypt_generic($openMode, $plainPad);
            mcrypt_generic_deinit($openMode);

        }
        return bin2hex($encryptedText);
    }
        /**
     * @param $hexString
     * @return string
     */
    protected function hextobin($hexString)
    {
        $length = strlen($hexString);
        $binString="";
        $count=0;
        while($count<$length)
        {
            $subString =substr($hexString,$count,2);
            $packedString = pack("H*",$subString);
            if ($count==0)
            {
                $binString=$packedString;
            }

            else
            {
                $binString.=$packedString;
            }

            $count+=2;
        }
        return $binString;
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $payment  = '';

        $payment = $request->payment;

        $first_name_billing = $request->first_name_billing;
        $last_name_billing = $request->last_name_billing;
        $email_billing = $request->email_billing;
        $mobile_no_billing = $request->mobile_no_billing;
        $country_billing = $request->country_billing;
        $addreess_billing = $request->addreess_billing;
        $city_billing = $request->city_billing;
        $state_billing = $request->state_billing;
        $postcode_billing = $request->postcode_billing;

        $billing_array=array(
            "first_name_billing"=>$first_name_billing,
            "last_name_billing"=>$last_name_billing,
            "email_billing"=>$email_billing,
            "mobile_no_billing"=>$mobile_no_billing,
            "country_billing"=>$country_billing,
            "addreess_billing"=>$addreess_billing,
            "city_billing"=>$city_billing,
            "state_billing"=>$state_billing,
            "postcode_billing"=>$postcode_billing
        );
        $billing_data = json_encode($billing_array);

        $first_name_shipping = $request->first_name_shipping;
        $last_name_shipping = $request->last_name_shipping;
        $email_shipping = $request->email_shipping;
        $mobile_no_shipping = $request->mobile_no_shipping;
        $country_shipping = $request->country_shipping;
        $addreess_shipping = $request->addreess_shipping;
        $city_shipping = $request->city_shipping;
        $state_shipping = $request->state_shipping;
        $postcode_shipping = $request->postcode_shipping;

        $shipping_array=array(
            "first_name_shipping"=>$first_name_shipping,
            "last_name_shipping"=>$last_name_shipping,
            "email_shipping"=>$email_shipping,
            "mobile_no_shipping"=>$mobile_no_shipping,
            "country_shipping"=>$country_shipping,
            "addreess_shipping"=>$addreess_shipping,
            "city_shipping"=>$city_shipping,
            "state_shipping"=>$state_shipping,
            "postcode_shipping"=>$postcode_shipping
        );

        $shipping_data = json_encode($shipping_array);

        $usermeta_1Count = 0;

        $usermeta_1 = UserMeta::where( 'user_id' , Auth::user()->id )->get();
        $usermeta_1Count = $usermeta_1->count();
        if( $usermeta_1Count <= 0 ){

            $usermeta = new UserMeta();
            $usermeta->user_id = Auth::user()->id;
            $usermeta->mobile = '';
            $usermeta->shipping_address = $shipping_data;
            $usermeta->billing_address = $billing_data;
            $usermeta->save();

        }
        else{
            $usermeta = UserMeta::all()->where( 'user_id' , Auth::user()->id )->first();
            $usermeta->shipping_address = $shipping_data;
            $usermeta->billing_address = $billing_data;
            $usermeta->save();
        }
        

        $carts = Cart::all()->where( 'user_id' , Auth::user()->id);
        $cart_data = json_encode( $carts );
        $message =( $request->message) ?  $request->message : '';
        $cart_subtotal =( $request->cart_subtotal) ?  $request->cart_subtotal : '';
        $cart_total =( $request->cart_total) ?  $request->cart_total : '';
        //$today = date('YmdHi');
        $rand= rand(10000000000,999999999999);
        $order = new Order();
        $order->order_id = substr($rand, 0, 6);
        $order->user_id = Auth::user()->id;
        $order->products = $cart_data;
        $order->shipping_address = $shipping_data;
        $order->billing_address = $billing_data;
        $order->subtotal = ($request->cart_subtotal)?$request->cart_subtotal:0;
        $order->coupon_code = ($request->coupon_code)?$request->coupon_code:'';
        $order->coupon_discount = ($request->coupon_discount)?$request->coupon_discount:0;
        $order->shpping_cost = ($request->shpping_cost)?$request->shpping_cost:0;
        $order->grand_total = ($request->cart_total)?$request->cart_total:0;
        $order->order_notes = ($request->message)?$request->message:'';
        $order->tracking_id = ($request->tracking_id)?$request->tracking_id:'';
        $order->bank_ref_no = ($request->bank_ref_no)?$request->bank_ref_no:'';
        $order->order_status = ($request->order_status)?$request->order_status:'';
        $order->failure_message = ($request->failure_message)?$request->failure_message:'';
        $order->payment_mode = ($request->payment_mode)?$request->payment_mode:'';
        $order->card_name = ($request->card_name)?$request->card_name:'';
        $order->status_message = ($request->status_message)?$request->status_message:'';
        $order->currency = ($request->shpping_cost)?$request->currency:'';
        $order->offer_type = ($request->offer_type)?$request->offer_type:'';
        $order->offer_code = ($request->offer_code)?$request->offer_code:'';
        $order->wallet_value = ($request->wallet_per_order)?$request->wallet_per_order:'';
        $order->discount_value = ($request->discount_value)?$request->discount_value:'';
        $order->mer_amount = ($request->mer_amount)?$request->mer_amount:'';
        $order->billing_notes = ($request->billing_notes)?$request->billing_notes:'';
        $order->trans_date = ($request->trans_date)?$request->trans_date:'';
        $order->shipping_status = ($request->shipping_status)?$request->shipping_status:'';
        $order->tracking_no = ($request->tracking_no)?$request->tracking_no:'';
        $order->courier_name = ($request->trans_date)?$request->courier_name:'';
        $order->payment_status = 0;
        $order->status = 1;
        $res = $order->save();
        if($res)
        {

            //delete form cart

            Cart::where('user_id', Auth::user()->id)->delete();
            UserCart::where( 'user_id' , Auth::user()->id )->delete();



            $accessCode = 'AVBQ82FL23AW59QBWA';
            $workingKey = 'A56C1D8119DADA67085D479B920E9FCA';
            //$parameters['merchantId'] = '201290';
           
            $parameters['redirect_url'] = url('/').'/return/';
            $parameters['cancel_url']= url('/').'/return/';
            $parameters['currency'] = 'INR';
            $parameters['language'] = 'EN';
            $parameters['merchant_id']= '201290';
            $parameters['order_id'] = '1232212';
            $parameters['amount'] = $request->cart_total;
            $testEndPoint = 'https://secure.ccavenue.com/transaction/transaction.do?command=initiateTransaction';
            $merchantData='';
            foreach( $parameters as $key=>$value) {
                $merchantData .= $key.'='.$value.'&';
            }

            $encRequest = $this->encrypt($merchantData,$workingKey);
            if($payment =='ccavenue')
            {
                $url = 'http://buyonlineclasses.com/ionic?id='.$order->id.'&oid='.$order->order_id.'&m='.$request->cart_total.'&billing_name='.$first_name_billing.' '.$last_name_billing.'&billing_address='.$addreess_billing.'&billing_city='.$city_billing.'&billing_state='.$state_billing.'&billing_zip='.$postcode_billing.'&billing_country='.$country_billing.'&billing_tel='.$mobile_no_billing.'&billing_email='.$email_billing.'&billing_notes='.$request->billing_notes.'&delivery_name='.$first_name_shipping.' '.$last_name_shipping.'&delivery_address='.$addreess_shipping.'&delivery_city='.$city_shipping.'&delivery_state='.$state_shipping.'&delivery_zip='.$postcode_shipping.'&delivery_country='.$country_shipping.'&delivery_tel='.$mobile_no_shipping;

            }
            else{
                $url = 'http://buyonlineclasses.com/payu?id='.$order->id.'&oid='.$order->order_id.'&m='.$request->cart_total.'&billing_name='.$first_name_billing.' '.$last_name_billing.'&billing_address='.$addreess_billing.'&billing_city='.$city_billing.'&billing_state='.$state_billing.'&billing_zip='.$postcode_billing.'&billing_country='.$country_billing.'&billing_tel='.$mobile_no_billing.'&billing_email='.$email_billing.'&billing_notes='.$request->billing_notes.'&delivery_name='.$first_name_shipping.' '.$last_name_shipping.'&delivery_address='.$addreess_shipping.'&delivery_city='.$city_shipping.'&delivery_state='.$state_shipping.'&delivery_zip='.$postcode_shipping.'&delivery_country='.$country_shipping.'&delivery_tel='.$mobile_no_shipping;
            }
          
              //$url = 'http://localhost/buymultiauth/public/?id='.$order->id.'&oid='.$order->order_id.'&m='.$request->cart_total.'&billing_name='.$first_name_billing.' '.$last_name_billing.'&billing_address='.$addreess_billing.'&billing_city='.$city_billing.'&billing_state='.$state_billing.'&billing_zip='.$postcode_billing.'&billing_country='.$country_billing.'&billing_tel='.$mobile_no_billing.'&billing_email='.$email_billing.'&billing_notes='.$request->billing_notes.'&delivery_name='.$first_name_shipping.' '.$last_name_shipping.'&delivery_address='.$addreess_shipping.'&delivery_city='.$city_shipping.'&delivery_state='.$state_shipping.'&delivery_zip='.$postcode_shipping.'&delivery_country='.$country_shipping.'&delivery_tel='.$mobile_no_shipping;
            // print_r($parameters);
            // print_r( $encRequest );
            
            // View::make('indipay::ccavenue')->with('encRequest',$this->encRequest)
            //              ->with('accessCode',$this->accessCode)
            //              ->with('endPoint',$this->getEndPoint());
                         
            //return view('ccavenue')->with('encRequest', $encRequest)
                      //   ->with('accessCode', $accessCode)
                       //  ->with('endPoint',$testEndPoint );
            return Redirect::to($url);
        }


       // die;
    }
    public function response(Request $request)    
    {
        $url = url('/');
        $url = str_replace('/public', '', $url);
        $id = $request->order_id;
        //
        // $billing_name = ($request->billing_name) ? $request->billing_name : '';
        // $billing_address = ($request->billing_address) ? $request->billing_address : '';
        // $billing_city = ($request->billing_city) ? $request->billing_city : '';
        // $billing_state = ($request->billing_state) ? $request->billing_state : '';
        // $billing_zip = ($request->billing_zip) ? $request->billing_zip : '';
        // $billing_country = ($request->billing_country) ? $request->billing_country : '';
        // $billing_tel = ($request->billing_tel) ? $request->billing_tel : '';
        // $billing_email = ($request->billing_email) ? $request->billing_email : '';
        // $billing_data=array(
        //     "billing_name"=>$billing_name,
        //     "billing_address"=>$billing_address,
        //     "billing_city"=>$billing_city,
        //     "billing_state"=>$billing_state,
        //     "billing_zip"=>$billing_zip,
        //     "billing_country"=>$billing_country,
        //     "billing_tel"=>$billing_tel,
        //     "billing_email"=>$billing_email
        // );
        // $billing_data = json_encode($billing_data);
           
        // $delivery_name = ($request->delivery_name) ? $request->delivery_name : '';
        // $delivery_address = ($request->delivery_address) ? $request->delivery_address : '';
        // $delivery_city = ($request->delivery_city) ? $request->delivery_city : '';
        // $delivery_state = ($request->delivery_state) ? $request->delivery_state : '';
        // $delivery_zip = ($request->delivery_zip) ? $request->delivery_zip : '';
        // $delivery_country = ($request->delivery_country) ? $request->delivery_country : '';
        // $delivery_tel = ($request->delivery_tel) ? $request->delivery_tel : '';
        // $shipping_data=array(
        //     "delivery_name"=>$delivery_name,
        //     "delivery_address"=>$delivery_address,
        //     "delivery_city"=>$delivery_city,
        //     "delivery_state"=>$delivery_state,
        //     "delivery_zip"=>$delivery_zip,
        //     "delivery_country"=>$delivery_country,
        //     "delivery_tel"=>$delivery_tel
        // );
        // $shipping_data = json_encode($shipping_data);
       
        $order = Order::all()->where( 'order_id' , $id  )->first();

        // $order->shipping_address = $shipping_data;
        // $order->billing_address = $billing_data;
        $order->order_notes = ($request->message)?$request->message:'';
        $order->tracking_id = ($request->tracking_id)?$request->tracking_id:'';
        $order->bank_ref_no = ($request->bank_ref_no)?$request->bank_ref_no:'';
        $order->order_status = ($request->order_status)?$request->order_status:'';
        $order->failure_message = ($request->failure_message)?$request->failure_message:'';
        $order->payment_mode = ($request->payment_mode)?$request->payment_mode:'';
        $order->card_name = ($request->card_name)?$request->card_name:'';
        $order->status_message = ($request->status_message)?$request->status_message:'';
        $order->currency = ($request->shpping_cost)?$request->currency:'';

        $order->payment_status = 'CCAvenue';
        $order->status = 1;
        $res = $order->save();
        if($res)
        {
            // $data = array();
            // $data = array(
            //     "order_id" =>$order->order_id,
            //     "name" =>$request->billing_name,
            //     "products" =>$order->products,
            //     "shipping_address" =>$shipping_data,
            //     "billing_address" =>$billing_data,
            //     "subtotal" =>$order->subtotal,
            //     "order_status"=>$order->order_status,
            //     "coupon_code" =>$order->coupon_code,
            //     "coupon_discount" => $order->coupon_discount,
            //     "grand_total" => $order->grand_total
            // );
          
          //  die;
            if($order->order_status == 'Aborted')
            {
                session()->flash('success', 'Order cancel by user.');
                return Redirect::to( $url.'/cancel' );
                
            }
            else if($order->order_status == 'Invalid')
            {
                session()->flash('success', $order->status_message);
                return Redirect::to( $url.'/cancel' );
                
            }
            else if($order->order_status == '')
            {
                
                session()->flash('success', 'Something went wrong .please try again');
                return Redirect::to( $url.'/cancel' );
                
            }
            else{
                 // echo "test". $order->wallet_value;
                $user_current_wallet_balance1=0;
                $user_current_wallet_balance = 0;
                $usermeta_1 = UserMeta::where( 'user_id' , Auth::user()->id )->first();
                //print_r($usermeta_1);
                // echo  'user_id'.$usermeta_1->user_id;
                // die;
                $user_current_wallet_balance = $usermeta_1->current_wallet_balance;
                // echo '<br>';
                //  echo "wallet_value".$order->wallet_value;
                //  echo '<br>';
                $user_current_wallet_balance1 = $user_current_wallet_balance - $order->wallet_value;
                $usermeta_1->current_wallet_balance = $user_current_wallet_balance1;
                $usermeta_1->save();
                // $to_name = 'Buy Online Classes';
                // //$to_email = 'vivekgoel@buyonlineclasses.com';
                // $to_email = 'cutepie.keya@gmail.com';
                // Mail::send('email.orderplace', $data, function($message) use ($to_name, $to_email) {
                //     $message->to($to_email, $to_name)
                //             ->subject('New Order');
                //     $message->from('support@buyonlineclasses.com','Buy Online Classes');
                // });

                // $to_name = 'Buy Online Classes';
                // $to_email = $request->billing_email;
                // Mail::send('email.userorderplace', $data, function($message) use ($to_name, $to_email) {
                //     $message->to($to_email, $to_name)
                //             ->subject('Your Order Details');
                //     $message->from('support@buyonlineclasses.com','Buy Online Classes');
                // });

                $faculty_emails = '';
                $faculty_name = '';
                
                foreach (json_decode($order->products) as $value) {
                    
                    $id = $value->product_id;
                    if( $value->product_id )
                    {
                        $coursecount = Course::where('id','=',$id )->count();
                        $bookscount = Book::where('id','=',$id )->count();
                        $testseriescount = TestSeries::where('id','=', $id )->count();
                        if($coursecount>0)
                        {
                            $type = "course";
                            $course = Course::find($value->product_id);
                            if($course->faculty_name!='')
                            {
                                
                                $educator = Educator::find($course->faculty_name);
                                $faculty_name = $educator->coaching_classes;
                                if($educator->contact_person_email!='')
                                {
                                    $faculty_emails = $educator->contact_person_email;
                                }
                            }
                        }
                        else if($bookscount>0)
                        {
                            $type = "book";
                            $course = Book::find($value->product_id);
                            if($course->author_name!='')
                            {
                                $educator = Educator::find($course->author_name);
                                $faculty_name = $educator->coaching_classes;
                                if($educator->contact_person_email!='')
                                {
                                    $faculty_emails = $educator->contact_person_email;
                                }
                            }
                        }
                        else if($testseriescount>0)
                        {
                            $type = "testseries";
                            $course = TestSeries::find($value->product_id);
                        }  
                    }
                    // echo  "fa".$faculty_emails.'<br>';
                    $photos =array();
                    $img_path = '';
                    if( !empty($course->product_image))
                    {

                      $photos = unserialize( $course->product_image);

                      if(count($photos)>0)

                      {

                        $img_path=url('/logo/'.$photos['product_image']); 

                      }
                    }  
                    $details ='';
                    $package_name  = $course->package_name;  
                    $discounted_price  = $course->discounted_price;  
                    $details  = strip_tags( html_entity_decode(stripslashes($course->product_details),ENT_QUOTES,"UTF-8") );  
                    $price  =  $course->price;  
                    $curl = $url.'/enrol/'.$course->slug;     
                    $shipping_data = $order->shipping_address;
                    $billing_data =  $order->billing_address;
                    $data1 = array(
                        "order_id" =>$order->order_id,
                        "name" =>$request->billing_name,
                        "url" => $curl,
                        "product_image" =>$img_path,
                        "details" =>$details,
                        "package_name" =>$package_name,
                        "faculty_name" =>$faculty_name,
                        "quantity" =>$value->quantity,
                        "discounted_price" =>$discounted_price,
                        "price" =>$price,
                        "shipping_address" =>$shipping_data,
                        "billing_address" =>$billing_data,
                        "subtotal" =>$order->subtotal,
                        "order_status"=>$order->order_status,
                        "grand_total" => $order->grand_total
                    );
                    // $to_name = 'Buy Online Classes';
                    // $to_email = $faculty_emails;
                    // Mail::send('email.facalty', $data1, function($message) use ($to_name, $to_email) {
                    //     $message->to($to_email, $to_name)
                    //             ->subject('New Order Placed');
                    //     $message->from('support@buyonlineclasses.com','Buy Online Classes');
                    // });
                    $to_name = 'Buy Online Classes';
                    $to_email = 'vivekgoel@buyonlineclasses.com';
                    //$to_email = 'munmun.kreative@gmail.com';
                    Mail::send('email.facalty', $data1, function($message) use ($to_name, $to_email) {
                        $message->to($to_email, $to_name)
                                ->subject('New Order Placed');
                        $message->from('support@buyonlineclasses.com','Buy Online Classes');
                    });
                    $to_email = $request->billing_email;
                    Mail::send('email.facalty', $data1, function($message) use ($to_name, $to_email) {
                        $message->to($to_email, $to_name)
                                ->subject('New Order Placed');
                        $message->from('support@buyonlineclasses.com','Buy Online Classes');
                    });
                }
                session()->flash('success', 'Order placed by user');
                return Redirect::to( $url.'/thankyou' );
            }
            
        }
       // die;
    
    }  
    public function spayu(Request $request)    
    {
        $url = url('/');
        $url = str_replace('/public', '', $url);
        $id = $request->order_id;
        $order = Order::all()->where( 'order_id' , $id  )->first();

      
        $order->bank_ref_no = ($request->bank_ref_no)?$request->bank_ref_no:'';
        $order->order_status = ($request->order_status)?$request->order_status:'';
        $order->payment_mode = ($request->payment_mode)?$request->payment_mode:'';
        $order->card_name = ($request->card_name)?$request->card_name:'';

        $shipping_data = $order->shipping_address;
        $billing_data =  $order->billing_address;

        $order->payment_status = 'PayUMoney';
        $order->status = 1;
        $res = $order->save();
         if($res)
        {
            $data = array();
            $data = array(
                "order_id" =>$order->order_id,
                "name" =>$order->billing_name,
                "products" =>$order->products,
                "shipping_address" =>$shipping_data,
                "billing_address" =>$billing_data,
                "subtotal" =>$order->subtotal,
                "order_status"=>$order->order_status,
                "coupon_code" =>$order->coupon_code,
                "coupon_discount" => $order->coupon_discount,
                "grand_total" => $order->grand_total
            );
          
          //  die;
            if($order->order_status == 'Aborted')
            {
                session()->flash('success', 'Order cancel by user.');
                return Redirect::to( $url.'/cancel' );
                
            }
            else if($order->order_status == 'Invalid')
            {
                session()->flash('success', $order->status_message);
                return Redirect::to( $url.'/cancel' );
                
            }
            else if($order->order_status == '')
            {
                
                session()->flash('success', 'Something went wrong .please try again');
                return Redirect::to( $url.'/cancel' );
                
            }
            else{
                 // echo "test". $order->wallet_value;
                $user_current_wallet_balance1=0;
                $user_current_wallet_balance = 0;
                $usermeta_1 = UserMeta::where( 'user_id' , Auth::user()->id )->first();
                //print_r($usermeta_1);
                // echo  'user_id'.$usermeta_1->user_id;
                // die;
                $user_current_wallet_balance = $usermeta_1->current_wallet_balance;
                $user_current_wallet_balance1 = $user_current_wallet_balance - $order->wallet_value;
                $usermeta_1->current_wallet_balance = $user_current_wallet_balance1;
                $usermeta_1->save();
                $faculty_emails = '';
                $faculty_name = '';
                
                foreach (json_decode($order->products) as $value) {
                    
                    $id = $value->product_id;
                    if( $value->product_id )
                    {
                        $coursecount = Course::where('id','=',$id )->count();
                        $bookscount = Book::where('id','=',$id )->count();
                        $testseriescount = TestSeries::where('id','=', $id )->count();
                        if($coursecount>0)
                        {
                            $type = "course";
                            $course = Course::find($value->product_id);
                            if($course->faculty_name!='')
                            {
                                
                                $educator = Educator::find($course->faculty_name);
                                $faculty_name = $educator->coaching_classes;
                                if($educator->contact_person_email!='')
                                {
                                    $faculty_emails = $educator->contact_person_email;
                                }
                            }
                        }
                        else if($bookscount>0)
                        {
                            $type = "book";
                            $course = Book::find($value->product_id);
                            if($course->author_name!='')
                            {
                                $educator = Educator::find($course->author_name);
                                $faculty_name = $educator->coaching_classes;
                                if($educator->contact_person_email!='')
                                {
                                    $faculty_emails = $educator->contact_person_email;
                                }
                            }
                        }
                        else if($testseriescount>0)
                        {
                            $type = "testseries";
                            $course = TestSeries::find($value->product_id);
                        }  
                    }
                    // echo  "fa".$faculty_emails.'<br>';
                    $photos =array();
                    $img_path = '';
                    if( !empty($course->product_image))
                    {

                      $photos = unserialize( $course->product_image);

                      if(count($photos)>0)

                      {

                        $img_path=url('/logo/'.$photos['product_image']); 

                      }
                    }  
                    $details ='';
                    $package_name  = $course->package_name;  
                    $discounted_price  = $course->discounted_price;  
                    $details  = strip_tags( html_entity_decode(stripslashes($course->product_details),ENT_QUOTES,"UTF-8") );  
                    $price  =  $course->price;  
                    $curl =  $url.'/enrol/'.$course->slug;     

                    $data1 = array(
                        "order_id" =>$order->order_id,
                        "name" =>$order->billing_name,
                        "url" => $curl,
                        "product_image" =>$img_path,
                        "details" =>$details,
                        "package_name" =>$package_name,
                        "faculty_name" =>$faculty_name,
                        "quantity" =>$value->quantity,
                        "discounted_price" =>$discounted_price,
                        "price" =>$price,
                        "shipping_address" =>$shipping_data,
                        "billing_address" =>$billing_data,
                        "subtotal" =>$order->subtotal,
                        "order_status"=>$order->order_status,
                        "grand_total" => $order->grand_total
                    );
                    // $to_name = 'Buy Online Classes';
                    // $to_email = $faculty_emails;
                    // Mail::send('email.facalty', $data1, function($message) use ($to_name, $to_email) {
                    //     $message->to($to_email , $to_name)
                    //             ->subject('New Order Placed');
                    //     $message->from('support@buyonlineclasses.com','Buy Online Classes');
                    // });
                   $to_email = 'vivekgoel@buyonlineclasses.com';
                    // $to_email = 'munmun.kreative@gmail.com';
                    $to_name = 'Buy Online Classes';
                    //$to_email = 'munmun.kreative@gmail.com';
                    Mail::send('email.facalty', $data1, function($message) use ($to_name, $to_email) {
                        $message->to($to_email, $to_name)
                                ->subject('New Order Placed');
                        $message->from('support@buyonlineclasses.com','Buy Online Classes');
                    });
                    $to_email = $order->billing_email;
                    // die;
                    $to_name = 'Buy Online Classes';
                    $billing_address = json_decode($order->billing_address);
                    $to_email = $billing_address->email_billing;
                    Mail::send('email.facalty', $data1, function($message) use ($to_name, $to_email) {
                        $message->to($to_email, $to_name)
                                ->subject('New Order Placed');
                        $message->from('support@buyonlineclasses.com','Buy Online Classes');
                    });
                }
                session()->flash('success', 'Order placed by user');
                return Redirect::to( $url.'/thankyou' );

            }
            
        }

    }  
    public function cpayu(Request $request)    
    {
        $url = url('/');
        $url = str_replace('/public', '', $url);
        session()->flash('success', 'Something went wrong .please try again');
        return Redirect::to( $url.'/cancel' );
    }  
      /**
     * CCAvenue Decrypt Function
     *
     * @param $encryptedText
     * @param $key
     * @return string
     */
    protected function decrypt($encryptedText,$key)
    {
        $secretKey = $this->hextobin(md5($key));
        $initVector = pack("C*", 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f);
        $encryptedText=$this->hextobin($encryptedText);
        $openMode = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '','cbc', '');
        mcrypt_generic_init($openMode, $secretKey, $initVector);
        $decryptedText = mdecrypt_generic($openMode, $encryptedText);
        $decryptedText = rtrim($decryptedText, "\0");
        mcrypt_generic_deinit($openMode);
        return $decryptedText;

    }

      /**
     * @param $plainText
     * @param $blockSize
     * @return string
     */
    protected function pkcs5_pad($plainText, $blockSize)
    {
        $pad = $blockSize - (strlen($plainText) % $blockSize);
        return $plainText . str_repeat(chr($pad), $pad);
    }


    /**
     * Display the specified resource.
     *
     * @param  \App\Order  $order
     * @return \Illuminate\Http\Response
     */
    public function show(Order $order)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Order  $order
     * @return \Illuminate\Http\Response
     */
    public function edit(Order $order)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \App\Order  $order
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, Order $order)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Order  $order
     * @return \Illuminate\Http\Response
     */
    public function destroy(Order $order)
    {
        //
    }
}
