Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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