updated checkout flow

This commit is contained in:
franknstayn
2021-11-03 21:30:42 +08:00
parent 148df27117
commit 08c274f5bd
18 changed files with 254594 additions and 26526 deletions

View File

@@ -1,18 +1,23 @@
<?php namespace App\Http\Controllers; <?php
namespace App\Http\Controllers;
use App\Http\Requests; use App\Http\Requests;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Auth; use Illuminate\Support\Facades\Auth;
use App\Traits\CaptchaTrait; use App\Traits\CaptchaTrait;
use App\User; use App\User;
use Validator; use Illuminate\Support\Facades\Validator;
use App\Models\user\UserModel;
use Illuminate\Http\Request; use Illuminate\Http\Request;
class CustomAuthController extends Controller { class CustomAuthController extends Controller
{
use CaptchaTrait; use CaptchaTrait;
public function authenticate(Request $request){ public function authenticate(Request $request)
{
$post = $request->all(); $post = $request->all();
$email = $post['email']; $email = $post['email'];
@@ -54,12 +59,15 @@ class CustomAuthController extends Controller {
} }
} }
public function postRegister(Request $request){ public function postRegister(Request $request)
{
$post = $request->all(); $post = $request->all();
$userModel = new UserModel;
$post['captcha'] = $this->captchaCheck(); $post['captcha'] = $this->captchaCheck();
$validator = Validator::make($post, [ $validator = Validator::make(
$post,
[
'username' => 'unique:user_logins', 'username' => 'unique:user_logins',
'email' => 'unique:user_logins', 'email' => 'unique:user_logins',
'g-recaptcha-response' => 'required', 'g-recaptcha-response' => 'required',
@@ -68,11 +76,11 @@ class CustomAuthController extends Controller {
[ [
'g-recaptcha-response.required' => 'Captcha is required', 'g-recaptcha-response.required' => 'Captcha is required',
'captcha.min' => 'Wrong captcha, please try again.' 'captcha.min' => 'Wrong captcha, please try again.'
]); ]
);
if ($validator->fails()) if ($validator->fails()) {
{
$errors = ""; $errors = "";
foreach ($validator->errors()->all() as $error) { foreach ($validator->errors()->all() as $error) {
$errors .= "<li>" . $error . "</li>"; $errors .= "<li>" . $error . "</li>";
@@ -91,19 +99,34 @@ class CustomAuthController extends Controller {
)); ));
} }
User::create([ $user = User::create([
'name' => $post['name'], 'name' => $post['firstname'] . ' ' . $post['lastname'],
'username' => $post['username'], 'username' => $post['email'],
'email' => $post['email'], 'email' => $post['email'],
'password' => bcrypt($post['password']), 'password' => bcrypt($post['password']),
'role' => 'user' 'role' => 'user'
]); ]);
$data = array(
'UserId' => $user->id,
'Fullname' => $post['firstname'] . ' ' . $post['lastname'],
'ContactNumber' => $post['mobilenumber'],
// 'OtherNotes' => $post['othernotes'],
'Address' => $post['address'],
'Address2' => $post['address2'],
'State' => $post['state'],
'City' => $post['city'],
'ZipCode' => $post['zipcode'],
'CountryCode' => $post['countryCode'],
'Country' => $post['country']
);
$userModel->insertAddressBook($data);
Auth::attempt(['email' => $post['email'], 'password' => $post['password']]); Auth::attempt(['email' => $post['email'], 'password' => $post['password']]);
return response()->json(array( return response()->json(array(
'success' => true 'success' => true,
'redirect' => $post['redirect']
)); ));
} }
} }

View File

@@ -1,8 +1,8 @@
<?php <?php
namespace App\Http\Controllers\paypal; namespace App\Http\Controllers\paypal;
use App\Http\Controllers\Controller;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request; use Illuminate\Http\Request;
// use Paypal; // use Paypal;
use Netshell\Paypal\Facades\Paypal; use Netshell\Paypal\Facades\Paypal;
@@ -18,6 +18,7 @@ use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Redirect;
// use Mail; // use Mail;
use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Mail;
use PayPal\Exception\PayPalConnectionException;
class PaypalController extends Controller class PaypalController extends Controller
@@ -28,30 +29,42 @@ class PaypalController extends Controller
public function __construct() public function __construct()
{ {
$paypal_env = "live";
$paypal_apiUrl = 'https://api.paypal.com'; // default
if ($paypal_env == 'live') {
$paypal_apiUrl = 'https://api.paypal.com';
} else {
$paypal_apiUrl = 'https://api.sandbox.paypal.com';
}
$this->_apiContext = PayPal::ApiContext( $this->_apiContext = PayPal::ApiContext(
config('services.paypal.client_id'), config('services.paypal_' . $paypal_env . '.client_id'),
config('services.paypal.secret') config('services.paypal_' . $paypal_env . '.secret')
// config('services.paypal_live.client_id'),
// config('services.paypal_live.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( $this->_apiContext->setConfig(array(
'mode' => 'live', 'mode' => $paypal_env,
'service.EndPoint' => 'https://api.paypal.com', 'service.EndPoint' => $paypal_apiUrl,
'http.ConnectionTimeOut' => 30, 'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => true, 'log.LogEnabled' => true,
'log.FileName' => storage_path('logs/paypal.log'), 'log.FileName' => storage_path('logs/paypal.log'),
'log.LogLevel' => 'FINE' 'log.LogLevel' => 'FINE'
)); ));
// live
// $this->_apiContext->setConfig(array(
// 'mode' => 'sandbox',
// 'service.EndPoint' => 'https://api.paypal.com',
// 'http.ConnectionTimeOut' => 30,
// 'log.LogEnabled' => true,
// 'log.FileName' => storage_path('logs/paypal.log'),
// 'log.LogLevel' => 'FINE'
// ));
} }
@@ -63,14 +76,52 @@ class PaypalController extends Controller
public function getCheckout(Request $request) public function getCheckout(Request $request)
{ {
$UserModel = new UserModel;
if (Auth::guest()) { if (Auth::guest()) {
$message = 'Please <a href="' . url('auth/login') . '">Sign in</a> to your account to proceed.'; $message = 'Please <a href="' . url('auth/login') . '">Sign in</a> to your account to proceed.';
Session::flash('msg', $message); Session::flash('msg', $message);
return Redirect::back(); return Redirect::back();
} }
$userId = Auth::user()->id;
$array_address_book = $UserModel->selectAddresBook('UserId', $userId);
if (count($array_address_book) <= 0) {
$message = 'Please complete your shipping address. <a href="user/address-book/create"> <strong> <u>click here</u> </strong></a>.';
Session::flash('cartkeyError', $message);
return Redirect::back();
}
$shipping_address_url = "user/address-book/edit/" . $array_address_book[0]->Id;
if (
count($array_address_book) <= 0 ||
$array_address_book[0]->Fullname == null ||
$array_address_book[0]->ContactNumber == null ||
$array_address_book[0]->Address == null ||
$array_address_book[0]->State == null ||
$array_address_book[0]->City == null ||
$array_address_book[0]->ZipCode == null
) {
$message = 'Please complete your shipping address. <a href="' . url($shipping_address_url) . '"> <strong> <u>click here</u> </strong></a>.';
Session::flash('cartkeyError', $message);
return Redirect::back();
}
// $shippingAddress = [
// "recipient_name" => $array_address_book[0]->Fullname,
// "line1" => $array_address_book[0]->Address,
// "line2" => "",
// "city" => $array_address_book[0]->City,
// "country_code" => $array_address_book[0]->CountryCode,
// "postal_code" => $array_address_book[0]->ZipCode,
// "state" => $array_address_book[0]->State,
// "phone" => $array_address_book[0]->ContactNumber
// ];
// $request->session()->forget('cartkey'); // $request->session()->forget('cartkey');
if (!$request->session()->has('cartkey')) { if (!$request->session()->has('cartkey')) {
$message = 'Your cart is empty'; $message = 'Your cart is empty';
@@ -81,81 +132,56 @@ class PaypalController extends Controller
$payer = PayPal::Payer(); $payer = PayPal::Payer();
$payer->setPaymentMethod('paypal'); $payer->setPaymentMethod('paypal');
// $inputFields = Paypal::InputFields();
// $inputFields->setAllowNote(true)
// ->setNoShipping(1)
// ->setAddressOverride(0);
// $webProfile = Paypal::WebProfile();
// $webProfile->setName("YeowZa! T-Shirt Shop" . uniqid())
// // ->setPresentation($presentation)
// ->setInputFields($inputFields);
// $shipping = PayPal::ShippingAddress();
// $shipping->setRecipientName($array_address_book[0]->Fullname);
// $shipping->setLine1($array_address_book[0]->Address);
// $shipping->setCity($array_address_book[0]->City);
// $shipping->setCountryCode($array_address_book[0]->CountryCode);
// $shipping->setPostalCode($array_address_book[0]->ZipCode);
// $shipping->setState($array_address_book[0]->State);
// $shipping->setPhone($array_address_book[0]->ContactNumber);
// $payerInfo = Paypal::PayerInfo();
// $payerInfo->setShippingAddress($shipping);
// $payer->setPayerInfo($payerInfo);
$m = new TeamStoreModel; $m = new TeamStoreModel;
$paypal_model = new PayPalModel; $paypal_model = new PayPalModel;
$last_id = $paypal_model->getLastIdPaymentDetails(); $last_id = $paypal_model->getLastIdPaymentDetails();
$invoice_num = str_pad($last_id[0]->Id, 4, '0', STR_PAD_LEFT); // var_dump(count($last_id));
if (count($last_id) > 0) {
$lastId = $last_id[0]->Id + 1;
} else {
$lastId = 1;
}
$invoice_num = str_pad($lastId, 6, '0', STR_PAD_LEFT);
// var_dump($invoice_num);
$cartKey = $request->session()->get('cartkey'); $cartKey = $request->session()->get('cartkey');
$items = $m->myCart($cartKey); $items = $m->myCart($cartKey);
$getSubtotal = $m->getSubtotal($cartKey); $getSubtotal = $m->getSubtotal($cartKey);
$grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey); $grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey);
$store_array = $m->selectTeamStore('Id', $grouped_item[0]->StoreId); $store_array = $m->selectTeamStore('Id', $grouped_item[0]->StoreId);
$getSmallItemQty = 0;
$getBulkyItemQty = 0;
$getMaskItemQty = 0;
$getDGSItemQty = 0;
$shippingFee = 0;
$shippingFee = $this->getShippingFee($cartKey);
foreach ($items as $item) { $tax = $this->getTax($cartKey)['tax'];
if ($item->VoucherId != null) { $order_grandtotal = $this->getTax($cartKey)['order_grandtotal'];
$voucherIds[] = $item->VoucherId;
$voucher = $m->selectVoucherWhereIn($voucherIds);
$item_id = $item->Id;
$totalValue = $voucher[0]->VoucherValue;
if ($voucher[0]->VoucherType == "Percentage") {
$getPercentageValue = $totalValue / 100;
$getDiscountValue = ($getSubtotal[0]->Subtotal * $getPercentageValue);
$data = array(
'Price' => round($getDiscountValue * -1, 2)
);
$m->updateVoucherValueInCart($data, $item_id);
} else {
$voucherData = array(
'totalValue' => $totalValue,
'type' => 'Flat'
);
}
}
if($item->ShippingCostId == 1){
$getSmallItemQty += $item->Quantity;
}else if($item->ShippingCostId == 2){
$getBulkyItemQty += $item->Quantity;
}else if($item->ShippingCostId == 3){
$getMaskItemQty += $item->Quantity;
}else if($item->ShippingCostId == 4){
$getDGSItemQty += $item->Quantity;
}
}
$getSmallItemQty = ceil($getSmallItemQty / 3) * 8;
$getBulkyItemQty = ceil($getBulkyItemQty / 1) * 8;
$getMaskItemQty = ceil($getMaskItemQty / 25) * 8;
$getMaskItemQty = ceil($getMaskItemQty / 4) * 5;
$shippingFee = $getSmallItemQty + $getBulkyItemQty + $getMaskItemQty + $getDGSItemQty;
// var_dump($shippingFee);
$order_items = array(); $order_items = array();
$updated_items = $m->myCart($cartKey); $updated_items = $m->myCart($cartKey);
$updated_getSubtotal = $m->getSubtotal($cartKey);
// $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 || $grouped_item[0]->StoreId == 162 || $grouped_item[0]->StoreId == 185) {
$tax_value = 0;
} else {
$tax_value = 0.10;
}
$tax = $order_grandtotal * $tax_value;
foreach ($updated_items as $key => $item) { foreach ($updated_items as $key => $item) {
@@ -172,6 +198,29 @@ class PaypalController extends Controller
$item_list = PayPal::ItemList(); $item_list = PayPal::ItemList();
$item_list->setItems($order_items); $item_list->setItems($order_items);
$payment = PayPal::Payment();
// var_dump(array($transaction));
if ($array_address_book[0]->CountryCode == "CA") {
$shipping = PayPal::ShippingAddress();
$shipping->setRecipientName($array_address_book[0]->Fullname);
$shipping->setLine1($array_address_book[0]->Address);
$shipping->setLine2($array_address_book[0]->Address2);
$shipping->setCity($array_address_book[0]->City);
$shipping->setCountryCode($array_address_book[0]->CountryCode);
$shipping->setPostalCode($array_address_book[0]->ZipCode);
$shipping->setState($array_address_book[0]->State);
$shipping->setPhone($array_address_book[0]->ContactNumber);
$item_list->setShippingAddress($shipping);
$payment->setExperienceProfileId($this->createWebProfile());
}
// var_dump($item_list);
$amount_details = PayPal::Details(); $amount_details = PayPal::Details();
$amount_details->setSubtotal($order_grandtotal); $amount_details->setSubtotal($order_grandtotal);
$amount_details->setTax($tax); $amount_details->setTax($tax);
@@ -192,9 +241,10 @@ class PaypalController extends Controller
$redirectUrls = PayPal::RedirectUrls(); $redirectUrls = PayPal::RedirectUrls();
$redirectUrls->setReturnUrl(route('getDone')); $redirectUrls->setReturnUrl(route('getDone'));
$redirectUrls->setCancelUrl(route('getCancel')); $redirectUrls->setCancelUrl(route('getCancel'));
// var_dump($shippingAddress)
$payment = PayPal::Payment();
$payment->setIntent('sale'); $payment->setIntent('sale');
$payment->setPayer($payer); $payment->setPayer($payer);
$payment->setRedirectUrls($redirectUrls); $payment->setRedirectUrls($redirectUrls);
@@ -233,33 +283,151 @@ class PaypalController extends Controller
} }
public function getShippingFee($cartKey)
{
$m = new TeamStoreModel;
$UserModel = new UserModel;
$userId = 0;
if (!Auth::guest()) {
$userId = Auth::user()->id;
}
$items = $m->myCart($cartKey); // item from cart_tmp
$getSubtotal = $m->getSubtotal($cartKey);
$getSmallItemQty = 0;
$getBulkyItemQty = 0;
$getMaskItemQty = 0;
$getDGSItemQty = 0;
$shippingFee = 0;
$CAShippingfee = 0;
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") {
$getPercentageValue = $totalValue / 100;
$getDiscountValue = ($getSubtotal[0]->Subtotal * $getPercentageValue);
$data = array(
'Price' => round($getDiscountValue * -1, 2)
);
$m->updateVoucherValueInCart($data, $item_id);
} else {
$voucherData = array(
'totalValue' => $totalValue,
'type' => 'Flat'
);
}
}
if ($item->ShippingCostId == 1) {
$getSmallItemQty += $item->Quantity;
} else if ($item->ShippingCostId == 2) {
$getBulkyItemQty += $item->Quantity;
} else if ($item->ShippingCostId == 3) {
$getMaskItemQty += $item->Quantity;
} else if ($item->ShippingCostId == 4) {
$getDGSItemQty += $item->Quantity;
}
$CAShippingfee += $item->Quantity; // for canada
}
$array_address_book = $UserModel->selectAddresBook('UserId', $userId);
$countryCode = "";
if (count($array_address_book) > 0) {
$countryCode = $array_address_book[0]->CountryCode;
$CAShippingfee = ceil($CAShippingfee / 2) * 30;
}
$getSmallItemQty = ceil($getSmallItemQty / 3) * 8;
$getBulkyItemQty = ceil($getBulkyItemQty / 1) * 8;
$getMaskItemQty = ceil($getMaskItemQty / 25) * 8;
$getDGSItemQty = ceil($getDGSItemQty / 4) * 5;
$shippingFee = $getSmallItemQty + $getBulkyItemQty + $getMaskItemQty + $getDGSItemQty;
if ($countryCode == "CA") {
$shippingFee = $CAShippingfee;
}
return $shippingFee;
}
public function getTax($cartKey)
{
$m = new TeamStoreModel;
$updated_getSubtotal = $m->getSubtotal($cartKey);
$grouped_item = $m->selectTeamStoreGroupByCartKey($cartKey);
if (count($grouped_item) <= 0) {
$tax_value = 0;
} else {
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 || $grouped_item[0]->StoreId == 162 || $grouped_item[0]->StoreId == 185 || $grouped_item[0]->StoreId == 244) {
$tax_value = 0;
} else {
$tax_value = 0.10;
}
}
$order_grandtotal = $updated_getSubtotal[0]->Subtotal;
$tax = $order_grandtotal * $tax_value;
return [
'tax' => $tax,
'order_grandtotal' => $order_grandtotal,
];
}
public function getDone(Request $request) public function getDone(Request $request)
{ {
$paypal_model = new PayPalModel;
$m = new TeamStoreModel;
$cartKey = $request->session()->get('cartkey');
$userId = Auth::user()->id;
$user_email = Auth::user()->email;
$checkCartKey = $paypal_model->checkCartKey($cartKey);
if (count($checkCartKey) > 0) {
$message = 'You already paid for this order. Please check your Order Page. <a href="user/orders"> <strong> <u>click here</u> </strong></a>.';
Session::put('cartkeyError', $message);
return Redirect::route('cart');
}
$id = $request->get('paymentId'); $id = $request->get('paymentId');
$token = $request->get('token'); $token = $request->get('token');
$payer_id = $request->get('PayerID'); $payer_id = $request->get('PayerID');
try {
$payment = PayPal::getById($id, $this->_apiContext); $payment = PayPal::getById($id, $this->_apiContext);
$paymentExecution = PayPal::PaymentExecution(); $paymentExecution = PayPal::PaymentExecution();
$paymentExecution->setPayerId($payer_id); $paymentExecution->setPayerId($payer_id);
$executePayment = $payment->execute($paymentExecution, $this->_apiContext); $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');
// // return Redirect::route('paywithpaypal');
// echo 'Payment success';
// }
$obj = json_decode($executePayment); $obj = json_decode($executePayment);
// var_dump($obj);
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');
// return Redirect::route('paywithpaypal');
$line2 = null; $line2 = null;
//details //details
@@ -273,7 +441,7 @@ class PaypalController extends Controller
$currency = $obj->transactions[0]->amount->currency; $currency = $obj->transactions[0]->amount->currency;
$invoice_number = $obj->transactions[0]->invoice_number; $invoice_number = $obj->transactions[0]->invoice_number;
// var_dump( $obj->transactions[0]->item_list->phone);
//shipping address details //shipping address details
$recipient_name = $obj->transactions[0]->item_list->shipping_address->recipient_name; $recipient_name = $obj->transactions[0]->item_list->shipping_address->recipient_name;
$line1 = $obj->transactions[0]->item_list->shipping_address->line1; $line1 = $obj->transactions[0]->item_list->shipping_address->line1;
@@ -294,14 +462,7 @@ class PaypalController extends Controller
/// end paypal codes /// end paypal codes
$paypal_model = new PayPalModel;
$m = new TeamStoreModel;
$cartKey = $request->session()->get('cartkey');
$userId = Auth::user()->id;
$user_email = Auth::user()->email;
$items = $m->myCart($cartKey); // item from cart_tmp
$getSubtotal = $m->getSubtotal($cartKey);
$payment_details = array( $payment_details = array(
@@ -366,7 +527,9 @@ class PaypalController extends Controller
} }
if ($other_email[0] != null) { if ($other_email[0] != null) {
$other_email = implode(", ", array_filter($other_email, function($value) { return !is_null($value) && $value !== ''; })); $other_email = implode(", ", array_filter($other_email, function ($value) {
return !is_null($value) && $value !== '';
}));
$email_cc = "orders@crewsportswear.com" . "," . $other_email; $email_cc = "orders@crewsportswear.com" . "," . $other_email;
} else { } else {
$email_cc = "orders@crewsportswear.com"; $email_cc = "orders@crewsportswear.com";
@@ -408,6 +571,32 @@ class PaypalController extends Controller
return view('paypal.get_done') return view('paypal.get_done')
->with('currency', $currency) ->with('currency', $currency)
->with('total', $total); ->with('total', $total);
} else {
Session::put('cartkeyError', 'Something went wrong. Please try again.');
return Redirect::route('cart');
}
} catch (PayPalConnectionException $e) {
//throw $th;
// echo $e->getCode();
echo $e->getData();
Session::put('cartkeyError', 'Invalid payment.');
return Redirect::route('cart');
}
// 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');
// // return Redirect::route('paywithpaypal');
// echo 'Payment success';
// }
// var_dump($obj->payer->payer_info->shipping_address);
// var_dump($obj->transactions[0]->item_list->shipping_address);
} }
@@ -419,6 +608,10 @@ class PaypalController extends Controller
$items = $m->myCart($cartKey); $items = $m->myCart($cartKey);
$getSubtotal = $m->getSubtotal($cartKey); $getSubtotal = $m->getSubtotal($cartKey);
if ($items == null) {
return redirect()->route('cart');
}
foreach ($items as $item) { foreach ($items as $item) {
if ($item->VoucherId != null) { if ($item->VoucherId != null) {
$voucherIds[] = $item->VoucherId; $voucherIds[] = $item->VoucherId;
@@ -441,4 +634,47 @@ class PaypalController extends Controller
return redirect()->route('cart'); return redirect()->route('cart');
} }
public function createWebProfile()
{
$UserModel = new UserModel;
$userId = Auth::user()->id;
$array_address_book = $UserModel->selectAddresBook('UserId', $userId);
if (count($array_address_book) <= 0) {
$message = 'Please add Shipping address.';
Session::flash('cartkeyError', $message);
return Redirect::back();
}
// $shippingAddress = [
// "recipient_name" => ,
$flowConfig = PayPal::FlowConfig();
$presentation = PayPal::Presentation();
$inputFields = PayPal::InputFields();
$webProfile = PayPal::WebProfile();
// $presentation->setLogoImage("https://www.crewsportswear.com/beta/public/images/logo.png")->setBrandName("Merchbay"); //NB: Paypal recommended to use https for the logo's address and the size set to 190x60.
$presentation->setBrandName("Crewsportswear"); //NB: Paypal recommended to use https for the logo's address and the size set to 190x60.
if ($array_address_book[0]->CountryCode == "CA") {
$flowConfig->setLandingPageType("Billing"); //Set the page type
$inputFields->setAllowNote(true)->setAddressOverride(1);
} else {
$inputFields->setAllowNote(true)->setAddressOverride(0);
}
$webProfile->setName("Crewsportswear " . uniqid())
->setFlowConfig($flowConfig)
// Parameters for style and presentation.
->setPresentation($presentation)
// Parameters for input field customization.
->setInputFields($inputFields);
$createProfileResponse = $webProfile->create($this->_apiContext);
return $createProfileResponse->getId(); //The new webprofile's id
}
} }

View File

@@ -1,4 +1,6 @@
<?php namespace App\Http\Controllers\teamstore; <?php
namespace App\Http\Controllers\teamstore;
use App\Http\Requests; use App\Http\Requests;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
@@ -13,7 +15,8 @@ use Illuminate\Support\Facades\Mail;
use Analytics; use Analytics;
class TeamStoreController extends Controller { class TeamStoreController extends Controller
{
public function index(Request $request, $teamStoreURL) public function index(Request $request, $teamStoreURL)
{ {
@@ -73,7 +76,6 @@ class TeamStoreController extends Controller {
'thumb' => $displayThumbnails 'thumb' => $displayThumbnails
); );
} else { } else {
$thumbnails[] = array( $thumbnails[] = array(
'folder' => $store_array[0]->ImageFolder, 'folder' => $store_array[0]->ImageFolder,
@@ -151,7 +153,6 @@ class TeamStoreController extends Controller {
// sort only // sort only
$stores_array = $m->selectTeamstoreFilter($field, $sort_value); $stores_array = $m->selectTeamstoreFilter($field, $sort_value);
} }
} else { } else {
$field = "StoreName"; $field = "StoreName";
$sort_value = "ASC"; $sort_value = "ASC";
@@ -175,11 +176,9 @@ class TeamStoreController extends Controller {
if ($store_array) { if ($store_array) {
$request->session()->put('teamstore_data_array', $store_array); $request->session()->put('teamstore_data_array', $store_array);
return redirect('teamstore/' . $store_array[0]->StoreUrl); return redirect('teamstore/' . $store_array[0]->StoreUrl);
} else { } else {
return redirect()->back()->with('errors', 'Invalid Password.'); return redirect()->back()->with('errors', 'Invalid Password.');
} }
} }
private $teams_array; private $teams_array;
@@ -234,7 +233,6 @@ class TeamStoreController extends Controller {
->with('teams_array', $teams_array) ->with('teams_array', $teams_array)
->with('sizes_array', $sizes_array) ->with('sizes_array', $sizes_array)
->with('available_qty', $availableQty); ->with('available_qty', $availableQty);
} }
public function login(Request $request) public function login(Request $request)
@@ -280,8 +278,6 @@ class TeamStoreController extends Controller {
->render(); ->render();
return $handle_form; return $handle_form;
} }
public function addToCart(Request $request) public function addToCart(Request $request)
@@ -375,8 +371,6 @@ class TeamStoreController extends Controller {
'Quantity' => $post['quantity'], 'Quantity' => $post['quantity'],
'ShippingCostId' => $shipping_cost_id 'ShippingCostId' => $shipping_cost_id
); );
} elseif ($product_form == "name-number-form") { } elseif ($product_form == "name-number-form") {
$order_names = $post['order_names']; $order_names = $post['order_names'];
@@ -423,7 +417,6 @@ class TeamStoreController extends Controller {
'ShippingCostId' => $shipping_cost_id 'ShippingCostId' => $shipping_cost_id
); );
} }
} elseif ($product_form == "number-form") { } elseif ($product_form == "number-form") {
$order_number = $post['order_number']; $order_number = $post['order_number'];
@@ -521,7 +514,6 @@ class TeamStoreController extends Controller {
'ShippingCostId' => $shipping_cost_id 'ShippingCostId' => $shipping_cost_id
); );
} }
} }
} elseif ($product_form == "number-jersey-shorts-form") { } elseif ($product_form == "number-jersey-shorts-form") {
@@ -571,9 +563,25 @@ class TeamStoreController extends Controller {
)); ));
} }
public function cart(Request $request){ public function cart(Request $request)
{
$m = new TeamStoreModel; $m = new TeamStoreModel;
$UserModel = new UserModel;
$array_address_book = null;
if(!Auth::guest()){
$userId = Auth::user()->id;
$array_address_book = $UserModel->selectAddresBook('UserId', $userId);
if (count($array_address_book) <= 0) {
$array_address_book = null;
}
}
$cartKey = $request->session()->get('cartkey'); $cartKey = $request->session()->get('cartkey');
$items = $m->myCart($cartKey); $items = $m->myCart($cartKey);
$getSubtotal = $m->getSubtotal($cartKey); $getSubtotal = $m->getSubtotal($cartKey);
@@ -628,15 +636,29 @@ class TeamStoreController extends Controller {
$finalSubTotal = $getSubtotal[0]->Subtotal; $finalSubTotal = $getSubtotal[0]->Subtotal;
} }
if($cartKey != null) {
$shippingFee = app(\App\Http\Controllers\paypal\PaypalController::class)->getShippingFee($cartKey);
$tax = app(\App\Http\Controllers\paypal\PaypalController::class)->getTax($cartKey);
}else{
$shippingFee = 0;
$tax = [];
}
return view('sublayouts.cart') return view('sublayouts.cart')
->with('item_group', $items_group) ->with('item_group', $items_group)
->with('row', $items) ->with('row', $items)
->with('img_thumb', $item_thumbs) ->with('img_thumb', $item_thumbs)
->with('getSubtotal', $finalSubTotal) ->with('getSubtotal', $finalSubTotal)
->with('store_array', $store_array); ->with('store_array', $store_array)
->with('store_array', $store_array)
->with('shipping_fee', $shippingFee)
->with('tax', $tax)
->with('address_book', $array_address_book);
} }
public function addVoucher(Request $request){ public function addVoucher(Request $request)
{
$cartKey = $request->session()->get('cartkey'); $cartKey = $request->session()->get('cartkey');
if ($cartKey == "") { if ($cartKey == "") {
@@ -693,7 +715,6 @@ class TeamStoreController extends Controller {
if ($item->VoucherId != null) { if ($item->VoucherId != null) {
$voucherIds[] = $item->VoucherId; $voucherIds[] = $item->VoucherId;
} }
} }
$vouchers = $TeamStoreModel->selectVoucherWhereIn($voucherIds); $vouchers = $TeamStoreModel->selectVoucherWhereIn($voucherIds);
@@ -751,9 +772,6 @@ class TeamStoreController extends Controller {
'message' => $message, 'message' => $message,
'subtotal' => $finalSubTotal 'subtotal' => $finalSubTotal
)); ));
} else { } else {
return response()->json(array( return response()->json(array(
@@ -783,7 +801,6 @@ class TeamStoreController extends Controller {
->with('row', $items) ->with('row', $items)
->with('getSubtotal', $getSubtotal) ->with('getSubtotal', $getSubtotal)
->with('array_address_book', $array_address_book); ->with('array_address_book', $array_address_book);
} }
public function mail() public function mail()
@@ -799,13 +816,10 @@ class TeamStoreController extends Controller {
// dd('Mail Send Successfully'); // 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->from('us@example.com', 'Laravel');
$message->to('frank.begornia@yahoo.com')->subject('sample email'); $message->to('frank.begornia@yahoo.com')->subject('sample email');
}); });
} }
} }

