PurchaseDetail.php 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. class PurchaseDetail extends Model
  6. {
  7. use HasFactory;
  8. protected $fillable = ["price", "qty", "purchase_number", "product_number"];
  9. public function product()
  10. {
  11. return $this->belongsTo(Product::class, "product_number", "number");
  12. }
  13. public function supplier()
  14. {
  15. return $this->hasOneThrough(
  16. Supplier::class,
  17. Purchase::class,
  18. "number",
  19. "id",
  20. "purchase_number",
  21. "supplier_id"
  22. );
  23. }
  24. public function scopeHistoryProductPurchase($query, array $filters)
  25. {
  26. $query
  27. ->when($filters["productNumber"] ?? null, function (
  28. $query,
  29. $search
  30. ) {
  31. $query->whereRelation("product", "number", $search);
  32. })
  33. ->when($filters["supplierId"] ?? null, function ($query, $search) {
  34. $query->whereHas("supplier");
  35. });
  36. }
  37. }