1182 lines
32 KiB
PHP
1182 lines
32 KiB
PHP
<?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'],
|
||
'State' => $post['state'],
|
||
'City' => $post['city'],
|
||
'ZipCode' => $post['zipcode']
|
||
);
|
||
|
||
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'],
|
||
'State' => $post['state'],
|
||
'City' => $post['city'],
|
||
'ZipCode' => $post['zipcode']
|
||
);
|
||
|
||
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']
|
||
);
|
||
|
||
$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('teamstore/'. $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);
|
||
|
||
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'],
|
||
'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
|
||
|
||
);
|
||
|
||
$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' => $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' => $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 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;
|
||
|
||
$store_id = Auth::user()->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);
|
||
|
||
|
||
$res = $UserModel->updateTeamstore($store_id, $data);
|
||
// var_dump($res);
|
||
// if($res){
|
||
if($request->file('store_logo') != null){
|
||
Storage::disk('uploads')->put('/teamstore/'. $orig_store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+'));
|
||
}
|
||
|
||
if($request->file('store_banner') != null){
|
||
Storage::disk('uploads')->put('/teamstore/'. $orig_store_url . '/' . $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);
|
||
|
||
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);
|
||
|
||
}
|
||
|
||
}
|