View File

@@ -79,11 +79,13 @@ class UserController extends Controller {
'ContactNumber' => $post['mobilenumber'], 'ContactNumber' => $post['mobilenumber'],
'OtherNotes' => $post['othernotes'], 'OtherNotes' => $post['othernotes'],
'Address' => $post['address'], 'Address' => $post['address'],
'Address2' => $post['address2'],
'State' => $post['state'], 'State' => $post['state'],
'City' => $post['city'], 'City' => $post['city'],
'ZipCode' => $post['zipcode'] 'ZipCode' => $post['zipcode'],
'CountryCode' => $post['countryCode'],
'Country' => $post['country']
); );
echo $i = $m->insertAddressBook($data); echo $i = $m->insertAddressBook($data);
} }
@@ -116,11 +118,15 @@ class UserController extends Controller {
'ContactNumber' => $post['mobilenumber'], 'ContactNumber' => $post['mobilenumber'],
'OtherNotes' => $post['othernotes'], 'OtherNotes' => $post['othernotes'],
'Address' => $post['address'], 'Address' => $post['address'],
'Address2' => $post['address2'],
'State' => $post['state'], 'State' => $post['state'],
'City' => $post['city'], 'City' => $post['city'],
'ZipCode' => $post['zipcode'] 'ZipCode' => $post['zipcode'],
'CountryCode' => $post['countryCode'],
'Country' => $post['country']
); );
echo $i = $m->saveUpdateAddressBook($data, $id); echo $i = $m->saveUpdateAddressBook($data, $id);
} }

