diff --git a/app/DataTables/Shop/ArticlePriceGenericsDataTable.php b/app/DataTables/Shop/ArticlePriceGenericsDataTable.php new file mode 100644 index 00000000..1737d603 --- /dev/null +++ b/app/DataTables/Shop/ArticlePriceGenericsDataTable.php @@ -0,0 +1,30 @@ +title('Nom'), + Column::make('price')->title('Prix HT')->class('text-right'), + Column::make('price_taxed')->title('Prix TTC')->class('text-right'), + Column::make('article_prices_count')->title('Nb de tarifs')->class('text-right'), + self::makeColumnButtons(), + ]; + } + +} diff --git a/app/DataTables/Shop/ArticlePricesDataTable.php b/app/DataTables/Shop/ArticlePricesDataTable.php deleted file mode 100644 index e15ea059..00000000 --- a/app/DataTables/Shop/ArticlePricesDataTable.php +++ /dev/null @@ -1,27 +0,0 @@ -render('Shop.Admin.ArticlePriceGenerics.list'); + } + + public function getDatatable(Request $request) + { + return ArticlePriceGenerics::getTables($request->all()); + } + + public function create() + { + $data['taxes'] = Taxes::getOptions(); + return view('Shop.Admin.ArticlePriceGenerics.create',$data); + } + + public function store(Request $request) + { + $ret = ArticlePriceGenerics::store($request->all()); + return redirect()->route('Shop.Admin.ArticlePriceGenerics.index'); + } + + public function show($id) + { + $data = ArticlePriceGenerics::get($id); + return view('Shop.Admin.ArticlePriceGenerics.view', $data); + } + + public function edit($id) + { + $data['generic'] = ArticlePriceGenerics::get($id); + $data['taxes'] = Taxes::getOptions(); + return view('Shop.Admin.ArticlePriceGenerics.edit', $data); + } + + public function update(Request $request) + { + // + } + + public function destroy($id) + { + return ArticlePriceGenerics::destroy($id); + } +} diff --git a/app/Menu/Shop.php b/app/Menu/Shop.php index 8dd16c83..4ccec09e 100644 --- a/app/Menu/Shop.php +++ b/app/Menu/Shop.php @@ -33,6 +33,8 @@ class Shop ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(8); $menu->addTo('shop', 'Stock', [ 'route' => 'Shop.Admin.ArticleAttributeValues.index', 'permission' => 'backend_access' ]) ->activeIfRoute(['Shop.Admin.ArticleAttributeValues.*'])->order(9); + $menu->addTo('shop', 'Prix génériques', [ 'route' => 'Shop.Admin.ArticlePriceGenerics.index', 'permission' => 'backend_access' ]) + ->activeIfRoute(['Shop.Admin.ArticlePriceGenerics.*'])->order(10); } diff --git a/app/Models/Shop/ArticlePriceGeneric.php b/app/Models/Shop/ArticlePriceGeneric.php new file mode 100644 index 00000000..8cce8ae2 --- /dev/null +++ b/app/Models/Shop/ArticlePriceGeneric.php @@ -0,0 +1,20 @@ +hasMany('App\Models\Shop\ArticlePrice'); + } + +} \ No newline at end of file diff --git a/app/Repositories/Shop/ArticlePriceGenerics.php b/app/Repositories/Shop/ArticlePriceGenerics.php new file mode 100644 index 00000000..fec62d3b --- /dev/null +++ b/app/Repositories/Shop/ArticlePriceGenerics.php @@ -0,0 +1,67 @@ +get(); + } + + public static function getByArticleWithAttribute($id) + { + return ArticlePriceGeneric::with('article_attribute.attribute_value')->byArticle($id)->get(); + } + + public static function getDatatable() + { + $model = ArticlePriceGeneric::orderBy('name'); + return Datatables::of($model)->make(true); + } + + public static function getAll() + { + return ArticlePriceGeneric::orderBy('name','asc')->get(); + } + + public static function get($id) + { + return ArticlePriceGeneric::find($id); + } + + public static function store($data) + { + $id = isset($data['id']) ? $data['id'] : false; + $price = $id ? self::update($data) : self::create($data); + return $price->id; + } + + public static function create($data) + { + return ArticlePriceGeneric::create($data); + } + + public static function update($data, $id = false) + { + $id = isset($data['id']) ? $data['id'] : false; + $article = ArticlePriceGeneric::find($id); + $article->update($data); + return $article; + } + + public static function destroy($id) + { + return ArticlePriceGeneric::destroy($id); + } + +} diff --git a/resources/views/Shop/Admin/ArticlePriceGenerics/create.blade.php b/resources/views/Shop/Admin/ArticlePriceGenerics/create.blade.php new file mode 100644 index 00000000..acc6f802 --- /dev/null +++ b/resources/views/Shop/Admin/ArticlePriceGenerics/create.blade.php @@ -0,0 +1,28 @@ +@extends('layout.index', [ + 'title' => __('article_price_generics.title'), + 'subtitle' => __('article_price_generics.create.title'), + 'breadcrumb' => [__('article_price_generics.title'), __('article_price_generics.create.title')] +]) + +@include('boilerplate::load.fileinput') + +@section('content') + + {{ Form::open(['route' => 'Shop.Admin.ArticlePriceGenerics.store', 'id' => 'article-price-generic-form', 'autocomplete' => 'off', 'files' => true]) }} + +
+
+ + {{ __('article_price_generics.list.title') }} + + + + @include('components.button-save') + +
+
+ + @include('Shop.Admin.ArticlePriceGenerics.form') + + +@endsection diff --git a/resources/views/Shop/Admin/ArticlePriceGenerics/edit.blade.php b/resources/views/Shop/Admin/ArticlePriceGenerics/edit.blade.php new file mode 100644 index 00000000..5536a285 --- /dev/null +++ b/resources/views/Shop/Admin/ArticlePriceGenerics/edit.blade.php @@ -0,0 +1,14 @@ +@extends('layout.index', [ + 'title' => __('article_price_generics.title'), + 'subtitle' => __('article_price_generics.edit.title'), + 'breadcrumb' => [__('article_price_generics.title'), __('article_price_generics.edit.title')] +]) + +@section('content') + + {{ Form::open(['route' => 'Shop.Admin.ArticlePriceGenerics.update', 'id' => 'article-price-generic-form', 'autocomplete' => 'off', 'files' => true]) }} + + @include('Shop.Admin.ArticlePriceGenerics.form') + + +@endsection diff --git a/resources/views/Shop/Admin/ArticlePriceGenerics/form.blade.php b/resources/views/Shop/Admin/ArticlePriceGenerics/form.blade.php new file mode 100644 index 00000000..5b9efdf6 --- /dev/null +++ b/resources/views/Shop/Admin/ArticlePriceGenerics/form.blade.php @@ -0,0 +1,64 @@ + +
+
+ {{ Form::label('name', 'Nom') }} + @include('components.input', ['name' => 'name', 'value' => $generic['name'] ?? null, 'required' => true]) +
+
+ +
+
+
+
+ {{ Form::label('tax_id', 'TVA') }} + @include('components.select', ['name' => 'tax_id', 'value' => $generic['tax_id'] ?? null, 'list' => $taxes ?? null, 'class' => 'tva', 'required' => true]) +
+
+ {{ Form::label('price', 'Prix HT') }} + @include('components.input', ['name' => 'price', 'value' => $generic['price'] ?? null, 'class' => 'price', 'required' => true]) +
+
+ {{ Form::label('price_taxed', 'Prix TTC') }} + @include('components.input', ['name' => 'price_taxed', 'value' => $generic['price_taxed'] ?? null, 'class' => 'price_taxed', 'required' => true]) +
+
+
+
+ + +
+
+
+ @include('components.button-save') +
+
+
+ +@push('js') + +@endpush \ No newline at end of file diff --git a/resources/views/Shop/Admin/ArticlePriceGenerics/list.blade.php b/resources/views/Shop/Admin/ArticlePriceGenerics/list.blade.php new file mode 100644 index 00000000..2d672283 --- /dev/null +++ b/resources/views/Shop/Admin/ArticlePriceGenerics/list.blade.php @@ -0,0 +1,8 @@ +@extends('layout.index', [ + 'title' => __('article_price_generics.title'), + 'subtitle' => __('article_price_generics.list.title'), + 'breadcrumb' => [__('article_price_generics.title')] +]) +@section('content') + @include('components.datatable', ['route' => route('Shop.Admin.ArticlePriceGenerics.index'), 'model' => 'article-price-generics']) +@endsection diff --git a/resources/views/Shop/Admin/ArticlePriceGenerics/show.blade.php b/resources/views/Shop/Admin/ArticlePriceGenerics/show.blade.php new file mode 100644 index 00000000..1e1cd729 --- /dev/null +++ b/resources/views/Shop/Admin/ArticlePriceGenerics/show.blade.php @@ -0,0 +1,36 @@ +@extends('layout.index', [ + 'title' => __('products.title'), + 'subtitle' => __('products.title'), + 'breadcrumb' => [__('products.title')] +]) + +@section('content') +
+ +
+ +
+ +
+
+
+

{{ name }}

+

+ {{ $product.section.name }}
+

+
+
+

{{ $prix_total }} €

+

{{ $residence['type_produit']['name'] }}

+
+ +
+ @include('Hestimmo.modules.Lot.partials.carousel') +
+
+
+
+
+
+ +@endsection diff --git a/resources/views/Shop/Admin/Articles/form.blade.php b/resources/views/Shop/Admin/Articles/form.blade.php index 5462f88a..64380c3d 100644 --- a/resources/views/Shop/Admin/Articles/form.blade.php +++ b/resources/views/Shop/Admin/Articles/form.blade.php @@ -27,7 +27,7 @@ diff --git a/resources/views/Shop/Admin/Articles/partials/prices/block_attribute.blade.php b/resources/views/Shop/Admin/Articles/partials/prices/block_attribute.blade.php index a45dfd95..6de41053 100644 --- a/resources/views/Shop/Admin/Articles/partials/prices/block_attribute.blade.php +++ b/resources/views/Shop/Admin/Articles/partials/prices/block_attribute.blade.php @@ -10,7 +10,7 @@ 'value' => $attribute['attribute_value']['article_attribute_family_id'] ?? null, 'list' => $attribute_families_options, 'required' => true, - 'class' => 'select2 form-control form-control-sm attributes-family' + 'class' => 'select2 form-control-sm attributes-family' ]) @@ -21,7 +21,7 @@ 'value' => $attribute['article_attribute_value_id'] ?? null, 'list' => $attribute_values ?? null, 'required' => true, - 'class' => 'select2 form-control form-control-sm attributes-value', + 'class' => 'select2 form-control-sm attributes-value', 'meta' => (isset($attribute['article_attribute_value_id'])) ? 'data-id="' . $attribute['article_attribute_value_id'] . '"' : '' ]) diff --git a/resources/views/Shop/Admin/Articles/partials/prices/block_attribute_new.blade.php b/resources/views/Shop/Admin/Articles/partials/prices/block_attribute_new.blade.php index b951dba0..9d22b6cb 100644 --- a/resources/views/Shop/Admin/Articles/partials/prices/block_attribute_new.blade.php +++ b/resources/views/Shop/Admin/Articles/partials/prices/block_attribute_new.blade.php @@ -7,7 +7,7 @@ 'value' => $attribute_value['article_attribute_family_id'] ?? null, 'list' => $attribute_families_options, 'required' => true, - 'class' => 'select2 form-control form-control-sm attributes-family' + 'class' => 'select2 form-control-sm attributes-family' ]) @@ -18,7 +18,7 @@ 'value' => $attribute_value['id'] ?? null, 'list' => $attribute_values ?? null, 'required' => true, - 'class' => 'select2 form-control form-control-sm attributes-value' + 'class' => 'select2 form-control-sm attributes-value' ]) diff --git a/resources/views/Shop/Admin/Articles/partials/prices/block_price.blade.php b/resources/views/Shop/Admin/Articles/partials/prices/block_price.blade.php index 20c5fa2d..c1402fae 100644 --- a/resources/views/Shop/Admin/Articles/partials/prices/block_price.blade.php +++ b/resources/views/Shop/Admin/Articles/partials/prices/block_price.blade.php @@ -9,7 +9,7 @@
{{ Form::label('quantity', 'Qté.') }}
- @include('components.number', ['name' => "prices[$key][quantity]", 'value' => (isset($price['quantity'])) ? $price['quantity'] : 1, 'required' => true, 'class' => 'form-control-sm']) + @include('components.number', ['name' => "prices[$key][quantity]", 'value' => $price['quantity'] ?? 1, 'required' => true, 'class' => 'form-control-sm'])
@@ -18,24 +18,24 @@
-
+
{{ Form::label('tax_id', 'TVA') }}
- @include('components.select', ['name' => "prices[$key][tax_id]", 'value' => (isset($price['tax_id'])) ? $price['tax_id'] : null, 'list' => isset($taxes_options) ? $taxes_options : null, 'required' => true, 'class' => 'form-control form-control-sm']) + @include('components.select', ['name' => "prices[$key][tax_id]", 'value' => $price['tax_id'] ?? null, 'list' => $taxes_options ?? null, 'required' => true, 'class' => 'form-control form-control-sm'])
-
+
{{ Form::label('generic_price_id', 'Générique') }}
- @include('components.select', ['name' => "prices[$key][generic_price_id]", 'value' => (isset($price['generic_price_id'])) ? $price['generic_price_id'] : null, 'list' => ['Tarif barquette','Tarif semences'], 'required' => false, 'class' => 'form-control-sm']) + @include('components.select', ['name' => "prices[$key][article_generic_price_id]", 'value' => $price['article_generic_price_id'] ?? null, 'list' => ['Tarif barquette','Tarif semences'], 'required' => false, 'class' => 'form-control-sm'])
{{ Form::label('price', 'Prix HT') }} - @include('components.money', ['name' => "prices[$key][price]", 'value' => (isset($price['price'])) ? $price['price'] : 0, 'required' => true, 'class' => 'form-control-sm price-item']) + @include('components.money', ['name' => "prices[$key][price]", 'value' => $price['price'] ?? 0, 'required' => true, 'class' => 'form-control-sm price-item'])
{{ Form::label('price_taxed', 'Prix TTC') }} - @include('components.money', ['name' => "prices[$key][price_taxed]", 'value' => (isset($price['price_taxed'])) ? $price['price_taxed'] : 0, 'required' => true, 'class' => 'form-control-sm price-taxed-item']) + @include('components.money', ['name' => "prices[$key][price_taxed]", 'value' => $price['price_taxed'] ?? 0, 'required' => true, 'class' => 'form-control-sm price-taxed-item'])
diff --git a/resources/views/Shop/Admin/Articles/partials/prices/block_price_new.blade.php b/resources/views/Shop/Admin/Articles/partials/prices/block_price_new.blade.php index 3a2a6edb..b8b58ac8 100644 --- a/resources/views/Shop/Admin/Articles/partials/prices/block_price_new.blade.php +++ b/resources/views/Shop/Admin/Articles/partials/prices/block_price_new.blade.php @@ -9,26 +9,34 @@
{{ Form::label('quantity', 'Quantité') }}
- @include('components.number', ['name' => 'prices[0][quantity]', 'value' => (isset($quantity)) ? $quantity : 1, 'required' => true, 'class' => 'form-control-sm']) + @include('components.number', ['name' => 'prices[0][quantity]', 'value' => $quantity ?? 1, 'required' => true, 'class' => 'form-control-sm'])
-
+
@include('Shop.Admin.Articles.partials.prices.block_attribute_new')
-
- {{ Form::label('tax_id', 'TVA') }}
- @include('components.select', ['name' => 'prices[0][tax_id]', 'value' => (isset($tax_id)) ? $tax_id : null, 'list' => isset($taxes_options) ? $taxes_options : null, 'required' => true, 'class' => 'form-control form-control-sm']) -
+
-
- {{ Form::label('price', 'Prix HT') }} - @include('components.money', ['name' => 'prices[0][price]', 'value' => (isset($price)) ? $price : 0, 'required' => true, 'class' => 'form-control-sm price-item']) -
+
+ {{ Form::label('tax_id', 'TVA') }}
+ @include('components.select', ['name' => 'prices[0][tax_id]', 'value' => $tax_id ?? null, 'list' => $taxes_options ?? null, 'required' => true, 'class' => 'form-control form-control-sm']) +
-
- {{ Form::label('price_taxed', 'Prix TTC') }} - @include('components.money', ['name' => 'prices[0][price_taxed]', 'value' => (isset($price_taxed)) ? $price_taxed : 0, 'required' => true, 'class' => 'form-control-sm price-taxed-item']) +
+ {{ Form::label('generic_price_id', 'Générique') }}
+ @include('components.select', ['name' => "prices[0][article_generic_price_id]", 'value' => $price['article_generic_price_id'] ?? null, 'list' => ['Tarif barquette','Tarif semences'], 'required' => false, 'class' => 'form-control-sm']) +
+ +
+ {{ Form::label('price', 'Prix HT') }} + @include('components.money', ['name' => 'prices[0][price]', 'value' => $price ?? 0, 'required' => true, 'class' => 'form-control-sm price-item']) +
+ +
+ {{ Form::label('price_taxed', 'Prix TTC') }} + @include('components.money', ['name' => 'prices[0][price_taxed]', 'value' => $price_taxed ?? 0, 'required' => true, 'class' => 'form-control-sm price-taxed-item']) +
diff --git a/routes/Shop/Admin/ArticlePriceGenerics.php b/routes/Shop/Admin/ArticlePriceGenerics.php new file mode 100644 index 00000000..d64d0c0e --- /dev/null +++ b/routes/Shop/Admin/ArticlePriceGenerics.php @@ -0,0 +1,12 @@ +name('ArticlePriceGenerics.')->group(function () { + Route::get('', 'ArticlePriceGenericController@index')->name('index'); + Route::get('create', 'ArticlePriceGenericController@create')->name('create'); + Route::delete('destroy', 'ArticlePriceGenericController@destroy')->name('destroy'); + Route::post('update', 'ArticlePriceGenericController@update')->name('update'); + Route::post('store', 'ArticlePriceGenericController@store')->name('store'); + Route::get('edit/{id}', 'ArticlePriceGenericController@edit')->name('edit'); + +}); + diff --git a/routes/Shop/Admin/route.php b/routes/Shop/Admin/route.php index cb6b5bf8..afc95212 100644 --- a/routes/Shop/Admin/route.php +++ b/routes/Shop/Admin/route.php @@ -6,6 +6,7 @@ Route::middleware('auth')->prefix('Admin')->namespace('Admin')->name('Admin.')-> include( __DIR__ . '/ArticleAttributeValues.php'); include( __DIR__ . '/ArticleAttributes.php'); include( __DIR__ . '/ArticleFamilies.php'); + include( __DIR__ . '/ArticlePriceGenerics.php'); include( __DIR__ . '/ArticlePrices.php'); include( __DIR__ . '/Articles.php'); include( __DIR__ . '/Categories.php');