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