Skip to content

Commit 5ed3d3d

Browse files
authored
Merge pull request #105 from systeminc/development
Development
2 parents c31556f + 30bc768 commit 5ed3d3d

30 files changed

+712
-10
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@ Install using composer:
2828
$ composer require systeminc/laravel-admin
2929
```
3030

31-
Add the service provider to the `'providers'` array in `config/app.php`:
31+
For Laravel 5.5 support Auto Discovery Packages.
32+
33+
Add the service provider to the `'providers'` array in `config/app.php` for Laravel 5.4 and lower:
3234

3335
```php
3436
SystemInc\LaravelAdmin\AdminServiceProvider::class,

composer.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,15 @@
4949
"fzaninotto/faker": "^1.6",
5050
"mockery/mockery": "^0.9.9",
5151
"orchestra/testbench": "^3.4"
52+
},
53+
"extra": {
54+
"laravel": {
55+
"providers": [
56+
"SystemInc\\LaravelAdmin\\AdminServiceProvider"
57+
],
58+
"aliases": {
59+
"SLA": "SystemInc\\LaravelAdmin\\Facades\\SLA"
60+
}
61+
}
5262
}
5363
}

src/Http/Controllers/Shop/CategoriesController.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public function postSave(Request $request, $category_id)
8080

8181
$category->fill($request->all());
8282

83-
$category->thumb = $this->saveImage($request->file('thumb'), 'categories');
83+
$category->thumb = $request->hasFile('thumb') ? $this->saveImage($request->file('thumb'), 'categories') : $category->thumb;
8484

8585
if ($request->input('delete_thumb')) {
8686
if (Storage::exists($category->thumb)) {
@@ -89,6 +89,16 @@ public function postSave(Request $request, $category_id)
8989

9090
$category->thumb = null;
9191
}
92+
93+
$category->image = $request->hasFile('image') ? $this->saveImage($request->file('image'), 'categories') : $category->image;
94+
95+
if ($request->input('delete_image')) {
96+
if (Storage::exists($category->image)) {
97+
Storage::delete($category->image);
98+
}
99+
100+
$category->image = null;
101+
}
92102
//REPLACE slug
93103
$category->slug = str_slug($request->title);
94104

src/Http/Controllers/Shop/OrdersController.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PDF;
99
use SystemInc\LaravelAdmin\Order;
1010
use SystemInc\LaravelAdmin\OrderItem;
11+
use SystemInc\LaravelAdmin\OrderItemVariation;
1112
use SystemInc\LaravelAdmin\OrderStatus;
1213
use SystemInc\LaravelAdmin\Product;
1314
use SystemInc\LaravelAdmin\Validations\UpdatedOrderValidation;
@@ -349,4 +350,13 @@ private function removeFromStock($order)
349350
}
350351
}
351352
}
353+
354+
public function getViewItem($item_id)
355+
{
356+
$orderItem = OrderItem::find($item_id);
357+
358+
$variation = OrderItemVariation::whereOrderItemId($item_id)->get();
359+
360+
return view('admin::orders.item', compact('orderItem', 'variation'));
361+
}
352362
}

src/Http/Controllers/Shop/ProductsController.php

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88
use SystemInc\LaravelAdmin\Gallery;
99
use SystemInc\LaravelAdmin\Product;
1010
use SystemInc\LaravelAdmin\ProductCategory;
11+
use SystemInc\LaravelAdmin\ProductVariation;
1112
use SystemInc\LaravelAdmin\SimilarProduct;
1213
use SystemInc\LaravelAdmin\Traits\HelpersTrait;
1314
use SystemInc\LaravelAdmin\Validations\ProductValidation;
15+
use SystemInc\LaravelAdmin\Validations\ProductVariationValidation;
1416
use Validator;
1517

1618
class ProductsController extends Controller
@@ -82,6 +84,9 @@ public function postSave(Request $request, $product_id)
8284
if ($request->hasFile('thumb')) {
8385
$product->thumb = $this->saveImage($request->file('thumb'), 'products');
8486
}
87+
if ($request->hasFile('image')) {
88+
$product->image = $this->saveImage($request->file('image'), 'products');
89+
}
8590
if ($request->hasFile('pdf')) {
8691
$product->pdf = $this->uploadPdf($request->file('pdf'), 'products');
8792
}
@@ -94,6 +99,14 @@ public function postSave(Request $request, $product_id)
9499
$product->thumb = null;
95100
}
96101

102+
if (!empty($request->delete_image)) {
103+
if (Storage::exists($product->image)) {
104+
Storage::delete($product->image);
105+
}
106+
107+
$product->image = null;
108+
}
109+
97110
if (!empty($request->delete_pdf)) {
98111
$product->pdf = $this->removePdf($product->pdf);
99112
}
@@ -197,4 +210,84 @@ private function createNewGalleryForProduct($product)
197210

