1348 lines
36 KiB
PHP
Executable File
1348 lines
36 KiB
PHP
Executable File
<?php
|
||
|
||
namespace App\Http\Controllers\user;
|
||
|
||
use App\Http\Requests;
|
||
use App\Http\Controllers\Controller;
|
||
|
||
use Illuminate\Http\Request;
|
||
use Illuminate\Support\Facades\Auth;
|
||
use App\Models\user\UserModel;
|
||
use App\Models\teamstore\TeamStoreModel;
|
||
use App\Models\MainModel;
|
||
use Illuminate\Support\Facades\Hash;
|
||
use Illuminate\Support\Facades\Mail;
|
||
use Illuminate\Support\Facades\Validator;
|
||
use Illuminate\Support\Facades\Storage;
|
||
|
||
|
||
class UserController extends Controller
|
||
{
|
||
|
||
public function index()
|
||
{
|
||
$m = new UserModel;
|
||
$userRole = Auth::user()->role;
|
||
|
||
if ($userRole == "store_owner") {
|
||
$storeId = Auth::user()->store_id;
|
||
|
||
$countStoreOrder = $m->countStoreOrder($storeId);
|
||
$storeIncome = $m->storeIncome($storeId);
|
||
$countStoreProduct = $m->countStoreProduct($storeId);
|
||
$countStorePublishedProduct = $m->countStorePublishedProduct($storeId);
|
||
|
||
$post_data = array(
|
||
'isStoreOwner' => true,
|
||
'store_order' => $countStoreOrder[0]->count_order,
|
||
'store_income' => $storeIncome[0]->store_income,
|
||
'store_product_count' => $countStoreProduct[0]->store_product_count,
|
||
'store_published_product' => $countStorePublishedProduct[0]->store_published_product
|
||
);
|
||
} else {
|
||
$post_data = array(
|
||
'isStoreOwner' => false,
|
||
'store_order' => "",
|
||
'store_income' => "",
|
||
'store_product_count' => "",
|
||
'store_published_product' => ""
|
||
);
|
||
}
|
||
|
||
// $post_data = json_encode($post_data, JSON_FORCE_OBJECT);
|
||
return view('user-layouts.index')->with('data', $post_data);
|
||
}
|
||
|
||
public function addressBook()
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
|
||
$array_address_book = $m->selectAddresBook('UserId', $userId);
|
||
|
||
return view('user-layouts.address_book')
|
||
->with('array_address_book', $array_address_book);
|
||
}
|
||
|
||
public function createAddressBook()
|
||
{
|
||
|
||
return view('user-layouts.create_address_book');
|
||
}
|
||
|
||
public function saveAddressBook(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$m = new UserModel;
|
||
|
||
$userId = Auth::user()->id;
|
||
|
||
$data = array(
|
||
'UserId' => $userId,
|
||
'Fullname' => $post['fullname'],
|
||
'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']
|
||
);
|
||
|
||
echo $i = $m->insertAddressBook($data);
|
||
}
|
||
|
||
public function editAddressBook($id)
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
|
||
$array_address_book = $m->selectAddresBook('Id', $id);
|
||
|
||
if ($array_address_book[0]->UserId != $userId) {
|
||
return redirect('user/address-book');
|
||
}
|
||
|
||
return view('user-layouts.edit_address_book')
|
||
->with('array_address_book', $array_address_book);
|
||
}
|
||
|
||
public function updateAddressBook(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$m = new UserModel;
|
||
|
||
$userId = Auth::user()->id;
|
||
$id = $post['id'];
|
||
|
||
$data = array(
|
||
'UserId' => $userId,
|
||
'Fullname' => $post['fullname'],
|
||
'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']
|
||
);
|
||
|
||
echo $i = $m->saveUpdateAddressBook($data, $id);
|
||
}
|
||
|
||
public function profile()
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
|
||
$array_profile_info = $m->selectProfileInfo($userId);
|
||
return view('user-layouts.profile')
|
||
->with('array_profile_info', $array_profile_info);
|
||
}
|
||
|
||
public function editProfile()
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
|
||
$array_profile_info = $m->selectProfileInfo($userId);
|
||
return view('user-layouts.edit_profile')
|
||
->with('array_profile_info', $array_profile_info);
|
||
}
|
||
|
||
public function updateProfile(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$m = new UserModel;
|
||
|
||
$userId = Auth::user()->id;
|
||
|
||
$user_logins_data = array(
|
||
'name' => $post['fullname'],
|
||
'email' => $post['email'],
|
||
'other_email' => $post['other_email'],
|
||
);
|
||
|
||
$user_info_data = array(
|
||
'UserId' => $userId,
|
||
'ContactNumber' => $post['contactnumber'],
|
||
'Gender' => $post['gender'],
|
||
'Birthday' => date('Y-m-d', strtotime($post['birthday']))
|
||
);
|
||
|
||
$i = $m->saveUpdateUserLogins($user_logins_data, $userId);
|
||
$i1 = $m->saveUpdateUserInfo($user_info_data, $userId);
|
||
|
||
|
||
return $i;
|
||
}
|
||
|
||
public function changePassword()
|
||
{
|
||
return view('user-layouts.change_password');
|
||
}
|
||
|
||
public function updatePassword(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$m = new UserModel;
|
||
$c_password = Auth::user()->password;
|
||
$userId = Auth::user()->id;
|
||
|
||
if (!(Hash::check($post['current_password'], $c_password))) {
|
||
$message = "Your current password does not matches with the password you provided. Please try again.";
|
||
return $message;
|
||
}
|
||
|
||
if (strcmp($post['current_password'], $post['new_password']) == 0) {
|
||
//Current password and new password are same
|
||
$message = "New Password cannot be same as your current password. Please choose a different password.";
|
||
return $message;
|
||
}
|
||
|
||
if ($post['new_password'] != $post['con_new_password']) {
|
||
// The passwords matches
|
||
$message = "Password confirmation and New Password must match. Please try again.";
|
||
return $message;
|
||
}
|
||
|
||
|
||
$i = $m->saveUpdatePassword(bcrypt($post['new_password']), $userId);
|
||
|
||
return $i;
|
||
}
|
||
|
||
public function orders()
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
$array_payment_details = $m->selectPaymentDetails('UserId', $userId);
|
||
|
||
// var_dump($array_payment_details);
|
||
|
||
// var_dump($array_payment_details);
|
||
return view('user-layouts.orders')->with('array_payment_details', $array_payment_details);
|
||
}
|
||
|
||
|
||
public function myDesigns()
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
|
||
$array_client_designs = $m->selectClientDesigns($userId);
|
||
// var_dump($array_client_designs);
|
||
return view('user-layouts.my-design')->with('array_client_designs', $array_client_designs);
|
||
}
|
||
|
||
public function viewDesign($designCode)
|
||
{
|
||
$m = new UserModel;
|
||
$newMainModel = new MainModel;
|
||
$userId = Auth::user()->id;
|
||
$array_client_designs = $m->selectClientDesignsbyCode($designCode);
|
||
|
||
// check if its your design
|
||
if ($userId != $array_client_designs[0]->ClientId) {
|
||
return redirect()->back();
|
||
}
|
||
|
||
$array_template_paths = $m->selectTemplatePaths('TemplateCode', $array_client_designs[0]->TemplateCode);
|
||
$array_cat_name = $newMainModel->selectCategoryName($array_client_designs[0]->TemplateCode);
|
||
|
||
return view('user-layouts.view-design')
|
||
->with('array_client_designs', $array_client_designs)
|
||
->with('array_template_paths', $array_template_paths)
|
||
->with('array_cat_name', $array_cat_name);
|
||
}
|
||
|
||
public function updateDesignDetails(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$m = new UserModel;
|
||
|
||
$design_name = $post['design_name'];
|
||
$design_code = $post['design_code'];
|
||
|
||
$client_design_data = array(
|
||
'DesignName' => $design_name
|
||
);
|
||
|
||
$i = $m->updateClientDesign($client_design_data, $design_code);
|
||
|
||
return $i;
|
||
}
|
||
|
||
public function store()
|
||
{
|
||
$m = new UserModel;
|
||
$userRole = Auth::user()->role;
|
||
$array_store_info = array();
|
||
|
||
if ($userRole == "store_owner") {
|
||
$storeId = Auth::user()->store_id;
|
||
|
||
$array_store_info = $m->selectStoreInfo($storeId);
|
||
|
||
return redirect('store/' . $array_store_info[0]->StoreUrl);
|
||
}
|
||
}
|
||
|
||
public function storeItems()
|
||
{
|
||
$thumbnails = array();
|
||
$newUserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
|
||
$user_role = Auth::user()->role;
|
||
$store_id = Auth::user()->store_id;
|
||
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
$product_array = $newTeamStoreModel->selectTeamStoreProducts('TeamStoreId', $store_id);
|
||
$displayThumbnails = "product-image-placeholder.png";
|
||
foreach ($product_array as $p => $pr_arr) {
|
||
|
||
$thumbnails_array = $newTeamStoreModel->getProductThumbnails($pr_arr->Id);
|
||
|
||
if (!empty($thumbnails_array)) {
|
||
foreach ($thumbnails_array as $t => $thumb) {
|
||
|
||
if ($thumb->ImageClass == 'custom') {
|
||
$displayThumbnails = $thumb->Image;
|
||
break;
|
||
}
|
||
|
||
if ($thumb->ImageClass == 'active') {
|
||
$displayThumbnails = $thumb->Image;
|
||
break;
|
||
}
|
||
}
|
||
|
||
$thumbnails[] = array(
|
||
'folder' => $store_array[0]->ImageFolder,
|
||
'product_id' => $pr_arr->Id,
|
||
'thumb' => $displayThumbnails
|
||
);
|
||
} else {
|
||
$thumbnails[] = array(
|
||
'folder' => $store_array[0]->ImageFolder,
|
||
'product_id' => $pr_arr->Id,
|
||
'thumb' => "product-image-placeholder.png"
|
||
);
|
||
}
|
||
}
|
||
|
||
return view('user-layouts.store_items')->with('store_array', $store_array)
|
||
->with('product_array', $product_array)
|
||
->with('thumbnails', $thumbnails);
|
||
}
|
||
|
||
public function viewStoreItem($url)
|
||
{
|
||
$product_array = array();
|
||
$newUserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
|
||
$product_array = $newTeamStoreModel->selectTeamStoreProducts('ProductURL', $url);
|
||
$thumbnails_array = $newTeamStoreModel->getThumbnails($product_array[0]->Id);
|
||
$available_size = explode(",", $product_array[0]->AvailableSizes);
|
||
$shipping_cost = $newUserModel->selectShippingCost();
|
||
|
||
return view('user-layouts.view-store-item')->with('product_array', $product_array)
|
||
->with('available_size', $available_size)
|
||
->with('thumbnails_array', $thumbnails_array)
|
||
->with('shipping_cost', $shipping_cost);
|
||
}
|
||
|
||
|
||
public function storeItemUpdate(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
|
||
if ($post['shipping_cost'] == 0) {
|
||
$shipping_cost_id = null;
|
||
} else {
|
||
$shipping_cost_id = $post['shipping_cost'];
|
||
}
|
||
|
||
$item_url = $post['item_url'];
|
||
$data = array(
|
||
'ProductName' => $post['itemName'],
|
||
'ProductCode' => $post['sku'],
|
||
'ProductPrice' => str_replace('$ ', '', $post['item_price']),
|
||
'ProductDescription' => $post['itemDescription'],
|
||
'PrivacyStatus' => $post['item_privacy'],
|
||
'ProductForm' => $post['itemForm'],
|
||
'AvailableSizes' => implode(",", $post['available_size']),
|
||
'ShippingCostId' => $shipping_cost_id,
|
||
'ProductAvailableQty' => ($post['item_quantity'] == 0) ? null : $post['item_quantity']
|
||
|
||
);
|
||
|
||
$i = $newTeamStoreModel->updateStoreItem($data, $item_url);
|
||
|
||
return $i;
|
||
}
|
||
|
||
public function storeSetting()
|
||
{
|
||
$TeamStoreModel = new TeamStoreModel;
|
||
$store_id = Auth::user()->store_id;
|
||
|
||
$store_array = $TeamStoreModel->selectTeamStore('Id', $store_id);
|
||
return view('user-layouts.store_setting')
|
||
->with('store_array', $store_array);
|
||
}
|
||
|
||
public function emailVerify()
|
||
{
|
||
$m = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
$email_is_verified = Auth::user()->email_is_verified;
|
||
|
||
if ($email_is_verified == 0) {
|
||
$array_profile_info = $m->selectProfileInfo($userId);
|
||
return view('user-layouts.email_verify')
|
||
->with('array_profile_info', $array_profile_info);
|
||
}
|
||
|
||
return redirect('user/profile');
|
||
}
|
||
|
||
|
||
public function resendVericationCode(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$random_hash = rand(1000, 9999);
|
||
|
||
$newUserModel = new UserModel;
|
||
|
||
$emailDetails = [
|
||
'receiver' => $post['email'],
|
||
'subject' => 'CREW Sportswear Email Verification Code',
|
||
'verification_code' => $random_hash
|
||
];
|
||
|
||
Mail::send('emails.resend_code', $emailDetails, function ($message) use ($emailDetails) {
|
||
|
||
$message->from('no-reply@crewsportswear.com', 'CREW Sportswear');
|
||
$message->to($emailDetails['receiver'])->subject('CREW Sportswear Email Verification Code');
|
||
});
|
||
|
||
if (count(Mail::failures()) > 0) {
|
||
|
||
echo '0';
|
||
} else {
|
||
$data = array(
|
||
'EmailAddress' => $post['email'],
|
||
'VerCode' => $random_hash
|
||
);
|
||
|
||
$i = $newUserModel->saveResendCode($data);
|
||
echo $i;
|
||
}
|
||
}
|
||
|
||
|
||
public function verifyCode(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
|
||
$verification_code = $post['verification_code'];
|
||
$userEmail = Auth::user()->email;
|
||
|
||
$newUserModel = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
|
||
$data = array(
|
||
'EmailAddress' => $userEmail,
|
||
'Code' => $verification_code
|
||
);
|
||
|
||
$i = $newUserModel->validateCode($data);
|
||
// var_dump($i);
|
||
|
||
if ($i) {
|
||
|
||
$user_logins_data = array(
|
||
'email_is_verified' => 1
|
||
);
|
||
|
||
$newUserModel->saveUpdateUserLogins($user_logins_data, $userId);
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'Your email is successfully verified.'
|
||
));
|
||
} else {
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => 'Invalid verification code.'
|
||
));
|
||
}
|
||
}
|
||
|
||
public function orderDetails($ck)
|
||
{
|
||
$newUserModel = new UserModel;
|
||
$order_item_array = $newUserModel->selectOrderItem($ck);
|
||
$item_goup_array = $newUserModel->itemGroup($ck);
|
||
$item_thumbs = $newUserModel->selectDisplayItemThumb();
|
||
$array_payment_details = $newUserModel->selectPaymentDetails('CartKey', $ck);
|
||
return view('user-layouts.order_details')
|
||
->with('array_payment_details', $array_payment_details)
|
||
->with('img_thumb', $item_thumbs)
|
||
->with('item_goup_array', $item_goup_array)
|
||
->with('order_item_array', $order_item_array);
|
||
}
|
||
|
||
public function sellDesign($designCode)
|
||
{
|
||
$m = new UserModel;
|
||
$newMainModel = new MainModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
$userId = Auth::user()->id;
|
||
$store_id = Auth::user()->store_id;
|
||
$array_client_designs = $m->selectClientDesignsbyCode($designCode);
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
// check if its your design
|
||
if ($userId != $array_client_designs[0]->ClientId) {
|
||
return redirect()->back();
|
||
}
|
||
|
||
// var_dump($store_array);
|
||
|
||
$array_template_paths = $m->selectTemplatePaths('TemplateCode', $array_client_designs[0]->TemplateCode);
|
||
$array_cat_name = $newMainModel->selectCategoryName($array_client_designs[0]->TemplateCode);
|
||
|
||
return view('user-layouts.sell_design')
|
||
->with('array_client_designs', $array_client_designs)
|
||
->with('array_template_paths', $array_template_paths)
|
||
->with('store_array', $store_array)
|
||
->with('array_cat_name', $array_cat_name);
|
||
}
|
||
|
||
public function buyDesign($designCode)
|
||
{
|
||
$m = new UserModel;
|
||
$newMainModel = new MainModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
$userId = Auth::user()->id;
|
||
// $store_id = Auth::user()->store_id;
|
||
$array_client_designs = $m->selectClientDesignsbyCode($designCode);
|
||
// $store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
// check if its your design
|
||
if ($userId != $array_client_designs[0]->ClientId) {
|
||
return redirect()->back();
|
||
}
|
||
|
||
// var_dump($store_array);
|
||
|
||
$array_template_paths = $m->selectTemplatePaths('TemplateCode', $array_client_designs[0]->TemplateCode);
|
||
$array_cat_name = $newMainModel->selectCategoryName($array_client_designs[0]->TemplateCode);
|
||
|
||
return view('user-layouts.buy_design')
|
||
->with('array_client_designs', $array_client_designs)
|
||
->with('array_template_paths', $array_template_paths)
|
||
// ->with('store_array', $store_array)
|
||
->with('array_cat_name', $array_cat_name);
|
||
}
|
||
|
||
//save item from my design //
|
||
public function saveNewStoreItem(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$UserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
$getYear = date('y');
|
||
|
||
$store_id = Auth::user()->store_id;
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
|
||
$templateCode = $post['templateCode'];
|
||
$designCode = $post['designCode'];
|
||
$itemName = $post['itemName'];
|
||
$itemDescription = $post['itemDescription'];
|
||
$itemPrice = $post['itemPrice'];
|
||
$itemForm = $post['itemForm'];
|
||
$itemUrl = $store_array[0]->StoreUrl . '-' . $post['itemUrl'];
|
||
$itemPrivacy = $post['itemPrivacy'];
|
||
$available_size = implode(",", $_POST['available_size']);
|
||
|
||
$check_product_url = array(
|
||
'ProductURL' => $itemUrl
|
||
);
|
||
|
||
$validator = Validator::make(
|
||
$check_product_url,
|
||
[
|
||
'ProductURL' => 'unique:teamstore_products'
|
||
],
|
||
[
|
||
'ProductURL.unique' => 'The Item URL has already been taken.',
|
||
]
|
||
);
|
||
|
||
|
||
if ($validator->fails()) {
|
||
$errors = "";
|
||
// var_dump(($validator->errors()->all()));
|
||
foreach ($validator->errors()->all() as $error) {
|
||
$errors .= "<li>" . $error . "</li>";
|
||
}
|
||
|
||
$message = '
|
||
<div class="alert alert-danger alert-dismissible">
|
||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||
<h4><i class="icon fa fa-ban"></i> ERROR:</h4>
|
||
' . $errors .
|
||
'</div>';
|
||
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => $message
|
||
));
|
||
}
|
||
|
||
$data = array(
|
||
'TeamStoreId' => $store_id,
|
||
'ProductName' => $itemName,
|
||
'ProductPrice' => str_replace('$ ', '', $itemPrice),
|
||
'ProductDescription' => $itemDescription,
|
||
'ProductURL' => str_slug($itemUrl, "-"),
|
||
'ProductForm' => $itemForm,
|
||
'AvailableSizes' => $available_size,
|
||
'PrivacyStatus' => $itemPrivacy,
|
||
'TemplateCode' => $templateCode,
|
||
'DesignCode' => $designCode,
|
||
);
|
||
|
||
$id = $UserModel->insertNewProduct($data); // product item id
|
||
// echo $i;
|
||
|
||
$array_template_paths = $UserModel->selectTemplatePaths('TemplateCode', $templateCode);
|
||
|
||
foreach ($array_template_paths as $key => $row1) {
|
||
if ($key == 0) {
|
||
$thumb = $designCode . '-front-thumbnail.png';
|
||
$class = "active";
|
||
} else {
|
||
$thumb = $designCode . '-' . strtolower($row1->Side) . '-thumbnail.png';
|
||
$class = null;
|
||
}
|
||
|
||
$thumbs = $data = array(
|
||
'ProductId' => $id,
|
||
'Image' => $thumb,
|
||
'ImageClass' => $class
|
||
);
|
||
|
||
$UserModel->insertNewProductThumbnails($thumbs);
|
||
}
|
||
|
||
$prod_code = array('ProductCode' => $getYear . '-' . str_pad($id, 10, '0', STR_PAD_LEFT));
|
||
$i = $UserModel->updateProductCode($prod_code, $id);
|
||
|
||
return response()->json(array(
|
||
'success' => true
|
||
));
|
||
}
|
||
|
||
function addStoreItem()
|
||
{
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
|
||
$user_role = Auth::user()->role;
|
||
$store_id = Auth::user()->store_id;
|
||
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
return view('user-layouts.add_item')->with('store_array', $store_array);
|
||
}
|
||
|
||
//manually uploading item
|
||
function saveNewItem(Request $request)
|
||
{
|
||
|
||
$post = $request->all();
|
||
// var_dump($post['imgupload']);
|
||
$UserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
$getYear = date('y');
|
||
|
||
$store_id = Auth::user()->store_id;
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
|
||
$templateCode = $post['templateCode'];
|
||
$designCode = $post['designCode'];
|
||
$itemName = $post['itemName'];
|
||
$itemDescription = $post['itemDescription'];
|
||
$itemPrice = $post['itemPrice'];
|
||
$itemForm = $post['itemForm'];
|
||
$itemUrl = $store_array[0]->StoreUrl . '-' . $post['itemUrl'];
|
||
$itemPrivacy = $post['itemPrivacy'];
|
||
$available_size = implode(",", $_POST['available_size']);
|
||
|
||
|
||
|
||
$check_product_url = array(
|
||
'ProductURL' => $itemUrl
|
||
);
|
||
|
||
$validator = Validator::make(
|
||
$check_product_url,
|
||
[
|
||
'ProductURL' => 'unique:teamstore_products'
|
||
],
|
||
[
|
||
'ProductURL.unique' => 'The Item URL has already been taken.',
|
||
]
|
||
);
|
||
|
||
|
||
if ($validator->fails()) {
|
||
$errors = "";
|
||
// var_dump(($validator->errors()->all()));
|
||
foreach ($validator->errors()->all() as $error) {
|
||
$errors .= "<li>" . $error . "</li>";
|
||
}
|
||
|
||
$message = '
|
||
<div class="alert alert-danger alert-dismissible">
|
||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||
<h4><i class="icon fa fa-ban"></i> ERROR:</h4>
|
||
' . $errors .
|
||
'</div>';
|
||
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => $message
|
||
));
|
||
}
|
||
|
||
$data = array(
|
||
'TeamStoreId' => $store_id,
|
||
'ProductName' => $itemName,
|
||
'ProductPrice' => str_replace('$ ', '', $itemPrice),
|
||
'ProductDescription' => $itemDescription,
|
||
'ProductURL' => str_slug($itemUrl, "-"),
|
||
'ProductForm' => $itemForm,
|
||
'AvailableSizes' => $available_size,
|
||
'PrivacyStatus' => $itemPrivacy,
|
||
'TemplateCode' => $templateCode,
|
||
'DesignCode' => $designCode,
|
||
);
|
||
|
||
$id = $UserModel->insertNewProduct($data); // product item id
|
||
// echo $id;
|
||
|
||
for ($i = 0; $i < count($post['imgupload']); $i++) {
|
||
$rawName = date('Ymd') . "-" . time() . '-' . $request->file('imgupload')[$i]->getClientOriginalName();
|
||
$imageExt = $request->file('imgupload')[$i]->getClientOriginalExtension();
|
||
|
||
$custom_file_name = str_replace(' ', '-', strtolower($rawName));
|
||
$custom_file_name = preg_replace("/\.[^.\s]{3,4}$/", "", $custom_file_name);
|
||
$NewImageName = $custom_file_name . '.' . $imageExt;
|
||
$thumbnail = $NewImageName;
|
||
|
||
if ($i == 0) {
|
||
$imageClass = "active";
|
||
} else {
|
||
$imageClass = null;
|
||
}
|
||
|
||
$thumbs = $data = array(
|
||
'ProductId' => $id,
|
||
'Image' => $thumbnail,
|
||
'ImageClass' => $imageClass
|
||
);
|
||
|
||
$u = $UserModel->insertNewProductThumbnails($thumbs);
|
||
// var_dump($thumbs);
|
||
Storage::disk('sftp')->put($thumbnail, fopen($request->file('imgupload')[$i], 'r+')); //live
|
||
//Storage::disk('localdir')->put($thumbnail, fopen($request->file('imgupload')[$i], 'r+'));
|
||
// var_dump($s);
|
||
}
|
||
|
||
$prod_code = array('ProductCode' => $getYear . '-' . str_pad($id, 10, '0', STR_PAD_LEFT));
|
||
$i = $UserModel->updateProductCode($prod_code, $id);
|
||
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success'
|
||
));
|
||
}
|
||
|
||
function saveNewItemFromDesigner(Request $request)
|
||
{
|
||
|
||
$post = $request->all();
|
||
// var_dump($post['imgupload']);
|
||
$UserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
$getYear = date('y');
|
||
|
||
$store_id = 1; // default merchbay store
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
$client_design = $UserModel->selectClientDesignsbyCode($post['designCode']);
|
||
$userId = Auth::user()->id;
|
||
|
||
$templateCode = $client_design[0]->TemplateCode;
|
||
$designCode = $client_design[0]->DesignCode;
|
||
$itemName = $client_design[0]->DesignName;
|
||
$itemDescription = "Sublimated T-Shirt 100% moisture wicking polyester. Imported. Lightweight fabric helps wick away sweat to keep you dry and comfortable.";
|
||
$itemPrice = "1.00";
|
||
$itemForm = "tshirt-form";
|
||
$itemUrl = $store_array[0]->StoreUrl . '-' . $userId . '-' . $client_design[0]->DesignCode;
|
||
$itemPrivacy = "public";
|
||
$available_size = "youth,adult";
|
||
|
||
|
||
$product = $newTeamStoreModel->selectTeamStoreProducts('ProductURL', $itemUrl);
|
||
// var_dump(count($product));
|
||
if (count($product)) {
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success',
|
||
"link" => '/store/merchbay-store/product/' . $itemUrl
|
||
));
|
||
}
|
||
|
||
|
||
$check_product_url = array(
|
||
'ProductURL' => $itemUrl
|
||
);
|
||
|
||
$validator = Validator::make(
|
||
$check_product_url,
|
||
[
|
||
'ProductURL' => 'unique:teamstore_products'
|
||
],
|
||
[
|
||
'ProductURL.unique' => 'The Item URL has already been taken.',
|
||
]
|
||
);
|
||
|
||
|
||
if ($validator->fails()) {
|
||
$errors = "";
|
||
// var_dump(($validator->errors()->all()));
|
||
foreach ($validator->errors()->all() as $error) {
|
||
$errors .= "<li>" . $error . "</li>";
|
||
}
|
||
|
||
$message = '
|
||
<div class="alert alert-danger alert-dismissible">
|
||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
|
||
<h4><i class="icon fa fa-ban"></i> ERROR:</h4>
|
||
' . $errors .
|
||
'</div>';
|
||
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => $message
|
||
));
|
||
}
|
||
|
||
$data = array(
|
||
'TeamStoreId' => $store_id,
|
||
'ProductName' => $itemName,
|
||
'ProductPrice' => str_replace('$ ', '', $itemPrice),
|
||
'ProductDescription' => $itemDescription,
|
||
'ProductURL' => str_slug($itemUrl, "-"),
|
||
'ProductForm' => $itemForm,
|
||
'AvailableSizes' => $available_size,
|
||
'PrivacyStatus' => $itemPrivacy,
|
||
'TemplateCode' => $templateCode,
|
||
'DesignCode' => $designCode,
|
||
// 'ShippingCostId' => 1
|
||
);
|
||
|
||
|
||
$id = $UserModel->insertNewProduct($data); // product item id
|
||
// echo $id;
|
||
|
||
$array_template_paths = $UserModel->selectTemplatePaths('TemplateCode', $templateCode);
|
||
|
||
$imageThumbs = array();
|
||
foreach ($array_template_paths as $key => $path) {
|
||
$imageThumbs[] = $designCode . "-" . strtolower($path->Side) . "-thumbnail.png";
|
||
}
|
||
// var_dump($imageThumbs);
|
||
// $images = explode(",", $post["imagesThumb"]);
|
||
|
||
for ($i = 0; $i < count($imageThumbs); $i++) {
|
||
$thumbnail = $imageThumbs[$i];
|
||
|
||
if ($i == 0) {
|
||
$imageClass = "active";
|
||
} else {
|
||
$imageClass = null;
|
||
}
|
||
|
||
$thumbs = $data = array(
|
||
'ProductId' => $id,
|
||
'Image' => $thumbnail,
|
||
'ImageClass' => $imageClass
|
||
);
|
||
|
||
$UserModel->insertNewProductThumbnails($thumbs);
|
||
}
|
||
|
||
$prod_code = array('ProductCode' => $getYear . '-' . str_pad($id, 10, '0', STR_PAD_LEFT));
|
||
$i = $UserModel->updateProductCode($prod_code, $id);
|
||
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success',
|
||
"link" => '/store/merchbay-store/product/' . $itemUrl
|
||
));
|
||
}
|
||
|
||
function saveNewItemImage(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$UserModel = new UserModel;
|
||
$getYear = date('y');
|
||
$id = $post['_id'];
|
||
|
||
$getActiveDisplay = $UserModel->selectDisplayItemThumbById($id);
|
||
|
||
for ($i = 0; $i < count($post['upload_images']); $i++) {
|
||
$rawName = date('Ymd') . "-" . time() . '-' . $request->file('upload_images')[$i]->getClientOriginalName();
|
||
$imageExt = $request->file('upload_images')[$i]->getClientOriginalExtension();
|
||
|
||
$custom_file_name = str_replace(' ', '-', strtolower($rawName));
|
||
$custom_file_name = preg_replace("/\.[^.\s]{3,4}$/", "", $custom_file_name);
|
||
$NewImageName = $custom_file_name . '.' . $imageExt;
|
||
$thumbnail = $NewImageName;
|
||
|
||
if ($i == 0 && empty($getActiveDisplay)) {
|
||
$imageClass = "active";
|
||
} else {
|
||
$imageClass = null;
|
||
}
|
||
|
||
$thumbs = $data = array(
|
||
'ProductId' => $id,
|
||
'Image' => $thumbnail,
|
||
'ImageClass' => $imageClass
|
||
);
|
||
|
||
$u = $UserModel->insertNewProductThumbnails($thumbs);
|
||
Storage::disk('sftp')->put($thumbnail, fopen($request->file('upload_images')[$i], 'r+')); //live
|
||
//Storage::disk('localdir')->put($thumbnail, fopen($request->file('upload_images')[$i], 'r+'));
|
||
|
||
}
|
||
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success'
|
||
));
|
||
}
|
||
|
||
function deleteImageThumb(Request $request)
|
||
{
|
||
$file = $request->thumb_filename;
|
||
$id = $request->thumb_id;
|
||
$UserModel = new UserModel;
|
||
|
||
$storagePath = Storage::disk('sftp')->getDriver()->getAdapter()->getPathPrefix();
|
||
if (file_exists($storagePath . $file)) {
|
||
unlink($storagePath . $file);
|
||
}
|
||
|
||
$i = $UserModel->deleteImageThumb('Id', $id);
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success',
|
||
'delete_row' => 'item-' . $id
|
||
));
|
||
}
|
||
|
||
function updateActiveThumbnail(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$UserModel = new UserModel;
|
||
$i = $UserModel->updateActiveThumb($post['id'], $post['product_id']);
|
||
// var_dump($i);
|
||
|
||
}
|
||
|
||
function saveThumbnailOrdering(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$arrayItems = $post['item'];
|
||
$order = 1;
|
||
$UserModel = new UserModel;
|
||
|
||
foreach ($arrayItems as $item) {
|
||
$i = $UserModel->updateThumbnailOrdering($order, $item);
|
||
$order++;
|
||
}
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success'
|
||
));
|
||
}
|
||
|
||
function saveItemOrdering(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$arrayItems = $post['order_number'];
|
||
$order = 1;
|
||
$UserModel = new UserModel;
|
||
|
||
foreach ($arrayItems as $item) {
|
||
$i = $UserModel->updateItemOrdering($order, $item);
|
||
$order++;
|
||
}
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => 'success'
|
||
));
|
||
}
|
||
|
||
|
||
|
||
function storeSettingUpdate(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$UserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
|
||
$store_id = Auth::user()->store_id;
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
$store_name = $post['store_name'];
|
||
$store_url = $post['store_url'];
|
||
$orig_store_url = $post['orig_store_url'];
|
||
|
||
|
||
if ($post['store_status'] == "Public") {
|
||
$store_status = "true";
|
||
} else {
|
||
$store_status = "false";
|
||
}
|
||
|
||
if (isset($post['set_store_password'])) {
|
||
$store_password = $post['store_password'];
|
||
} else {
|
||
$store_password = null;
|
||
}
|
||
|
||
if ($request->file('store_logo') != null) {
|
||
$store_logo_name = 'logo.' . $request->file('store_logo')->getClientOriginalExtension();
|
||
} else {
|
||
$store_logo_name = $post['orig_store_logo'];
|
||
}
|
||
|
||
if ($request->file('store_banner') != null) {
|
||
$store_banner_name = 'banner.' . $request->file('store_banner')->getClientOriginalExtension();
|
||
} else {
|
||
$store_banner_name = $post['orig_store_banner'];
|
||
}
|
||
|
||
|
||
if ($orig_store_url != $store_url) {
|
||
|
||
$check_store_url = array(
|
||
'StoreUrl' => $store_url
|
||
);
|
||
|
||
$validator = Validator::make(
|
||
$check_store_url,
|
||
[
|
||
'StoreUrl' => 'unique:teamstores'
|
||
],
|
||
[
|
||
'StoreUrl.unique' => 'The Store URL has already been taken.',
|
||
]
|
||
);
|
||
|
||
|
||
if ($validator->fails()) {
|
||
$errors = "";
|
||
|
||
foreach ($validator->errors()->all() as $error) {
|
||
$errors .= "<li>" . $error . "</li>";
|
||
}
|
||
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'clearform' => false,
|
||
'message' => $errors
|
||
));
|
||
}
|
||
}
|
||
|
||
$data = array(
|
||
// 'StoreUrl' => $store_url,
|
||
// 'ImageFolder' => $store_url,
|
||
'Password' => $store_password,
|
||
'HashId' => md5($store_url),
|
||
'StoreName' => $store_name,
|
||
'StoreLogo' => $store_logo_name,
|
||
'StoreBanner' => $store_banner_name,
|
||
'IsActive' => $store_status
|
||
);
|
||
|
||
// var_dump($data);
|
||
|
||
|
||
$UserModel->updateTeamstore($store_id, $data);
|
||
// var_dump($res);
|
||
// if($res){
|
||
$filesystem = Storage::disk('sftp');
|
||
$filesystem->getDriver()->getAdapter()->setDirectoryPerm(0755);
|
||
|
||
if ($request->file('store_logo') != null) {
|
||
$filesystem->put('/merchbay/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+'));
|
||
}
|
||
|
||
if ($request->file('store_banner') != null) {
|
||
$filesystem->put('/merchbay/teamstore/' . $store_array[0]->ImageFolder . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+'));
|
||
}
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'clearform' => false,
|
||
'message' => 'Store is successfully updated.'
|
||
));
|
||
|
||
// }else{
|
||
// return response()->json(array(
|
||
// 'success' => false,
|
||
// 'clearform' => true,
|
||
// 'message' => 'Something went wrong. Please refresh the page and try again.'
|
||
// ));
|
||
// }
|
||
|
||
}
|
||
|
||
function storeOrders()
|
||
{
|
||
$UserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
$store_id = Auth::user()->store_id;
|
||
|
||
$array_store_orders = $UserModel->selectStoreOrders($store_id);
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
|
||
return view('user-layouts.store-orders')
|
||
->with('store_array', $store_array)
|
||
->with('array_store_orders', $array_store_orders);
|
||
}
|
||
|
||
function showStoreOrderDetails(Request $request)
|
||
{
|
||
|
||
$post = $request->all();
|
||
// var_dump($post['pid']);
|
||
$UserModel = new UserModel;
|
||
$array_payment_details = $UserModel->selectPaymentDetails('CartKey', $post['ck']);
|
||
$array_shipping_add = $UserModel->selectShippingAddress('PaymentDetail_Id', $array_payment_details[0]->Id);
|
||
|
||
$array_thumbnail_display = $UserModel->selectDisplayItemThumbById($post['pid']);
|
||
$array_item = $UserModel->selectOrder('Id', $post['id']);
|
||
$handle_order_detail_body = view('user-layouts.order-details-body')
|
||
->with('array_payment_details', $array_payment_details)
|
||
->with('array_shipping_add', $array_shipping_add)
|
||
->with('array_thumbnail_display', $array_thumbnail_display)
|
||
->with('array_item', $array_item)
|
||
->render();
|
||
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'payment_details_response' => $handle_order_detail_body,
|
||
'thumb' => $array_thumbnail_display,
|
||
'item' => $array_item
|
||
));
|
||
}
|
||
|
||
|
||
function itemStoreReArrange()
|
||
{
|
||
$thumbnails = array();
|
||
$newUserModel = new UserModel;
|
||
$newTeamStoreModel = new TeamStoreModel;
|
||
|
||
$user_role = Auth::user()->role;
|
||
$store_id = Auth::user()->store_id;
|
||
|
||
$store_array = $newTeamStoreModel->selectTeamStore('Id', $store_id);
|
||
$product_array = $newTeamStoreModel->selectTeamStoreProducts('TeamStoreId', $store_id);
|
||
$displayThumbnails = "product-image-placeholder.png";
|
||
foreach ($product_array as $p => $pr_arr) {
|
||
|
||
$thumbnails_array = $newTeamStoreModel->getProductThumbnails($pr_arr->Id);
|
||
|
||
if (!empty($thumbnails_array)) {
|
||
foreach ($thumbnails_array as $t => $thumb) {
|
||
|
||
if ($thumb->ImageClass == 'custom') {
|
||
$displayThumbnails = $thumb->Image;
|
||
break;
|
||
}
|
||
|
||
if ($thumb->ImageClass == 'active') {
|
||
$displayThumbnails = $thumb->Image;
|
||
break;
|
||
}
|
||
}
|
||
|
||
$thumbnails[] = array(
|
||
'folder' => $store_array[0]->ImageFolder,
|
||
'product_id' => $pr_arr->Id,
|
||
'thumb' => $displayThumbnails
|
||
);
|
||
} else {
|
||
$thumbnails[] = array(
|
||
'folder' => $store_array[0]->ImageFolder,
|
||
'product_id' => $pr_arr->Id,
|
||
'thumb' => "product-image-placeholder.png"
|
||
);
|
||
}
|
||
}
|
||
|
||
return view('user-layouts.store_items_arrange')->with('store_array', $store_array)
|
||
->with('product_array', $product_array)
|
||
->with('thumbnails', $thumbnails);
|
||
}
|
||
|
||
function deleteStoreItem(Request $request)
|
||
{
|
||
//
|
||
$post = $request->all();
|
||
|
||
$UserModel = new UserModel;
|
||
$res = $UserModel->deleteStoreItem($post['id']);
|
||
|
||
if ($res) {
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => "Store item is successfully delete."
|
||
));
|
||
} else {
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => "Something went wrong. Please try again!"
|
||
));
|
||
}
|
||
}
|
||
|
||
|
||
function announcementIndex()
|
||
{
|
||
$UserModel = new UserModel;
|
||
$storeId = Auth::user()->store_id;
|
||
|
||
$getAnnouncement = $UserModel->getAnnouncement($storeId);
|
||
|
||
if (count($getAnnouncement) > 0) {
|
||
$data = $getAnnouncement[0];
|
||
} else {
|
||
$data = (object) array(
|
||
'Id' => 0,
|
||
'StoreId' => "",
|
||
'Announcement' => "",
|
||
'IsActive' => 0,
|
||
'DateCreated' => ""
|
||
);
|
||
}
|
||
return view('user-layouts.announcement')
|
||
->with("data", $data)
|
||
->render();
|
||
}
|
||
|
||
|
||
function announcementUpdateSave(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$UserModel = new UserModel;
|
||
|
||
$storeId = Auth::user()->store_id;
|
||
|
||
$getAnnouncement = $UserModel->getAnnouncement($storeId);
|
||
$data = array(
|
||
'StoreId' => $storeId,
|
||
'Announcement' => htmlentities($post['announcementInput'])
|
||
);
|
||
|
||
// var_dump($getAnnouncement[0]->Id);
|
||
|
||
if (count($getAnnouncement) > 0) {
|
||
$response = $UserModel->updateAnnouncement($getAnnouncement[0]->Id, $data);
|
||
} else {
|
||
$data['IsActive'] = 0;
|
||
$response = $UserModel->saveNewAnnouncement($data);
|
||
}
|
||
|
||
try {
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => "Announcement is successfully updated."
|
||
));
|
||
} catch (\Throwable $th) {
|
||
//throw $th;
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => $th
|
||
));
|
||
}
|
||
}
|
||
|
||
function announcementUpdateStatus(Request $request)
|
||
{
|
||
$post = $request->all();
|
||
$UserModel = new UserModel;
|
||
|
||
$storeId = Auth::user()->store_id;
|
||
|
||
$getAnnouncement = $UserModel->getAnnouncement($storeId);
|
||
|
||
if (!count($getAnnouncement)) {
|
||
return response()->json(array(
|
||
'success' => false,
|
||
'message' => 'Please update your announcement first.'
|
||
));
|
||
}
|
||
|
||
|
||
$data = array(
|
||
'IsActive' => ($post['IsActive'] == 'true') ? 1 : 0
|
||
);
|
||
|
||
$UserModel->updateAnnouncement($getAnnouncement[0]->Id, $data);
|
||
|
||
return response()->json(array(
|
||
'success' => true,
|
||
'message' => "Announcement is successfully updated."
|
||
));
|
||
|
||
// var_dump($data);
|
||
|
||
// $response = $UserModel->updateAnnouncement($getAnnouncement[0]->Id, $data);
|
||
|
||
}
|
||
|
||
function getAddressBook()
|
||
{
|
||
$UserModel = new UserModel;
|
||
$userId = Auth::user()->id;
|
||
$array_address_book = $UserModel->selectAddresBook('UserId', $userId);
|
||
|
||
return $array_address_book;
|
||
}
|
||
}
|