This commit is contained in:
Ludovic CANDELLIER
2021-11-07 19:58:38 +01:00
parent c7c8e18cbc
commit 63c6671c97
22 changed files with 143 additions and 48 deletions

View File

@@ -13,7 +13,7 @@ class SpeciesDataTable extends DataTable
public function query(Specie $model)
{
$model = $model::withCount(['images','varieties','tags'])->with(['genre','image','tags']);
$model = $model::withCount(['images', 'varieties', 'tags'])->with(['genre', 'image', 'tags']);
return $this->buildQuery($model);
}
@@ -29,7 +29,7 @@ class SpeciesDataTable extends DataTable
->editColumn('tags2', function (Specie $specie) {
$html = '';
foreach ($specie->tags as $tag) {
$html .= '<span class="btn btn-xs btn-secondary pb-2">' . $tag->slug . '</span> ';
$html .= '<span class="btn btn-xs btn-secondary pb-2">' . $tag->slug . '</span> ';
}
return $html;
})

View File

@@ -13,8 +13,7 @@ class VarietiesDataTable extends DataTable
public function query(Variety $model)
{
// $model = $model::with('specie')->withCount('Articles')->select('botanic_varieties.*');
$model = $model::joinRelationship('Specie')->select('botanic_varieties.*', 'botanic_species.name as specie_name')->with(['image', 'Specie'])->withCount(['Articles', 'tags']);
$model = $model::joinRelationship('Specie')->select('botanic_varieties.*', 'botanic_species.name as specie_name')->with(['image', 'Specie', 'tags'])->withCount(['Articles', 'tags', 'images']);
return $this->buildQuery($model);
}
@@ -25,7 +24,14 @@ class VarietiesDataTable extends DataTable
->editColumn('thumb', function (Variety $variety) {
return Varieties::getThumb($variety->image);
})
->rawColumns(['thumb', 'action']);
->editColumn('tags2', function (Variety $variety) {
$html = '';
foreach ($variety->tags as $tag) {
$html .= '<span class="btn btn-xs btn-secondary pb-2">' . $tag->slug . '</span> ';
}
return $html;
})
->rawColumns(['thumb', 'tags2', 'action']);
return parent::modifier($datatables);
}
@@ -36,8 +42,10 @@ class VarietiesDataTable extends DataTable
Column::make('Specie.name')->data('specie_name')->title('Espèce'),
Column::make('thumb')->title('')->searchable(false)->orderable(false)->width(40)->class('text-center'),
Column::make('name')->title('Nom'),
Column::make('articles_count')->title('Nb articles')->class('text-right')->searchable(false),
Column::make('tags_count')->title('Nb tags')->class('text-right')->searchable(false),
Column::make('tags2')->title('Tags')->searchable(false)->orderable(false),
Column::make('articles_count')->title('#Art')->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(),
];
}

View File

@@ -15,7 +15,7 @@ class ArticlesDataTable extends DataTable
public function query(Article $model)
{
$model = $model::with(['article_nature', 'image'])->withCount(['categories', 'tags', 'offers']);
$model = $model::with(['article_nature', 'image'])->withCount(['categories', 'images', 'offers', 'tags']);
$model = self::filterByArticleNature($model);
return $this->buildQuery($model);
}
@@ -35,7 +35,14 @@ class ArticlesDataTable extends DataTable
->editColumn('article_nature.name', function (Article $article) {
return $article->article_nature ? $article->article_nature->name : '';
})
->rawColumns(['thumb', 'action']);
->editColumn('tags2', function (Article $article) {
$html = '';
foreach ($article->tags as $tag) {
$html .= '<span class="btn btn-xs btn-secondary pb-2">' . $tag->slug . '</span> ';
}
return $html;
})
->rawColumns(['tags2', 'thumb', 'action']);
return parent::modifier($datatables);
}
@@ -45,9 +52,11 @@ class ArticlesDataTable extends DataTable
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('tags_count')->title('Tags')->class('text-right')->searchable(false),
Column::make('categories_count')->title('Rayons')->class('text-right')->searchable(false),
Column::make('offers_count')->title('Offres')->class('text-right')->searchable(false),
Column::make('tags2')->title('Tags')->searchable(false)->orderable(false),
Column::make('tags_count')->title('#Tag')->class('text-right')->searchable(false),
Column::make('categories_count')->title('#Ray')->class('text-right')->searchable(false),
Column::make('offers_count')->title('#Ofr')->class('text-right')->searchable(false),
Column::make('images_count')->title('#Pho')->class('text-right')->searchable(false),
$this->makeColumnButtons(),
];
}

