Issues (88)

src/extensions/MemberExtension.php (4 issues)

1
<?php
2
3
namespace SilverCommerce\ContactAdmin\Extensions;
4
5
use SilverCommerce\ContactAdmin\Helpers\ContactHelper;
6
use SilverStripe\ORM\DataExtension;
7
use SilverStripe\Forms\FieldList;
8
use SilverStripe\Forms\ReadonlyField;
9
use SilverCommerce\ContactAdmin\Model\Contact;
10
11
/**
12
 * Add additional settings to a memeber object
13
 *
14
 * @package    orders-admin
15
 * @subpackage extensions
16
 */
17
class MemberExtension extends DataExtension
18
{
19
    private static $db = [
0 ignored issues
show
The private property $db is not used, and could be removed.
Loading history...
20
        "Company" => "Varchar(255)",
21
        "Phone" => "Varchar(15)",
22
        "Mobile" => "Varchar(15)"
23
    ];
24
25
    private static $belongs_to = [
0 ignored issues
show
The private property $belongs_to is not used, and could be removed.
Loading history...
26
        'Contact' => Contact::class . '.Member'
27
    ];
28
29
    private static $casting = [
0 ignored issues
show
The private property $casting is not used, and could be removed.
Loading history...
30
        "ContactTitle" => "Varchar"
31
    ];
32
33
    /**
34
     * Get the locations from a contact
35
     */
36
    public function Locations()
37
    {
38
        return $this->getOwner()->Contact()->Locations();
39
    }
40
41
    /**
42
     * Return the "default" location for the associated contact.
43
     *
44
     * @return ContactLocation
0 ignored issues
show
The type SilverCommerce\ContactAd...ensions\ContactLocation was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
45
     */
46
    public function DefaultLocation()
47
    {
48
        return $this->getOwner()->Contact()->DefaultLocation();
49
    }
50
51
    public function updateCMSFields(FieldList $fields)
52
    {
53
        if ($this->owner->ID) {
54
            $fields->addFieldToTab(
55
                "Root.Main",
56
                ReadonlyField::create("ContactTitle")
57
            );
58
        }
59
    }
60
61
    /**
62
     * The name of the contact assotiated with this account
63
     *
64
     * @return void
65
     */
66
    public function getContactTitle()
67
    {
68
        $contact = $this->owner->Contact();
69
70
        return $contact->Title;
71
    }
72
73
    /**
74
     * If no contact exists for this account, then create one
75
     * and push changed data to the contact
76
     *
77
     * @return void
78
     */
79
    public function onAfterWrite()
80
    {
81
        parent::onAfterWrite();
82
83
        if (ContactHelper::config()->get('auto_sync') && $this->getOwner()->isChanged()) {
84
            $helper = ContactHelper::create();
85
            $helper->setMember($this->getOwner());
86
            $contact = $helper->findOrMakeContact();
87
88
            ContactHelper::pushChangedFields($this->getOwner(), $contact);
89
        }
90
    }
91
}
92