View File

@@ -1,9 +1,13 @@
<?php namespace App\Http\Middleware; <?php
namespace App\Http\Middleware;
use Closure; use Closure;
use Illuminate\Contracts\Auth\Guard; use Illuminate\Contracts\Auth\Guard;
use Illuminate\Support\Facades\URL;
class Authenticate { class Authenticate
{
/** /**
* The Guard implementation. * The Guard implementation.
@@ -32,19 +36,19 @@ class Authenticate {
*/ */
public function handle($request, Closure $next) public function handle($request, Closure $next)
{ {
if ($this->auth->guest()) if ($this->auth->guest()) {
{ if ($request->ajax()) {
if ($request->ajax())
{
return response('Unauthorized.', 401); return response('Unauthorized.', 401);
} else {
$prev = URL::previous();
if (str_contains($prev, ['cart'])) {
return redirect()->guest('auth/register?redirectUrl='. $prev);
} }
else
{
return redirect()->guest('auth/login'); return redirect()->guest('auth/login');
} }
} }
return $next($request); return $next($request);
} }
} }

View File

@@ -38,4 +38,14 @@ class PayPalModel extends Model {
// var_dump($i); // var_dump($i);
return $i; return $i;
} }
function checkCartKey($ck){
$i = DB::table('payment_details')
->where('CartKey', $ck)
// ->take(1)
->get();
// var_dump($i);
return $i;
}
} }

