Completed
Push — main ( 70b9c8...87fc27 )
by Emmanuel
01:15
created

Queries::updateDueDate()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
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 Carbon\Carbon;
14
use Epmnzava\BillMe\Models\BillingPayment;
15
use Epmnzava\BillMe\Models\Order;
16
use Epmnzava\BillMe\Models\Invoice;
17
use Epmnzava\BillMe\Models\OrderItem;
18
use Epmnzava\BillMe\Mail\Client\Invoices\InvoiceCreated;
19
use Epmnzava\BillMe\Mail\Client\OrderReceived;
20
use Epmnzava\BillMe\Mail\Merchant\NewOrder;
21
22
use Mail;
23
24
class Queries extends Stats
25
{
26
27
    public function orders()
28
    {
29
30
        return Order::all();
31
    }
32
33
34
    public function orders_orderby($orderby)
0 ignored issues
show
Unused Code introduced by
The parameter $orderby is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
35
    {
36
    }
37
38
39
40
    public function orders_today()
41
    {
42
        return Order::where('date', date('Y-m-d'))->get();
43
    }
44
45
46
    public function get_orders_with_status($status)
47
    {
48
        return Order::where('status', $status)->get();
49
    }
50
51
    public function pending_orders()
52
    {
53
        return Order::where('status', "pending")->get();
54
    }
55
56
    public function cancelled_orders()
57
    {
58
        return Order::where('status', "cancelled")->get();
59
    }
60
61
    public function completed_orders()
62
    {
63
        return Order::where('status', "complete")->get();
64
    }
65
66
    public function getOrderById($orderid)
67
    {
68
        return Order::find($orderid);
69
    }
70
71
    public function getOrdersOnDate($date)
72
    {
73
        return Order::where('date', $date)->get();
74
    }
75
76
77
    public function getOrdersOnDateRange($startdate, $enddate)
0 ignored issues
show
Unused Code introduced by
The parameter $startdate is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
Unused Code introduced by
The parameter $enddate is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
78
    {
79
    }
80
81
82
    /** Function to get an invoice */
83
    public function getInvoiceById($invoiceid)
84
    {
85
        return Invoice::find($invoiceid);
86
    }
87
88
89
    /** Function to get an invoice */
90
    public function getInvoiceByOrderId($orderid)
91
    {
92
        return Invoice::find(Order::where('id', $orderid)->first()->invoiceid);
93
    }
94
95
96
97
    /**
98
     * 
99
     * User Queries
100
     */
101
102
103
    /** Function to get given user orders */
104
    public function getUserOrders($userid)
105
    {
106
        return Order::where('userid', $userid)->get();
107
    }
108
109
110
    /** Function to get given user orders by status */
111
    public function getUserOrdersByStatus($userid, $status)
112
    {
113
        return Order::where('userid', $userid)->where('status', $status)->get();
114
    }
115
116
117
    /** Function to get given user invoices */
118
    public function getUserInvoices($userid)
119
    {
120
        return Invoice::where('userid', $userid)->get();
121
    }
122
123
124
    /** Function that returns total number of user invoices */
125
    public function totalUserInvoices($userid): int
126
    {
127
        return Invoice::where('userid', $userid)->count();
128
    }
129
130
131
132
133
    /** Function to get given user invoices by status */
134
    public function getUserInvoiceByStatus($userid, $status)
135
    {
136
        return Invoice::where('userid', $userid)->where('status', $status)->get();
137
    }
138
139
140
141
142
    /** Function to get given user invoices by status */
143
    public function sumUserInvoiceByStatus($userid, $status)
144
    {
145
        return Invoice::where('userid', $userid)->where('status', $status)->sum('amount');
146
    }
147
148
149
150
151
    /** Function to get given user invoices by status */
152
    public function totalUserInvoiceByStatus($userid, $status)
153
    {
154
        return Invoice::where('userid', $userid)->where('status', $status)->count();
155
    }
156
157
    /** Function that gets full  billing history */
158
159
    public function getAllBillingHistory()
160
    {
161
162
        return BillingPayment::all();
163
    }
164
165
166
    /** Function that gets full user billing history*/
167
168
    public function getUserBillingHistory($userid)
169
    {
170
171
        return BillingPayment::where('userid', $userid)->get();
172
    }
173
174
175
176
177
    public function getUserBillingHistoryByStartDate($userid, $start_date)
178
    {
179
180
        return BillingPayment::where('userid', $userid)->where('date', $start_date)->get();
181
    }
182
183
184
    /** Function to get payment history of a given user for a given period */
185
186
    public function getUserBillingHistoryBetweenDates($userid, $start_date, $enddate)
187
    {
188
189
        return BillingPayment::where('userid', $userid)->whereBetween('date', [$start_date, $enddate])->get();
190
    }
191
192
193
    /**
194
     * Returns the model instance to be updated
195
     */
196
    public function updateBillingHistory($invoiceid): BillingPayment
197
    {
198
        return BillingPayment::find(BillingPayment::where('invoiceid', $invoiceid)->first()->id);
199
    }
200
201
202
    /**
203
     * Returns the model instance to be updated
204
     */
205
    public function updateInvoiceByInstance($invoiceid): Invoice
206
    {
207
        return Invoice::find($invoiceid);
208
    }
209
210
    /**
211
     * 
212
     * Returns updated invoice with new due_date
213
     */
214
    public function updateDueDate($date, $invoiceid): Invoice
215
    {
216
        $invoice = $this->updateInvoiceByInstance($invoiceid);
217
        $invoice->due_date = $date;
218
        $invoice->save();
219
        return $invoice;
220
    }
221
222
223
224
225
    public function getUserBillingHistoryByStatus($userid, $status)
226
    {
227
228
        return BillingPayment::where('userid', $userid)->where('status', $status)->get();
229
    }
230
231
    /** Return OrderItems for particular order
232
     *@param $orderid
233
     **/
234
    public function getOrderItems($orderid)
235
    {
236
237
        return OrderItem::where('order_id', $orderid)->get();
238
    }
239
240
241
    /** Return OrderItems for particular order gets invoiceid
242
     *@param $invoiceid
243
     **/
244
    public function getOrderItemsByInvoiceId($invoiceid)
245
    {
246
247
        return OrderItem::where('order_id', Invoice::where('id', $invoiceid)->first()->orderid)->get();
248
    }
249
}
250