Stats   A
last analyzed

Complexity

Total Complexity 18

Size/Duplication

Total Lines 175
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 18
lcom 0
cbo 0
dl 0
loc 175
rs 10
c 0
b 0
f 0

18 Methods

Rating   Name   Duplication   Size   Complexity  
A total_orders() 0 5 1
A total_cancelled_orders() 0 4 1
A total_pending_orders() 0 4 1
A total_completed_orders() 0 4 1
A paid_payments() 0 5 1
A total_orders_today() 0 4 1
A total_orders_on_date() 0 4 1
A total_orders_this_month() 0 4 1
A total_orders_on_month() 0 4 1
A total_orders_on_year() 0 4 1
A total_invoices() 0 4 1
A total_invoices_today() 0 4 1
A total_pending_invoices() 0 4 1
A sum_of_pending_invoice_amount() 0 5 1
A total_invoice_count_by_status() 0 4 1
A sum_of_given_invoice_status_amount() 0 5 1
A total_completed_invoices() 0 4 1
A sum_of_completed_invoice_amount() 0 5 1
1
<?php
2
3
/**
4
 * Author: Emmanuel Paul Mnzava
5
 * Twitter: @epmnzava
6
 * Github: https://github.com/dbrax/bill-me
7
 * Email: [email protected]
8
 * 
9
 */
10
11
namespace Epmnzava\BillMe;
12
13
use Epmnzava\BillMe\Models\Order;
14
use Epmnzava\BillMe\Models\Invoice;
15
use Epmnzava\BillMe\Models\OrderItem;
16
use Epmnzava\BillMe\Mail\Client\Invoices\InvoiceCreated;
17
use Epmnzava\BillMe\Mail\Client\OrderReceived;
18
use Epmnzava\BillMe\Mail\Merchant\NewOrder;
19
use Epmnzava\BillMe\Models\BillingPayment;
20
use Carbon\Carbon;
21
22
use Mail;
23
24
class Stats
25
{
26
27
    /**
28
     * Gets total count of orders 
29
     */
30
    public function total_orders()
31
    {
32
33
        return Order::count();
34
    }
35
36
    /**
37
     * Gets total count of cancelled orders 
38
     */
39
    public function total_cancelled_orders()
40
    {
41
        return Order::where('status', 'cancelled')->count();
42
    }
43
44
    /**
45
     * Gets total count of pending orders 
46
     */
47
    public function total_pending_orders()
48
    {
49
        return Order::where('status', 'pending')->count();
50
    }
51
52
    /**
53
     * Gets total sum of pending orders 
54
     duplicate
55
   
56
    public function sum_of_pending_amount()
57
    {
58
59
        return Invoice::where('status', 'pending')->sum('amount');
60
    }
61
      */
62
63
    public function total_completed_orders()
64
    {
65
        return Order::where('status', 'completed')->count();
66
    }
67
68
69
    public function paid_payments(){
70
71
        return BillingPayment::where('status', 'paid')->get();
72
73
    }
74
75
    /**
76
     * Gets total count of orders today
77
     */
78
79
    public function total_orders_today()
80
    {
81
        return Order::where('date', date('Y-m-d'))->count();
82
    }
83
84
85
    /**
86
     * Gets total count of orders on a particular day
87
     */
88
    public function total_orders_on_date($date)
89
    {
90
        return Order::where('date', $date)->count();
91
    }
92
93
    /**
94
     * Gets total count of orders on this month
95
     */
96
97
    public function total_orders_this_month()
98
    {
99
        return Order::whereMonth('date', '=', date('m'))->whereYear('date', '=', date('Y'))->count();
100
    }
101
102
103
    /**
104
     * Gets total count of orders on a particular month and year
105
     */
106
    public function total_orders_on_month($month, $year)
107
    {
108
        return Order::whereMonth('date', '=', $month)->whereYear('date', '=', $year)->count();
109
    }
110
111
112
    /**
113
     * Gets total count of orders on given year
114
     */
115
    public function total_orders_on_year($year)
116
    {
117
        return Order::whereYear('date', '=', $year)->count();
118
    }
119
120
121
    /**
122
     * Gets total count of invoices
123
     */
124
    public function total_invoices()
125
    {
126
        return Invoice::count();
127
    }
128
129
130
    /**
131
     * Gets total count of invoices today
132
     */
133
134
    public function total_invoices_today()
135
    {
136
        return Invoice::where('date', date('Y-m-d'))->count();
137
    }
138
139
140
    /**
141
     * Gets total count of pending orders 
142
     */
143
    public function total_pending_invoices()
144
    {
145
        return Invoice::where('status', 'pending')->count();
146
    }
147
148
    /**
149
     * Gets total sum of pending orders 
150
     */
151
    public function sum_of_pending_invoice_amount()
152
    {
153
154
        return Invoice::where('status', 'pending')->sum('amount');
155
    }
156
157
158
159
160
    /**
161
     * Gets total count of pending invoices by status 
162
     */
163
    public function total_invoice_count_by_status($status)
164
    {
165
        return Invoice::where('status', $status)->count();
166
    }
167
168
169
170
171
    /**
172
     * Gets total sum of pending invoices by status 
173
     */
174
    public function sum_of_given_invoice_status_amount($status)
175
    {
176
177
        return Invoice::where('status', $status)->sum('amount');
178
    }
179
180
181
182
    /**
183
     * Gets total count of completed invoices 
184
     */
185
    public function total_completed_invoices()
186
    {
187
        return Invoice::where('status', 'paid')->count();
188
    }
189
190
    /**
191
     * Gets total sum of completed invoices 
192
     */
193
    public function sum_of_completed_invoice_amount()
194
    {
195
196
        return Invoice::where('status', 'paid')->sum('amount');
197
    }
198
}
199