diff --git a/app/DataTables/Shop/ArticleAttributeValuesDataTable.php b/app/DataTables/Shop/ArticleAttributeValuesDataTable.php deleted file mode 100644 index cbb626e9..00000000 --- a/app/DataTables/Shop/ArticleAttributeValuesDataTable.php +++ /dev/null @@ -1,28 +0,0 @@ -title('Attributs'), - Column::make('article_attribute_family.name')->title('Famille d\'attributs')->sortable(false), - self::makeColumnButtons(), - ]; - } - -} diff --git a/app/DataTables/Shop/UnitiesDataTable.php b/app/DataTables/Shop/UnitiesDataTable.php new file mode 100644 index 00000000..702e240c --- /dev/null +++ b/app/DataTables/Shop/UnitiesDataTable.php @@ -0,0 +1,28 @@ +title('Attributs'), + Column::make('price_family.name')->title('Famille')->orderable(false), + self::makeColumnButtons(), + ]; + } + +} diff --git a/app/Http/Controllers/Shop/Admin/ArticleAttributeController.php b/app/Http/Controllers/Shop/Admin/ArticleAttributeController.php deleted file mode 100644 index 1fda5c36..00000000 --- a/app/Http/Controllers/Shop/Admin/ArticleAttributeController.php +++ /dev/null @@ -1,86 +0,0 @@ -render('Shop.Admin.ArticleAttributeValues.list', $data); - } - - public function getDatatable(Request $request) - { - return ArticleAttributeValues::getTables($request->all()); - } - - public function getOptionsByFamily(Request $request) - { - $id = $request->input('family_id'); - return response()->json(ArticleAttributeValues::getSelectByFamily($id)); - } - - public function create() - { - return view('Shop.Admin.ArticleAttributeValues.create'); - } - - public function store(Request $request) - { - $ret = ArticleAttributeValues::store($request->all()); - return redirect()->route('Shop.Admin.ArticleAttributeValues.index'); - } - - public function show($id) - { - $data = ArticleAttributeValues::get($id); - return view('Shop.Admin.ArticleAttributeValues.view', $data); - } - - public function edit($id) - { - $data = ArticleAttributeValues::get($id); - return view('Shop.Admin.ArticleAttributeValues.edit', $data); - } - - public function update(Request $request) - { - // - } - - public function destroy($id) - { - return ArticleAttributeValues::destroy($id); - } - -} diff --git a/app/Http/Controllers/Shop/Admin/PriceFamilyController.php b/app/Http/Controllers/Shop/Admin/PriceFamilyController.php deleted file mode 100644 index 345d6fd0..00000000 --- a/app/Http/Controllers/Shop/Admin/PriceFamilyController.php +++ /dev/null @@ -1,56 +0,0 @@ -render('Shop.Admin.PriceFamilies.list'); - } - - public function getDatatable(Request $request) - { - return PriceFamilies::getTables($request->all()); - } - - public function create() - { - return view('Shop.Admin.PriceFamilies.create'); - } - - public function store(Request $request) - { - $ret = PriceFamilies::store($request->all()); - return redirect()->route('Shop.Admin.PriceFamilies.index'); - } - - public function show($id) - { - $data = PriceFamilies::get($id); - return view('Shop.Admin.PriceFamilies.view', $data); - } - - public function edit($id) - { - $data = PriceFamilies::get($id); - return view('Shop.Admin.PriceFamilies.edit', $data); - } - - public function update(Request $request) - { - // - } - - public function destroy($id) - { - return PriceFamilies::destroy($id); - } - -} diff --git a/app/Http/Controllers/Shop/Admin/PriceFamilyValueController.php b/app/Http/Controllers/Shop/Admin/PriceFamilyValueController.php deleted file mode 100644 index 62801e47..00000000 --- a/app/Http/Controllers/Shop/Admin/PriceFamilyValueController.php +++ /dev/null @@ -1,64 +0,0 @@ -render('Shop.Admin.PriceFamilyValues.list', $data); - } - - public function getDatatable(Request $request) - { - return PriceFamilyValues::getTables($request->all()); - } - - public function getOptionsByFamily(Request $request) - { - $id = $request->input('family_id'); - return response()->json(PriceFamilyValues::getSelectByFamily($id)); - } - - public function create() - { - return view('Shop.Admin.PriceFamilyValues.create'); - } - - public function store(Request $request) - { - $ret = PriceFamilyValues::store($request->all()); - return redirect()->route('Shop.Admin.PriceFamilyValues.index'); - } - - public function show($id) - { - $data = PriceFamilyValues::get($id); - return view('Shop.Admin.PriceFamilyValues.view', $data); - } - - public function edit($id) - { - $data = PriceFamilyValues::get($id); - return view('Shop.Admin.PriceFamilyValues.edit', $data); - } - - public function update(Request $request) - { - // - } - - public function destroy($id) - { - return PriceFamilyValues::destroy($id); - } - -} diff --git a/app/Http/Controllers/Shop/Admin/UnityController.php b/app/Http/Controllers/Shop/Admin/UnityController.php index d3988574..6e9b733d 100644 --- a/app/Http/Controllers/Shop/Admin/UnityController.php +++ b/app/Http/Controllers/Shop/Admin/UnityController.php @@ -5,50 +5,50 @@ namespace App\Http\Controllers\Shop\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; -use App\Repositories\Shop\PriceFamilies; -use App\Repositories\Shop\UnityValues; -use App\DataTables\Shop\UnityValuesDataTable; +use App\Repositories\Shop\ArticleFamilies; +use App\Repositories\Shop\Unities; +use App\DataTables\Shop\UnitiesDataTable; class UnityValueController extends Controller { - public function index(UnityValuesDataTable $dataTable) + public function index(UnitiesDataTable $dataTable) { - $data['families'] = PriceFamilies::getOptions(); - return $dataTable->render('Shop.Admin.UnityValues.list', $data); + $data['families'] = ArticleFamilies::getOptions(); + return $dataTable->render('Shop.Admin.Unities.list', $data); } public function getDatatable(Request $request) { - return UnityValues::getTables($request->all()); + return Unities::getTables($request->all()); } public function getOptionsByFamily(Request $request) { $id = $request->input('family_id'); - return response()->json(UnityValues::getSelectByFamily($id)); + return response()->json(Unities::getSelectByFamily($id)); } public function create() { - return view('Shop.Admin.UnityValues.create'); + return view('Shop.Admin.Unities.create'); } public function store(Request $request) { - $ret = UnityValues::store($request->all()); - return redirect()->route('Shop.Admin.UnityValues.index'); + $ret = Unities::store($request->all()); + return redirect()->route('Shop.Admin.Unities.index'); } public function show($id) { - $data = UnityValues::get($id); - return view('Shop.Admin.UnityValues.view', $data); + $data = Unities::get($id); + return view('Shop.Admin.Unities.view', $data); } public function edit($id) { - $data = UnityValues::get($id); - return view('Shop.Admin.UnityValues.edit', $data); + $data = Unities::get($id); + return view('Shop.Admin.Unities.edit', $data); } public function update(Request $request) @@ -58,7 +58,7 @@ class UnityValueController extends Controller public function destroy($id) { - return UnityValues::destroy($id); + return Unities::destroy($id); } } diff --git a/app/Models/Shop/ArticleFamily.php b/app/Models/Shop/ArticleFamily.php index b4aa3f60..c3d82cb2 100644 --- a/app/Models/Shop/ArticleFamily.php +++ b/app/Models/Shop/ArticleFamily.php @@ -3,9 +3,12 @@ namespace App\Models\Shop; use Illuminate\Database\Eloquent\Model; +use Staudenmeir\EloquentHasManyDeep\HasRelationships; class ArticleFamily extends Model { + use HasRelationships; + protected $guarded = ['id']; protected $table = 'shop_article_families'; @@ -13,4 +16,14 @@ class ArticleFamily extends Model { return $this->hasMany('App\Models\Shop\Article'); } + + public function prices() + { + return $this->hasMany('App\Models\Shop\Price'); + } + + public function unities() + { + return $this->hasMany('App\Models\Shop\Unity'); + } } \ No newline at end of file diff --git a/app/Models/Shop/ArticlePrice.php b/app/Models/Shop/ArticlePrice.php index b3c12e09..f078e8d6 100644 --- a/app/Models/Shop/ArticlePrice.php +++ b/app/Models/Shop/ArticlePrice.php @@ -17,9 +17,9 @@ class ArticlePrice extends Model return $this->hasOne('App\Models\Price'); } - public function priceFamilyValue() + public function article_family() { - return $this->belongsTo('App\Models\PriceFamilyValue'); + return $this->belongsTo('App\Models\ArticleFamily'); } public function scopeByQuantity($query, $quantity) @@ -27,8 +27,8 @@ class ArticlePrice extends Model return $query->orderBy('quantity', 'desc')->where('quantity', '<', $quantity)->first(); } - public function scopeByPriceFamilyValue($query, $id) + public function scopeByFamily($query, $id) { - return $query->where('price_family_value_id', $id); + return $query->where('article_family_value_id', $id); } } \ No newline at end of file diff --git a/app/Models/Shop/Price.php b/app/Models/Shop/Price.php index 75acd42c..bfda0056 100644 --- a/app/Models/Shop/Price.php +++ b/app/Models/Shop/Price.php @@ -17,9 +17,9 @@ class Price extends Model return $this->belongsTo('App\Models\Shop\Article'); } - public function price_family() + public function article_family() { - return $this->belongsTo('App\Models\Shop\PriceFamily'); + return $this->belongsTo('App\Models\Shop\ArticleFamily'); } public function generic() @@ -29,7 +29,7 @@ class Price extends Model public function generic_prices() { - + } public function scopeByArticle($query, $id) @@ -37,9 +37,9 @@ class Price extends Model return $query->where('article_id', $id); } - public function scopeByPriceFamily($query, $id) + public function scopeByArticleFamily($query, $id) { - return $query->where('price_family_id', $id); + return $query->where('article_family_id', $id); } public function scopeGeneric($query) diff --git a/app/Models/Shop/PriceFamily.php b/app/Models/Shop/PriceFamily.php deleted file mode 100644 index ebe55210..00000000 --- a/app/Models/Shop/PriceFamily.php +++ /dev/null @@ -1,30 +0,0 @@ -hasMany('App\Models\Shop\Price'); - } - - public function values() - { - return $this->hasMany('App\Models\Shop\PriceFamilyValue'); - } - - public function articles() - { - return $this->hasManyThrough('App\Models\Shop\Article','App\Models\Shop\Price'); - } - -} \ No newline at end of file diff --git a/app/Models/Shop/PriceFamilyValue.php b/app/Models/Shop/PriceFamilyValue.php deleted file mode 100644 index 64684d0c..00000000 --- a/app/Models/Shop/PriceFamilyValue.php +++ /dev/null @@ -1,22 +0,0 @@ -belongsTo('App\Models\Shop\PriceFamily'); - } - - public function scopeByFamily($query, $id) - { - return $query->where('price_family_id'); - } - -} \ No newline at end of file diff --git a/app/Models/Shop/Unity.php b/app/Models/Shop/Unity.php index dbdaa5b4..3bdfc5c1 100644 --- a/app/Models/Shop/Unity.php +++ b/app/Models/Shop/Unity.php @@ -6,8 +6,16 @@ use Illuminate\Database\Eloquent\Model; class Unity extends Model { - protected $guarded = ['id']; - protected $table = 'shop_unities'; + protected $guarded = ['id']; + protected $table = 'shop_unities'; + public function article_family() + { + return $this->belongsTo('App\Models\Shop\ArticleFamily'); + } + public function scopeByFamily($query, $id) + { + return $query->where('article_family_id'); + } } diff --git a/app/Repositories/Shop/Articles.php b/app/Repositories/Shop/Articles.php index 7410d705..4102a186 100644 --- a/app/Repositories/Shop/Articles.php +++ b/app/Repositories/Shop/Articles.php @@ -41,7 +41,7 @@ class Articles $data['price_generics'] = PriceGenericCategories::getOptionsWithChildrens(); $data['families_options'] = ArticleFamilies::getOptions(); $data['taxes_options'] = Taxes::getOptions(); - $data['attribute_families_options'] = PriceFamilies::getOptions(); + $data['unities'] = Unities::getSelectByFamily($data['article_family_id']); $data['tags_list'] = TagGroups::getTreeTags(); $data['models_options'] = ['App\Models\Botanic\Specie' => 'Espèces', 'App\Models\Botanic\Variety' => 'Variétés']; return $data; diff --git a/app/Repositories/Shop/PriceFamilies.php b/app/Repositories/Shop/PriceFamilies.php deleted file mode 100644 index d399472f..00000000 --- a/app/Repositories/Shop/PriceFamilies.php +++ /dev/null @@ -1,55 +0,0 @@ -make(true); - } - - public static function getAll() - { - return PriceFamily::orderBy('name','asc')->get(); - } - - public static function get($id) - { - return PriceFamily::find($id); - } - - public static function getOptions() - { - return PriceFamily::get()->pluck('name','id')->toArray(); - } - - 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) - { - return PriceFamily::create($data); - } - - public static function update($data) - { - return PriceFamily::find($id)->update($data); - } - - public static function destroy($id) - { - return PriceFamily::destroy($id); - } - -} diff --git a/app/Repositories/Shop/PriceFamilyValues.php b/app/Repositories/Shop/PriceFamilyValues.php deleted file mode 100644 index ecf1140b..00000000 --- a/app/Repositories/Shop/PriceFamilyValues.php +++ /dev/null @@ -1,67 +0,0 @@ -make(true); - } - - public static function getAll() - { - return PriceFamilyValue::orderBy('name','asc')->get(); - } - - public static function get($id) - { - return PriceFamilyValue::find($id); - } - - public static function getOptions() - { - return PriceFamilyValue::get()->pluck('value','id')->toArray(); - } - - public static function getSelectByFamily($family_id) - { - // return PriceFamilyValue::byFamily($attribute_family_id)->get()->pluck('value','id')->toArray(); - $values = PriceFamilyValue::byFamily($family_id)->get(); - $data = []; - foreach ($values as $value) - { - $data[] = ['id' => $value->id, 'text' => $value->value]; - } - return collect($data)->sortBy('text')->values()->all(); - } - - 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) - { - return PriceFamilyValue::create($data); - } - - public static function update($data) - { - return PriceFamilyValue::find($id)->update($data); - } - - public static function destroy($id) - { - return PriceFamilyValue::destroy($id); - } - -} diff --git a/app/Repositories/Shop/Unities.php b/app/Repositories/Shop/Unities.php index 0e756f57..3a4dcfde 100644 --- a/app/Repositories/Shop/Unities.php +++ b/app/Repositories/Shop/Unities.php @@ -23,6 +23,17 @@ class Unities return Unity::orderBy('value','asc')->get()->pluck('value','id')->toArray(); } + public static function getSelectByFamily($family_id) + { + $values = Unity::byFamily($family_id)->get(); + $data = []; + foreach ($values as $value) + { + $data[] = ['id' => $value->id, 'text' => $value->value]; + } + return collect($data)->sortBy('text')->values()->all(); + } + public static function getAll() { return Unity::orderBy('value','asc')->get(); diff --git a/resources/views/Shop/Admin/Articles/form.blade.php b/resources/views/Shop/Admin/Articles/form.blade.php index f905711b..64380c3d 100644 --- a/resources/views/Shop/Admin/Articles/form.blade.php +++ b/resources/views/Shop/Admin/Articles/form.blade.php @@ -52,8 +52,7 @@
| - {{ $generic['category']['name'] ?? null }} - | - @foreach ($generic['prices'] as $price) -- {{ $price['quantity'] ?? null }} {{ $price['unity_id'] ?? null }} - | - @endforeach - -
|---|---|
| - {{ $generic['name'] ?? null }} - | - @foreach ($generic['prices'] as $price) -- {{ $price['price_taxed'] ?? null }} - | - @endforeach -