Fix on preview mode

This commit is contained in:
Ludovic CANDELLIER
2021-08-23 23:56:46 +02:00
parent 81fbec892c
commit 24fffce7a1
15 changed files with 289 additions and 102 deletions

View File

@@ -9,7 +9,13 @@ use App\Datatables\Admin\Core\CommentsDataTable;
class CommentController extends Controller
{
public function index(CommentsDataTable $dataTable, $model, $model_id)
public function index($model, $model_id)
{
$data['comments'] = Comments::getCommentsByModel($model, $model_id);
return view('Admin.Core.Comments.partials.list-comments', $data);
}
public function list(CommentsDataTable $dataTable, $model, $model_id)
{
$data['model'] = $model;
$data['model_id'] = $model_id;

View File

@@ -5,7 +5,10 @@ namespace App\Http\Controllers\Admin\Shop;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\Shop\Articles;
use App\Repositories\Shop\Offers;
use App\Repositories\Shop\Tariffs;
use App\Repositories\Shop\Variations;
use App\Datatables\Shop\OffersDataTable;
class OfferController extends Controller
@@ -17,7 +20,10 @@ class OfferController extends Controller
public function create()
{
return view('Admin.Shop.Offers.create');
$data['articles'] = Articles::getOptions();
$data['tariffs'] = Tariffs::getOptions();
$data['variations'] = Variations::getOptions();
return view('Admin.Shop.Offers.create', $data);
}
public function store(Request $request)
@@ -44,4 +50,22 @@ class OfferController extends Controller
{
return Offers::destroy($id);
}
public function previewArticle($id)
{
$data['article'] = Articles::getArticle($id);
return view('Admin.Shop.Offers.partials.article', $data);
}
public function previewVariation($id)
{
$data['variation'] = Variations::get($id)->toArray();
return view('Admin.Shop.Offers.partials.variation', $data);
}
public function previewTariff($id)
{
$data['tariff'] = Tariffs::getPrices($id);
return view('Admin.Shop.Offers.partials.tariff', $data);
}
}

View File

@@ -22,6 +22,12 @@ class Comments
return $model->html();
}
public static function getCommentsByModel($model, $model_id)
{
$class = self::getClass($model);
return self::getCommentsByClass($class, $model_id);
}
public static function getCommentsByClass($class, $id)
{
return self::getByModel(self::getModel($class, $id));
@@ -29,17 +35,17 @@ class Comments
public static function getModel($class, $id)
{
return $$class::find($id);
return $class::find($id);
}
public static function getClass($class)
public static function getClass($model)
{
return 'App\Models\\' . str_replace('.','\\', $class);
return 'App\Models\\' . str_replace('.','\\', $model);
}
public static function getByModel($model)
{
return $model ? $model->comments : false;
return $model ? $model->comments->sortByDesc('updated_at')->toArray() : false;
}
public static function storeComments($model, $comments)

View File

@@ -23,44 +23,60 @@ class Articles
return $export;
}
public static function getOptions()
{
return Article::orderBy('name','asc')->pluck('name','id')->toArray();
}
public static function getAll()
{
return Article::orderBy('name', 'asc')->get();
}
public static function getFull($id)
public static function getArticle($id)
{
$article = Article::with('product.tags')->findOrFail($id);
$data['article'] = $article->toArray();
$data['article']['inherited'] = self::getInherited($id);
// dump($data);
// exit;
$data['article']['categories'] = self::getCategoriesByArticle($article);
$data['article']['tags'] = self::getTagsByArticle($article);
// $data['article']['prices'] = self::getPricesByArticle($article);
// $data['datatables']['comments'] = Comments::getDatatable();
$data['article']['comments'] = $article->comments;
$data = $article->toArray();
$data['inherited'] = self::getInherited($id);
$data['categories'] = self::getCategoriesNameByArticle($article);
$data['tags'] = self::getTagsNameByArticle($article);
$data['comments'] = Comments::getByModel($article);
return $data;
}
public static function getFull($id)
{
$data = self::getArticleEdit($id);
self::getMeta($data);
return $data;
}
public static function getArticleEdit($id)
{
$article = Article::with('product.tags')->findOrFail($id);
$data = $article->toArray();
$data['inherited'] = self::getInherited($id);
$data['categories'] = self::getCategoriesByArticle($article);
$data['tags'] = self::getTagsByArticle($article);
$data['comments'] = Comments::getByModel($article);
return $data;
}
public static function getInherited($id)
{
$article = Article::with('product.tags')->findOrFail($id);
$product_type = $article->product_type;
switch ($product_type) {
case 'App\Models\Botanic\Variety':
$data[] = ['name' => 'Espèces', 'description' => Species::getDescription($article->product->specie_id), 'tags' => Species::getTags($article->product->specie_id)];
$data[] = ['name' => 'Variétés', 'description' => $article->product->description, 'tags' => $article->product->tags->toArray()];
break;
case 'App\Models\Botanic\Specie':
$data[] = ['name' => 'Espèces', 'description' => $article->product->description, 'tags' => $article->product->tags->toArray()];
break;
case 'App\Models\Shop\Merchandise':
$data[] = ['name' => 'Marchandise', 'description' => $article->product->description, 'tags' => $article->product->tags->toArray()];
break;
case 'App\Models\Botanic\Variety':
$data[] = ['name' => 'Espèces', 'description' => Species::getDescription($article->product->specie_id), 'tags' => Species::getTags($article->product->specie_id)];
$data[] = ['name' => 'Variétés', 'description' => $article->product->description, 'tags' => $article->product->tags->toArray()];
break;
case 'App\Models\Botanic\Specie':
$data[] = ['name' => 'Espèces', 'description' => $article->product->description, 'tags' => $article->product->tags->toArray()];
break;
case 'App\Models\Shop\Merchandise':
$data[] = ['name' => 'Marchandise', 'description' => $article->product->description, 'tags' => $article->product->tags->toArray()];
break;
}
return $data;
}
@@ -86,11 +102,21 @@ class Articles
return $article->categories->pluck('id')->toArray();
}
public static function getCategoriesNameByArticle($article)
{
return $article->categories->pluck('name', 'id')->toArray();
}
public static function getTagsByArticle($article)
{
return $article->tags->pluck('id')->toArray();
}
public static function getTagsNameByArticle($article)
{
return $article->tags->pluck('name', 'id')->toArray();
}
public static function getPricesByArticle($article)
{
return Prices::getByArticle($article->id);

View File

@@ -32,11 +32,13 @@ class PriceListValues
return PriceListValue::find($id);
}
public static function storePrices($generic_id, $values)
public static function storePrices($price_list_id, $values)
{
foreach ($values as $value) {
$value['price_generic_id'] = $generic_id;
self::store($value);
$value['price_list_id'] = $price_list_id;
if ($value['price']) {
self::store($value);
}
}
}
@@ -44,7 +46,7 @@ class PriceListValues
{
$id = isset($data['id']) ? $data['id'] : false;
$price = $id ? self::update($data) : self::create($data);
return $price->id;
return $price;
}
public static function create($data)

View File

@@ -38,6 +38,11 @@ class PriceLists
return PriceList::find($id);
}
public static function getPrices($id)
{
return PriceList::with('price_list_values')->find($id);
}
public static function getFull($id)
{
return PriceList::with(['price_list_values'])->find($id);

View File

@@ -16,6 +16,11 @@ class Tariffs
return $export;
}
public static function getPrices($id)
{
return Tariff::with(['price_lists.price_list_values','price_lists.sale_channel'])->find($id);
}
public static function getOptions()
{
return Tariff::orderBy('name', 'asc')->get()->pluck('name', 'id')->toArray();