View File

@@ -35,13 +35,13 @@ return [
], ],
// sandbox // sandbox
// 'paypal' => [ 'paypal_sandbox' => [
// 'client_id' => 'AQuz-HKzQiL7FygkG8skSekaWf-RP6Rgj4f1XeX1Ghp86bUFj7tQXVT1xbpluu5_WCGRbQpOVGtlJKVB', 'client_id' => 'AQuz-HKzQiL7FygkG8skSekaWf-RP6Rgj4f1XeX1Ghp86bUFj7tQXVT1xbpluu5_WCGRbQpOVGtlJKVB',
// 'secret' => 'EJAMKxQsl-mFkL_4J_90cvTamYfcsgswqgIxz9wQPiRAwJ6sy_wNsttMlmrXIpxI96JpYzdMXkLCHAPz' 'secret' => 'EJAMKxQsl-mFkL_4J_90cvTamYfcsgswqgIxz9wQPiRAwJ6sy_wNsttMlmrXIpxI96JpYzdMXkLCHAPz'
// ], ],
// live // live
'paypal' => [ 'paypal_live' => [
'client_id' => 'AUqBUFW5lfyYmrlBtFZA3RNw45sttM3ltbvS_d4qCVBMrkcMG9rEeivGvtNFSy8XTiEp50YyQ6khKxbq', 'client_id' => 'AUqBUFW5lfyYmrlBtFZA3RNw45sttM3ltbvS_d4qCVBMrkcMG9rEeivGvtNFSy8XTiEp50YyQ6khKxbq',
'secret' => 'ELlnuiupoFKwGUSc2g5j-sD1EmsvKpdhth1gFV7njpfvyNtKsK8WwIKUMOS0ehJcRatV865eMhfgsnd_' 'secret' => 'ELlnuiupoFKwGUSc2g5j-sD1EmsvKpdhth1gFV7njpfvyNtKsK8WwIKUMOS0ehJcRatV865eMhfgsnd_'
], ],

372
public/api/canada.json Normal file
View File

@@ -0,0 +1,372 @@
{
"Alberta": [
"Airdrie",
"Grande Prairie",
"Red Deer",
"Beaumont",
"Hanna",
"St. Albert",
"Bonnyville",
"Hinton",
"Spruce Grove",
"Brazeau",
"Irricana",
"Strathcona County",
"Breton",
"Lacombe",
"Strathmore",
"Calgary",
"Leduc",
"Sylvan Lake",
"Camrose",
"Lethbridge",
"Swan Hills",
"Canmore",
"McLennan",
"Taber",
"Didzbury",
"Medicine Hat",
"Turner Valley",
"Drayton Valley",
"Olds",
"Vermillion",
"Edmonton",
"Onoway",
"Wood Buffalo",
"Ft. Saskatchewan",
"Provost"
],
"British Columbia": [
"Burnaby",
"Lumby",
"City of Port Moody",
"Cache Creek",
"Maple Ridge",
"Prince George",
"Castlegar",
"Merritt",
"Prince Rupert",
"Chemainus",
"Mission",
"Richmond",
"Chilliwack",
"Nanaimo",
"Saanich",
"Clearwater",
"Nelson",
"Sooke",
"Colwood",
"New Westminster",
"Sparwood",
"Coquitlam",
"North Cowichan",
"Surrey",
"Cranbrook",
"North Vancouver",
"Terrace",
"Dawson Creek",
"North Vancouver",
"Tumbler",
"Delta",
"Osoyoos",
"Vancouver",
"Fernie",
"Parksville",
"Vancouver",
"Invermere",
"Peace River",
"Vernon",
"Kamloops",
"Penticton",
"Victoria",
"Kaslo",
"Port Alberni",
"Whistler",
"Langley",
"Port Hardy"
],
"Manitoba": [
"Birtle",
"Flin Flon",
"Swan River",
"Brandon",
"Snow Lake",
"The Pas",
"Cranberry Portage",
"Steinbach",
"Thompson",
"Dauphin",
"Stonewall",
"Winnipeg"
],
"New Brunswick": [
"Cap-Pele",
"Miramichi",
"Saint John",
"Fredericton",
"Moncton",
"Saint Stephen",
"Grand Bay-Westfield",
"Oromocto",
"Shippagan",
"Grand Falls",
"Port Elgin",
"Sussex",
"Memramcook",
"Sackville",
"Tracadie-Sheila"
],
"Newfoundland And Labrador": [
"Argentia",
"Corner Brook",
"Paradise",
"Bishop's Falls",
"Labrador City",
"Portaux Basques",
"Botwood",
"Mount Pearl",
"St. John's",
"Brigus"
],
"Northwest Territories": [
"Town of Hay River",
"Town of Inuvik",
"Yellowknife"
],
"Nova Scotia": [
"Amherst",
"Hants County",
"Pictou",
"Annapolis",
"Inverness County",
"Pictou County",
"Argyle",
"Kentville",
"Queens",
"Baddeck",
"County of Kings",
"Richmond",
"Bridgewater",
"Lunenburg",
"Shelburne",
"Cape Breton",
"Lunenburg County",
"Stellarton",
"Chester",
"Mahone Bay",
"Truro",
"Cumberland County",
"New Glasgow",
"Windsor",
"East Hants",
"New Minas",
"Yarmouth",
"Halifax",
"Parrsboro"
],
"Ontario": [
"Ajax",
"Halton",
"Peterborough",
"Atikokan",
"Halton Hills",
"Pickering",
"Barrie",
"Hamilton",
"Port Bruce",
"Belleville",
"Hamilton-Wentworth",
"Port Burwell",
"Blandford-Blenheim",
"Hearst",
"Port Colborne",
"Blind River",
"Huntsville",
"Port Hope",
"Brampton",
"Ingersoll",
"Prince Edward",
"Brant",
"James",
"Quinte West",
"Brantford",
"Kanata",
"Renfrew",
"Brock",
"Kincardine",
"Richmond Hill",
"Brockville",
"King",
"Sarnia",
"Burlington",
"Kingston",
"Sault Ste. Marie",
"Caledon",
"Kirkland Lake",
"Scarborough",
"Cambridge",
"Kitchener",
"Scugog",
"Chatham-Kent",
"Larder Lake",
"Souix Lookout CoC Sioux Lookout",
"Chesterville",
"Leamington",
"Smiths Falls",
"Clarington",
"Lennox-Addington",
"South-West Oxford",
"Cobourg",
"Lincoln",
"St. Catharines",
"Cochrane",
"Lindsay",
"St. Thomas",
"Collingwood",
"London",
"Stoney Creek",
"Cornwall",
"Loyalist Township",
"Stratford",
"Cumberland",
"Markham",
"Sudbury",
"Deep River",
"Metro Toronto",
"Temagami",
"Dundas",
"Merrickville",
"Thorold",
"Durham",
"Milton",
"Thunder Bay",
"Dymond",
"Nepean",
"Tillsonburg",
"Ear Falls",
"Newmarket",
"Timmins",
"East Gwillimbury",
"Niagara",
"Toronto",
"East Zorra-Tavistock",
"Niagara Falls",
"Uxbridge",
"Elgin",
"Niagara-on-the-Lake",
"Vaughan",
"Elliot Lake",
"North Bay",
"Wainfleet",
"Flamborough",
"North Dorchester",
"Wasaga Beach",
"Fort Erie",
"North Dumfries",
"Waterloo",
"Fort Frances",
"North York",
"Waterloo",
"Gananoque",
"Norwich",
"Welland",
"Georgina",
"Oakville",
"Wellesley",
"Glanbrook",
"Orangeville",
"West Carleton",
"Gloucester",
"Orillia",
"West Lincoln",
"Goulbourn",
"Osgoode",
"Whitby",
"Gravenhurst",
"Oshawa",
"Wilmot",
"Grimsby",
"Ottawa",
"Windsor",
"Guelph",
"Ottawa-Carleton",
"Woolwich",
"Haldimand-Norfork",
"Owen Sound",
"York"
],
"Prince Edward Island": [
"Alberton",
"Montague",
"Stratford",
"Charlottetown",
"Souris",
"Summerside",
"Cornwall"
],
"Quebec": [
"Alma",
"Fleurimont",
"Longueuil",
"Amos",
"Gaspe",
"Marieville",
"Anjou",
"Gatineau",
"Mount Royal",
"Aylmer",
"Hull",
"Montreal",
"Beauport",
"Joliette",
"Montreal Region",
"Bromptonville",
"Jonquiere",
"Montreal-Est",
"Brosssard",
"Lachine",
"Quebec",
"Chateauguay",
"Lasalle",
"Saint-Leonard",
"Chicoutimi",
"Laurentides",
"Sherbrooke",
"Coaticook",
"LaSalle",
"Sorel",
"Coaticook",
"Laval",
"Thetford Mines",
"Dorval",
"Lennoxville",
"Victoriaville",
"Drummondville",
"Levis"
],
"Saskatchewan": [
"Avonlea",
"Melfort",
"Swift Current",
"Colonsay",
"Nipawin",
"Tisdale",
"Craik",
"Prince Albert",
"Unity",
"Creighton",
"Regina",
"Weyburn",
"Eastend",
"Saskatoon",
"Wynyard",
"Esterhazy",
"Shell Lake",
"Yorkton",
"Gravelbourg"
],
"Yukon": [
"Carcross",
"Whitehorse"
]
}

