Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6849 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
4911 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;
6849 efrain 11
 
4911 efrain 12
use Laminas\Log\LoggerInterface;
13
use LeadersLinked\Mapper\UserMapper;
14
use LeadersLinked\Mapper\CompanyMapper;
15
use LeadersLinked\Mapper\CompanyUserMapper;
16
use LeadersLinked\Model\User;
17
use LeadersLinked\Model\UserType;
18
use LeadersLinked\Model\CompanyUser;
6866 efrain 19
use Laminas\Mvc\I18n\Translator;
20
use LeadersLinked\Cache\CacheInterface;
4911 efrain 21
 
22
class CheckDefaultFollowerAndConnectionForDefaultNetworkCommand extends Command
23
{
24
    /**
25
     *
6866 efrain 26
     * @var \Laminas\Db\Adapter\AdapterInterface
4911 efrain 27
     */
28
    private $adapter;
6866 efrain 29
 
30
    /**
31
     *
32
     * @var \LeadersLinked\Cache\CacheInterface
33
     */
34
    private $cache;
6849 efrain 35
 
4911 efrain 36
 
37
    /**
38
     *
6866 efrain 39
     * @var \Laminas\Log\LoggerInterface
4911 efrain 40
     */
41
    private $logger;
42
 
43
    /**
44
     *
45
     * @var array
46
     */
47
    private $config;
48
 
49
 
50
    /**
6866 efrain 51
     *
52
     * @var \Laminas\Mvc\I18n\Translator
53
     */
54
    private $translator;
55
 
56
 
57
    /**
4911 efrain 58
     *
6866 efrain 59
     * @param \Laminas\Db\Adapter\AdapterInterface $adapter
60
     * @param \LeadersLinked\Cache\CacheInterface $cache
61
     * @param \Laminas\Log\LoggerInterface
4911 efrain 62
     * @param array $config
6866 efrain 63
     * @param \Laminas\Mvc\I18n\Translator $translator
4911 efrain 64
     */
6866 efrain 65
     public function __construct($adapter, $cache, $logger, $config, $translator)
4911 efrain 66
    {
67
        $this->adapter      = $adapter;
6866 efrain 68
        $this->cache        = $cache;
4911 efrain 69
        $this->logger       = $logger;
70
        $this->config       = $config;
6866 efrain 71
        $this->translator   = $translator;
4911 efrain 72
 
73
        parent::__construct();
74
    }
75
 
76
 
77
    protected function execute(InputInterface $input, OutputInterface $output) : int
78
    {
79
        $output->writeln('Cargando las empresas');
80
 
81
        $companyMapper = CompanyMapper::getInstance($this->adapter);
82
        $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
83
 
84
        $companies = $companyMapper->fetchAll();
85
 
86
 
87
        foreach($companies as $company)
88
        {
89
            $user = $companyUserMapper->fetchOwnerByCompanyId($company->id);
90
            if(!$user) {
91
                $output->writeln('Agregando el propietario de la empresa : ' . $company->name);
92
 
93
                /** Creación del fake user propietario de la empresa */
94
                $user = new User();
95
                $user->email = 'fake-email'.$company->id;
96
                $user->first_name = substr($company->name, 0, 64);
97
                $user->last_name = substr($company->name, 64);
98
                $user->status = User::STATUS_INACTIVE;
99
                $user->blocked = User::BLOCKED_YES;
100
                $user->login_attempt = 0;
101
                $user->email_verified = User::EMAIL_VERIFIED_YES;
102
                $user->show_in_search = User::SHOW_IN_SEARCH_NO;
103
                $user->password = 'NO-PASSWORD';
104
                $user->usertype_id = UserType::COMPANY;
105
 
106
                $userMapper = UserMapper::getInstance($this->adapter);
107
                if($userMapper->insert($user)) {
108
                    $companyUser = new CompanyUser();
109
                    $companyUser->backend = CompanyUser::BACKEND_NO;
110
                    $companyUser->company_id = $company->id;
111
                    $companyUser->creator = CompanyUser::CREATOR_NO;
112
                    $companyUser->owner = CompanyUser::OWNER_YES;
113
                    $companyUser->status = CompanyUser::STATUS_ACCEPTED;
114
                    $companyUser->user_id = $user->id;
115
 
116
                    $companyUserMapper->insert($companyUser);
117
                }
118
 
119
 
120
            }
121
        }
122
 
123
 
124
        $output->writeln('Fin del proceso');
125
 
126
        return 0;
127
    }
128
 
129
 
130
 
131
}