From a2cddafa5f382a3e8a8089e3dfc3972956ac4a66 Mon Sep 17 00:00:00 2001 From: franknstayn Date: Tue, 12 May 2020 20:52:21 +0800 Subject: [PATCH] added shipping fee --- .htaccess | 2 +- .../Controllers/paypal/PaypalController.php | 262 +++++----- .../teamstore/TeamStoreController.php | 474 +++++++++--------- app/Models/teamstore/TeamStoreModel.php | 6 + config/services.php | 16 +- resources/views/emails/orders.blade.php | 4 + resources/views/sublayouts/cart.blade.php | 27 +- 7 files changed, 417 insertions(+), 374 deletions(-) diff --git a/.htaccess b/.htaccess index 56a5195..557db7e 100644 --- a/.htaccess +++ b/.htaccess @@ -6,7 +6,7 @@ # Redirect Trailing Slashes... RewriteRule ^(.*)/$public /$1 [L,R=301] RewriteCond %{SERVER_PORT} 80 - RewriteRule ^(.*)$ https://www.crewsportswear.com/beta/$1 [R,L] + #RewriteRule ^(.*)$ https://www.crewsportswear.com/beta/$1 [R,L] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f diff --git a/app/Http/Controllers/paypal/PaypalController.php b/app/Http/Controllers/paypal/PaypalController.php index f8c7a62..7c3dd0c 100644 --- a/app/Http/Controllers/paypal/PaypalController.php +++ b/app/Http/Controllers/paypal/PaypalController.php @@ -1,4 +1,6 @@ -_apiContext = PayPal::ApiContext( - config('services.paypal.client_id'), - config('services.paypal.secret')); + public function __construct() + { + $this->_apiContext = Paypal::ApiContext( + config('services.paypal.client_id'), + config('services.paypal.secret') + ); - /* $this->_apiContext->setConfig(array( - 'mode' => 'sandbox', - 'service.EndPoint' => 'https://api.sandbox.paypal.com', - 'http.ConnectionTimeOut' => 30, - 'log.LogEnabled' => true, - 'log.FileName' => storage_path('logs/paypal.log'), - 'log.LogLevel' => 'FINE' - )); */ - - // live $this->_apiContext->setConfig(array( - 'mode' => 'live', - 'service.EndPoint' => 'https://api.paypal.com', + 'mode' => 'sandbox', + 'service.EndPoint' => 'https://api.sandbox.paypal.com', 'http.ConnectionTimeOut' => 30, 'log.LogEnabled' => true, 'log.FileName' => storage_path('logs/paypal.log'), 'log.LogLevel' => 'FINE' )); - } + + // live + // $this->_apiContext->setConfig(array( + // 'mode' => 'live', + // 'service.EndPoint' => 'https://api.paypal.com', + // 'http.ConnectionTimeOut' => 30, + // 'log.LogEnabled' => true, + // 'log.FileName' => storage_path('logs/paypal.log'), + // 'log.LogLevel' => 'FINE' + // )); + } - public function payPremium() - { - return view('payPremium'); - } + public function payPremium() + { + return view('payPremium'); + } - public function getCheckout(Request $request) + public function getCheckout(Request $request) { - if(Auth::guest()){ + if (Auth::guest()) { - $message = 'Please Sign in to your account to proceed.'; + $message = 'Please Sign in to your account to proceed.'; Session::flash('msg', $message); return Redirect::back(); } - $payer = PayPal::Payer(); - $payer->setPaymentMethod('paypal'); + $payer = PayPal::Payer(); + $payer->setPaymentMethod('paypal'); + - $m = new TeamStoreModel; $paypal_model = new PayPalModel; $last_id = $paypal_model->getLastIdPaymentDetails(); - $invoice_num = str_pad($last_id[0]->Id, 4,'0',STR_PAD_LEFT); + $invoice_num = str_pad($last_id[0]->Id, 4, '0', STR_PAD_LEFT); $cartKey = $request->session()->get('cartkey'); - + $items = $m->myCart($cartKey); - + $getSubtotal = $m->getSubtotal($cartKey); $grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey); $store_array = $m->selectTeamStore('Id', $grouped_item[0]->StoreId); + $shipping_charges = 0; - - foreach($items as $item){ - if($item->VoucherId != null){ + foreach ($items as $item) { + if ($item->VoucherId != null) { $voucherIds[] = $item->VoucherId; $voucher = $m->selectVoucherWhereIn($voucherIds); $item_id = $item->Id; $totalValue = $voucher[0]->VoucherValue; - if($voucher[0]->VoucherType == "Percentage"){ + if ($voucher[0]->VoucherType == "Percentage") { $getPercentageValue = $totalValue / 100; $getDiscountValue = ($getSubtotal[0]->Subtotal * $getPercentageValue); $data = array( - 'Price' => round($getDiscountValue * -1, 2) + 'Price' => round($getDiscountValue * -1, 2) ); $m->updateVoucherValueInCart($data, $item_id); - }else{ + } else { $voucherData = array( - 'totalValue'=> $totalValue, - 'type'=>'Flat' + 'totalValue' => $totalValue, + 'type' => 'Flat' ); } } + + $shipping_charges += $item->ShippingFee * $item->Quantity; } $order_items = array(); @@ -111,19 +114,19 @@ class PaypalController extends Controller { // $order_subtotal = $updated_getSubtotal[0]->Subtotal; $order_grandtotal = $updated_getSubtotal[0]->Subtotal; - - if($grouped_item[0]->StoreId == 76 || $grouped_item[0]->StoreId == 78 || $grouped_item[0]->StoreId == 111 || $grouped_item[0]->StoreId == 131 || $grouped_item[0]->StoreId == 30 || $grouped_item[0]->StoreId == 141){ + + if ($grouped_item[0]->StoreId == 76 || $grouped_item[0]->StoreId == 78 || $grouped_item[0]->StoreId == 111 || $grouped_item[0]->StoreId == 131 || $grouped_item[0]->StoreId == 30 || $grouped_item[0]->StoreId == 141) { $tax_value = 0; - }else{ + } else { $tax_value = 0.10; } - + $tax = $order_grandtotal * $tax_value; - foreach($updated_items as $key => $item){ + foreach ($updated_items as $key => $item) { // $descriptions = "Name: " . $item->Name . " Number: " . $item->Number . " Size: " . $item->Size;"?" - + $order_items[$key] = PayPal::Item(); $order_items[$key]->setName($item->ProductName); $order_items[$key]->setCurrency($store_array[0]->StoreCurrency); @@ -131,44 +134,45 @@ class PaypalController extends Controller { // $order_items[$key]->setDescription($descriptions); // $order_items[$key]->setTax(10); $order_items[$key]->setPrice($item->Price); - } - + $item_list = PayPal::ItemList(); $item_list->setItems($order_items); + $amount_details = PayPal::Details(); $amount_details->setSubtotal($order_grandtotal); $amount_details->setTax($tax); + $amount_details->setShipping($shipping_charges); $amount = PayPal::Amount(); $amount->setCurrency($store_array[0]->StoreCurrency); $amount->setDetails($amount_details); - $amount->setTotal($order_grandtotal + $tax); - + $amount->setTotal($order_grandtotal + $tax + $shipping_charges); + $transaction = PayPal::Transaction(); $transaction->setAmount($amount); $transaction->setItemList($item_list); - + // $transaction->setDescription('Your transaction description'); $transaction->setInvoiceNumber(date('Ymd') . '-' . $invoice_num); - - $redirectUrls = PayPal:: RedirectUrls(); - $redirectUrls->setReturnUrl(route('getDone')); - $redirectUrls->setCancelUrl(route('getCancel')); + + $redirectUrls = PayPal::RedirectUrls(); + $redirectUrls->setReturnUrl(route('getDone')); + $redirectUrls->setCancelUrl(route('getCancel')); - $payment = PayPal::Payment(); - $payment->setIntent('sale'); - $payment->setPayer($payer); - $payment->setRedirectUrls($redirectUrls); - $payment->setTransactions(array($transaction)); + $payment = PayPal::Payment(); + $payment->setIntent('sale'); + $payment->setPayer($payer); + $payment->setRedirectUrls($redirectUrls); + $payment->setTransactions(array($transaction)); - $response = $payment->create($this->_apiContext); - $redirectUrl = $response->links[1]->href; + $response = $payment->create($this->_apiContext); + $redirectUrl = $response->links[1]->href; - return redirect()->to( $redirectUrl ); + return redirect()->to($redirectUrl); } public function getDoneTest() @@ -193,42 +197,49 @@ class PaypalController extends Controller { // echo $ex; // } - + } public function getDone(Request $request) { - $id = $request->get('paymentId'); - $token = $request->get('token'); - $payer_id = $request->get('PayerID'); + $id = $request->get('paymentId'); + $token = $request->get('token'); + $payer_id = $request->get('PayerID'); - $payment = PayPal::getById($id, $this->_apiContext); + $payment = PayPal::getById($id, $this->_apiContext); $paymentExecution = PayPal::PaymentExecution(); - $paymentExecution->setPayerId($payer_id); - $executePayment = $payment->execute($paymentExecution, $this->_apiContext); + $paymentExecution->setPayerId($payer_id); + $executePayment = $payment->execute($paymentExecution, $this->_apiContext); // print_r($executePayment); // if ($executePayment->getState() == 'approved') { - - // /** it's all right **/ - // /** Here Write your database logic like that insert record or value in database if you want **/ - // // \Session::put('success','Payment success'); + // /** it's all right **/ + // /** Here Write your database logic like that insert record or value in database if you want **/ + + // // \Session::put('success','Payment success'); // // return Redirect::route('paywithpaypal'); // echo 'Payment success'; // } $obj = json_decode($executePayment); - + $line2 = null; - + //details $total = $obj->transactions[0]->amount->total; $sub_total = $obj->transactions[0]->amount->details->subtotal; $tax = $obj->transactions[0]->amount->details->tax; + $shipping_cost = $obj->transactions[0]->amount->details->shipping; + + $relatedResources = $obj->transactions[0]->related_resources[0]; + $saleId = $relatedResources->sale->id; // transaction_id + // + // $sale = $relatedResources[0]->getSale(); + // echo $saleId = $sale->getId(); $currency = $obj->transactions[0]->amount->currency; $invoice_number = $obj->transactions[0]->invoice_number; @@ -236,7 +247,7 @@ class PaypalController extends Controller { //shipping address details $recipient_name = $obj->transactions[0]->item_list->shipping_address->recipient_name; $line1 = $obj->transactions[0]->item_list->shipping_address->line1; - if(isset($obj->transactions[0]->item_list->shipping_address->line2)){ + if (isset($obj->transactions[0]->item_list->shipping_address->line2)) { $line2 = $obj->transactions[0]->item_list->shipping_address->line2; } $city = $obj->transactions[0]->item_list->shipping_address->city; @@ -250,7 +261,7 @@ class PaypalController extends Controller { $first_name = $obj->payer->payer_info->first_name; $last_name = $obj->payer->payer_info->last_name; $_payer_id = $obj->payer->payer_info->payer_id; - + /// end paypal codes $paypal_model = new PayPalModel; @@ -263,23 +274,23 @@ class PaypalController extends Controller { $getSubtotal = $m->getSubtotal($cartKey); $payment_details = array( - - 'UserId' => $userId, - 'CartKey' => $cartKey, - 'PaymentId' => $id, - 'Token' => $token, - 'PayerId' => $payer_id, - 'InvoiceNumber' => $invoice_number, - 'Currency' => $currency, - 'Total' => $total, - 'SubTotal' => $sub_total, - 'Tax' => $tax, - 'Payer_Email' => $email, - 'Payer_Firstname' => $first_name, - 'Payer_Lastname' => $last_name, - 'PaymentMethod' =>$payment_method - - ); + 'UserId' => $userId, + 'CartKey' => $cartKey, + 'PaymentId' => $id, + 'Token' => $token, + 'PayerId' => $payer_id, + 'InvoiceNumber' => $invoice_number, + 'Currency' => $currency, + 'Total' => $total, + 'SubTotal' => $sub_total, + 'Tax' => $tax, + 'Payer_Email' => $email, + 'Payer_Firstname' => $first_name, + 'Payer_Lastname' => $last_name, + 'PaymentMethod' => $payment_method, + 'ShippingCost' => $shipping_cost, + 'TransactionId' => $saleId, + ); $p_id = $paypal_model->insertToPaypalDetails($payment_details); @@ -295,7 +306,7 @@ class PaypalController extends Controller { ); // iinsert shipping address $paypal_model->insertShippingAddress($shipping_address); - + // insert order from cart_tmp to orders table $l = $paypal_model->insertToOrders($cartKey); // insert to orders table @@ -306,31 +317,32 @@ class PaypalController extends Controller { $item_thumbs = $newUserModel->selectDisplayItemThumb(); $array_payment_details = $newUserModel->selectPaymentDetails('CartKey', $cartKey); $array_storename = $newUserModel->selectTeamStoreName($cartKey); // email subject - - - foreach($array_storename as $storname){ - + + + foreach ($array_storename as $storname) { + $sName[] = $storname->StoreName; $sid[] = $storname->Id; } - $sName = implode (", ", $sName); + $sName = implode(", ", $sName); $user_loginsArray = $newUserModel->selectUserLoginsWhereIn($sid); - foreach($user_loginsArray as $userdata){ - + foreach ($user_loginsArray as $userdata) { + $other_email[] = $userdata->other_email; } - if($other_email[0] != null){ - $other_email = implode (", ", $other_email); + if ($other_email[0] != null) { + $other_email = implode(", ", $other_email); $email_cc = "orders@crewsportswear.com" . "," . $other_email; - }else{ + } else { $email_cc = "orders@crewsportswear.com"; } - - $explode_other_email = explode(",", $email_cc); + + // $explode_other_email = explode(",", $email_cc); + $explode_other_email = "orders@crewsportswear.com"; // test_email $data = array( 'order_item_array' => $order_item_array, @@ -341,16 +353,17 @@ class PaypalController extends Controller { 'email_cc' => $explode_other_email, 'subject' => $sName . ' ORDERS', ); - + Mail::send('emails.orders', $data, function($message) use ($data) { $message->from('no-reply@crewsportswear.com', 'CREW Sportswear'); $message->bcc($data['email_cc'], 'Orders From CREW Sportswear'); $message->to($data['receiver'])->subject($data['subject']); }); - // end email sending - - $request->session()->forget('cartkey'); // clear session for cartkey + // end email sending + $m->delete_cartTmp("CartKey", $cartKey); + $request->session()->forget('cartkey'); // clear session for cartkey + // redirect to thank you page. return view('paypal.get_done') ->with('currency', $currency) @@ -363,31 +376,30 @@ class PaypalController extends Controller { { $m = new TeamStoreModel; $cartKey = $request->session()->get('cartkey'); - + $items = $m->myCart($cartKey); $getSubtotal = $m->getSubtotal($cartKey); - foreach($items as $item){ - if($item->VoucherId != null){ + foreach ($items as $item) { + if ($item->VoucherId != null) { $voucherIds[] = $item->VoucherId; $voucher = $m->selectVoucherWhereIn($voucherIds); $item_id = $item->Id; $totalValue = $voucher[0]->VoucherValue; - if($voucher[0]->VoucherType == "Percentage"){ + if ($voucher[0]->VoucherType == "Percentage") { $data = array( 'Price' => '00.00' ); $m->updateVoucherValueInCart($data, $item_id); - }else{ + } else { $voucherData = array( - 'totalValue'=> $totalValue, - 'type'=>'Flat' + 'totalValue' => $totalValue, + 'type' => 'Flat' ); } } } - return redirect()->route('cart'); + return redirect()->route('cart'); } - } diff --git a/app/Http/Controllers/teamstore/TeamStoreController.php b/app/Http/Controllers/teamstore/TeamStoreController.php index 3ab064c..03cc3aa 100644 --- a/app/Http/Controllers/teamstore/TeamStoreController.php +++ b/app/Http/Controllers/teamstore/TeamStoreController.php @@ -1,4 +1,6 @@ -selectTeamStore('StoreUrl', $teamStoreURL); $product_array = $m->selectTeamStoreProducts('TeamStoreId', $store_array[0]->Id); $user_role = ''; - - if (Auth::check()){ + + if (Auth::check()) { $user_role = Auth::user()->role; $store_id = Auth::user()->store_id; - }else{ + } else { $user_role = null; $store_id = null; } - - if($store_array[0]->Password != null){ - if($request->session()->get('teamstore_data_array') == null){ - if($store_id != $store_array[0]->Id){ + + if ($store_array[0]->Password != null) { + if ($request->session()->get('teamstore_data_array') == null) { + if ($store_id != $store_array[0]->Id) { return redirect('teamstore'); } - }else{ - - if($user_role != "store_owner"){ - if($request->session()->get('teamstore_data_array')[0]->StoreUrl != $store_array[0]->StoreUrl){ - return redirect()->back(); + } else { + + if ($user_role != "store_owner") { + if ($request->session()->get('teamstore_data_array')[0]->StoreUrl != $store_array[0]->StoreUrl) { + return redirect()->back(); } } - } } - - + + foreach ($product_array as $p => $pr_arr) { $thumbnails_array = $m->getProductThumbnails($pr_arr->Id); - if(!empty($thumbnails_array)){ + if (!empty($thumbnails_array)) { foreach ($thumbnails_array as $t => $thumb) { - - if($thumb->ImageClass == 'custom'){ + + if ($thumb->ImageClass == 'custom') { $displayThumbnails = $thumb->Image; break; } - if($thumb->ImageClass == 'active'){ + if ($thumb->ImageClass == 'active') { $displayThumbnails = $thumb->Image; break; - } + } } $thumbnails[] = array( - 'folder' => $store_array[0]->ImageFolder, - 'product_id' => $pr_arr->Id, - 'thumb' => $displayThumbnails - - ); + 'folder' => $store_array[0]->ImageFolder, + 'product_id' => $pr_arr->Id, + 'thumb' => $displayThumbnails - }else{ + ); + } else { $thumbnails[] = array( - 'folder' => $store_array[0]->ImageFolder, - 'product_id' => $pr_arr->Id, - 'thumb' => "product-image-placeholder.png" + 'folder' => $store_array[0]->ImageFolder, + 'product_id' => $pr_arr->Id, + 'thumb' => "product-image-placeholder.png" ); } } // var_dump($thumbnails); return view('teamstore-sublayouts.index') - ->with('store_array', $store_array) - ->with('product_array', $product_array) - ->with('thumbnails', $thumbnails); + ->with('store_array', $store_array) + ->with('product_array', $product_array) + ->with('thumbnails', $thumbnails); } public function storelist(Request $request) @@ -99,54 +100,53 @@ class TeamStoreController extends Controller { // foreach($teamstore as $t){ // $sad = explode('/', $t); - + // if(count($sad) == 4){ // $arr_teamstore[] = explode('?', $sad['3'])['0']; - + // } // } - + // var_dump(array_unique($arr_teamstore)); $m = new TeamStoreModel; $q = $request->input('q'); $sort = $request->input('s'); - - if(isset($q) && isset($sort)){ - - if($sort == "latest"){ + + if (isset($q) && isset($sort)) { + + if ($sort == "latest") { $field = "Id"; - $sort_value = "DESC"; - }elseif($sort == "al-desc"){ - $field = "StoreName"; $sort_value = "DESC"; - }elseif($sort == "oldest"){ + } elseif ($sort == "al-desc") { + $field = "StoreName"; + $sort_value = "DESC"; + } elseif ($sort == "oldest") { $field = "Id"; - $sort_value = "ASC"; - }else{ + $sort_value = "ASC"; + } else { $field = "StoreName"; $sort_value = "ASC"; - } - - if($q != ""){ - // keyword and sort - $stores_array = $m->selectTeamstoreSearch($field, $sort_value, $q); - }else{ - // sort only - $stores_array = $m->selectTeamstoreFilter($field, $sort_value); - } + } - }else{ + if ($q != "") { + // keyword and sort + $stores_array = $m->selectTeamstoreSearch($field, $sort_value, $q); + } else { + // sort only + $stores_array = $m->selectTeamstoreFilter($field, $sort_value); + } + } else { $field = "StoreName"; $sort_value = "ASC"; $sort = "al-asc"; $stores_array = $m->selectTeamstoreFilter($field, $sort_value); } - + return view('teamstore-sublayouts.stores') - ->with('stores_array', $stores_array) - ->with('keyword', $q) - ->with('filter', $sort); + ->with('stores_array', $stores_array) + ->with('keyword', $q) + ->with('filter', $sort); } public function checkTeamStorePassword(Request $request) @@ -155,82 +155,78 @@ class TeamStoreController extends Controller { $post = $request->all(); $store_array = $m->selectTeamStore('Password', $post['password']); - if($store_array){ + if ($store_array) { $request->session()->put('teamstore_data_array', $store_array); - return redirect('teamstore/'. $store_array[0]->StoreUrl); - - }else{ - return redirect()->back()->with('errors', 'Invalid Password.'); + return redirect('teamstore/' . $store_array[0]->StoreUrl); + } else { + return redirect()->back()->with('errors', 'Invalid Password.'); } - } private $teams_array; public function productDetails($teamStoreURL, $productURL) - { + { $m = new TeamStoreModel; $teams_array = array(); $store_array = $m->selectTeamStore('StoreUrl', $teamStoreURL); $product_array = $m->selectTeamStoreProducts('ProductURL', $productURL); - + $thumbnails_array = $m->getThumbnails($product_array[0]->Id); $teams_array = $m->getTeams($product_array[0]->Id); // $sizes_array = $m->getSizes(); - - if(empty($thumbnails_array)){ + + if (empty($thumbnails_array)) { $data = (object) array( 'Image' => 'product-image-placeholder.png', 'ImageClass' => 'active' ); - $thumbnails_array[] = $data; } - - $x = explode(",", $product_array[0]->AvailableSizes ); - foreach($x as $s){ + + $x = explode(",", $product_array[0]->AvailableSizes); + foreach ($x as $s) { $h[] = $m->getSizesByBracket($s); } - foreach($h as $d){ - foreach($d as $g){ + foreach ($h as $d) { + foreach ($d as $g) { $sizes_array[] = $g; } } - if($product_array[0]->ProductAvailableQty != null){ + if ($product_array[0]->ProductAvailableQty != null) { $soldQty = $m->getSoldQty($product_array[0]->Id); $availableQty = $product_array[0]->ProductAvailableQty - $soldQty[0]->SoldQty; - }else{ + } else { // echo 'no qty'; $availableQty = null; } // $product_array[0]->ProductAvailableQty - + return view('teamstore-sublayouts.product-details') - ->with('store_array', $store_array) - ->with('product_array', $product_array) - ->with('thumbnails_array', $thumbnails_array) - ->with('teams_array', $teams_array) - ->with('sizes_array', $sizes_array) - ->with('available_qty', $availableQty); - + ->with('store_array', $store_array) + ->with('product_array', $product_array) + ->with('thumbnails_array', $thumbnails_array) + ->with('teams_array', $teams_array) + ->with('sizes_array', $sizes_array) + ->with('available_qty', $availableQty); } - + public function login(Request $request) - { + { return view('teamstore-sublayouts.login'); } public function clearSession(Request $request) - { + { $request->session()->forget('teamstore_data_array'); return redirect("{{ url('/') }}"); } - + public function addNewRow(Request $request) { $post = $request->all(); @@ -239,47 +235,45 @@ class TeamStoreController extends Controller { $item = $TeamStoreModel->selectTeamStoreProductByIdHash($post['p_id']); $x = explode(",", $item[0]->AvailableSizes); - foreach($x as $s){ + foreach ($x as $s) { $h[] = $TeamStoreModel->getSizesByBracket($s); } - foreach($h as $d){ - foreach($d as $g){ + foreach ($h as $d) { + foreach ($d as $g) { $sizes_array[] = $g; } } - if($item[0]->ProductAvailableQty != null){ + if ($item[0]->ProductAvailableQty != null) { $soldQty = $m->getSoldQty($product_array[0]->Id); $availableQty = $item[0]->ProductAvailableQty - $soldQty[0]->SoldQty; - }else{ + } else { // echo 'no qty'; $availableQty = null; } - $handle_form = view('teamstore-sublayouts.forms.' . $item[0]->ProductForm ) - ->with('sizes_array', $sizes_array) - ->with('availableQty', $availableQty) - ->render(); + $handle_form = view('teamstore-sublayouts.forms.' . $item[0]->ProductForm) + ->with('sizes_array', $sizes_array) + ->with('availableQty', $availableQty) + ->render(); return $handle_form; - - } - + public function addToCart(Request $request) { $post = $request->all(); $m = new TeamStoreModel; $hash_product_id = $post['p_id']; - - if($request->session()->has('cartkey')){ + + if ($request->session()->has('cartkey')) { $cartKey = $request->session()->get('cartkey'); - }else{ + } else { $request->session()->put('cartkey', sha1(time() . str_random(6))); $cartKey = $cartKey = $request->session()->get('cartkey'); } - + $product_array = $m->selectTeamStoreProductByIdHash($hash_product_id); $product_id = $product_array[0]->Id; $TeamStoreId = $product_array[0]->TeamStoreId; @@ -287,27 +281,28 @@ class TeamStoreController extends Controller { $ProductURL = $product_array[0]->ProductURL; $product_form = $product_array[0]->ProductForm; $design_code = $product_array[0]->DesignCode; - $product_name = $product_array[0]->ProductName; + $product_name = $product_array[0]->ProductName; + $shipping_fee = $product_array[0]->ShippingFee; $teamstore_array = $m->selectTeamStore('Id', $TeamStoreId); - + $store_url = $teamstore_array[0]->StoreUrl; $store_id = $teamstore_array[0]->Id; - if($product_form == "jersey-and-shorts-form"){ + if ($product_form == "jersey-and-shorts-form") { $order_names = $post['order_names']; $order_number = $post['order_number']; $order_jersey_size = $post['order_jersey_size']; $order_shorts_size = $post['order_shorts_size']; - foreach($order_names as $key => $val){ - - if($order_jersey_size[$key] == "none" || $order_shorts_size[$key] == "none"){ + foreach ($order_names as $key => $val) { + + if ($order_jersey_size[$key] == "none" || $order_shorts_size[$key] == "none") { $final_price = $ProductPrice / 2; - }else{ + } else { $final_price = $ProductPrice; } - + $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -322,10 +317,11 @@ class TeamStoreController extends Controller { 'JerseySize' => $order_jersey_size[$key], 'ShortsSize' => $order_shorts_size[$key], 'Price' => $final_price, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } - }elseif($product_form == "tshirt-form"){ + } elseif ($product_form == "tshirt-form") { $items[] = array( 'ProductId' => $product_id, @@ -338,9 +334,10 @@ class TeamStoreController extends Controller { 'ProductName' => $product_name, 'Size' => $post['uniformSize'], 'Price' => $ProductPrice, - 'Quantity' => $post['quantity'] + 'Quantity' => $post['quantity'], + 'ShippingFee' => $shipping_fee ); - }elseif($product_form == "quantity-form"){ + } elseif ($product_form == "quantity-form") { $items[] = array( 'ProductId' => $product_id, @@ -352,16 +349,15 @@ class TeamStoreController extends Controller { 'ProductURL' => $ProductURL, 'ProductName' => $product_name, 'Price' => $ProductPrice, - 'Quantity' => $post['quantity'] + 'Quantity' => $post['quantity'], + 'ShippingFee' => $shipping_fee ); - - - }elseif($product_form == "name-number-form"){ + } elseif ($product_form == "name-number-form") { $order_names = $post['order_names']; $order_number = $post['order_number']; - foreach($order_names as $key => $val){ + foreach ($order_names as $key => $val) { $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -374,16 +370,17 @@ class TeamStoreController extends Controller { 'Name' => $order_names[$key], 'Number' => $order_number[$key], 'Price' => $ProductPrice, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } - }elseif($product_form == "name-number-size-form"){ + } elseif ($product_form == "name-number-size-form") { $order_names = $post['order_names']; $order_number = $post['order_number']; $order_size = $post['order_size']; - foreach($order_names as $key => $val){ + foreach ($order_names as $key => $val) { $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -397,15 +394,15 @@ class TeamStoreController extends Controller { 'Size' => $order_size[$key], 'Number' => $order_number[$key], 'Price' => $ProductPrice, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } - - }elseif($product_form == "number-form"){ + } elseif ($product_form == "number-form") { $order_number = $post['order_number']; - foreach($order_number as $key => $val){ + foreach ($order_number as $key => $val) { $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -417,16 +414,17 @@ class TeamStoreController extends Controller { 'ProductName' => $product_name, 'Number' => $order_number[$key], 'Price' => $ProductPrice, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } - }elseif($product_form == "name-name2-size-form"){ + } elseif ($product_form == "name-name2-size-form") { $order_names = $post['order_names']; $order_names2 = $post['order_names2']; $order_size = $post['order_size']; - foreach($order_names as $key => $val){ + foreach ($order_names as $key => $val) { $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -440,15 +438,16 @@ class TeamStoreController extends Controller { 'Name2' => $order_names2[$key], 'Size' => $order_size[$key], 'Price' => $ProductPrice, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } - }elseif($product_form == "name-size-form"){ + } elseif ($product_form == "name-size-form") { $order_names = $post['order_names']; $order_size = $post['order_size']; - foreach($order_names as $key => $val){ + foreach ($order_names as $key => $val) { $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -461,21 +460,22 @@ class TeamStoreController extends Controller { 'Name' => $order_names[$key], 'Size' => $order_size[$key], 'Price' => $ProductPrice, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } - }elseif($product_form == "jersey-and-shorts-quantity-form"){ + } elseif ($product_form == "jersey-and-shorts-quantity-form") { $order_shorts_size = $post['order_shorts_size']; $order_jersey_size = $post['order_jersey_size']; $quantity = $post['quantity']; - foreach($order_jersey_size as $key => $val){ - if($order_jersey_size[$key] != "none" || $order_shorts_size[$key] != "none"){ - - if($order_jersey_size[$key] == "none" || $order_shorts_size[$key] == "none"){ + foreach ($order_jersey_size as $key => $val) { + if ($order_jersey_size[$key] != "none" || $order_shorts_size[$key] != "none") { + + if ($order_jersey_size[$key] == "none" || $order_shorts_size[$key] == "none") { $final_price = $ProductPrice / 2; - }else{ + } else { $final_price = $ProductPrice; } @@ -491,25 +491,25 @@ class TeamStoreController extends Controller { 'JerseySize' => $order_jersey_size[$key], 'ShortsSize' => $order_shorts_size[$key], 'Price' => $final_price, - 'Quantity' => $quantity[$key] + 'Quantity' => $quantity[$key], + 'ShippingFee' => $shipping_fee ); } - } - }elseif($product_form == "number-jersey-shorts-form"){ + } elseif ($product_form == "number-jersey-shorts-form") { $order_number = $post['order_number']; $order_jersey_size = $post['order_jersey_size']; $order_shorts_size = $post['order_shorts_size']; - foreach($order_number as $key => $val){ - - if($order_jersey_size[$key] == "none" || $order_shorts_size[$key] == "none"){ + foreach ($order_number as $key => $val) { + + if ($order_jersey_size[$key] == "none" || $order_shorts_size[$key] == "none") { $final_price = $ProductPrice / 2; - }else{ + } else { $final_price = $ProductPrice; } - + $items[] = array( 'ProductId' => $product_id, 'StoreURL' => $store_url, @@ -523,14 +523,15 @@ class TeamStoreController extends Controller { 'JerseySize' => $order_jersey_size[$key], 'ShortsSize' => $order_shorts_size[$key], 'Price' => $final_price, - 'Quantity' => 1 + 'Quantity' => 1, + 'ShippingFee' => $shipping_fee ); } } - + $i = $m->insertToCart($items); - - if($i['i']){ + + if ($i['i']) { return response()->json(array( 'success' => true )); @@ -540,11 +541,12 @@ class TeamStoreController extends Controller { return response()->json(array( 'success' => false, 'message' => "Something went wrong. Please refresh the page." - )); + )); } - public function cart(Request $request){ - + public function cart(Request $request) + { + $m = new TeamStoreModel; $cartKey = $request->session()->get('cartkey'); $items = $m->myCart($cartKey); @@ -552,91 +554,95 @@ class TeamStoreController extends Controller { $items_group = $m->myCartGroup($cartKey); //var_dump($items_group); $grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey); - if($grouped_item){ + if ($grouped_item) { $defId = $grouped_item[0]->StoreId; - }else{ + } else { $defId = 0; } - - $item_thumbs = $m->selectDisplayCartThumb(); - $store_array = $m->selectTeamStore('Id', $defId); - - if($items){ + $item_thumbs = $m->selectDisplayCartThumb(); + $store_array = $m->selectTeamStore('Id', $defId); + $shipping_cost = 0; + + if ($items) { $voucherIds = array(); - foreach($items as $item){ - if($item->VoucherId != null){ + foreach ($items as $item) { + if ($item->VoucherId != null) { $voucherIds[] = $item->VoucherId; } + + $shipping_cost += $item->ShippingFee * $item->Quantity; } - $vouchers = $m->selectVoucherWhereIn($voucherIds); + $vouchers = $m->selectVoucherWhereIn($voucherIds); } - + $totalValue = 0; - if(!empty($vouchers)){ - foreach($vouchers as $voucher){ + if (!empty($vouchers)) { + foreach ($vouchers as $voucher) { $totalValue = $totalValue + $voucher->VoucherValue; - if($voucher->VoucherType == "Percentage"){ + if ($voucher->VoucherType == "Percentage") { $voucherData = array( - 'totalValue'=> $totalValue, - 'type'=>'Percentage' + 'totalValue' => $totalValue, + 'type' => 'Percentage' ); - }else{ + } else { $voucherData = array( - 'totalValue'=> $totalValue, - 'type'=>'Flat' + 'totalValue' => $totalValue, + 'type' => 'Flat' ); } } - - if($voucherData['type'] == "Percentage"){ + + if ($voucherData['type'] == "Percentage") { $getPercentageValue = $voucherData['totalValue'] / 100; $getDiscountValue = ($getSubtotal[0]->Subtotal * $getPercentageValue); $finalSubTotal = $getSubtotal[0]->Subtotal - $getDiscountValue; - }else{ + } else { //Flat voucher computation here.. } - }else{ + } else { $finalSubTotal = $getSubtotal[0]->Subtotal; } - + return view('sublayouts.cart') - ->with('item_group', $items_group) - ->with('row', $items) - ->with('img_thumb', $item_thumbs) - ->with('getSubtotal', $finalSubTotal) - ->with('store_array', $store_array); + ->with('item_group', $items_group) + ->with('row', $items) + ->with('img_thumb', $item_thumbs) + ->with('getSubtotal', $finalSubTotal) + ->with('store_array', $store_array) + ->with('shipping_cost', $shipping_cost); } - public function addVoucher(Request $request){ + public function addVoucher(Request $request) + { $cartKey = $request->session()->get('cartkey'); - if($cartKey == ""){ + if ($cartKey == "") { return false; } $TeamStoreModel = new TeamStoreModel; $post = $request->all(); - + $grouped_item = $TeamStoreModel->selectTeamStoreGroupByCartKey($cartKey); $store_id = $grouped_item[0]->StoreId; $vocher = $post['voucher']; $store_array = $TeamStoreModel->selectTeamStore('Id', $grouped_item[0]->StoreId); $getSubtotal = $TeamStoreModel->getSubtotal($cartKey); - + $data = array( 'store_id' => $store_id, 'voucher' => $vocher ); $getVoucher = $TeamStoreModel->selectVoucher($data); - - if($getVoucher){ + + if ($getVoucher) { $items = $TeamStoreModel->myCart($cartKey); // check if if voucher is already in used; - foreach($items as $item){ - if($getVoucher[0]->Id == $item->VoucherId){ + foreach ($items as $item) { + if ($getVoucher[0]->Id == $item->VoucherId) { return response()->json(array( 'success' => false, 'message' => 'This voucher is already in used.' @@ -661,73 +667,69 @@ class TeamStoreController extends Controller { //get all voucher used. $updated_items = $TeamStoreModel->myCart($cartKey); - foreach($updated_items as $item){ - if($item->VoucherId != null){ + foreach ($updated_items as $item) { + if ($item->VoucherId != null) { $voucherIds[] = $item->VoucherId; } - } - - $vouchers = $TeamStoreModel->selectVoucherWhereIn($voucherIds); - + + $vouchers = $TeamStoreModel->selectVoucherWhereIn($voucherIds); + $totalValue = 0; - if(!empty($vouchers)){ - foreach($vouchers as $voucher){ + if (!empty($vouchers)) { + foreach ($vouchers as $voucher) { $totalValue = $totalValue + $voucher->VoucherValue; - if($voucher->VoucherType == "Percentage"){ + if ($voucher->VoucherType == "Percentage") { $voucherData = array( - 'totalValue'=> $totalValue, - 'type'=>'Percentage' + 'totalValue' => $totalValue, + 'type' => 'Percentage' ); - }else{ + } else { $voucherData = array( - 'totalValue'=> $totalValue, - 'type'=>'Flat' + 'totalValue' => $totalValue, + 'type' => 'Flat' ); } } - - if($voucherData['type'] == "Percentage"){ + + if ($voucherData['type'] == "Percentage") { $getPercentageValue = $voucherData['totalValue'] / 100; $getDiscountValue = ($getSubtotal[0]->Subtotal * $getPercentageValue); $finalSubTotal = $getSubtotal[0]->Subtotal - $getDiscountValue; - }else{ + } else { //Flat voucher computation here.. } - }else{ + } else { $finalSubTotal = $getSubtotal[0]->Subtotal; } - if($getVoucher[0]->VoucherType == "Percentage"){ + if ($getVoucher[0]->VoucherType == "Percentage") { $offData = $getVoucher[0]->VoucherValue . '%'; - }else{ + } else { $offData = $getVoucher[0]->VoucherValue . ' ' . $store_array[0]->StoreCurrency; } - - + + $message = '
- +
'; - + // return success return response()->json(array( 'success' => true, 'message' => $message, - 'subtotal' =>$finalSubTotal + 'subtotal' => $finalSubTotal )); + } else { - - - }else{ - return response()->json(array( 'success' => false, 'message' => "Sorry, the voucher code is invalid. Please try again." @@ -739,10 +741,10 @@ class TeamStoreController extends Controller { { $m = new TeamStoreModel; $cartKey = $request->session()->get('cartkey'); - + $usermodel = new UserModel; $userId = Auth::user()->id; - + $array_address_book = $usermodel->selectAddresBook('UserId', $userId); // var_dump($array_address_book); @@ -752,10 +754,9 @@ class TeamStoreController extends Controller { $getSubtotal = $m->getSubtotal($cartKey); return view('sublayouts.checkout') - ->with('row', $items) - ->with('getSubtotal', $getSubtotal) - ->with('array_address_book', $array_address_book); - + ->with('row', $items) + ->with('getSubtotal', $getSubtotal) + ->with('array_address_book', $array_address_book); } public function mail() @@ -771,13 +772,10 @@ class TeamStoreController extends Controller { // dd('Mail Send Successfully'); - Mail::raw('Text to e-mail', function($message) - { + Mail::raw('Text to e-mail', function ($message) { $message->from('us@example.com', 'Laravel'); $message->to('frank.begornia@yahoo.com')->subject('sample email'); }); - } - - + } } diff --git a/app/Models/teamstore/TeamStoreModel.php b/app/Models/teamstore/TeamStoreModel.php index b8545c2..68fb8da 100644 --- a/app/Models/teamstore/TeamStoreModel.php +++ b/app/Models/teamstore/TeamStoreModel.php @@ -219,4 +219,10 @@ class TeamStoreModel extends Model { return $i; } + function delete_cartTmp($field, $cartKey){ + $i = DB::table('cart_tmp') + ->where($field, $cartKey) + ->delete(); + return $i; + } } diff --git a/config/services.php b/config/services.php index eb474bc..0ddb509 100644 --- a/config/services.php +++ b/config/services.php @@ -35,15 +35,15 @@ return [ ], // sandbox - /* 'paypal' => [ - 'client_id' => 'AQuz-HKzQiL7FygkG8skSekaWf-RP6Rgj4f1XeX1Ghp86bUFj7tQXVT1xbpluu5_WCGRbQpOVGtlJKVB', - 'secret' => 'EJAMKxQsl-mFkL_4J_90cvTamYfcsgswqgIxz9wQPiRAwJ6sy_wNsttMlmrXIpxI96JpYzdMXkLCHAPz' - ], */ + 'paypal' => [ + 'client_id' => 'AR1FObcz7lD_p53BJpOw1Frf0hIJ1-VOArYoDnsNJXVvoxjYv6mOKBBvdvZBzQcpBPfB_AJnofdalO0t', + 'secret' => 'EK0CB8Re802HTxLQawwjAYzOu-SxrFOwuVG7qZ_nSovwgkp77wVs6k4XelXj2v5Il5llCFzsWs_Eb4o-' + ], // live - 'paypal' => [ - 'client_id' => 'AUqBUFW5lfyYmrlBtFZA3RNw45sttM3ltbvS_d4qCVBMrkcMG9rEeivGvtNFSy8XTiEp50YyQ6khKxbq', - 'secret' => 'ELlnuiupoFKwGUSc2g5j-sD1EmsvKpdhth1gFV7njpfvyNtKsK8WwIKUMOS0ehJcRatV865eMhfgsnd_' - ], + // 'paypal' => [ + // 'client_id' => 'AUqBUFW5lfyYmrlBtFZA3RNw45sttM3ltbvS_d4qCVBMrkcMG9rEeivGvtNFSy8XTiEp50YyQ6khKxbq', + // 'secret' => 'ELlnuiupoFKwGUSc2g5j-sD1EmsvKpdhth1gFV7njpfvyNtKsK8WwIKUMOS0ehJcRatV865eMhfgsnd_' + // ], ]; diff --git a/resources/views/emails/orders.blade.php b/resources/views/emails/orders.blade.php index a2deb9b..f33b5a8 100644 --- a/resources/views/emails/orders.blade.php +++ b/resources/views/emails/orders.blade.php @@ -387,6 +387,10 @@ Tax {{ $array_payment_details[0]->Tax . ' ' . $array_payment_details[0]->Currency }} + + Shipping Fee + {{ $array_payment_details[0]->ShippingCost . ' ' . $array_payment_details[0]->Currency }} + Total {{ $array_payment_details[0]->Total . ' ' . $array_payment_details[0]->Currency }} diff --git a/resources/views/sublayouts/cart.blade.php b/resources/views/sublayouts/cart.blade.php index 393030c..ef8fdb8 100644 --- a/resources/views/sublayouts/cart.blade.php +++ b/resources/views/sublayouts/cart.blade.php @@ -46,14 +46,37 @@
-

Subtotal: {{ round($getSubtotal, 2) }} {{ $store_array[0]->StoreCurrency }}

+ {{--

Subtotal: {{ round($getSubtotal, 2) }} {{ $store_array[0]->StoreCurrency }}

--}} +
+ × +

Free Shipping on orders with subtotal over 150.00 {{ $store_array[0]->StoreCurrency }}

+
+ + + + + + + + + + + + + + + + + + +
Subtotal{{ round($getSubtotal, 2) }} {{ $store_array[0]->StoreCurrency }}
Tax{{ round($getSubtotal, 2) * 0.10 }} {{ $store_array[0]->StoreCurrency }}
Shipping Fee{{ round($shipping_cost, 2) }} {{ $store_array[0]->StoreCurrency }}
Total
{{ round($getSubtotal + $shipping_cost + ($getSubtotal * 0.10), 2) }} {{ $store_array[0]->StoreCurrency }}

@foreach($row as $item) @if($item->VoucherId != null)
@if($item->VoucherType == "Percentage") - + @else @endif