View File

@@ -9,6 +9,7 @@ use App\Models\Shop\Offer;
class OffersDataTable extends DataTable
{
public $model_name = 'offers';
public $sortedColumn = 1;
public function query(Offer $model)
{
@@ -30,13 +31,36 @@ class OffersDataTable extends DataTable
return $package_id ? $model->byPackage($package_id) : $model;
}
public function modifier($datatables)
{
$datatables
->editColumn('status_id', function (Offer $offer) {
return view("components.form.toggle", [
'value' => $offer->status_id,
'on' => __('active'),
'off' => __('inactive'),
'meta' => 'data-id='.$offer->id,
'size' => 'sm',
]);
})
->editColumn('stock_delayed', function (Offer $offer) {
return $offer->stock_delayed . ' - ' . $offer->delay_type;
})
->rawColumns(['active', 'action']);
return parent::modifier($datatables);
}
protected function getColumns()
{
return [
Column::make('status_id')->title('')->width(40),
Column::make('article.name')->title('Article'),
Column::make('article.article_nature.name')->title('Nature'),
Column::make('variation.name')->title('Déclinaison'),
Column::make('tariff.name')->title('Tarif'),
Column::make('stock_current')->title('Appro im'),
Column::make('stock_delayed')->title('Appro délai'),
Column::make('stock_ondemand')->title('Dmde'),
$this->makeColumnButtons(),
];
}

View File

@@ -13,18 +13,29 @@ class TagsDataTable extends DataTable
public function query(Tag $model)
{
$model = $model::with('group')->withCount(['articles', 'species', 'varieties']);
$model = $model::with('group')->withCount(['articles', 'shelves', 'species', 'varieties']);
return $this->buildQuery($model);
}
public function modifier($datatables)
{
$datatables
->editColumn('name', function (Tag $tag) {
return $tag->name;
})
->rawColumns(['active', 'action']);
return parent::modifier($datatables);
}
protected function getColumns()
{
return [
Column::make('group.name')->title('Groupe'),
Column::make('name')->title('Nom'),
Column::make('articles_count')->title('Articles')->class('text-right')->searchable(false),
Column::make('species_count')->title('Espèces')->class('text-right')->searchable(false),
Column::make('varieties_count')->title('Variétés')->class('text-right')->searchable(false),
Column::make('articles_count')->title('#Art')->class('text-right')->searchable(false),
Column::make('species_count')->title('#Esp')->class('text-right')->searchable(false),
Column::make('varieties_count')->title('#Var')->class('text-right')->searchable(false),
Column::make('shelves_count')->title('#Ray')->class('text-right')->searchable(false),
$this->makeColumnButtons(),
];
}

View File

@@ -13,7 +13,7 @@ class TariffsDataTable extends DataTable
public function query(Tariff $model)
{
$model = $model->with(['sale_channel'])->select(['shop_tariffs.*']);
$model = $model->with(['sale_channels'])->select(['shop_tariffs.*']);
return $this->buildQuery($model);
}
@@ -23,7 +23,14 @@ class TariffsDataTable extends DataTable
->editColumn('status', function (Tariff $tariff) {
return Tariffs::getStatus($tariff['status_id']);
})
->rawColumns(['action'])
->editColumn('sale_channels2', function (Tariff $tariff) {
$html = '';
foreach ($tariff->sale_channels as $sale_channel) {
$html .= $sale_channel->code . ', ';
}
return $html;
})
->rawColumns(['sale_channels2', 'action'])
;
return parent::modifier($datatables);
}
@@ -33,7 +40,7 @@ class TariffsDataTable extends DataTable
return [
Column::make('status_id')->data('status')->title('status'),
Column::make('name')->title('Nom'),
Column::make('sale_channel.name')->title('Canal de vente par défaut'),
Column::make('sale_channels2')->title('Canaux de vente'),
Column::make('code')->title('Code'),
Column::make('ref')->title('Référence'),
$this->makeColumnButtons(),

View File

@@ -19,6 +19,9 @@ class VariationsDataTable extends DataTable
public function modifier($datatables)
{
$datatables
->editColumn('unity_value', function (Variation $variation) {
return $variation->unity ? $variation->unity->value : '';
})
->rawColumns(['description','action'])
;
return parent::modifier($datatables);
@@ -29,9 +32,9 @@ class VariationsDataTable extends DataTable
return [
Column::make('package.value')->title('Package'),
Column::make('quantity')->title('Quantité')->class('text-right')->with(80),
Column::make('unity.value')->title('Unité')->searchable(false)->with(80),
Column::make('unity_value')->title('Unité')->searchable(false)->with(80),
Column::make('description')->title('Description'),
Column::make('offers_count')->title('Offres')->searchable(false)->class('text-right'),
Column::make('offers_count')->title('#Ofr')->searchable(false)->class('text-right'),
$this->makeColumnButtons(),
];
}

View File

@@ -74,4 +74,11 @@ class OfferController extends Controller
$data['tariff'] = Tariffs::getPrices($id);
return view('Admin.Shop.Offers.partials.tariff', $data);
}
public function toggleActive(Request $request)
{
$data = Offers::toggle_active($request->input('id'), ($request->input('active') == 'true') ? 1 : 0);
return response()->json(['error' => 0]);
}
}

