CustomerDetails::setData()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 4
rs 10
1
<?php
2
3
namespace SilverShop\Checkout\Component;
4
5
use SilverShop\Model\Order;
6
use SilverStripe\Forms\EmailField;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\Forms\TextField;
9
use SilverStripe\Security\Security;
10
11
class CustomerDetails extends CheckoutComponent
12
{
13
    protected $requiredfields = [
14
        'FirstName',
15
        'Surname',
16
        'Email',
17
    ];
18
19
    public function getFormFields(Order $order)
20
    {
21
        $fields = FieldList::create(
22
            $firstname = TextField::create('FirstName', _t('SilverShop\Model\Order.db_FirstName', 'First Name')),
23
            $surname = TextField::create('Surname', _t('SilverShop\Model\Order.db_Surname', 'Surname')),
24
            $email = EmailField::create('Email', _t('SilverShop\Model\Order.db_Email', 'Email'))
25
        );
26
27
        return $fields;
28
    }
29
30
    public function validateData(Order $order, array $data)
31
    {
32
        //all fields are required
33
    }
34
35
    public function getData(Order $order)
36
    {
37
        if ($order->FirstName || $order->Surname || $order->Email) {
38
            return [
39
                'FirstName' => $order->FirstName,
40
                'Surname' => $order->Surname,
41
                'Email' => $order->Email,
42
            ];
43
        }
44
        if ($member = Security::getCurrentUser()) {
45
            return [
46
                'FirstName' => $member->FirstName,
47
                'Surname' => $member->Surname,
48
                'Email' => $member->Email,
49
            ];
50
        }
51
        return [];
52
    }
53
54
    public function setData(Order $order, array $data)
55
    {
56
        $order->update($data);
57
        $order->write();
58
    }
59
}
60