diff --git a/app/Datatables/Admin/Shop/ProducersDataTable.php b/app/Datatables/Admin/Shop/ProducersDataTable.php index 8843eb29..672f986c 100644 --- a/app/Datatables/Admin/Shop/ProducersDataTable.php +++ b/app/Datatables/Admin/Shop/ProducersDataTable.php @@ -44,9 +44,9 @@ class ProducersDataTable extends DataTable 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('merchandises_count')->title('#Mar')->class('text-right')->searchable(false), - Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false), - Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false), + Column::make('merchandises_count')->title('#Marchandises')->class('text-right')->searchable(false), + // Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false), + // Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false), $this->makeColumnButtons(), ]; } diff --git a/app/Http/Controllers/Admin/Shop/MerchandiseController.php b/app/Http/Controllers/Admin/Shop/MerchandiseController.php index 0c0e0081..7d8a6278 100644 --- a/app/Http/Controllers/Admin/Shop/MerchandiseController.php +++ b/app/Http/Controllers/Admin/Shop/MerchandiseController.php @@ -3,9 +3,8 @@ namespace App\Http\Controllers\Admin\Shop; use App\Datatables\Admin\Shop\MerchandisesDataTable; +use App\Http\Requests\Admin\Shop\StoreMerchandisePost; use App\Repositories\Shop\Merchandises; -use App\Repositories\Shop\Producers; -use App\Repositories\Shop\TagGroups; use Illuminate\Http\Request; class MerchandiseController extends Controller @@ -17,13 +16,12 @@ class MerchandiseController extends Controller public function create() { - $data['producers_list'] = Producers::getOptions(); - $data['tags_list'] = TagGroups::getTreeTags(); + $data = Merchandises::init(); return view('Admin.Shop.Merchandises.create', $data); } - public function store(Request $request) + public function store(StoreMerchandisePost $request) { $data = $request->all(); Merchandises::storeFull($data); @@ -33,14 +31,15 @@ class MerchandiseController extends Controller public function show($id) { - return view('Admin.Shop.Merchandises.view', Merchandises::get($id)); + $data = Merchandises::get($id); + + return view('Admin.Shop.Merchandises.view', $data); } public function edit($id) { - $data['merchandise'] = Merchandises::getFull($id); - $data['producers_list'] = Producers::getOptions(); - $data['tags_list'] = TagGroups::getTreeTags(); + $data = Merchandises::init(); + $data['merchandise'] = Merchandises::getArray($id); return view('Admin.Shop.Merchandises.edit', $data); } diff --git a/app/Http/Controllers/Admin/Shop/OfferController.php b/app/Http/Controllers/Admin/Shop/OfferController.php index 591c226d..0be12754 100644 --- a/app/Http/Controllers/Admin/Shop/OfferController.php +++ b/app/Http/Controllers/Admin/Shop/OfferController.php @@ -69,7 +69,7 @@ class OfferController extends Controller public function previewVariation($id) { - $data['variation'] = Variations::get($id)->toArray(); + $data['variation'] = Variations::getArray($id); return view('Admin.Shop.Offers.partials.variation', $data); } diff --git a/app/Http/Controllers/Admin/Shop/ProducerController.php b/app/Http/Controllers/Admin/Shop/ProducerController.php index f04c5457..22f667c1 100644 --- a/app/Http/Controllers/Admin/Shop/ProducerController.php +++ b/app/Http/Controllers/Admin/Shop/ProducerController.php @@ -16,7 +16,7 @@ class ProducerController extends Controller public function create() { - $data['tags_list'] = TagGroups::getTreeTags(); + $data = Producers::init(); return view('Admin.Shop.Producers.create', $data); } @@ -31,13 +31,15 @@ class ProducerController extends Controller public function show($id) { - return view('Admin.Shop.Producers.view', Producers::get($id)); + $data = Producers::get($id); + + return view('Admin.Shop.Producers.view', $data); } public function edit($id) { + $data = Producers::init(); $data['producer'] = Producers::getFull($id); - $data['tags_list'] = TagGroups::getTreeTags(); return view('Admin.Shop.Producers.edit', $data); } diff --git a/app/Http/Controllers/Admin/Shop/VariationController.php b/app/Http/Controllers/Admin/Shop/VariationController.php index 83b00ea7..05b67075 100644 --- a/app/Http/Controllers/Admin/Shop/VariationController.php +++ b/app/Http/Controllers/Admin/Shop/VariationController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Admin\Shop; use App\Datatables\Admin\Shop\VariationsDataTable; +use App\Http\Requests\Admin\Shop\StoreVariationPost; use App\Repositories\Shop\Packages; use App\Repositories\Shop\Unities; use App\Repositories\Shop\Variations; @@ -24,22 +25,20 @@ class VariationController extends Controller public function create() { - $data['packages'] = Packages::getOptions(); - $data['unities'] = Unities::getOptions(); + $data = Variations::init(); return view('Admin.Shop.Variations.create', $data); } public function edit($id) { + $data = Variations::init(); $data['variation'] = Variations::get($id); - $data['packages'] = Packages::getOptions(); - $data['unities'] = Unities::getOptions(); return view('Admin.Shop.Variations.edit', $data); } - public function store(Request $request) + public function store(StoreVariationPost $request) { $ret = Variations::store($request->all()); diff --git a/app/Http/Requests/Admin/Shop/StoreArticleNaturePost.php b/app/Http/Requests/Admin/Shop/StoreArticleNaturePost.php new file mode 100644 index 00000000..73c6defb --- /dev/null +++ b/app/Http/Requests/Admin/Shop/StoreArticleNaturePost.php @@ -0,0 +1,21 @@ + 'required', + 'name' => 'required', + ]; + } +} diff --git a/app/Http/Requests/Admin/Shop/StoreMerchandisesPost.php b/app/Http/Requests/Admin/Shop/StoreMerchandisesPost.php new file mode 100644 index 00000000..3adc6f05 --- /dev/null +++ b/app/Http/Requests/Admin/Shop/StoreMerchandisesPost.php @@ -0,0 +1,21 @@ + 'required', + 'producer_id' => 'required', + ]; + } +} diff --git a/app/Http/Requests/Admin/Shop/StoreProducerPost.php b/app/Http/Requests/Admin/Shop/StoreProducerPost.php new file mode 100644 index 00000000..f5b26e47 --- /dev/null +++ b/app/Http/Requests/Admin/Shop/StoreProducerPost.php @@ -0,0 +1,21 @@ + 'required', + 'alias' => 'required', + ]; + } +} diff --git a/app/Http/Requests/Admin/Shop/StoreVariationPost.php b/app/Http/Requests/Admin/Shop/StoreVariationPost.php new file mode 100644 index 00000000..23074c87 --- /dev/null +++ b/app/Http/Requests/Admin/Shop/StoreVariationPost.php @@ -0,0 +1,23 @@ + 'required', + 'quantity' => 'required', + 'unity_id' => 'required', + 'weight' => 'required', + ]; + } +} diff --git a/app/Repositories/Shop/Merchandises.php b/app/Repositories/Shop/Merchandises.php index 150fc883..062faac7 100644 --- a/app/Repositories/Shop/Merchandises.php +++ b/app/Repositories/Shop/Merchandises.php @@ -3,12 +3,21 @@ namespace App\Repositories\Shop; use App\Models\Shop\Merchandise; +use App\Traits\Model\Basic; use App\Repositories\Core\Tag; use App\Traits\Repository\Imageable; class Merchandises { - use Imageable; + use Basic, Imageable; + + public static function init() + { + return [ + 'producers_list' => Producers::getOptions(), + 'tags_list' => TagGroups::getTreeTags(), + ]; + } public static function autocomplete($str) { @@ -26,11 +35,6 @@ class Merchandises return Merchandise::with(['price_lists.price_list_values', 'price_lists.sale_channel'])->find($id); } - public static function getOptions() - { - return Merchandise::orderBy('name', 'asc')->get()->pluck('name', 'id')->toArray(); - } - public static function getStatus($status_id) { return self::getStatuses()[$status_id]; @@ -41,36 +45,11 @@ class Merchandises return ['Actif', 'Suspendu', 'Invisible', 'Obsolete']; } - public static function getAll() - { - return Merchandise::orderBy('name', 'asc')->get(); - } - - public static function get($id) - { - return Merchandise::find($id); - } - - public static function getFull($id) - { - $data = self::get($id)->toArray(); - - return $data; - } - public static function getTags($id) { return self::get($id)->tags; } - public static function store($data) - { - $id = isset($data['id']) ? $data['id'] : false; - $item = $id ? self::update($data, $id) : self::create($data); - - return $item; - } - public static function storeFull($data) { $images = $data['images'] ?? false; @@ -89,22 +68,9 @@ class Merchandises return Tag::storeTags($merchandise, $tags); } - public static function create($data) - { - return Merchandise::create($data); - } - public static function update($data, $id = false) + public static function getModel() { - $id = $id ? $id : $data['id']; - $item = self::get($id); - $item->update($data); - - return $item; - } - - public static function destroy($id) - { - return Merchandise::destroy($id); + return Merchandise::query(); } } diff --git a/app/Repositories/Shop/Producers.php b/app/Repositories/Shop/Producers.php index 91929c2d..7de14326 100644 --- a/app/Repositories/Shop/Producers.php +++ b/app/Repositories/Shop/Producers.php @@ -4,11 +4,19 @@ namespace App\Repositories\Shop; use App\Models\Shop\Producer; use App\Repositories\Core\Tag; +use App\Traits\Model\Basic; use App\Traits\Repository\Imageable; class Producers { - use Imageable; + use Basic, Imageable; + + public static function init() + { + return [ + 'tags_list' => TagGroups::getTreeTags(), + ]; + } public static function autocomplete($str) { @@ -31,21 +39,6 @@ class Producers return Tag::storeTags($variety, $tags); } - public static function getOptions() - { - return Producer::orderBy('name', 'asc')->get()->pluck('name', 'id')->toArray(); - } - - public static function getAll() - { - return Producer::orderBy('name', 'asc')->get(); - } - - public static function get($id) - { - return Producer::find($id); - } - public static function getFull($id) { $producer = self::get($id); @@ -73,27 +66,8 @@ class Producers return $producer; } - public static function store($data) + public static function getModel() { - return ($data['id'] ?? false) ? self::update($data) : self::create($data); - } - - public static function create($data) - { - return Producer::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 Producer::destroy($id); + return Producer::query(); } } diff --git a/app/Repositories/Shop/Variations.php b/app/Repositories/Shop/Variations.php index 32e33768..78d13604 100644 --- a/app/Repositories/Shop/Variations.php +++ b/app/Repositories/Shop/Variations.php @@ -3,10 +3,20 @@ namespace App\Repositories\Shop; use App\Models\Shop\Variation; +use App\Traits\Model\Basic; use Illuminate\Support\Str; class Variations { + use Basic; + + public static function init() + { + return [ + 'packages' => Packages::getOptions(), + 'unities' => Unities::getOptions(), + ]; + } public static function autocomplete($str) { $data = Variation::where('name', 'LIKE', "%${str}%")->orderBy('name')->limit(30)->get()->pluck('name', 'id'); @@ -36,7 +46,10 @@ class Variations public static function getName($variation) { - return $variation->package->value.' '.$variation->quantity.' '.($variation->unity->value ?? null).' '.Str::limit(strip_tags($variation->description), 15, ' (...)'); + return $variation->package->value.' '. + $variation->quantity.' '. + ($variation->unity->value ?? null).' '. + Str::limit(strip_tags($variation->description), 15, ' (...)'); } public static function buildName($data) @@ -44,29 +57,12 @@ class Variations return Packages::getName($data['package_id']).' '.$data['quantity'].' '.Unities::getName($data['unity_id']); } - public static function getAll() - { - return Variation::orderBy('value', 'asc')->get(); - } public static function getFull($id) { return Variation::with(['package', 'unity'])->findOrFail($id); } - public static function get($id) - { - return Variation::findOrFail($id); - } - - public static function store($data) - { - $id = isset($data['id']) ? $data['id'] : false; - $item = $id ? self::update($data) : self::create($data); - - return $item->id; - } - public static function create($data) { $data['name'] = self::buildName($data); @@ -76,7 +72,7 @@ class Variations public static function update($data, $id = false) { - $id = isset($data['id']) ? $data['id'] : false; + $id = $id ? $id : $data['id']; $variation = self::get($id); $data['name'] = self::buildName($data); $variation->update($data); @@ -84,8 +80,8 @@ class Variations return $variation; } - public static function destroy($id) + public static function getModel() { - return Variation::destroy($id); + return Variation::query(); } } diff --git a/resources/lang/fr/shop.php b/resources/lang/fr/shop.php index b463762e..7fdd5d86 100644 --- a/resources/lang/fr/shop.php +++ b/resources/lang/fr/shop.php @@ -35,6 +35,7 @@ return [ 'article_attribute_families' => [ 'title' => 'Familles d\'attributs', 'description' => 'Gérer les familles d\'attributs', + 'name' => 'Famille d\'attributs', 'add' => 'Ajouter une famille d\'attributs', 'edit' => 'Editer une famille d\'attributs', 'del' => 'Effacer une famille d\'attributs', @@ -145,6 +146,19 @@ return [ 'successdel' => 'Le colis a été correctement effacé', 'confirmdelete' => 'Confirmez-vous la suppression du colis ?', ], + 'merchandises' => [ + 'title' => 'Marchandises', + 'name' => 'Marchandise', + 'description' => 'Gérer les marchandises', + 'add' => 'Ajouter une marchandise', + 'edit' => 'Editer une marchandise', + 'del' => 'Effacer une marchandise', + 'list' => 'Liste des marchandises', + 'successadd' => 'La marchandise a été correctement ajoutée', + 'successmod' => 'La marchandise a été correctement modifiée', + 'successdel' => 'La marchandise a été correctement effacée', + 'confirmdelete' => 'Confirmez-vous la suppression de la marchandise ?', + ], 'offers' => [ 'title' => 'Offres', 'name' => 'Offre', @@ -171,9 +185,23 @@ return [ 'successdel' => 'La déclinaison a été correctement effacée', 'confirmdelete' => 'Confirmez-vous la suppression de la déclinaison ?', ], + 'producers' => [ + 'title' => 'Producteurs', + 'description' => 'Gérer les producteurs', + 'name' => 'Producteur', + 'add' => 'Ajouter un producteur', + 'edit' => 'Editer un producteur', + 'del' => 'Effacer un producteur', + 'list' => 'Liste des producteurs', + 'successadd' => 'Le producteur été correctement ajouté', + 'successmod' => 'Le producteur a été correctement modifié', + 'successdel' => 'Le producteur a été correctement effacé', + 'confirmdelete' => 'Confirmez-vous la suppression du producteur ?', + ], 'prices' => [ 'title' => 'Prix', 'description' => 'Gérer les prix', + 'name' => 'Prix', 'add' => 'Ajouter un prix', 'edit' => 'Editer un prix', 'del' => 'Effacer un prix', diff --git a/resources/views/Admin/Shop/Merchandises/create.blade.php b/resources/views/Admin/Shop/Merchandises/create.blade.php index 15dd0396..fdbeeeb6 100644 --- a/resources/views/Admin/Shop/Merchandises/create.blade.php +++ b/resources/views/Admin/Shop/Merchandises/create.blade.php @@ -1,11 +1,9 @@ @extends('layout.index', [ - 'title' => __('shop.merchandises.title'), - 'subtitle' => __('shop.merchandises.add'), - 'breadcrumb' => [__('shop.merchandises.title'), __('shop.merchandises.add')] + 'title' => __('shop.merchandises.title'), + 'subtitle' => __('shop.merchandises.add'), + 'breadcrumb' => [__('shop.merchandises.title'), __('shop.merchandises.add')], ]) @section('content') - {{ Form::open(['route' => 'Admin.Shop.Merchandises.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }} - @include('Admin.Shop.Merchandises.form') - + @include('Admin.Shop.Merchandises.form') @endsection diff --git a/resources/views/Admin/Shop/Merchandises/edit.blade.php b/resources/views/Admin/Shop/Merchandises/edit.blade.php index f27012c1..23d26d10 100644 --- a/resources/views/Admin/Shop/Merchandises/edit.blade.php +++ b/resources/views/Admin/Shop/Merchandises/edit.blade.php @@ -1,12 +1,9 @@ @extends('layout.index', [ - 'title' => __('Shop.merchandises.title'), - 'subtitle' => __('Shop.merchandises.edit'), - 'breadcrumb' => [__('Shop.merchandises.title'), __('Shop.merchandises.edit')] + 'title' => __('Shop.merchandises.title'), + 'subtitle' => __('Shop.merchandises.edit'), + 'breadcrumb' => [__('Shop.merchandises.title'), __('Shop.merchandises.edit')], ]) @section('content') - {{ Form::open(['route' => 'Admin.Shop.Merchandises.store', 'id' => 'form', 'autocomplete' => 'off', 'files' => true]) }} - - @include('Admin.Shop.Merchandises.form') - + @include('Admin.Shop.Merchandises.form') @endsection diff --git a/resources/views/Admin/Shop/Merchandises/form.blade.php b/resources/views/Admin/Shop/Merchandises/form.blade.php index 8f836452..5565c2c9 100644 --- a/resources/views/Admin/Shop/Merchandises/form.blade.php +++ b/resources/views/Admin/Shop/Merchandises/form.blade.php @@ -1,75 +1,88 @@ +{{ Form::open([ + 'route' => 'Admin.Shop.Merchandises.store', + 'id' => 'merchandise-form', + 'autocomplete' => 'off', + 'files' => true, +]) }} + +