Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16643 | Rev 16768 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
16643 efrain 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Command;
6
 
7
use Symfony\Component\Console\Command\Command;
8
use Symfony\Component\Console\Input\InputInterface;
9
use Symfony\Component\Console\Output\OutputInterface;
10
use Laminas\Db\Adapter\AdapterInterface;
16766 efrain 11
use LeadersLinked\Cache\CacheInterface;
16643 efrain 12
use Laminas\Log\LoggerInterface;
13
use GeoIp2\Database\Reader As GeoIp2Reader;
14
use LeadersLinked\Library\Functions;
15
use LeadersLinked\Mapper\CompanyServiceMapper;
16
use LeadersLinked\Mapper\DiscoveryContactInteractionTypeMapper;
17
use LeadersLinked\Model\Service;
18
use LeadersLinked\Model\DiscoveryContactInteractionType;
19
use LeadersLinked\Mapper\DiscoveryContactLogMapper;
20
use LeadersLinked\Mapper\DiscoveryContactMapper;
21
use LeadersLinked\Mapper\DiscoveryContactInteractionMapper;
22
use LeadersLinked\Model\DiscoveryContactLog;
23
use LeadersLinked\Hydrator\ObjectPropertyHydrator;
24
 
25
class CheckDiscoveryContactCommand extends Command
26
{
27
    /**
28
     *
29
     * @var AdapterInterface
30
     */
31
    private $adapter;
32
 
33
 
34
    /**
35
     *
16766 efrain 36
     * @var CacheInterface
16643 efrain 37
     */
38
    private $cache;
39
 
40
    /**
41
     *
42
     * @var  LoggerInterface
43
     */
44
    private $logger;
45
 
46
    /**
47
     *
48
     * @var array
49
     */
50
    private $config;
51
 
52
 
53
    /**
54
     *
55
     * @param AdapterInterface $adapter
16766 efrain 56
     *@param CacheInterface $cache
16643 efrain 57
     * @param LoggerInterface $logger
58
     * @param array $config
59
     */
60
     public function __construct($adapter, $cache, $logger, $config)
61
    {
62
        $this->adapter      = $adapter;
63
        $this->cache        = $cache;
64
        $this->logger       = $logger;
65
        $this->config       = $config;
66
 
67
        parent::__construct();
68
    }
69
 
70
 
71
    protected function execute(InputInterface $input, OutputInterface $output) : int
72
    {
73
        $output->writeln('Inicio del proceso');
74
 
75
 
76
        $hydrator = new ObjectPropertyHydrator();
77
 
78
        $companyServiceMapper = CompanyServiceMapper::getInstance($this->adapter);
79
        $companiesService = $companyServiceMapper->fetchAllActiveByServiceId(Service::DISCOVERY_CONTACTS);
80
 
81
        $discoveryContactInteractionTypeMapper = DiscoveryContactInteractionTypeMapper::getInstance($this->adapter);
82
 
83
        $discoveryContactMapper = DiscoveryContactMapper::getInstance($this->adapter);
84
        $discoveryContactInteractionMapper = DiscoveryContactInteractionMapper::getInstance($this->adapter);
85
        $discoveryContactLogMapper = DiscoveryContactLogMapper::getInstance($this->adapter);
86
 
87
        foreach($companiesService as $companyService)
88
        {
89
            $discoveryContactInteractionTypeDefault = $discoveryContactInteractionTypeMapper->fetchOneDefaultByCompanyId($companyService->company_id);
90
            if(!$discoveryContactInteractionTypeDefault) {
91
                $discoveryContactInteractionTypeDefault = $discoveryContactInteractionTypeMapper->fetchOneFirstActiveByCompanyId($companyService->company_id);
92
                $discoveryContactInteractionTypeDefault->default = DiscoveryContactInteractionType::DEFAULT_YES;
93
                $discoveryContactInteractionTypeMapper->update($discoveryContactInteractionTypeDefault);
94
 
95
 
96
 
97
 
98
            }
99
 
100
 
101
            $discoveryContacts =  $discoveryContactMapper ->fetchAllByCompanyId($companyService->company_id);
102
            foreach($discoveryContacts as $discoveryContact)
103
            {
104
                $discoveryContactInteraction = $discoveryContactInteractionMapper->fetchByContactIdAndInteractionTypeId($discoveryContact->id, $discoveryContactInteractionTypeDefault->id);
105
                if($discoveryContactInteraction) {
106
                    $discoveryContactLog = $discoveryContactLogMapper->fetchOneFirstByContactId($discoveryContact->id);
107
                    if(!$discoveryContactLog) {
108
 
109
 
110
 
111
                        $discoveryContactLog = new DiscoveryContactLog();
112
                        $discoveryContactLog->company_id = $discoveryContactInteraction->company_id;
113
                        $discoveryContactLog->contact_id = $discoveryContact->id;
114
                        $discoveryContactLog->user_id = $discoveryContactInteraction->user_id;
115
                        $discoveryContactLog->activity =  'LABEL_RECORD_CONTACT_ADDED';
116
                        $discoveryContactLog->details = 'LABEL_FIRST_NAME : ' . $discoveryContact->first_name  . PHP_EOL .
117
                        'LABEL_LAST_NAME : ' . $discoveryContact->last_name  . PHP_EOL .
118
                        'LABEL_CORPORATE_EMAIL : ' . $discoveryContact->corporate_email  . PHP_EOL .
119
                        'LABEL_COMPANY : ' . $discoveryContact->company  . PHP_EOL .
120
                        'LABEL_POSITION : ' . $discoveryContact->position  . PHP_EOL .
121
                        'LABEL_COUNTRY : ' . $discoveryContact->country  . PHP_EOL;
122
 
123
 
124
                        if ($discoveryContact->state) {
125
                            $discoveryContactLog->details .= 'LABEL_STATE : ' . $discoveryContact->state  . PHP_EOL;
126
                        }
127
                        if ($discoveryContact->city) {
128
                            $discoveryContactLog->details .= 'LABEL_CITY : ' . $discoveryContact->city  . PHP_EOL;
129
                        }
130
                        if ($discoveryContact->phone) {
131
                            $discoveryContactLog->details .= 'LABEL_PHONE : ' . $discoveryContact->phone  . PHP_EOL;
132
                        }
133
                        if ($discoveryContact->phone_extension) {
134
                            $discoveryContactLog->details .= 'LABEL_PHONE_EXTENSION : ' . $discoveryContact->phone_extension  . PHP_EOL;
135
                        }
136
                        if ($discoveryContact->personal_email) {
137
                            $discoveryContactLog->details .= 'LABEL_PERSONAL_EMAIL : ' . $discoveryContact->personal_email  . PHP_EOL;
138
                        }
139
                        if ($discoveryContact->celular) {
140
                            $discoveryContactLog->details .= 'LABEL_CELULAR : ' . $discoveryContact->celular  . PHP_EOL;
141
                        }
142
                        if ($discoveryContact->whatsapp) {
143
                            $discoveryContactLog->details .= 'LABEL_WHATSAPP : ' . $discoveryContact->whatsapp  . PHP_EOL;
144
                        }
145
                        if ($discoveryContact->linkedin) {
146
                            $discoveryContactLog->details .= 'LABEL_LINKEDIN : ' . $discoveryContact->linkedin  . PHP_EOL;
147
                        }
148
 
149
                        $values = $hydrator->extract($discoveryContactLog);
150
                        $values['added_on'] = $discoveryContactInteraction->added_on;
151
 
152
 
153
                        $discoveryContactLogMapper->insertRaw($values);
154
 
155
                    }
156
 
157
                } else {
158
                    $discoveryContactLog = $discoveryContactLogMapper->fetchOneFirstByContactId($discoveryContact->id);
159
                    if($discoveryContactLog) {
160
                        $values = [
161
                            'company_id' => $discoveryContact->company_id,
162
                            'contact_id' => $discoveryContact->id,
163
                            'user_id' => $discoveryContactLog->user_id,
164
                            'interaction_type_id' => $discoveryContactInteractionTypeDefault->id,
165
                            'notes' => '',
166
                            'added_on' => $discoveryContactLog->added_on
167
                        ] ;
168
 
169
 
170
                        $discoveryContactInteractionMapper->insertRaw($values);
171
                    }
172
 
173
 
174
                }
175
 
176
 
177
            }
178
 
179
 
180
 
181
 
182
 
183
        }
184
 
185
 
186
 
187
 
188
 
189
        $output->writeln('Fin del proceso');
190
 
191
        return 0;
192
    }
193
 
194
 
195
 
196
}