![]() Server : Apache/2 System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 User : gositeme ( 1004) PHP Version : 8.2.29 Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname Directory : /home/gositeme/domains/pdf-ai.com/private_html/app/Services/Statistics/ |
<?php
namespace App\Services\Statistics;
use App\Models\Payment;
use DB;
class PaymentsService
{
private $year;
private $month;
public function __construct(int $year, int $month)
{
$this->year = $year;
$this->month = $month;
}
public function getPayments()
{
$payments = Payment::select(DB::raw("sum(price) as data"), DB::raw("MONTH(created_at) month"))
->whereYear('created_at', $this->year)
->where('status', 'completed')
->groupBy('month')
->orderBy('month')
->get()->toArray();
$data = [];
for($i = 1; $i <= 12; $i++) {
$data[$i] = 0;
}
foreach ($payments as $row) {
$month = $row['month'];
$data[$month] = intval($row['data']);
}
return $data;
}
public function getTotalPaymentsCurrentYear()
{
$payments = Payment::select(DB::raw("sum(price) as data"))
->whereYear('created_at', $this->year)
->where('status', 'completed')
->get();
return $payments;
}
public function getTotalPaymentsCurrentMonth()
{
$payments = Payment::select(DB::raw("sum(price) as data"))
->whereMonth('created_at', $this->month)
->whereYear('created_at', $this->year)
->where('status', 'completed')
->get();
return $payments;
}
public function getTotalPaymentsPastMonth()
{
$date = \Carbon\Carbon::now();
$pastMonth = $date->subMonth()->format('m');
$payments = Payment::select(DB::raw("sum(price) as data"))
->whereMonth('created_at', $pastMonth)
->whereYear('created_at', $this->year)
->where('status', 'completed')
->get();
return $payments;
}
public function getTotalTransactionsCurrentMonth()
{
$payments = Payment::select(DB::raw("count(id) as data"))
->whereMonth('created_at', $this->month)
->whereYear('created_at', $this->year)
->where('status', 'completed')
->get();
return $payments;
}
public function getTotalTransactionsPastMonth()
{
$date = \Carbon\Carbon::now();
$pastMonth = $date->subMonth()->format('m');
$payments = Payment::select(DB::raw("count(id) as data"))
->whereMonth('created_at', $pastMonth)
->whereYear('created_at', $this->year)
->where('status', 'completed')
->get();
return $payments;
}
public function getTotalTransactionsCurrentYear()
{
$payments = Payment::select(DB::raw("count(id) as data"))
->whereYear('created_at', $this->year)
->where('status', 'completed')
->get();
return $payments;
}
}