198211
return true;
199212
}
213+
214+
public function getAddVariation($product_id)
215+
{
216+
return view('admin::products.addvariation', compact('product_id'));
217+
}
218+
219+
public function postSaveVariation(Request $request, $product_id)
220+
{
221+
// validation
222+
$validation = Validator::make($request->all(), ProductVariationValidation::rules(), ProductVariationValidation::messages());
223+
224+
if ($validation->fails()) {
225+
return back()->withInput()->withErrors($validation);
226+
}
227+
228+
$variation = new ProductVariation();
229+
230+
$variation->fill($request->all());
231+
232+
if ($request->hasFile('image')) {
233+
$variation->image = $this->saveImage($request->file('image'), 'products');
234+
}
235+
236+
$variation->price = !empty($request->price) ? $request->price : 0;
237+
$variation->product_id = $product_id;
238+
$variation->save();
239+
240+
return redirect($request->segment(1).'/shop/products/edit/'.$product_id)->with('success', 'Added variation');
241+
}
242+
243+
public function getEditVariation($variation_id)
244+
{
245+
$variation = ProductVariation::find($variation_id);
246+
247+
return view('admin::products.editvariation', compact('variation'));
248+
}
249+
250+
public function postUpdateVariation(Request $request, $variation_id)
251+
{
252+
// validation
253+
$validation = Validator::make($request->all(), ProductVariationValidation::rules(), ProductVariationValidation::messages());
254+
255+
if ($validation->fails()) {
256+
return back()->withInput()->withErrors($validation);
257+
}
258+
259+
$variation = ProductVariation::find($variation_id);
260+
$variation->update($request->all());
261+
262+
if ($request->hasFile('image')) {
263+
$variation->image = $this->saveImage($request->file('image'), 'products');
264+
}
265+
266+
if (!empty($request->delete_image)) {
267+
if (Storage::exists($variation->image)) {
268+
Storage::delete($variation->image);
269+
}
270+
271+
$variation->image = null;
272+
}
273+
$variation->price = !empty($request->price) ? $request->price : 0;
274+
$variation->save();
275+
276+
return back()->with('success', 'Saved variation');
277+
}
278+
279+
public function getDeleteVariation($variation_id)
280+
{
281+
$variation = ProductVariation::find($variation_id);
282+
283+
if (!empty($variation->image)) {
284+
if (Storage::exists($variation->image)) {
285+
Storage::delete($variation->image);
286+
}
287+
}
288+
289+
$variation->delete();
290+
291+
return back()->with('success', 'Deleted variation');
292+
}
200293
}

src/Http/routes.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@
4242

4343
// products
4444
Route::group(['prefix' => 'products'], function () {
45+
Route::post('save-variation/{product_id}', 'ProductsController@postSaveVariation');
46+
Route::post('update-variation/{variation_id}', 'ProductsController@postUpdateVariation');
47+
Route::get('delete-variation/{variation_id}', 'ProductsController@getDeleteVariation');
48+
Route::get('edit-variation/{variation_id}', 'ProductsController@getEditVariation');
49+
Route::get('add-variation/{product_id}', 'ProductsController@getAddVariation');
4550
Route::get('delete-similar/{similar_id}', 'ProductsController@getDeleteSimilar');
4651
Route::post('add-similar/{product_id}', 'ProductsController@postAddSimilar');
4752
Route::post('save/{product_id}', 'ProductsController@postSave');
@@ -72,6 +77,7 @@
7277
Route::post('edit-item/{item_id}', 'OrdersController@postEditItem');
7378
Route::post('add-item/{item_id}', 'OrdersController@postAddItem');
7479
Route::post('save/{order_id}', 'OrdersController@postSave');
80+
Route::get('view-item/{item_id}', 'OrdersController@getViewItem');
7581
Route::get('print-invoice/{order_id}', 'OrdersController@getPrintInvoice');
7682
Route::get('send-invoice/{order_id}', 'OrdersController@getSendInvoice');
7783
Route::get('send-proforma/{order_id}', 'OrdersController@getSendProforma');

src/OrderItem.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66

77
class OrderItem extends Model
88
{
9-
public $timestamps = false;
10-
119
protected $fillable = [
1210
'order_id',
1311
'product_id',
@@ -25,4 +23,9 @@ public function product()
2523
{
2624
return $this->belongsTo('SystemInc\LaravelAdmin\Product')->withTrashed();
2725
}
26+
27+
public function variations()
28+
{
29+
return $this->hasMany('SystemInc\LaravelAdmin\OrderItemVariation');
30+
}
2831
}

src/OrderItemVariation.php

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace SystemInc\LaravelAdmin;
4+
5+
use Illuminate\Database\Eloquent\Model;
6+
7+
class OrderItemVariation extends Model
8+
{
9+
protected $fillable = [
10+
'order_item_id',
11+
'product_variation_id',
12+
];
13+
14+
public function orderItem()
15+
{
16+
return $this->belongsTo('SystemInc\LaravelAdmin\OrderItem');
17+
}
18+
19+
public function productVariation()
20+
{
21+
return $this->belongsTo('SystemInc\LaravelAdmin\ProductVariation');
22+
}
23+
}

src/Product.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class Product extends Model
2020
'description',
2121
'long_description',
2222
'thumb',
23+
'image',
2324
'animation',
2425
'video',
2526
'pdf',
@@ -30,6 +31,7 @@ class Product extends Model
3031
'visible',
3132
'featured',
3233
'stock',
34+
'sku',
3335
'seo_title',
3436
'seo_description',
3537
'seo_keywords',
@@ -54,4 +56,14 @@ public function similar()
5456
{
5557
return $this->hasMany('SystemInc\LaravelAdmin\SimilarProduct')->orderBy('created_at', 'desc');
5658
}
59+
60+
public function variations()
61+
{
62+
return $this->hasMany('SystemInc\LaravelAdmin\ProductVariation')->orderBy('created_at', 'desc');
63+
}
64+
65+
public function getVariationsByGroup($group)
66+
{
67+
return $this->hasMany('SystemInc\LaravelAdmin\ProductVariation')->whereGroup($group)->orderBy('created_at', 'desc')->get();
68+
}
5769
}

src/ProductCategory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class ProductCategory extends Model
1010
'title',
1111
'subtitle',
1212
'thumb',
13+
'image',
1314
'excerpt',
1415
'description',
1516
'menu_order',

0 commit comments

Comments
 (0)