public function store($id)
 {
     $courseID = Cursus::with('soortcursus')->FindOrfail($id)->soortcursus['id'];
     $userID = \Auth::user()->id;
     \App\subscription::firstOrCreate(['cursus_id' => $courseID, 'user_id' => $userID]);
     session()->flash('flash_message', 'Je hebt je succesvol aangemeld voor de cursus');
     return redirect('subscribe');
 }
 public function destroy($id)
 {
     $cursus = Cursus::with('soortcursus')->FindOrfail($id);
     $soortcursusfind = Soortcursus::FindOrfail($id);
     $cursus->delete();
     $soortcursusfind->delete();
     session()->flash('flash_message', 'Je hebt de cursus succesvol verwijderd');
     return redirect('courses');
 }
 public function show($slug, Cursus $cursus)
 {
     $decursus = $cursus->where('slug', $slug)->first();
     $gateway = Omnipay::gateway('Mollie');
     $gateway->setApiKey('test_N3BbdyKoizxGlYlbPqjUGE3eMpIZJC');
     $paymeth = $gateway->fetchPaymentMethods()->send();
     if ($paymeth->isSuccessful()) {
         $methods = $paymeth->getPaymentMethods();
     }
     $issuer = $gateway->fetchIssuers()->send();
     if ($issuer->isSuccessful()) {
         $issuers = $issuer->getIssuers();
     }
     if ($decursus->slug == 'facebook-advertentie-geheimen') {
         return view('webinars.salespage.ads-geheimen', compact('methods', 'issuers'));
     } elseif ($decursus->slug == 'slimme-facebook-marketing-voor-sportscholen') {
     }
     // dd($decursus);
 }
 public function productWebhook(Order $order, User $u, Product $p, Cursus $c)
 {
     // Mollie webhook
     // pak datum van vandaag en volgende maand
     $vandaag = Carbon::now("Europe/Amsterdam");
     $volgende_maand = $vandaag->copy()->addMonth();
     // initialize Mollie gateway
     $gateway = Omnipay::gateway('Mollie');
     // $gateway->setApiKey('test_N3BbdyKoizxGlYlbPqjUGE3eMpIZJC');
     // Pak transactionReference uit Mollie ping
     $data = array();
     $data['id'] = $_POST['id'];
     // $data['pakket_id'] = $_GET['pakket_id'];
     // Pak order
     $order = $order->where('transaction_id', '=', $data['id'])->first();
     // Pak bijbehorende user
     $user = $u->where('id', $order->user_id)->first();
     // maak betaling compleet
     $complete = $gateway->completePurchase(['transactionReference' => $data['id']])->send();
     // Haal status van betaling op en bewerk
     $fetch = $gateway->fetchTransaction(['transactionReference' => $data['id']])->send();
     // ID's uit de meta pakken
     $product_id = $fetch->getMeta()['product_id'];
     $cursus_id = $fetch->getMeta()['cursus_id'];
     $plan_id = $fetch->getMeta()['plan_id'];
     $cursus = $c->where('id', $cursus_id)->first();
     // Het product pakken om het juiste wefact product id te pakken
     $product = $p->where('id', $product_id)->first();
     if ($product->prijs_aanbieding_tot > $vandaag) {
         $wefact_id = $product->wefact_product_id_aanbieding;
     } elseif ($product->prijs_herhaling_tot > $vandaag) {
         $wefact_id = $product->wefact_product_id_herhaling;
     } else {
         $wefact_id = $product->wefact_product_id_normaal;
     }
     if ($fetch->isOpen()) {
         // Als bestelling nog open is
         ////////////////////////////
         // Order status bijwerken //
         ////////////////////////////
         $order->status = $fetch->getStatus();
         $order->save();
         ////////////////////////////////////////////////////////////////////////////////////
         // Doe niks, wachten op een status verandering van open naar betaald of cancelled //
         ////////////////////////////////////////////////////////////////////////////////////
     } elseif ($fetch->isCancelled()) {
         // Als bestelling geannuleerd is.
         ////////////////////////////
         // Order status bijwerken //
         ////////////////////////////
         $order->status = $fetch->getStatus();
         $order->save();
         // Misschien een email dat we het jammer vinden dat geen bestelling is geplaatst ?
         //////////////////////////////////////////////////////////////////
         // Verwijder de gebruiker zodat deze zich opnieuw kan aanmelden //
         //////////////////////////////////////////////////////////////////
         // $user->delete();
     } elseif ($fetch->isPaid()) {
         // Als bestelling eindelijk betaald is.
         ////////////////////////////
         // Order status bijwerken //
         ////////////////////////////
         $order->betaling_datum = $vandaag;
         $order->status = $fetch->getStatus();
         $order->save();
         ///////////////////////////////////////////////
         // Koppel TijdlijnActie cursus aan gebruiker //
         ///////////////////////////////////////////////
         if ($user->cursussen->contains($cursus_id)) {
         } else {
             $user->cursussen()->attach($cursus_id);
         }
         // //////////////////////////////////////
         // // Wefact proces in werking stellen //
         // //////////////////////////////////////
         // // Geef de gebruiker een random wachtwoord van 8 tekens
         if ($user->password == '' || $user->password == ' ') {
             $wachtwoord = str_random(8);
             $user->update(['password' => bcrypt($wachtwoord), 'plan_id' => $plan_id, 'role_id' => '4']);
             $data = array('voornaam' => $user->voornaam, 'achternaam' => $user->achternaam, 'email' => $user->email, 'wachtwoord' => $wachtwoord);
             ///////////////////////////////////////////////////
             // Stuur email naar emailadres met inloggegevens //
             ///////////////////////////////////////////////////
             Mail::send('includes.email.newmember', $data, function ($message) use($data) {
                 // $message->from('*****@*****.**', 'Digitus Marketing');
                 $message->to($data['email'], $data['voornaam'] . ' ' . $data['achternaam'])->subject('Jouw inloggegevens');
             });
         } else {
             $wachtwoord = 'Je kunt je oude wachtwoord gebruiken.';
             $u_p_id = $user->plan_id;
             $p_id = $plan_id;
             if ($u_p_id >= $p_id) {
             } else {
                 $user->update(['plan_id' => $plan_id]);
             }
             $data = array('voornaam' => $user->voornaam, 'achternaam' => $user->achternaam, 'email' => $user->email, 'wachtwoord' => $wachtwoord, 'cursusnaam' => $cursus->naam);
             /////////////////////////////////////////////////////////////
             // Stuur email naar emailadres met notificatie van upgrade //
             /////////////////////////////////////////////////////////////
             Mail::send('includes.email.memberupgrade', $data, function ($message) use($data) {
                 // $message->from('*****@*****.**', 'Digitus Marketing');
                 $message->to($data['email'], $data['voornaam'] . ' ' . $data['achternaam'])->subject('Digitus account ge-upgrade!');
             });
         }
         $email = $user->email;
         $this->findDebitor(array('searchat' => 'EmailAddress', 'searchfor' => $email), $wefact_id);
         $complete;
     } elseif ($fetch->isPaidOut()) {
         // Als bestelling is uit betaald.
         $order->betaling_datum = $vandaag;
         $order->status = $fetch->getStatus();
         $order->save();
         $complete;
     } elseif ($fetch->isExpired()) {
         // Als bestelling is verlopen.
         ////////////////////////////
         // Order status bijwerken //
         ////////////////////////////
         $order->status = $fetch->getStatus();
         $order->save();
         // Misschien een email dat we het jammer vinden dat geen bestelling is geplaatst ?
         //////////////////////////////////////////////////////////////////
         // Verwijder de gebruiker zodat deze zich opnieuw kan aanmelden //
         //////////////////////////////////////////////////////////////////
         // $user->delete();
     } else {
         $order->status = $fetch->getStatus();
         $order->save();
     }
 }
 public function getAllCursussenDesc()
 {
     return Cursus::all()->sortByDesc('id');
 }