44 lines
1.3 KiB
PHP
44 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\Product\Admin;
|
|
|
|
use Modules\Admin\Ui\AdminTable;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Modules\Product\Entities\Product;
|
|
|
|
class ProductTable extends AdminTable
|
|
{
|
|
/**
|
|
* Raw columns that will not be escaped.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected array $rawColumns = ['price'];
|
|
|
|
|
|
/**
|
|
* Make table response for the resource.
|
|
*
|
|
* @return JsonResponse
|
|
*/
|
|
public function make()
|
|
{
|
|
return $this->newTable()
|
|
->editColumn('thumbnail', function ($product) {
|
|
return view('admin::partials.table.image', [
|
|
'file' => $product->variant?->base_image ?? $product->base_image,
|
|
]);
|
|
})
|
|
->editColumn('price', function (Product $product) {
|
|
return product_price_formatted($product->variant ?? $product, function ($price, $specialPrice) use ($product) {
|
|
if ($product->variant ? $product->variant->hasSpecialPrice() : $product->hasSpecialPrice()) {
|
|
return "<span class='m-r-5'>{$specialPrice}</span>
|
|
<del class='text-red'>{$price}</del>";
|
|
}
|
|
|
|
return "<span class='m-r-5'>{$price}</span>";
|
|
});
|
|
});
|
|
}
|
|
}
|