Files
crew_admin/app/Http/Controllers/admin/AdminController.php
2019-11-18 18:08:30 +08:00

596 lines
19 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace App\Http\Controllers\admin;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Models\admin\AdminModel;
use Illuminate\Support\Facades\Storage;
use Validator;
use App\User;
class AdminController extends Controller
{
public function dashboard(){
return view('admin_pages.dashboard');
}
public function orders(){
$AdminModel = new AdminModel;
$array_payment_details = $AdminModel->selectPaymentDetails('All', null);
// var_dump($array_payment_details);
return view('admin_pages.orders')
->with('array_payment_details', $array_payment_details);
}
public function viewOrders($ck){
$AdminModel = new AdminModel;
// $array_shipping_add = null;
$order_item_array = $AdminModel->selectOrderItem('CartKey', $ck);
$item_goup_array = $AdminModel->itemGroup($ck);
$item_thumbs = $AdminModel->selectDisplayItemThumb();
$array_payment_details = $AdminModel->selectPaymentDetails('CartKey', $ck);
$array_shipping_add = $AdminModel->selectShippingAddress('PaymentDetail_Id', $array_payment_details[0]->Id);
return view('admin_pages.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)
->with('array_shipping_add', $array_shipping_add);
}
public function createStore(){
$AdminModel = new AdminModel;
return view('admin_pages.create_store');
}
public function printOrder($ck){
$AdminModel = new AdminModel;
// $array_shipping_add = null;
$order_item_array = $AdminModel->selectOrderItem('CartKey', $ck);
$item_goup_array = $AdminModel->itemGroup($ck);
$item_thumbs = $AdminModel->selectDisplayItemThumb();
$array_payment_details = $AdminModel->selectPaymentDetails('CartKey', $ck);
$array_shipping_add = $AdminModel->selectShippingAddress('PaymentDetail_Id', $array_payment_details[0]->Id);
return view('admin_pages.print_order')
->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)
->with('array_shipping_add', $array_shipping_add);
}
public function downloadPrintFile_tshirt($dc, $id){
$AdminModel = new AdminModel;
$client_design_array = $AdminModel->selectClientDesign($dc);
$order_item_array = $AdminModel->selectOrderItem('Id', $id);
return view('admin_pages.download_pages.tshirt')
->with('client_design_array', $client_design_array)
->with('order_item_array', $order_item_array);
}
public function downloadPrintFile_jersey($dc, $id){
$AdminModel = new AdminModel;
$client_design_array = $AdminModel->selectClientDesign($dc);
$order_item_array = $AdminModel->selectOrderItem('Id', $id);
// var_dump($order_item_array);
return view('admin_pages.download_pages.jersey')
->with('client_design_array', $client_design_array)
->with('order_item_array', $order_item_array);
}
public function download(Request $request){
$post = $request->all();
$svgText = $post['svgText'];
$filename = $post['filename'];
header('Content-type: image/svg+xml');
header('Content-Disposition: attachment; filename="'.$filename.'.svg"');
echo '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">';
print "$svgText";
}
public function saveNewStore(Request $request){
$post = $request->all();
$AdminModel = new AdminModel;
$store_name = $post['store_name'];
$store_url = $post['store_url'];
$store_currency = $post['store_currency'];
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;
}
$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
));
}
$store_logo_name = 'logo.'. $request->file('store_logo')->getClientOriginalExtension();
$store_banner_name = 'banner.'. $request->file('store_banner')->getClientOriginalExtension();
$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,
'StoreCurrency' => $store_currency,
'IsActive' => $store_status
);
$res = $AdminModel->insertTeamstore($data);
if($res){
Storage::disk('uploads')->put('/teamstore/'. $store_url . '/' . $store_logo_name, fopen($request->file('store_logo'), 'r+'));
Storage::disk('uploads')->put('/teamstore/'. $store_url . '/' . $store_banner_name, fopen($request->file('store_banner'), 'r+'));
return response()->json(array(
'success' => true,
'clearform' => true,
'message'=>'Store is successfully created.'
));
}else{
return response()->json(array(
'success' => false,
'clearform' => true,
'message' => 'Something went wrong. Please refresh the page and try again.'
));
}
}
public function storeList(){
$AdminModel = new AdminModel;
$q = null;
$sort = null;
$q = request()->get('q');
$sort = request()->get('s'); // sort
if(isset($q) && isset($sort)){
if($sort == "al-asc"){
$field = "StoreName";
$sort_value = "ASC";
}elseif($sort == "al-desc"){
$field = "StoreName";
$sort_value = "DESC";
}else{
$field = "Id";
$sort_value = "ASC";
}
if($q != ""){
// keyword and sort
$teamstore_array = $AdminModel->selectTeamstoreSearch($field, $sort_value, $q);
}else{
// sort only
$teamstore_array = $AdminModel->selectTeamstoreFilter($field, $sort_value);
}
}else{
// first load
$teamstore_array = $AdminModel->selectTeamstore();
}
return view('admin_pages.list_of_stores')
->with('teamstore_array', $teamstore_array)
->with('keyword', $q)
->with('filter', $sort);
}
public function viewStore($id){
$AdminModel = new AdminModel;
$teamstore_array = $AdminModel->selectTeamstoreById($id);
$store_owners_array = $AdminModel->selectStoreOwners($id);
return view('admin_pages.edit_store')
->with('teamstore_array', $teamstore_array)
->with('store_owners_array', $store_owners_array);
}
public function updateStore(Request $request){
$post = $request->all();
$AdminModel = new AdminModel;
$store_id = $post['store_id'];
$store_name = $post['store_name'];
$store_url = $post['store_url'];
$orig_store_url = $post['orig_store_url'];
$store_currency = $post['store_currency'];
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,
'StoreCurrency' => $store_currency,
'IsActive' => $store_status
);
// var_dump($data);
$res = $AdminModel->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.'
// ));
// }
}
public function deleteStore(Request $request){
$AdminModel = new AdminModel;
$post = $request->all();
$teamstore_array = $AdminModel->selectTeamstoreById($post['id']);
if($teamstore_array[0]->StoreUrl == $post['store_url']){
$res = $AdminModel->deleteTeamstoreById($post['id']);
if($res){
return response()->json(array(
'success' => true,
'message' => 'This Store is successfully deleted.'
));
}else{
return response()->json(array(
'success' => false,
'message' => 'Something went wrong. Please refresh the page and try again.'
));
}
}else{
return response()->json(array(
'success' => false,
'message' => 'Something went wrong. Please refresh the page and try again.'
));
}
}
public function overlayPattern(){
$AdminModel = new AdminModel;
$pattern_array = $AdminModel->selectPattern();
return view('admin_pages.overlay_pattern')
->with('pattern_array', $pattern_array);
}
public function viewOverlayPattern($id){
$AdminModel = new AdminModel;
$pattern_array = $AdminModel->selectPatternWithfield('Id', $id);
return view('admin_pages.edit_overlay_pattern')
->with('pattern_array', $pattern_array);
}
public function viewReports(){
return view('admin_pages.reports');
}
public function viewClipart(){
$AdminModel = new AdminModel;
$clipart_categories_array = $AdminModel->selectClipartCategory();
return view('admin_pages.clipart')
->with('clipart_categories_array', $clipart_categories_array);
}
public function saveClipartCategory(Request $request){
$post = $request->all();
$AdminModel = new AdminModel;
$data = array(
'CategoryName' => $post['category'],
'IsActive' => $post['is_active']
);
$res = $AdminModel->insertClipartCategory($data);
if($res){
return response()->json(array(
'success' => true,
'addClass'=> 'modal-close-reload',
'message' => 'Clipart Category is successfully added.'
));
}else{
return response()->json(array(
'success' => false,
'addClass'=> '',
'message' => 'Something went wrong. Please refresh the page and try again.'
));
}
}
public function saveSVGClipart(Request $request){
$post = $request->all();
$AdminModel = new AdminModel;
$getSVGData = $post['svg_data'];
$category = $post['category'];
$tags = $post['tags'];
$orig_filename = $post['filename'];
var_dump($request->file('svg_data'));
// $lower_filename = str_replace(' ','-',strtolower($orig_filename));
// $getExt = substr($request->file('svg_data')->getClientOriginalExtension());
// $clean_filename = preg_replace("/\.[^.\s]{3,4}$/", "", $lower_filename);
// $final_filename = $clean_filename . "-".uniqid().$getExt;
// $q1 = $conn->prepare("INSERT INTO cliparts (CategoryId, OriginalSVGFilename, SVGFilename, Tags, IsActive) VALUES (:cat_id, :orig_name, :svg_name, :tags, :is_act)");
// $q1->execute(array(':cat_id'=>$category, ':orig_name'=>$orig_filename, ':svg_name'=>$final_filename, 'tags'=>$tags, ':is_act'=>0));
// $svg = new DOMDocument('1.0', 'UTF-8');
// $svg->xmlStandalone = false;
// $svg->loadXML($getSVGData);
// $file = $clipartFolder . $final_filename;
// file_put_contents($file, $svg->saveXML());
// echo '
// <script>
// alert("File is successfully uploaded");
// window.location = "./";
// </script>
// ';
// $data = array(
// 'CategoryName' => $post['category'],
// 'IsActive' => $post['is_active']
// );
// $res = $AdminModel->insertClipartCategory($data);
// if($res){
// return response()->json(array(
// 'success' => true,
// 'addClass'=> 'modal-close-reload',
// 'message' => 'Clipart Category is successfully added.'
// ));
// }else{
// return response()->json(array(
// 'success' => false,
// 'addClass'=> '',
// 'message' => 'Something went wrong. Please refresh the page and try again.'
// ));
// }
}
function userList(){
$AdminModel = new AdminModel;
$result = $AdminModel->userList();
// var_dump( $result);
return response()->json([
"count" => count($result),
"results" => $result
]);
}
function updatUserAsStoreOwner(Request $request){
$AdminModel = new AdminModel;
$data = array(
'user_id' => $request->user_id,
'store_id' => $request->store_id
);
$res = $AdminModel->makeUserAsStoreOwner($data);
return response()->json([
"result" => $res
]);
}
public function removeStoreAccess(Request $request){
$AdminModel = new AdminModel;
$data = array(
'user_id' => $request->id,
'store_id' => null
);
$res = $AdminModel->model_removeStoreAccess($data);
return response()->json([
"result" => $res
]);
}
public function saveNewStoreOwner(Request $request){
$AdminModel = new AdminModel;
$post = $request->all();
$validator = Validator::make($post, [
'username' => 'unique:user_logins',
'email' => 'unique:user_logins'
]);
if ($validator->fails())
{
$errors = "";
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
));
}
User::create([
'name' => $post['name'],
'username' => $post['username'],
'email' => $post['email'],
'password' => bcrypt($post['password']),
'role' => 'store_owner',
'store_id' => $post['store_id'],
]);
return response()->json(array(
'success' => true
));
}
}