diff --git a/app/Datatables/Admin/Shop/ArticlesDataTable.php b/app/Datatables/Admin/Shop/ArticlesDataTable.php index 5b7c5457..f53ba84c 100644 --- a/app/Datatables/Admin/Shop/ArticlesDataTable.php +++ b/app/Datatables/Admin/Shop/ArticlesDataTable.php @@ -12,7 +12,7 @@ class ArticlesDataTable extends DataTable { public $model_name = 'articles'; - public $sortedColumn = 2; + public $sortedColumn = 3; public function query(Article $model) { @@ -99,15 +99,16 @@ class ArticlesDataTable extends DataTable return [ Column::make('visible')->title('Visible')->searchable(false)->width(50), Column::make('homepage')->title('Accueil')->searchable(false)->width(50), + Column::make('ref')->title('Ref'), Column::make('article_nature.name')->title('Nature'), Column::make('thumb')->title('')->searchable(false)->orderable(false)->width(40)->class('text-center'), Column::make('name')->title('Nom'), - Column::make('tags2')->title('Tags')->searchable(false)->orderable(false), - Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false)->width(40), + // Column::make('tags2')->title('Tags')->searchable(false)->orderable(false), + // Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false)->width(40), Column::make('categories_count')->title('#Ray')->class('text-right')->searchable(false)->width(40), Column::make('offers_count')->title('#Ofr')->class('text-right')->searchable(false)->width(40), - Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false)->width(40), - Column::make('images_count2')->title('#PhoH')->class('text-right')->searchable(false)->orderable(false)->width(40), + // Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false)->width(40), + // Column::make('images_count2')->title('#PhoH')->class('text-right')->searchable(false)->orderable(false)->width(40), $this->makeColumnButtons(), ]; } diff --git a/app/Http/Controllers/Admin/Shop/ArticleController.php b/app/Http/Controllers/Admin/Shop/ArticleController.php index 4c728c11..e3b579ed 100644 --- a/app/Http/Controllers/Admin/Shop/ArticleController.php +++ b/app/Http/Controllers/Admin/Shop/ArticleController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin\Shop; use App\Datatables\Admin\Shop\ArticlesDataTable; +use App\Http\Requests\Admin\Shop\StoreArticlePost; use App\Repositories\Shop\ArticleNatures; use App\Repositories\Shop\Articles; use App\Repositories\Shop\Categories; @@ -20,9 +21,11 @@ class ArticleController extends Controller public function index(ArticlesDataTable $dataTable) { - $data['article_natures'] = ArticleNatures::getOptions(); - $data['categories'] = Categories::getOptions(); - $data['tags'] = Tags::getOptionsFullName(); + $data = [ + 'article_natures' => ArticleNatures::getOptions(), + 'categories' => Categories::getOptions(), + 'tags' => Tags::getOptionsFullName(), + ]; return $dataTable->render('Admin.Shop.Articles.list', $data); } @@ -34,9 +37,12 @@ class ArticleController extends Controller return view('Admin.Shop.Articles.create', $data); } - public function store(Request $request) + public function store(StoreArticlePost $request) { $data = $request->all(); + $data['visible'] = $data['visible'] ?? false; + $data['homepage'] = $data['homepage'] ?? false; + Articles::storeFull($data); return redirect()->route('Admin.Shop.Articles.index'); diff --git a/app/Http/Controllers/Admin/Shop/OfferController.php b/app/Http/Controllers/Admin/Shop/OfferController.php index 04a9ce03..591c226d 100644 --- a/app/Http/Controllers/Admin/Shop/OfferController.php +++ b/app/Http/Controllers/Admin/Shop/OfferController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Admin\Shop; use App\Datatables\Admin\Shop\OffersDataTable; use App\Http\Controllers\Controller; +use App\Http\Requests\Admin\Shop\StoreOfferPost; use App\Repositories\Shop\ArticleNatures; use App\Repositories\Shop\Articles; use App\Repositories\Shop\Offers; @@ -16,32 +17,30 @@ class OfferController extends Controller { public function index(OffersDataTable $dataTable) { - $data['article_natures'] = ArticleNatures::getOptions(); - $data['packages'] = Packages::getOptions(); + $data = [ + 'article_natures' => ArticleNatures::getOptions(), + 'packages' => Packages::getOptions(), + ]; return $dataTable->render('Admin.Shop.Offers.list', $data ?? []); } public function create() { - $data['articles'] = Articles::getOptionsWithNature(); - $data['tariffs'] = Tariffs::getOptions(); - $data['variations'] = Variations::getOptions(); + $data = Offers::init(); return view('Admin.Shop.Offers.create', $data); } public function edit($id) { - $data['offer'] = Offers::get($id)->toArray(); - $data['articles'] = Articles::getOptionsWithNature(); - $data['tariffs'] = Tariffs::getOptions(); - $data['variations'] = Variations::getOptions(); + $data = Offers::init(); + $data['offer'] = Offers::getArray($id); return view('Admin.Shop.Offers.edit', $data); } - public function store(Request $request) + public function store(StoreOfferPost $request) { $data = $request->all(); $ret = Offers::store($data); @@ -51,7 +50,7 @@ class OfferController extends Controller public function show($id) { - $data['offer'] = Offers::get($id)->toArray(); + $data['offer'] = Offers::getArray($id); return view('Admin.Shop.Offers.view', $data); } diff --git a/app/Http/Requests/Admin/Shop/StoreArticlePost.php b/app/Http/Requests/Admin/Shop/StoreArticlePost.php index 91f080d4..016338c9 100644 --- a/app/Http/Requests/Admin/Shop/StoreArticlePost.php +++ b/app/Http/Requests/Admin/Shop/StoreArticlePost.php @@ -14,10 +14,11 @@ class StoreArticlePost extends FormRequest public function rules() { return [ - 'ref' => 'required|unique:articles,ref,'.$this->ref, + 'ref' => 'required|unique:shop_articles,ref,'.$this->id, 'product_type' => 'required', 'product_id' => 'required', 'article_nature_id' => 'required', + 'name' => 'required', ]; } } diff --git a/app/Http/Requests/Admin/Shop/StoreOfferPost.php b/app/Http/Requests/Admin/Shop/StoreOfferPost.php new file mode 100644 index 00000000..90e3b6e1 --- /dev/null +++ b/app/Http/Requests/Admin/Shop/StoreOfferPost.php @@ -0,0 +1,23 @@ + 'required', + 'variation_id' => 'required', + 'tariff_id' => 'required', + 'weight' => 'required', + ]; + } +} diff --git a/app/Repositories/Shop/Articles.php b/app/Repositories/Shop/Articles.php index 2727bf75..6a7197e6 100644 --- a/app/Repositories/Shop/Articles.php +++ b/app/Repositories/Shop/Articles.php @@ -4,6 +4,7 @@ namespace App\Repositories\Shop; use App\Models\Shop\Article; use App\Models\Shop\Merchandise; +use App\Traits\Model\Basic; use App\Repositories\Botanic\Species; use App\Repositories\Botanic\Varieties; use App\Repositories\Core\Comments; @@ -13,7 +14,7 @@ use Illuminate\Support\Str; class Articles { - use Imageable; + use Basic, Imageable; public static function autocomplete($str) { @@ -73,11 +74,6 @@ class Articles return Offers::getOffersByArticle($id); } - public static function getOptions() - { - return Article::orderBy('name', 'asc')->pluck('name', 'id')->toArray(); - } - public static function getOptionsWithNature() { $articles = Article::with(['article_nature'])->get(); @@ -391,17 +387,17 @@ class Articles { switch ($product_type) { case 'App\Models\Botanic\Variety': - $data['images'] = Varieties::getImages($product_id); + $images = Varieties::getImages($product_id); break; case 'App\Models\Botanic\Specie': - $data['images'] = Species::getImages($product_id); + $images = Species::getImages($product_id); break; case 'App\Models\Shop\Merchandise': - $data['images'] = Merchandises::getImages($product_id); + $images = Merchandises::getImages($product_id); break; } - return $data ?? false; + return $images ?? false ? ['images' => $images] : false; } public static function getMeta(&$data = []) @@ -516,11 +512,6 @@ class Articles return Prices::getByArticle($article->id); } - public static function get($id) - { - return Article::findOrFail($id); - } - public static function getFullImagesByArticleId($id) { $article = self::get($id); @@ -611,32 +602,6 @@ class Articles return $article->id; } - public static function store($data) - { - $data['visible'] = $data['visible'] ?? false; - - return ($data['id'] ?? false) ? self::update($data) : self::create($data); - } - - public static function create($data) - { - return Article::create($data); - } - - public static function update($data, $id = false) - { - $id = $id ? $id : $data['id']; - $article = self::get($id); - $ret = $article->update($data); - - return $article; - } - - public static function destroy($id) - { - return Article::destroy($id); - } - public static function storeCategories($article, $categories) { if (! $categories) { @@ -677,4 +642,9 @@ class Articles return $name ? hash('crc32c', Str::slug($name)) : false; } + + public static function getModel() + { + return Article::query(); + } } diff --git a/app/Repositories/Shop/Offers.php b/app/Repositories/Shop/Offers.php index 3ce58d6c..5968d3db 100644 --- a/app/Repositories/Shop/Offers.php +++ b/app/Repositories/Shop/Offers.php @@ -3,12 +3,19 @@ namespace App\Repositories\Shop; use App\Models\Shop\Offer; +use App\Traits\Model\Basic; class Offers { - public static function count() + use Basic; + + public static function init() { - return Offer::count(); + return [ + 'articles' => Articles::getOptionsWithNature(), + 'tariffs' => Tariffs::getOptions(), + 'variations' => Variations::getOptions(), + ]; } public static function getWeight($id, $quantity = 1) @@ -116,42 +123,13 @@ class Offers return Offer::with(['article.tags'])->byTags($tags)->get(); } - public static function getAll() - { - return Offer::get(); - } - - public static function get($id, $relations = false) - { - return $relations ? Offer::with($relations)->findOrFail($id) : Offer::findOrFail($id); - } - - public static function store($data) - { - return ($data['id'] ?? false) ? self::update($data) : self::create($data); - } - - public static function create($data) - { - return Offer::create($data); - } - - public static function update($data, $id = false) - { - $id = $id ? $id : $data['id']; - $item = self::get($id); - $item->update($data); - - return $item; - } - - public static function destroy($id) - { - return Offer::destroy($id); - } - public static function toggle_active($id, $status_id) { return self::update(['status_id' => $status_id], $id); } + + public static function getModel() + { + return Offer::query(); + } } diff --git a/resources/views/Admin/Shop/Articles/create.blade.php b/resources/views/Admin/Shop/Articles/create.blade.php index 6ca79c5a..5ac2ddd7 100644 --- a/resources/views/Admin/Shop/Articles/create.blade.php +++ b/resources/views/Admin/Shop/Articles/create.blade.php @@ -1,13 +1,9 @@ @extends('layout.index', [ - 'title' => __('shop.articles.title'), - 'subtitle' => __('shop.articles.add'), - 'breadcrumb' => [__('shop.articles.title'), __('shop.articles.add')] + 'title' => __('shop.articles.title'), + 'subtitle' => __('shop.articles.add'), + 'breadcrumb' => [__('shop.articles.title'), __('shop.articles.add')], ]) @section('content') - - {{ Form::open(['route' => 'Admin.Shop.Articles.store', 'id' => 'article-form', 'autocomplete' => 'off', 'files' => true]) }} - @include('Admin.Shop.Articles.form') - - + @include('Admin.Shop.Articles.form') @endsection diff --git a/resources/views/Admin/Shop/Articles/edit.blade.php b/resources/views/Admin/Shop/Articles/edit.blade.php index 6a131753..d1c6c28a 100644 --- a/resources/views/Admin/Shop/Articles/edit.blade.php +++ b/resources/views/Admin/Shop/Articles/edit.blade.php @@ -1,15 +1,9 @@ @extends('layout.index', [ - 'title' => __('shop.articles.title'), - 'subtitle' => __('shop.articles.edit'), - 'breadcrumb' => [__('shop.articles.title'), __('shop.articles.edit')] + 'title' => __('shop.articles.title'), + 'subtitle' => __('shop.articles.edit'), + 'breadcrumb' => [__('shop.articles.title'), __('shop.articles.edit')], ]) @section('content') - - {{ Form::open(['route' => 'Admin.Shop.Articles.store', 'id' => 'article-form', 'autocomplete' => 'off', 'files' => true]) }} - - - @include('Admin.Shop.Articles.form') - {{ Form::close() }} - + @include('Admin.Shop.Articles.form') @endsection diff --git a/resources/views/Admin/Shop/Articles/form.blade.php b/resources/views/Admin/Shop/Articles/form.blade.php index 28ab643d..195fee3d 100644 --- a/resources/views/Admin/Shop/Articles/form.blade.php +++ b/resources/views/Admin/Shop/Articles/form.blade.php @@ -1,10 +1,9 @@ -