diff --git a/app/Http/Controllers/ProductController.php b/app/Http/Controllers/ProductController.php index d209b07..c5fdcfc 100644 --- a/app/Http/Controllers/ProductController.php +++ b/app/Http/Controllers/ProductController.php @@ -3,11 +3,12 @@ namespace App\Http\Controllers; use App\Models\Items; +use App\Repositories\Catalog\ProductRepository; use Illuminate\Http\Request; class ProductController extends Controller { - public function detail($slug, Request $request) + public function detail($slug, Request $request, ProductRepository $productRepository) { $product = Items::where('slug', $slug)->first(); @@ -17,8 +18,19 @@ class ProductController extends Controller } + $complete_look_products_data = $productRepository->getList([ + 'category_id' => $product->category1_id, + 'limit' => 4, + ]); + + + + $complete_look_products = collect($complete_look_products_data->items())->chunk(2); + + return view('shop.product-fashion',[ 'product' => $product, + 'complete_look_products' => $complete_look_products ]); } } diff --git a/app/Models/ItemVariant.php b/app/Models/ItemVariant.php index 865c49d..ba64851 100644 --- a/app/Models/ItemVariant.php +++ b/app/Models/ItemVariant.php @@ -5,6 +5,8 @@ namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Awobaz\Compoships\Compoships; +use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Storage; class ItemVariant extends Model @@ -64,4 +66,56 @@ class ItemVariant extends Model return $image ? Storage::disk('wms')->url($image) : null; } + + public function item() + { + return $this->belongsTo(Items::class, 'item_id'); + } + + public function conversion_value() + { + $item = $this->item; + + $convertion = 1; + if (($item->display_unit != $item->unit) and ($item->display_unit)){ + $convertions = DB::select("select to_qty / from_qty as conv + from item_convertions where from_unit = ? and to_unit = ?", + [$item->display_unit, $item->unit] ); + $convertion = max((float) @$convertions[0]->conv,1); + } + + return $convertion; + } + + + public function getDisplayPriceAttribute() + { + try { + $convertion = $this->conversion_value(); + + $price = $this->reference->price->price ?? null; + $price = $price ? $price : $this->item->net_price; + + + + return (float) $price * $convertion; + } catch (\Exception $e) { + Log::info($e); + return 0; + } + } + + public function getDisplayDiscountPriceAttribute() + { + try { + $convertion = $this->conversion_value(); + + $discountPrice = @$this->discount->price ?? 0; + return (float) $discountPrice * $convertion; + } catch (\Exception $e) { + return 0; + } + } + + } diff --git a/resources/views/components/home/product-card.blade.php b/resources/views/components/home/product-card.blade.php index b698056..b7d51b8 100644 --- a/resources/views/components/home/product-card.blade.php +++ b/resources/views/components/home/product-card.blade.php @@ -1,9 +1,12 @@