Ejemplo n.º 1
0
 public function postCheckoutFinal(Request $request, AppMailer $mailer)
 {
     if (isset($_POST['LoginAndCheckout'])) {
         if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
             // Authentication passed...
             //return redirect()->intended('review');
         } else {
             return redirect("/checkout")->with("error", "authentication failed");
         }
     }
     if (isset($_POST['RegisterAccountcheckout'])) {
         if (Auth::attempt(['email' => $request->email, 'password' => $request->password])) {
             // Authentication passed...
             //return redirect()->intended('review');
         } else {
             if (User::where('name', $request->username)->count() > 0) {
                 return redirect('/checkout')->with('error', 'User name already exist');
             }
             if (User::where('email', $request->email)->count() > 0) {
                 return redirect('/checkout')->with('error', 'Email already exist');
             }
             $user = new User();
             $user->lastname = $request->lastname;
             $user->firstname = $request->firstname;
             $user->middleName = $request->middlename;
             $user->email = $request->email;
             $user->customer_address = $request->address;
             $user->name = $request->username;
             $user->password = bcrypt($request->password);
             $user->mobileNumber = $request->mobile;
             $confirmation_code = str_random(30);
             $user->token = $confirmation_code;
             $user->save();
             //return redirect("/checkout")->with("authentication failed");
             $mailer->sendEmailConfirmationTo($user);
             if (Auth::attempt(['email' => $user->email, 'password' => $request->password])) {
             } else {
                 return "error";
             }
         }
     }
     $data['name'] = Auth::check() ? Auth::user()->firstname . " " . Auth::user()->lastname : $request->name;
     $data['address'] = Auth::check() ? Auth::user()->customer_address : $request->address;
     $data['mobile'] = Auth::check() ? Auth::user()->mobileNumber : $request->mobile;
     $data['email'] = Auth::check() ? Auth::user()->email : $request->email;
     $orders = [];
     $items = Cart::getContent();
     if (isset($_POST['placeorder'])) {
         $purchaseOrder = new purchaseorder();
         $purchaseOrder->customer_name = $data['name'];
         $purchaseOrder->customer_mobile = $data['mobile'];
         $purchaseOrder->customer_address = $data['address'];
         $purchaseOrder->customer_email = $data['email'];
         $purchaseOrder->status = "pending";
         $deadline = strtotime("+7 day");
         $purchaseOrder->deadline = date('Y-m-d', $deadline);
         if (Auth::check()) {
             $purchaseOrder->user_id = Auth::user()->id;
         }
         $purchaseOrder->save();
         $items = Cart::getContent();
         foreach ($items as $item) {
             $order = new orders();
             $product = products::find($item->id);
             $sellingprice = $product->sellingprice;
             $amount = $item->quantity * $sellingprice;
             $order->purchaseorders_id = $purchaseOrder->id;
             $order->productName = $item->name;
             $order->quantity = $item->quantity;
             $order->amount = $amount;
             $order->save();
         }
         Cart::clear();
         if (Auth::check()) {
             if (Auth::user()->active) {
                 return redirect("/myorders")->with('affirm', "Your order has been processed.");
             } else {
                 return redirect("/myorders")->with('affirm', "Your order has been processed. Please keep your lines up, we will contact you.");
             }
         }
         return redirect("/")->with('affirm', "Your order has been processed. Please keep your lines up, we will contact you.");
     }
     $data['orders'] = $items;
     return view('checkoutreview', $data);
 }