Completed
Push — 1.10 ( 3bcec0...1a0641 )
by
unknown
08:47
created

Entity()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 0
loc 8
rs 9.4285
c 1
b 0
f 0
cc 1
eloc 4
nc 1
nop 1
1
<?php
2
3
namespace OroCRM\Bundle\SalesBundle\ImportExport\Strategy;
4
5
use Oro\Bundle\AddressBundle\Entity\Address;
6
use Oro\Bundle\ImportExportBundle\Strategy\Import\ConfigurableAddOrReplaceStrategy;
7
8
use OroCRM\Bundle\SalesBundle\Entity\B2bCustomer;
9
10
class B2bConfigurableAddOrReplaceStrategy extends ConfigurableAddOrReplaceStrategy
11
{
12
    /**
13
     * {@inheritdoc}
14
     */
15
    protected function afterProcessEntity($entity)
16
    {
17
        /** @var B2bCustomer $entity */
18
        $entity = parent::afterProcessEntity($entity);
19
20
        $this->guessRegion($entity->getBillingAddress());
21
        $this->guessRegion($entity->getShippingAddress());
22
23
        return $entity;
24
    }
25
26
    /**
27
     * @param Address $address
28
     */
29
    protected function guessRegion($address)
30
    {
31
        if ($address
32
            && $address->getCountry() && $address->getRegionText()
33
            && !$address->getRegion()
34
        ) {
35
            $region = $this->doctrineHelper
36
                ->getEntityRepository('OroAddressBundle:Region')
37
                ->findOneBy(
38
                    [
39
                        'country' => $address->getCountry(),
40
                        'name'    => $address->getRegionText()
41
                    ]
42
                );
43
            if ($region) {
44
                $address->setRegion($region);
45
                $address->setRegionText(null);
46
            }
47
        }
48
    }
49
}
50