238
public/api/usa.json Normal file
View File

@@ -0,0 +1,238 @@
[
{
"name": "Alabama",
"abbreviation": "AL"
},
{
"name": "Alaska",
"abbreviation": "AK"
},
{
"name": "American Samoa",
"abbreviation": "AS"
},
{
"name": "Arizona",
"abbreviation": "AZ"
},
{
"name": "Arkansas",
"abbreviation": "AR"
},
{
"name": "California",
"abbreviation": "CA"
},
{
"name": "Colorado",
"abbreviation": "CO"
},
{
"name": "Connecticut",
"abbreviation": "CT"
},
{
"name": "Delaware",
"abbreviation": "DE"
},
{
"name": "District Of Columbia",
"abbreviation": "DC"
},
{
"name": "Federated States Of Micronesia",
"abbreviation": "FM"
},
{
"name": "Florida",
"abbreviation": "FL"
},
{
"name": "Georgia",
"abbreviation": "GA"
},
{
"name": "Guam",
"abbreviation": "GU"
},
{
"name": "Hawaii",
"abbreviation": "HI"
},
{
"name": "Idaho",
"abbreviation": "ID"
},
{
"name": "Illinois",
"abbreviation": "IL"
},
{
"name": "Indiana",
"abbreviation": "IN"
},
{
"name": "Iowa",
"abbreviation": "IA"
},
{
"name": "Kansas",
"abbreviation": "KS"
},
{
"name": "Kentucky",
"abbreviation": "KY"
},
{
"name": "Louisiana",
"abbreviation": "LA"
},
{
"name": "Maine",
"abbreviation": "ME"
},
{
"name": "Marshall Islands",
"abbreviation": "MH"
},
{
"name": "Maryland",
"abbreviation": "MD"
},
{
"name": "Massachusetts",
"abbreviation": "MA"
},
{
"name": "Michigan",
"abbreviation": "MI"
},
{
"name": "Minnesota",
"abbreviation": "MN"
},
{
"name": "Mississippi",
"abbreviation": "MS"
},
{
"name": "Missouri",
"abbreviation": "MO"
},
{
"name": "Montana",
"abbreviation": "MT"
},
{
"name": "Nebraska",
"abbreviation": "NE"
},
{
"name": "Nevada",
"abbreviation": "NV"
},
{
"name": "New Hampshire",
"abbreviation": "NH"
},
{
"name": "New Jersey",
"abbreviation": "NJ"
},
{
"name": "New Mexico",
"abbreviation": "NM"
},
{
"name": "New York",
"abbreviation": "NY"
},
{
"name": "North Carolina",
"abbreviation": "NC"
},
{
"name": "North Dakota",
"abbreviation": "ND"
},
{
"name": "Northern Mariana Islands",
"abbreviation": "MP"
},
{
"name": "Ohio",
"abbreviation": "OH"
},
{
"name": "Oklahoma",
"abbreviation": "OK"
},
{
"name": "Oregon",
"abbreviation": "OR"
},
{
"name": "Palau",
"abbreviation": "PW"
},
{
"name": "Pennsylvania",
"abbreviation": "PA"
},
{
"name": "Puerto Rico",
"abbreviation": "PR"
},
{
"name": "Rhode Island",
"abbreviation": "RI"
},
{
"name": "South Carolina",
"abbreviation": "SC"
},
{
"name": "South Dakota",
"abbreviation": "SD"
},
{
"name": "Tennessee",
"abbreviation": "TN"
},
{
"name": "Texas",
"abbreviation": "TX"
},
{
"name": "Utah",
"abbreviation": "UT"
},
{
"name": "Vermont",
"abbreviation": "VT"
},
{
"name": "Virgin Islands",
"abbreviation": "VI"
},
{
"name": "Virginia",
"abbreviation": "VA"
},
{
"name": "Washington",
"abbreviation": "WA"
},
{
"name": "West Virginia",
"abbreviation": "WV"
},
{
"name": "Wisconsin",
"abbreviation": "WI"
},
{
"name": "Wyoming",
"abbreviation": "WY"
}
]

File diff suppressed because it is too large Load Diff

