SaleService.php 1.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace App\Services;
  3. use App\Models\Sale;
  4. use Illuminate\Support\Facades\DB;
  5. class SaleService
  6. {
  7. public static function totalPrice(Sale $sale)
  8. {
  9. return $sale->saleDetail->sum(function ($saleDetail) {
  10. return $saleDetail->price * $saleDetail->qty;
  11. });
  12. }
  13. public static function saleAmount()
  14. {
  15. return QueryService::queryAmount("sales", "Penjualan");
  16. }
  17. public static function bestSelling()
  18. {
  19. return DB::table("sale_details")
  20. ->selectRaw(
  21. "product_number, products.name as title, SUM(qty) as qty, products.profit"
  22. )
  23. ->join(
  24. "products",
  25. "products.number",
  26. "=",
  27. "sale_details.product_number"
  28. )
  29. ->groupByRaw("product_number")
  30. ->orderByRaw("qty DESC")
  31. ->limit(5)
  32. ->get();
  33. }
  34. public static function saleStatistic()
  35. {
  36. return DB::table("sales")
  37. ->selectRaw("COUNT(*) as amount")
  38. ->groupByRaw("MONTH(sales.created_at)")
  39. ->get();
  40. }
  41. }