Completed
Push — main ( 728328...4fb0c1 )
by Emmanuel
01:09
created

BillMe   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 75
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 6
dl 0
loc 75
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createOrder() 0 40 2
A createInvoice() 0 24 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\Mail\Client\Invoices\InvoiceCreated;
17
use Epmnzava\Mail\Client\OrderReceived;
18
use Epmnzava\Mail\Merchant\NewOrder;
19
20
use Mail;
21
22
class BillMe
23
{
24
25
26
27
    /** A function that triggers order creation */
28
    public function createOrder(
29
        string $firstname,
30
        string $lastname,
31
        string $email,
32
        string $mobile_number,
33
        int $amount,
34
        string $payment_method,
35
        string $notes,
36
        string $address,
37
        array $orderitems
38
    ) {
39
40
        $order = new Order;
41
        $order->firstname = $firstname;
42
        $order->lastname = $lastname;
43
        $order->email = $email;
44
        $order->mobile_number = $mobile_number;
45
        $order->amount = $amount;
46
        $order->payment_method = $payment_method;
47
        $order->status = "Pending";
48
        $order->notes = $notes;
49
        $order->address = $address;
50
        $order->save();
51
52
        // order items ... here
53
54
        if (!empty($orderitems)) {
55
            /* $orderItem=new OrderItem();
56
          $orderItem->order_id=$order->id;
57
          $orderItem->amount=$orderitems->amount;
58
          $orderItem->quantity=$orderitems->quantity;
59
60
61
          */
62
        }
63
64
        Mail::to(["address" => $order->email, "name" => $order->email])->send(new OrderReceived($order));
65
66
        Mail::to(["address" => $order->email, "name" => $order->email])->send(new NewOrder($order));
67
    }
68
69
70
71
72
    public function createInvoice(Order $order)
73
    {
74
75
        $invoice = new Invoice;
76
        $invoice->orderid = $order->id;
77
        $invoice->firstname = $order->firstname;
78
        $invoice->lastname = $order->lastname;
79
        $invoice->mobile_number = $order->mobile_number;
80
        $invoice->email = $order->email;
81
        $invoice->amount = $order->amount;
82
        $invoice->status = $order->status;
83
        $invoice->address = $order->address;
84
        $invoice->date = date('Y-m-d');
85
        $invoice->save();
86
87
88
        Mail::to(["address" => $invoice->email, "name" => $invoice->email])->send(new InvoiceCreated($invoice));
89
90
91
92
        $order_update = Order::find($order->id);
93
        $order_update->invoiceid = $invoice->id;
94
        $order_update->save();
95
    }
96
}
97