From 0363474def1d3d32868031e10bc4f7d950734faf Mon Sep 17 00:00:00 2001 From: franknstayn Date: Wed, 13 Nov 2019 22:45:51 +0800 Subject: [PATCH] optimized add form for store products --- .../designer/DesignerController.php | 8 +- .../teamstore/TeamStoreController.php | 132 +++++++-------- app/Http/routes.php | 4 +- app/Models/teamstore/TeamStoreModel.php | 10 +- .../views/teamstore-layout/main.blade.php | 51 +++--- .../forms/jersey-and-shorts-form.blade.php | 157 ++++++------------ .../forms/name-name2-size-form.blade.php | 131 +++++---------- .../forms/name-number-form.blade.php | 125 ++++---------- .../forms/name-number-size-form.blade.php | 144 +++++----------- .../forms/name-size.blade.php | 130 ++++----------- .../forms/number-form.blade.php | 116 ++++--------- .../forms/quantity-form.blade.php | 111 +++---------- .../forms/tshirt-form.blade.php | 124 ++++---------- .../product-details.blade.php | 78 ++++++--- 14 files changed, 448 insertions(+), 873 deletions(-) diff --git a/app/Http/Controllers/designer/DesignerController.php b/app/Http/Controllers/designer/DesignerController.php index 0fb0256..5bb5a98 100644 --- a/app/Http/Controllers/designer/DesignerController.php +++ b/app/Http/Controllers/designer/DesignerController.php @@ -1008,8 +1008,8 @@ class DesignerController extends Controller { - - - + + + diff --git a/app/Http/Controllers/teamstore/TeamStoreController.php b/app/Http/Controllers/teamstore/TeamStoreController.php index 0436eaf..6b02046 100644 --- a/app/Http/Controllers/teamstore/TeamStoreController.php +++ b/app/Http/Controllers/teamstore/TeamStoreController.php @@ -234,84 +234,44 @@ class TeamStoreController extends Controller { public function addNewRow(Request $request) { $post = $request->all(); - $itemCount = $post['itemCount']; - $cssValue = $post['jersey_chk']; - $product_id = $post['product_id']; - $classname = "row" . $itemCount; + $TeamStoreModel = new TeamStoreModel; + + $item = $TeamStoreModel->selectTeamStoreProductByIdHash($post['p_id']); + $x = explode(",", $item[0]->AvailableSizes); + + foreach($x as $s){ + $h[] = $TeamStoreModel->getSizesByBracket($s); + } + + foreach($h as $d){ + foreach($d as $g){ + $sizes_array[] = $g; + } + } + + if($item[0]->ProductAvailableQty != null){ + $soldQty = $m->getSoldQty($product_array[0]->Id); + $availableQty = $item[0]->ProductAvailableQty - $soldQty[0]->SoldQty; + }else{ + // echo 'no qty'; + $availableQty = null; + } + + $handle_form = view('teamstore-sublayouts.forms.' . $item[0]->ProductForm ) + ->with('sizes_array', $sizes_array) + ->with('availableQty', $availableQty) + ->render(); + + return $handle_form; + - $m = new TeamStoreModel; - $teams_array = array(); - $teams_array = $m->getTeams($product_id); - $sizes_array = $m->getSizes(); - ?> - - - - - - - - - - -
- - -
- - - -
- - -
- - - - - - - - - - - - all(); $m = new TeamStoreModel; - - - $product_id = $post['product_id']; - $store_url = $post['store_url']; - $store_id = $post['store_id']; + $hash_product_id = $post['p_id']; if($request->session()->has('cartkey')){ $cartKey = $request->session()->get('cartkey'); @@ -320,13 +280,20 @@ class TeamStoreController extends Controller { $cartKey = $cartKey = $request->session()->get('cartkey'); } - $product_array = $m->selectTeamStoreProducts('Id', $product_id); + $product_array = $m->selectTeamStoreProductByIdHash($hash_product_id); + $product_id = $product_array[0]->Id; + $TeamStoreId = $product_array[0]->TeamStoreId; $ProductPrice = $product_array[0]->ProductPrice; $ProductURL = $product_array[0]->ProductURL; $product_form = $product_array[0]->ProductForm; $design_code = $product_array[0]->DesignCode; $product_name = $product_array[0]->ProductName; + $teamstore_array = $m->selectTeamStore('Id', $TeamStoreId); + + $store_url = $teamstore_array[0]->StoreUrl; + $store_id = $teamstore_array[0]->Id; + if($product_form == "jersey-and-shorts-form"){ $order_names = $post['order_names']; $order_number = $post['order_number']; @@ -476,6 +443,27 @@ class TeamStoreController extends Controller { 'Quantity' => 1 ); } + }elseif($product_form == "name-size"){ + + $order_names = $post['order_names']; + $order_size = $post['order_size']; + + foreach($order_names as $key => $val){ + $items[] = array( + 'ProductId' => $product_id, + 'StoreURL' => $store_url, + 'StoreId' => $store_id, + 'FormUsed' => $product_form, + 'CartKey' => $cartKey, + 'DesignCode' => $design_code, + 'ProductURL' => $ProductURL, + 'ProductName' => $product_name, + 'Name' => $order_names[$key], + 'Size' => $order_size[$key], + 'Price' => $ProductPrice, + 'Quantity' => 1 + ); + } } $i = $m->insertToCart($items); diff --git a/app/Http/routes.php b/app/Http/routes.php index a8064fa..d62cf66 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -49,7 +49,7 @@ Route::get('/designer/edit/{designCode}', 'designer\DesignerController@editDesig //end edit routes// // CUSTOMIZER DISPLAY -Route::post('/designer/a/add-new-row', 'designer\DesignerController@addNewRow'); +Route::post('/teamstore/q/add-new-row', 'teamstore\TeamStoreController@addNewRow'); Route::post('/designer/a/add-new-row-name-and-number', 'designer\DesignerController@addNewRowNameAndNumber'); Route::post('/designer/a/add-new-row-name-number-size', 'designer\DesignerController@addNewRowNameNumberAndSize'); Route::post('/designer/a/add-new-row-number', 'designer\DesignerController@addRowNumber'); @@ -82,7 +82,7 @@ Route::get('/teamstore', 'teamstore\TeamStoreController@storelist'); // old Route::get('/teamstore/{storename}', 'teamstore\TeamStoreController@index'); Route::get('/teamstore/{storename}/product/{producurl}', 'teamstore\TeamStoreController@productDetails'); - Route::post('/teamstore/q/addnewrow', 'teamstore\TeamStoreController@addNewRow'); + // Route::post('/teamstore/q/addnewrow', 'teamstore\TeamStoreController@addNewRow'); Route::post('/teamstore/q/add-to-cart', 'teamstore\TeamStoreController@addToCart'); Route::get('/teamstore/q/clearsession', 'teamstore\TeamStoreController@clearSession'); Route::post('/teamstore/q/add-voucher', 'teamstore\TeamStoreController@addVoucher'); diff --git a/app/Models/teamstore/TeamStoreModel.php b/app/Models/teamstore/TeamStoreModel.php index 1587e49..8f0e404 100644 --- a/app/Models/teamstore/TeamStoreModel.php +++ b/app/Models/teamstore/TeamStoreModel.php @@ -22,8 +22,16 @@ class TeamStoreModel extends Model { ->orderBy('Ordering', 'ASC')->get(); return $i; } + + function selectTeamStoreProductByIdHash($id) + { + $i = DB::table('teamstore_products') + ->where(DB::raw('md5(Id)') , $id) + ->get(); + return $i; + } - function selectTeamStore($field, $teamstoreURL) // display all data from database + function selectTeamStore($field, $teamstoreURL) { $i = DB::table('teamstores') ->where($field, $teamstoreURL) diff --git a/resources/views/teamstore-layout/main.blade.php b/resources/views/teamstore-layout/main.blade.php index 68e9f31..ada477f 100644 --- a/resources/views/teamstore-layout/main.blade.php +++ b/resources/views/teamstore-layout/main.blade.php @@ -320,14 +320,9 @@ $(document).on('button click', '.removeRow', function(){ var str = $(this).closest('tr').attr('class'); var trCount = $('#tableRow tbody').children('tr').length; - - if(trCount == 2){ - return false; - } - - if(trCount == 3){ - $('#addnew-btn-tbl-row').remove(); - $('.tr-remove-btn').html(''); + if(trCount <= 2){ + $('#addnew-btn-tbl-row').html(''); + $('.tr-remove-btn').html(''); } $('.'+str).remove(); }); @@ -395,24 +390,23 @@ // @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ adding of rows @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + $(document).on('button click', '#addNewRow', function(){ - var TemplateCode = $('#template_code').val(); - var avalable_sizes = $('#avalable_sizes').val(); + // var TemplateCode = $('#template_code').val(); + // var avalable_sizes = $('#avalable_sizes').val(); + var p_id = $('#p_id').val(); // console.log(TemplateCode) - var orderCounterValue = $('#orderCounterValue').val(); - var numi = document.getElementById('orderCounterValue'); - var num = (document.getElementById('orderCounterValue').value -1) + 2; - numi.value = num; + // var orderCounterValue = $('#orderCounterValue').val(); + // var numi = document.getElementById('orderCounterValue'); + // var num = (document.getElementById('orderCounterValue').value -1) + 2; + // numi.value = num; $.ajax({ //create an ajax request to load_page.php type: "POST", - url: "{{ url('/designer/a/add-new-row') }}", - data:{ - - itemCount : num, - tempCode : TemplateCode, - avalable_sizes : avalable_sizes + url: "{{ url('/teamstore/q/add-new-row') }}", + data: { + p_id : p_id }, dataType: "html", //expect html to be returned @@ -424,11 +418,22 @@ } xhr.setRequestHeader( 'X-Requested-With', 'XMLHttpRequest'); }, + success: function(response){ - var className = "row" + (num - 1); + + var d = new Date(); + var n = d.getTime(); + + var parser = new DOMParser(); + var doc = parser.parseFromString(response, "text/html"); + var elem = doc.getElementById("orderTableBody"); + var currentClassName = elem.getElementsByTagName('tr')[0].className; + elem.getElementsByClassName(currentClassName)[0].classList.remove(currentClassName); // remove current Classname + elem.getElementsByTagName('tr')[0].classList.add("table-tr-" + Math.ceil(Math.random() * 999999) + n); // add random classname + $('#tableRow tbody').append(elem.innerHTML); + $('#addnew-btn-tbl-row').html('') + $('#addnew-btn-tbl-row').append(''); $('.tr-remove-btn').html(''); - $('#addnew-btn-tbl-row').remove(); - $('#tableRow tbody').append(response); $('#orderListPanel').scrollTop($('#orderListPanel')[0].scrollHeight); $('.inputName').keyup(function() { this.value = this.value.toLocaleUpperCase(); diff --git a/resources/views/teamstore-sublayouts/forms/jersey-and-shorts-form.blade.php b/resources/views/teamstore-sublayouts/forms/jersey-and-shorts-form.blade.php index 31ee298..6a42ff5 100644 --- a/resources/views/teamstore-sublayouts/forms/jersey-and-shorts-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/jersey-and-shorts-form.blade.php @@ -1,109 +1,52 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

-
-
-
-
-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
NameNumberJersey SizeShorts Size
- - - - - - - - - - - - -
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
-
+
+ + + + + + + + + + + + + + + + + + + +
NameNumberJersey SizeShorts Size
+ + + + + + + + + + + +
+
\ No newline at end of file diff --git a/resources/views/teamstore-sublayouts/forms/name-name2-size-form.blade.php b/resources/views/teamstore-sublayouts/forms/name-name2-size-form.blade.php index fbacafa..91ad8b5 100644 --- a/resources/views/teamstore-sublayouts/forms/name-name2-size-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/name-name2-size-form.blade.php @@ -1,95 +1,38 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

+
+ + + + + + + + + + + + + + + + + + +
Gamer TagNameSize
+ + + + + + + + + +
+
-
-
-
-
- - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
Gamer TagNameSize
- - - - - - - - - -
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
-
-
-
\ No newline at end of file +
+ \ No newline at end of file diff --git a/resources/views/teamstore-sublayouts/forms/name-number-form.blade.php b/resources/views/teamstore-sublayouts/forms/name-number-form.blade.php index 8eb18ca..b7a0202 100644 --- a/resources/views/teamstore-sublayouts/forms/name-number-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/name-number-form.blade.php @@ -1,92 +1,35 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

+
+ + + + + + + + + + + + + + + +
NameNumber
+ + + + + + + +
+
-
-
-
-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - -
NameNumber
- - - - - - - - -
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
-
-
-
\ No newline at end of file +
+ \ No newline at end of file diff --git a/resources/views/teamstore-sublayouts/forms/name-number-size-form.blade.php b/resources/views/teamstore-sublayouts/forms/name-number-size-form.blade.php index de0906f..ba63b0d 100644 --- a/resources/views/teamstore-sublayouts/forms/name-number-size-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/name-number-size-form.blade.php @@ -1,101 +1,45 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

+ +
+ + + + + + + + + + + + + + + + + + +
NameNumberSize
+ + + + + + + + + +
+
-
-
-
-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
NameNumberSize
- - - - - - - - - - -
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
-
-
-
\ No newline at end of file +
+ \ No newline at end of file diff --git a/resources/views/teamstore-sublayouts/forms/name-size.blade.php b/resources/views/teamstore-sublayouts/forms/name-size.blade.php index de0906f..e1747fd 100644 --- a/resources/views/teamstore-sublayouts/forms/name-size.blade.php +++ b/resources/views/teamstore-sublayouts/forms/name-size.blade.php @@ -1,101 +1,33 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

-
-
-
-
-
- - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - -
NameNumberSize
- - - - - - - - - - -
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
-
+ +
+ + + + + + + + + + + + + + + +
NameSize
+ + + + + + + +
+
\ No newline at end of file diff --git a/resources/views/teamstore-sublayouts/forms/number-form.blade.php b/resources/views/teamstore-sublayouts/forms/number-form.blade.php index 5139507..7ffe3a4 100644 --- a/resources/views/teamstore-sublayouts/forms/number-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/number-form.blade.php @@ -1,88 +1,32 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

-
-
-
-
-
- - - - - - - - - -
- - - - - - - - - - - - - - - -
Number
- - - - - - -
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
-
+
+ + + + + + + + + + + + + + + +
Number
+ + + + + +
+
\ No newline at end of file diff --git a/resources/views/teamstore-sublayouts/forms/quantity-form.blade.php b/resources/views/teamstore-sublayouts/forms/quantity-form.blade.php index efbc154..6b1ef89 100644 --- a/resources/views/teamstore-sublayouts/forms/quantity-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/quantity-form.blade.php @@ -1,88 +1,29 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

-
-
-
-
-
- - - - - - - - - -
- -
-
-
- - - - @if($product_array[0]->ProductAvailableQty == null) - - @else - - @endif - - - - -
- @if($available_qty != null) -

{{ $available_qty }} piece/s available

- @endif - -
-
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
+
+ +
+
+
+ + + + @if($product_array[0]->ProductAvailableQty == null) + + @else + + @endif + + + +
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
+ @if($available_qty != null) +

{{ $available_qty }} piece/s available

+ @endif +
-
\ No newline at end of file +
diff --git a/resources/views/teamstore-sublayouts/forms/tshirt-form.blade.php b/resources/views/teamstore-sublayouts/forms/tshirt-form.blade.php index b64ddbc..d55bdc2 100644 --- a/resources/views/teamstore-sublayouts/forms/tshirt-form.blade.php +++ b/resources/views/teamstore-sublayouts/forms/tshirt-form.blade.php @@ -1,93 +1,35 @@ - -
-
-

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

-
-
-
-
-
- - - - - - - - - -
- -
-
- - -
-
-
-
- -
-
-
- - - - - - - -
-
-
-
- -
-
- @if($product_array[0]->ProductPrice > 0) - - @endif -
-
-
-
-
-
- - -
-
-
-
-

- {{ $product_array[0]->ProductDescription }} -

-
-
-
-
-
+ +
+ +
+
+ +
-
\ No newline at end of file +
+
+ +
+
+
+ + + + + + + +
+
+
+
diff --git a/resources/views/teamstore-sublayouts/product-details.blade.php b/resources/views/teamstore-sublayouts/product-details.blade.php index d030348..213ad1e 100644 --- a/resources/views/teamstore-sublayouts/product-details.blade.php +++ b/resources/views/teamstore-sublayouts/product-details.blade.php @@ -149,17 +149,22 @@ border-bottom-width: 0px; } .btn-roster-action{ - width: 20px; + /* width: 20px; height: 20px; - border-radius: 10px; + border-radius: 10px; */ } - .btn-group-sm>.btn, .btn-roster-action { + + .btn-group-sm>.btn{ padding: 0px 0px; } .table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{ vertical-align: unset; } + .table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th{ + border: none; + } + .table>thead>tr>th{ border-bottom:none; } @@ -189,11 +194,15 @@ /* background:url("{{asset('public/images/icon.png') }}"); */ } - .zoom img { - display: block; + + tbody#orderTableBody>tr>td { + padding: 0px !important; + } + .panel-design-details{ + max-height: 300px; + overflow: auto; } - .zoom img::selection { background-color: transparent; }
@@ -208,28 +217,19 @@
- - +
- - +
+
    @@ -271,12 +272,51 @@
+
- @include('teamstore-sublayouts.forms.'.$product_array[0]->ProductForm) +
+
+

{{ $product_array[0]->ProductName }}

{{ $product_array[0]->ProductPrice }} {{ $store_array[0]->StoreCurrency }}

+
+
+
+
+
+ + @include('teamstore-sublayouts.forms.'.$product_array[0]->ProductForm) + + @if($product_array[0]->ProductPrice > 0) + + @endif +
+ + +
+
+
+
+
+ + +
+
+
+
+

{{ $product_array[0]->ProductDescription }}

+
+
+
+
+
+
+
+
- +
@endsection