23909
public/api/usaCities.old.json Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -27,12 +28,16 @@
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-136108155-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-136108155-1"></script>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date()); gtag('js', new Date());
gtag('config', 'UA-136108155-1'); gtag('config', 'UA-136108155-1');
</script> </script>
</head> </head>
<body> <body>
<!-- <nav class="navbar navbar-default"> <!-- <nav class="navbar navbar-default">
<div class="container"> <div class="container">
@@ -118,12 +123,15 @@
$("#frm-register").validate({ $("#frm-register").validate({
rules: { rules: {
name: { firstname: {
required: true required: true
}, },
username: { lastname: {
required: true required: true
}, },
// username: {
// required: true
// },
email: { email: {
required: true, required: true,
email: true email: true
@@ -131,6 +139,24 @@
password: { password: {
required: true required: true
//minlength: 6 // <-- removed underscore //minlength: 6 // <-- removed underscore
},
mobilenumber: {
required: true
},
address: {
required: true
},
state: {
required: true
},
city: {
required: true
},
zipcode: {
required: true
},
countryCode: {
required: true
} }
}, },
messages: {}, messages: {},
@@ -162,6 +188,147 @@
}); // end document ready }); // end document ready
function getSelectedCountry() {
var selectedState = $('#select_country').data('selected');
if (selectedState) {
// console.log(selectedState)
$("#select_country").val(selectedState).change();
// selectCountry()
}
}
function selectCountry(item) {
const country = item.options[item.selectedIndex].text;
const countryCode = item.options[item.selectedIndex].value
console.log(countryCode)
if (countryCode === "US") {
fetchUSA()
}
if (countryCode === "CA") {
fetchCanada()
}
}
function fetchCanada() {
$.getJSON("{{ asset('/public/api/canada.json') }}", function(items) {
var states = [];
Object.keys(items).forEach(function(state) {
states.push(state)
});
var uniqueStates = Array.from(new Set(states));
var selectedState = $('#lst-states').data('selected');
$('.dynamic-state').remove();
$('.dynamic-city').remove();
uniqueStates.sort().forEach(function(key) {
if (selectedState == key) {
$('#lst-states').append('<option value="' + key + '" selected class="dynamic-state">' + key + '</option>');
var cities = [];
cities = items[selectedState];
var uniqueCities = Array.from(new Set(cities));
var selectedCity = $('#lst-cities').data('selected');
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
if (selectedCity == key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city" selected>' + key + '</option>');
} else {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
}
});
} else {
$('#lst-states').append('<option value="' + key + '" class="dynamic-state">' + key + '</option>');
}
});
$(document).on('select change', '#lst-states', function() {
var cities = [];
var selectedState = $(this).val()
cities = items[selectedState];
var uniqueCities = Array.from(new Set(cities));
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
});
});
});
}
function fetchUSA() {
$.getJSON("{{ asset('/public/api/usaCities.json') }}", function(data) {
var states = [];
for (i = 0; i < data.length; i++) {
states.push(data[i]['state']);
}
var uniqueStates = Array.from(new Set(states));
var selectedState = $('#lst-states').data('selected');
$('.dynamic-state').remove();
$('.dynamic-city').remove();
uniqueStates.sort().forEach(function(key) {
if (selectedState == key) {
$('#lst-states').append('<option value="' + key + '" selected class="dynamic-state">' + key + '</option>');
//
var cities = [];
for (i = 0; i < data.length; i++) {
console.log(data[i])
cities.push(data[i]);
}
var city = getCities(cities, key);
var uniqueCities = Array.from(new Set(city));
var selectedCity = $('#lst-cities').data('selected');
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
if (selectedCity == key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city" selected>' + key + '</option>');
} else {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
}
});
} else {
$('#lst-states').append('<option value="' + key + '" class="dynamic-state">' + key + '</option>');
}
});
$(document).on('select change', '#lst-states', function() {
var cities = [];
for (i = 0; i < data.length; i++) {
cities.push(data[i]);
}
var city = getCities(cities, $(this).val());
var uniqueCities = Array.from(new Set(city));
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
});
});
});
}
function getCities(arr, q) {
var sd = [];
arr.find(function(element) {
if (element['state'] == q) {
sd.push(element['city']);
}
});
return sd;
}
function submitLoginForm() { function submitLoginForm() {
// method="POST" action="{{ url('/auth/login') }}" // method="POST" action="{{ url('/auth/login') }}"
var data = $("#frm-login").serialize(); var data = $("#frm-login").serialize();
@@ -197,7 +364,11 @@
} /* login submit */ } /* login submit */
function submitRegisterForm() { function submitRegisterForm() {
var data = $("#frm-register").serialize(); var data = $("#frm-register").serializeArray();
data.push({
name: "country",
value: $("#select_country option:selected").text()
});
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
@@ -213,7 +384,11 @@
$("#register-response-msg").fadeIn(1000, function() { $("#register-response-msg").fadeIn(1000, function() {
if (response.success) { if (response.success) {
if (response.redirect != "") {
window.location = response.redirect;
} else {
location.reload(); location.reload();
}
} else { } else {
$("#register-response-msg").html(response.message); $("#register-response-msg").html(response.message);
} }
@@ -226,8 +401,7 @@
return false; return false;
} }
</script> </script>
</body> </body>
</html> </html>

View File

@@ -5,6 +5,7 @@
.error { .error {
color: red; color: red;
} }
.g-recaptcha { .g-recaptcha {
width: 100%; width: 100%;
} }
@@ -22,22 +23,37 @@
<div class="col-xs-12"> <div class="col-xs-12">
<div id="register-response-msg"></div> <div id="register-response-msg"></div>
<form role="form" id="frm-register"> <form role="form" id="frm-register">
<div class="form-group text-center">
<h5>Personal Information</h5>
</div>
<input type="hidden" name="redirect" value="{{ Request::get('redirectUrl') }}">
<input type="hidden" name="_token" value="{{ csrf_token() }}"> <input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group"> <div class="form-group">
<label class="control-label">Fullname</label> <label class="control-label">First name</label>
<input type="text" class="form-control" name="name" value="{{ old('name') }}" placeholder="Fullname"> <input type="text" class="form-control" name="firstname" placeholder="First name">
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label">Last name</label>
<input type="text" class="form-control" name="lastname" placeholder="Last name">
</div>
<!-- <div class="form-group">
<label class="control-label">Username</label> <label class="control-label">Username</label>
<input type="text" class="form-control" name="username" value="{{ old('username') }}" placeholder="Username"> <input type="text" class="form-control" name="username" value="{{ old('username') }}" placeholder="Username">
</div> </div> -->
<div class="form-group"> <div class="form-group">
<label class="control-label">Email Address</label> <label class="control-label">Email Address</label>
<input type="email" class="form-control" name="email" value="{{ old('email') }}" placeholder="Email Address"> <input type="email" class="form-control" name="email" value="{{ old('email') }}" placeholder="Email Address">
</div> </div>
<div class="form-group">
<label class="control-label">Phone Number</label>
<input type="text" class="form-control" name="mobilenumber" placeholder="Phone Number">
</div>
<div class="form-group"> <div class="form-group">
<label class="control-label">Password</label> <label class="control-label">Password</label>
<input type="password" class="form-control" name="password" id="password" required placeholder="Password"> <input type="password" class="form-control" name="password" id="password" required placeholder="Password">
@@ -48,6 +64,50 @@
<input type="password" class="form-control" name="password_confirmation" placeholder="Confirm Password" data-rule-equalTo="#password" required> <input type="password" class="form-control" name="password_confirmation" placeholder="Confirm Password" data-rule-equalTo="#password" required>
</div> </div>
<div class="form-group text-center">
<h5>Address Information</h5>
</div>
<div class="form-group">
<label class="control-label">Select Country</label>
<select name="countryCode" id="select_country" class="form-control" onchange="selectCountry(this)">
<option value="">Select Country</option>
<option value="US">United States</option>
<option value="CA">Canada</option>
</select>
</div>
<div class="form-group">
<label class="control-label">State / Province</label>
<label></label>
<select class="form-control" name="state" id="lst-states">
<option value="">Select State</option>
</select>
</div>
<div class="form-group">
<label class="control-label">City</label>
<select class="form-control" name="city" id="lst-cities">
<option value="">Select City</option>
</select>
</div>
<div class="form-group">
<label class="control-label">Address 1</label>
<input type="text" class="form-control" name="address" placeholder="Address 1">
</div>
<div class="form-group">
<label class="control-label">Address 2</label>
<input type="text" class="form-control" name="address2" placeholder="Address 2">
</div>
<div class="form-group">
<label class="control-label">Zip Code</label>
<input type="text" class="form-control" name="zipcode" placeholder="Please enter your zip code">
</div>
<div class="form-group"> <div class="form-group">
<div class="g-recaptcha text-center" data-sitekey="{{ env('CAPTCHA_SITE_KEY') }}"></div> <div class="g-recaptcha text-center" data-sitekey="{{ env('CAPTCHA_SITE_KEY') }}"></div>
</div> </div>

View File

@@ -29,7 +29,7 @@
@if(Session::has('cartkeyError')) @if(Session::has('cartkeyError'))
<div class="alert alert-danger alert-dismissible"> <div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="fa fa-exclamation-circle"></i> Error:</h4> <h4><i class="fa fa-exclamation-circle"></i> Almost there:</h4>
{!! Session::get('cartkeyError') !!} {!! Session::get('cartkeyError') !!}
</div> </div>
@endif @endif
@@ -52,8 +52,41 @@
<h3>Order Summary</h3> <h3>Order Summary</h3>
</div> </div>
@if (!Auth::guest())
<div style="border: 1px solid #e2e2e2; padding: 10px; border-bottom: none;"> <div style="border: 1px solid #e2e2e2; padding: 10px; border-bottom: none;">
<h3>Subtotal: <span id="my_subtotal">{{ round($getSubtotal, 2) }}</span> <small>{{ $store_array[0]->StoreCurrency }}</small></h3>
<p><strong>Ship to:</strong></p>
@if ($address_book === null)
<a href="{{ url('user/address-book/create') }}">[ Add ]</a>
@else
<div>{{ $address_book[0]->Fullname }}</div>
<div>{{ $address_book[0]->ContactNumber }}</div>
<div>
{{ $address_book[0]->Address . ' ' . $address_book[0]->Address2 . ', ' . $address_book[0]->State . ', ' . $address_book[0]->City . ', ' . $address_book[0]->Country . ', ' . $address_book[0]->CountryCode . ' ' . $address_book[0]->ZipCode }}
<a href="{{ url('user/address-book/edit/'.$address_book[0]->Id) }}">[ Edit ]</a>
</div>
@endif
</div>
@endif
<div style="border: 1px solid #e2e2e2; padding: 10px; border-bottom: none;">
{{-- <h3>Subtotal: <span id="my_subtotal">{{ round($getSubtotal, 2) }}</span> <small>{{ $store_array[0]->StoreCurrency }}</small></h3> --}}
<h5><strong>Subtotal:</strong>
<span>{{ number_format($tax['order_grandtotal'], 2) . ' ' . $store_array[0]->StoreCurrency }}</span>
</h5>
<h5><strong>Shipping Fee:</strong>
<span>{{ number_format($shipping_fee, 2) . ' ' . $store_array[0]->StoreCurrency }}</span>
</h5>
<h5> <strong>Tax:</strong>
<span>{{ number_format($tax['tax'], 2) . ' ' . $store_array[0]->StoreCurrency }}</span>
</h5>
<hr>
<h3> <strong>Total:</strong> <span id="my_subtotal">{{ number_format($tax['order_grandtotal'] + $shipping_fee + $tax['tax'], 2) }}</span>
<span>{{ $store_array[0]->StoreCurrency }}</span>
</h3>
<hr> <hr>
<div class="form-group" id="voucher_list"> <div class="form-group" id="voucher_list">
@foreach($row as $item) @foreach($row as $item)

View File

@@ -34,15 +34,13 @@
<tr> <tr>
<th>Full name</th> <th>Full name</th>
<th>Address</th> <th>Address</th>
<th>Postcode</th>
<th>Phone Number</th> <th>Phone Number</th>
<th class="text-center">Action</th> <th class="text-center">Action</th>
</tr> </tr>
@foreach($array_address_book as $row) @foreach($array_address_book as $row)
<tr> <tr>
<td>{{ $row->Fullname }}</td> <td>{{ $row->Fullname }}</td>
<td>{{ $row->Address }}</td> <td>{{ $row->Address . ' ' . $row->Address2 }}, {{ $row->State }}, {{ $row->City }}, {{ $row->Country}} {{ $row->CountryCode}}, {{ $row->ZipCode }}</td>
<td>{{ $row->State }}, {{ $row->City }}, {{ $row->ZipCode }}</td>
<td>{{ $row->ContactNumber }}</td> <td>{{ $row->ContactNumber }}</td>
<td class="text-center"> <td class="text-center">
<a href="{{ url('user/address-book/edit/') }}/{{ $row->Id }}" class="btn btn-default btn-xs"><i class="fa fa-edit"></i> Edit</a> <a href="{{ url('user/address-book/edit/') }}/{{ $row->Id }}" class="btn btn-default btn-xs"><i class="fa fa-edit"></i> Edit</a>

View File

@@ -46,11 +46,15 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>House Number, Building and Street Name</label> <label>Country</label>
<input type="text" class="form-control" name="address" placeholder="Please enter your House Number, Building and Street Name"> <select class="form-control" name="countryCode" id="select_country" onchange="selectCountry(this)">
<option value="">Select Country</option>
<option value="US">United States</option>
<option value="CA">Canada</option>
</select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>State</label> <label>State / Province</label>
<select class="form-control" name="state" id="lst-states"> <select class="form-control" name="state" id="lst-states">
<option value="">Select State</option> <option value="">Select State</option>
</select> </select>
@@ -61,6 +65,14 @@
<option value="">Select City</option> <option value="">Select City</option>
</select> </select>
</div> </div>
<div class="form-group">
<label>Address 1</label>
<textarea type="text" class="form-control" name="address" placeholder="Address 1"></textarea>
</div>
<div class="form-group">
<label>Address 2</label>
<textarea type="text" class="form-control" name="address2" placeholder="Address 2"></textarea>
</div>
<div class="form-group"> <div class="form-group">
<label>Zip Code</label> <label>Zip Code</label>
<input type="text" class="form-control" name="zipcode" placeholder="Please enter your zip code"> <input type="text" class="form-control" name="zipcode" placeholder="Please enter your zip code">

View File

@@ -46,8 +46,12 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<label>House Number, Building and Street Name</label> <label>Country</label>
<input type="text" class="form-control" name="address" placeholder="Please enter your House Number, Building and Street Name" value="{{ $array_address_book[0]->Address }}"> <select class="form-control" name="countryCode" id="select_country" onchange="selectCountry(this)" data-selected="{{ $array_address_book[0]->CountryCode }}">
<option value="">Select Country</option>
<option value="US">United States</option>
<option value="CA">Canada</option>
</select>
</div> </div>
<div class="form-group"> <div class="form-group">
<label>State</label> <label>State</label>
@@ -61,6 +65,15 @@
<option value="">Select City</option> <option value="">Select City</option>
</select> </select>
</div> </div>
<div class="form-group">
<label>Address 1</label>
<input type="text" class="form-control" name="address" placeholder="Address 1" value="{{ $array_address_book[0]->Address }}">
</div>
<div class="form-group">
<label>Address 2</label>
<input type="text" class="form-control" name="address2" placeholder="Address 2" value="{{ $array_address_book[0]->Address2 }}">
</div>
<div class="form-group"> <div class="form-group">
<label>Zip Code</label> <label>Zip Code</label>
<input type="text" class="form-control" name="zipcode" placeholder="Please enter your zip code" value="{{ $array_address_book[0]->ZipCode }}"> <input type="text" class="form-control" name="zipcode" placeholder="Please enter your zip code" value="{{ $array_address_book[0]->ZipCode }}">

View File

@@ -1,5 +1,6 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
@@ -51,47 +52,66 @@
<![endif]--> <![endif]-->
<style> <style>
.skin-black-light .wrapper, .skin-black-light .main-sidebar, .skin-black-light .left-side{ .skin-black-light .wrapper,
.skin-black-light .main-sidebar,
.skin-black-light .left-side {
background-color: #222d32; background-color: #222d32;
} }
.skin-black-light .sidebar-menu>li:hover>a, .skin-black-light .sidebar-menu>li.active>a{ .skin-black-light .sidebar-menu>li:hover>a,
.skin-black-light .sidebar-menu>li.active>a {
color: #fff; color: #fff;
background: #1e282c; background: #1e282c;
border-left-color: #fff; border-left-color: #fff;
} }
.skin-black-light .sidebar-menu>li.header { .skin-black-light .sidebar-menu>li.header {
color: #4b646f; color: #4b646f;
background: #1a2226; background: #1a2226;
} }
.skin-black-light .sidebar a { .skin-black-light .sidebar a {
color: rgb(184, 199, 206); color: rgb(184, 199, 206);
} }
.skin-black-light .user-panel>.info, .skin-black-light .user-panel>.info>a {
.skin-black-light .user-panel>.info,
.skin-black-light .user-panel>.info>a {
color: #fff; color: #fff;
} }
.skin-black-light .sidebar-menu>li>.treeview-menu { .skin-black-light .sidebar-menu>li>.treeview-menu {
margin: 0 1px; margin: 0 1px;
background: #2c3b41; background: #2c3b41;
} }
.skin-black-light .treeview-menu>li.active>a, .skin-black-light .treeview-menu>li>a:hover{
.skin-black-light .treeview-menu>li.active>a,
.skin-black-light .treeview-menu>li>a:hover {
color: #fff; color: #fff;
} }
.skin-black .treeview-menu>li>a { .skin-black .treeview-menu>li>a {
color: #8aa4af; color: #8aa4af;
} }
.box.box-custom-color { .box.box-custom-color {
border-top-color: #222d32; border-top-color: #222d32;
} }
.carousel-inner>.item>a>img, .carousel-inner>.item>img, .img-responsive, .thumbnail a>img, .thumbnail>img, .product-center{ .carousel-inner>.item>a>img,
.carousel-inner>.item>img,
.img-responsive,
.thumbnail a>img,
.thumbnail>img,
.product-center {
margin: auto; margin: auto;
} }
.sports-border { .sports-border {
border: 1px solid #e2e2e2; border: 1px solid #e2e2e2;
padding: 5px; padding: 5px;
margin-bottom: 20px; margin-bottom: 20px;
} }
.sport-edit-btn { .sport-edit-btn {
margin-top: 5px; margin-top: 5px;
} }
@@ -159,7 +179,9 @@
z-index: 1; z-index: 1;
} }
.wizard .nav-tabs > li.active > a, .wizard .nav-tabs > li.active > a:hover, .wizard .nav-tabs > li.active > a:focus { .wizard .nav-tabs>li.active>a,
.wizard .nav-tabs>li.active>a:hover,
.wizard .nav-tabs>li.active>a:focus {
color: #555555; color: #555555;
cursor: default; cursor: default;
border: 0; border: 0;
@@ -180,14 +202,17 @@
text-align: center; text-align: center;
font-size: 25px; font-size: 25px;
} }
span.round-tab i { span.round-tab i {
color: #555555; color: #555555;
} }
.wizard li.active span.round-tab { .wizard li.active span.round-tab {
background: #fff; background: #fff;
border: 2px solid #5bc0de; border: 2px solid #5bc0de;
} }
.wizard li.active span.round-tab i { .wizard li.active span.round-tab i {
color: #5bc0de; color: #5bc0de;
} }
@@ -271,14 +296,17 @@
left: 35%; left: 35%;
} }
} }
/*end*/ /*end*/
.custom-panel-footer.panel-footer { .custom-panel-footer.panel-footer {
padding: 2px 2px; padding: 2px 2px;
} }
.custom-panel-body.panel-body { .custom-panel-body.panel-body {
padding: 10px; padding: 10px;
} }
.obj-container { .obj-container {
height: 254px; height: 254px;
width: 100%; width: 100%;
@@ -287,7 +315,8 @@
/*add pattern Select custom css*/ /*add pattern Select custom css*/
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{ .select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
border-radius: 0; border-radius: 0;
border-color: #d2d6de; border-color: #d2d6de;
@@ -318,6 +347,7 @@
color: #c5c5c5; color: #c5c5c5;
margin-right: 5px; margin-right: 5px;
} }
/*end add pattern Select custom css*/ /*end add pattern Select custom css*/
#template-img-preview { #template-img-preview {
@@ -339,6 +369,7 @@
div.list-group-item.active small { div.list-group-item.active small {
color: #fff; color: #fff;
} }
.stars { .stars {
margin: 20px auto 1px; margin: 20px auto 1px;
} }
@@ -360,6 +391,7 @@
.btn-custom-save { .btn-custom-save {
width: 150px; width: 150px;
} }
.error { .error {
color: #F44336; color: #F44336;
} }
@@ -535,9 +567,11 @@
position: relative; position: relative;
padding: 0; padding: 0;
} }
.grid-divider>[class*='col-'] { .grid-divider>[class*='col-'] {
position: static; position: static;
} }
.grid-divider>[class*='col-']:nth-child(n+2):before { .grid-divider>[class*='col-']:nth-child(n+2):before {
content: ""; content: "";
border-left: 1px solid #DDD; border-left: 1px solid #DDD;
@@ -545,10 +579,12 @@
top: 0; top: 0;
bottom: 0; bottom: 0;
} }
.col-padding { .col-padding {
padding: 0 15px; padding: 0 15px;
} }
} }
/* table.dataTable td,table.dataTable th { /* table.dataTable td,table.dataTable th {
padding: 3px 10px; padding: 3px 10px;
width: 1px; width: 1px;
@@ -560,7 +596,10 @@
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-136108155-1"></script> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-136108155-1"></script>
<script> <script>
window.dataLayer = window.dataLayer || []; window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date()); gtag('js', new Date());
gtag('config', 'UA-136108155-1'); gtag('config', 'UA-136108155-1');
@@ -665,27 +704,46 @@
var min = $('#min').datepicker("getDate"); var min = $('#min').datepicker("getDate");
var max = $('#max').datepicker("getDate"); var max = $('#max').datepicker("getDate");
var startDate = new Date(data[10]); var startDate = new Date(data[12]);
if (min == null && max == null) { return true; } if (min == null && max == null) {
if (min == null && startDate <= max) { return true;} return true;
if(max == null && startDate >= min) {return true;} }
if (startDate <= max && startDate >= min) { return true; } if (min == null && startDate <= max) {
return true;
}
if (max == null && startDate >= min) {
return true;
}
if (startDate <= max && startDate >= min) {
return true;
}
return false; return false;
} }
); );
$("#min").datepicker({ onSelect: function () { table.draw(); }, changeMonth: true, changeYear: true }); $("#min").datepicker({
$("#max").datepicker({ onSelect: function () { table.draw(); }, changeMonth: true, changeYear: true }); onSelect: function() {
table.draw();
},
changeMonth: true,
changeYear: true
});
$("#max").datepicker({
onSelect: function() {
table.draw();
},
changeMonth: true,
changeYear: true
});
var table = $('#tbl_store_orders').DataTable({ var table = $('#tbl_store_orders').DataTable({
scrollX: true, scrollX: true,
dom: 'Bfrtip', dom: 'Bfrtip',
buttons: [ buttons: [{
{
extend: 'csv', extend: 'csv',
exportOptions: { exportOptions: {
// columns: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ] // columns: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ]
columns: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ] columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
}, },
className: "btn btn-default", className: "btn btn-default",
text: "<i class=\"fa fa-table\"></i> CSV", text: "<i class=\"fa fa-table\"></i> CSV",
@@ -696,7 +754,7 @@
{ {
extend: 'excel', extend: 'excel',
exportOptions: { exportOptions: {
columns: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ] columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
}, },
className: "btn btn-default", className: "btn btn-default",
text: "<i class=\"fa fa-file-excel-o\"></i> Excel", text: "<i class=\"fa fa-file-excel-o\"></i> Excel",
@@ -734,9 +792,15 @@
// } // }
// } // }
], ],
columnDefs: [ columnDefs: [{
{ targets: 10, type: 'date', visible: false }, targets: 12,
{ targets: 10, type: 'date' } type: 'date',
visible: false
},
{
targets: 12,
type: 'date'
}
], ],
}); });
@@ -955,57 +1019,6 @@
resend_timer(); resend_timer();
$.getJSON("{{ asset('/public/api/usaCities.json') }}", function(data) {
var states = [];
for(i = 0 ; i < data.length ; i++){
states.push(data[i]['state']);
}
var uniqueStates = Array.from(new Set(states));
// console.log(uniqueItems.sort())
var selectedState = $('#lst-states').data('selected');
uniqueStates.sort().forEach(function(key) {
if(selectedState == key){
$('#lst-states').append('<option value="'+key+'" selected>'+ key + '</option>');
//
var cities = [];
for(i = 0 ; i < data.length ; i++){
cities.push(data[i]);
}
var city = getCities(cities, key);
var uniqueCities = Array.from(new Set(city));
var selectedCity = $('#lst-cities').data('selected');
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
if(selectedCity == key){
$('#lst-cities').append('<option value="'+key+'" class="dynamic-city" selected>'+ key + '</option>');
}else{
$('#lst-cities').append('<option value="'+key+'" class="dynamic-city">'+ key + '</option>');
}
});
}else{
$('#lst-states').append('<option value="'+key+'">'+ key + '</option>');
}
});
$(document).on('select change', '#lst-states', function(){
var cities = [];
for(i = 0 ; i < data.length ; i++){
cities.push(data[i]);
}
var city = getCities(cities, $(this).val());
var uniqueCities = Array.from(new Set(city));
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
$('#lst-cities').append('<option value="'+key+'" class="dynamic-city">'+ key + '</option>');
});
});
});
$("#frm-create-address-book").validate({ $("#frm-create-address-book").validate({
rules: { rules: {
@@ -1026,6 +1039,9 @@
}, },
zipcode: { zipcode: {
required: true required: true
},
countryCode: {
required: true
} }
}, },
@@ -1054,17 +1070,20 @@
mobilenumber: { mobilenumber: {
required: true required: true
}, },
address: {
required: true
},
state: { state: {
required: true required: true
}, },
city: { city: {
required: true required: true
}, },
address: {
required: true
},
zipcode: { zipcode: {
required: true required: true
},
countryCode: {
required: true
} }
}, },
messages: {}, messages: {},
@@ -1515,8 +1534,15 @@
// /[\\]/g matches backward slashes. // /[\\]/g matches backward slashes.
}); });
$('#list').click(function(event){event.preventDefault();$('#products .item').addClass('list-group-item');}); $('#list').click(function(event) {
$('#grid').click(function(event){event.preventDefault();$('#products .item').removeClass('list-group-item');$('#products .item').addClass('grid-group-item');}); event.preventDefault();
$('#products .item').addClass('list-group-item');
});
$('#grid').click(function(event) {
event.preventDefault();
$('#products .item').removeClass('list-group-item');
$('#products .item').addClass('grid-group-item');
});
$('input[name="setActive"]').change(function() { $('input[name="setActive"]').change(function() {
if ($(this).prop('checked')) { if ($(this).prop('checked')) {
@@ -1687,7 +1713,7 @@
alert(response.message); alert(response.message);
window.location = "{{ url('user/store-items') }}"; window.location = "{{ url('user/store-items') }}";
} else { } else {
alert(response.message); alert("Something went wrong. Please try again!");
location.reload(); location.reload();
} }
} }
@@ -1697,11 +1723,143 @@
return false; return false;
}); });
// fetchUSA()
// fetchCanada()
getSelectedCountry()
}); //end document ready }); //end document ready
// function // function
function getSelectedCountry() {
var selectedState = $('#select_country').data('selected');
if (selectedState) {
// console.log(selectedState)
$("#select_country").val(selectedState).change();
// selectCountry()
}
}
function selectCountry(item) {
const country = item.options[item.selectedIndex].text;
const countryCode = item.options[item.selectedIndex].value
console.log(countryCode)
if (countryCode === "US") {
fetchUSA()
}
if (countryCode === "CA") {
fetchCanada()
}
}
function fetchCanada() {
$.getJSON("{{ asset('/public/api/canada.json') }}", function(items) {
var states = [];
Object.keys(items).forEach(function(state) {
states.push(state)
});
var uniqueStates = Array.from(new Set(states));
var selectedState = $('#lst-states').data('selected');
$('.dynamic-state').remove();
$('.dynamic-city').remove();
uniqueStates.sort().forEach(function(key) {
if (selectedState == key) {
$('#lst-states').append('<option value="' + key + '" selected class="dynamic-state">' + key + '</option>');
var cities = [];
cities = items[selectedState];
var uniqueCities = Array.from(new Set(cities));
var selectedCity = $('#lst-cities').data('selected');
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
if (selectedCity == key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city" selected>' + key + '</option>');
} else {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
}
});
} else {
$('#lst-states').append('<option value="' + key + '" class="dynamic-state">' + key + '</option>');
}
});
$(document).on('select change', '#lst-states', function() {
var cities = [];
var selectedState = $(this).val()
cities = items[selectedState];
var uniqueCities = Array.from(new Set(cities));
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
});
});
});
}
function fetchUSA() {
$.getJSON("{{ asset('/public/api/usaCities.json') }}", function(data) {
var states = [];
for (i = 0; i < data.length; i++) {
states.push(data[i]['state']);
}
var uniqueStates = Array.from(new Set(states));
var selectedState = $('#lst-states').data('selected');
$('.dynamic-state').remove();
$('.dynamic-city').remove();
uniqueStates.sort().forEach(function(key) {
if (selectedState == key) {
$('#lst-states').append('<option value="' + key + '" selected class="dynamic-state">' + key + '</option>');
//
var cities = [];
for (i = 0; i < data.length; i++) {
console.log(data[i])
cities.push(data[i]);
}
var city = getCities(cities, key);
var uniqueCities = Array.from(new Set(city));
var selectedCity = $('#lst-cities').data('selected');
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
if (selectedCity == key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city" selected>' + key + '</option>');
} else {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
}
});
} else {
$('#lst-states').append('<option value="' + key + '" class="dynamic-state">' + key + '</option>');
}
});
$(document).on('select change', '#lst-states', function() {
var cities = [];
for (i = 0; i < data.length; i++) {
cities.push(data[i]);
}
var city = getCities(cities, $(this).val());
var uniqueCities = Array.from(new Set(city));
$('.dynamic-city').remove();
uniqueCities.sort().forEach(function(key) {
$('#lst-cities').append('<option value="' + key + '" class="dynamic-city">' + key + '</option>');
});
});
});
}
function submitFormAnnouncement() { function submitFormAnnouncement() {
@@ -1767,7 +1925,9 @@
'</div>').fadeIn().delay(5000).fadeOut(); '</div>').fadeIn().delay(5000).fadeOut();
} }
$("html, body").animate({ scrollTop: 0 }, "slow"); $("html, body").animate({
scrollTop: 0
}, "slow");
$("#btn_update_store").attr('disabled', false); $("#btn_update_store").attr('disabled', false);
$("#btn_update_store").html('Save Changes'); $("#btn_update_store").html('Save Changes');
@@ -1788,6 +1948,7 @@
}); });
return false; return false;
} }
function getCities(arr, q) { function getCities(arr, q) {
var sd = []; var sd = [];
arr.find(function(element) { arr.find(function(element) {
@@ -1799,7 +1960,11 @@
} }
function submitFormCreateAddressBook() { function submitFormCreateAddressBook() {
var data = $("#frm-create-address-book").serialize(); var data = $("#frm-create-address-book").serializeArray();
data.push({
name: "country",
value: $("#select_country option:selected").text()
});
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: "{{ url('user/address-book/save') }}", url: "{{ url('user/address-book/save') }}",
@@ -1816,7 +1981,7 @@
// console.log(response); // console.log(response);
if (response) { if (response) {
alert("Address is successfully added."); alert("Address is successfully added.");
window.location = "{{ url('user/address-book') }}"; window.location = "{{ url('/cart') }}";
} else { } else {
alert("Something went wrong. Please try again!"); alert("Something went wrong. Please try again!");
location.reload(); location.reload();
@@ -1827,8 +1992,11 @@
} }
function submitFormEditAddressBook() { function submitFormEditAddressBook() {
var data = $("#frm-edit-address-book").serialize(); var data = $("#frm-edit-address-book").serializeArray();
// console.log(data); data.push({
name: "country",
value: $("#select_country option:selected").text()
});
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: "{{ url('user/address-book/update') }}", url: "{{ url('user/address-book/update') }}",
@@ -1845,7 +2013,7 @@
// console.log(response); // console.log(response);
if (response) { if (response) {
alert("Address is successfully updated."); alert("Address is successfully updated.");
window.location = "{{ url('user/address-book') }}"; window.location = "{{ url('/cart') }}";
} else { } else {
alert("Something went wrong. Please try again!"); alert("Something went wrong. Please try again!");
location.reload(); location.reload();
@@ -1952,7 +2120,7 @@
function submitFormItemDetails() { function submitFormItemDetails() {
var data = $("#frm-item-details").serialize(); var data = $("#frm-item-details").serialize();
console.log(data) // console.log(data)
$.ajax({ $.ajax({
type: 'POST', type: 'POST',
url: "{{ url('user/store-items/update') }}", url: "{{ url('user/store-items/update') }}",
@@ -2159,4 +2327,5 @@
</script> </script>
</body> </body>
</html> </html>