-
-
Notifications
You must be signed in to change notification settings - Fork 767
/
Copy pathDashboardApi.php
77 lines (65 loc) · 2.46 KB
/
DashboardApi.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
namespace App\Api\v1\Controllers;
use App\Http\Controllers\Controller;
use App\Models\Client;
use App\Models\Invoice;
use App\Models\Lead;
use App\Models\Offer;
use App\Models\Project;
use App\Models\Task;
use App\Models\User;
use App\Services\Creation\CreationTracker;
use App\Services\Earnings\EarningsService;
use App\Services\Product\ProductService;
use App\Services\Project\ProjectService;
class DashboardApi extends Controller
{
public function index()
{
$clients=Client::count();
$users=User::count();
$projects=Project::count();
$leads=Lead::count();
$offers=Offer::count();
$invoices=Invoice::count();
$tasks=Task::count();
$year=now()->year;
$month=now()->month;
$projectservice=new ProjectService();
$openedprojects=$projectservice->getSumOpened();
$canceledprojects=$projectservice->getSumCanceled();
$inprogressprojects=$projectservice->getSumInprogress();
$completedprojects=$projectservice->getSumCompleted();
$blockedprojects=$projectservice->getSumBlocked();
$creationservice=new CreationTracker();
$creationdatasheet=$creationservice->tracker(15);
$productservice=new ProductService();
$bestproducts=$productservice->getTopProductsMonthly(3);
$earningservice=new EarningsService();
$daybydayearnings=$earningservice->getDaybyDayEarnings($year,$month);
$monthearnings=$earningservice->getMonthlyEarnings($year,$month);
$annualearnings=$earningservice->getAnnualEarnings($year);
$globalearnings=$earningservice->getGlobalEarnings();
return response()->json([
'clients' => $clients,
'users' => $users,
'projects' => $projects,
'leads' => $leads,
'offers' => $offers,
'tasks'=>$tasks,
'invoices' => $invoices,
'openedprojects' => $openedprojects,
'canceledprojects' => $canceledprojects,
'inprogressprojects' => $inprogressprojects,
'completedprojects' => $completedprojects,
'blockedprojects' => $blockedprojects,
'creationdatasheet' => $creationdatasheet,
'bestproducts' => $bestproducts,
'daybydayearnings' => $daybydayearnings,
'monthlyearnings' => $monthearnings,
'annualearnings' => $annualearnings,
'globalearnings' => $globalearnings,
]);
}
}
?>