Product.php 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace App\Models;
  3. use App\Models\PurchaseDetail;
  4. use App\Models\SaleDetail;
  5. use App\Models\StockProduct;
  6. use Illuminate\Database\Eloquent\Factories\HasFactory;
  7. use Illuminate\Database\Eloquent\Model;
  8. class Product extends Model
  9. {
  10. use HasFactory;
  11. protected $fillable = ["number", "name", "unit", "profit"];
  12. protected $hidden = ["created_at", "updated_at"];
  13. public function stockProducts()
  14. {
  15. return $this->hasMany(StockProduct::class, "product_number", "number");
  16. }
  17. public function purchaseDetails()
  18. {
  19. return $this->hasMany(
  20. PurchaseDetail::class,
  21. "product_number",
  22. "number"
  23. );
  24. }
  25. public function saleDetails()
  26. {
  27. return $this->hasMany(SaleDetail::class, "product_number", "number");
  28. }
  29. public function scopeSearch($query, array $filters)
  30. {
  31. $query->when($filters["search"] ?? null, function ($query, $search) {
  32. $query->where(function ($query) use ($search) {
  33. $query
  34. ->where("name", "like", "%" . $search . "%")
  35. ->orWhere("number", "like", "%" . $search . "%");
  36. });
  37. });
  38. }
  39. }