View File

@@ -10,7 +10,7 @@ class Shelve extends Model
use HasRelationships;
protected $guarded = ['id'];
protected $table = 'shop_shelves';
protected $table = 'shop_categories';
public function articles()
{

View File

@@ -5,6 +5,8 @@ namespace App\Models\Shop;
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;
use App\Models\Botanic\Specie;
use App\Models\Botanic\Variety;
class Tag extends Model
{
@@ -25,19 +27,24 @@ class Tag extends Model
return $this->morphedByMany(Article::class, 'taggable');
}
public function varieties()
public function group()
{
return $this->morphedByMany(\App\Models\Botanic\Variety::class, 'taggable');
return $this->hasOne(TagGroup::class, 'id', 'tag_group_id');
}
public function shelves()
{
return $this->morphedByMany(Shelve::class, 'taggable');
}
public function species()
{
return $this->morphedByMany(\App\Models\Botanic\Specie::class, 'taggable');
return $this->morphedByMany(Specie::class, 'taggable');
}
public function group()
public function varieties()
{
return $this->hasOne(TagGroup::class, 'id', 'tag_group_id');
return $this->morphedByMany(Variety::class, 'taggable');
}
public function scopeByGroup($query, $id)

View File

@@ -21,6 +21,12 @@ class Tariff extends Model
return $this->belongsTo(SaleChannel::class);
}
public function sale_channels()
{
// return $this->HasManyThrough(SaleChannel::class, PriceList::class);
return $this->HasManyThrough(SaleChannel::class, PriceList::class, 'id', 'id', 'id', 'sale_channel_id');
}
public function tariff_unity()
{
return $this->belongsTo(TariffUnity::class);

View File

@@ -51,4 +51,10 @@ class Offers
{
return Offer::destroy($id);
}
public static function toggle_active($id, $active)
{
return self::update(['status_id' => $active], $id);
}
}

View File

@@ -23,7 +23,7 @@ class Unities
public static function getName($id)
{
return self::get($id)->value;
return self::get($id)->value ?? null;
}
public static function get($id)

View File

@@ -33,7 +33,7 @@ class Variations
public static function getName($variation)
{
return $variation->package->value . ' ' . $variation->quantity . ' ' . $variation->unity->value;
return $variation->package->value . ' ' . $variation->quantity . ' ' . ($variation->unity->value ?? null);
}
public static function buildName($data)