Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5765 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

<?php
namespace LeadersLinked\Helper;

use Laminas\View\Helper\AbstractHelper;
use Laminas\Db\Adapter\AdapterInterface;
use LeadersLinked\Mapper\UserMapper;
use LeadersLinked\Model\UserType;
use LeadersLinked\Mapper\ConnectionMapper;
use LeadersLinked\Mapper\LocationMapper;
use LeadersLinked\Mapper\ProfileVisitMapper;
use LeadersLinked\Model\SelfEvaluationFormUser;
use LeadersLinked\Mapper\SelfEvaluationFormUserMapper;
use LeadersLinked\Mapper\QueryMapper;
use Laminas\Db\Sql\Expression;
use LeadersLinked\Mapper\SelfEvaluationFormMapper;
use LeadersLinked\Model\SelfEvaluationForm;
use LeadersLinked\Mapper\NetworkMapper;
use LeadersLinked\Model\Network;
use LeadersLinked\Mapper\CompanyMapper;
use LeadersLinked\Mapper\CompanyUserMapper;
use LeadersLinked\Model\CompanyUser;

class MenuHelper extends AbstractHelper
{
    /**
     *
     * @var AdapterInterface
     */
    private $adapter;
    
    /**
     * 
     * @var array
     */
    private $config;
    
    
    /**
     *
     * @param AdapterInterface $adapter
     * @param array $config
     */
    public function __construct($adapter, $config)
    {
        $this->adapter = $adapter;
        $this->config = $config;
    }
    
    /**
     * 
     * @param int $user_id
     * @return string
     */
    public function __invoke($user_id)
    {
        $userMapper = UserMapper::getInstance($this->adapter);
        $user = $userMapper->fetchOne($user_id);
        
        
        $pages = [];
        
        if($user) {
            
            $networkMapper = NetworkMapper::getInstance($this->adapter);
            $network = $networkMapper->fetchOne($user->network_id);
            
            
            
            if($network->default == Network::DEFAULT_YES) {
                if($network->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
                    $pages = getAclMenuDefaultNetworkConnectionUser2User();
                } else {
                    $pages = getAclMenuDefaultNetworkConnectionAll2All();
                }
            } else {
                if($network->relationship_user_mode == Network::RELATIONSHIP_USER_MODE_USER_2_USER)  {
                    
                    $pages = getAclMenuNonDefaulNetworkConnectionUser2User();
                    
                } else {
                    $pages = getAclMenuNonDefaultNetworkConnectionAll2All();
                }
            }
            
            
            /*
            $queryMapper = QueryMapper::getInstance($this->adapter);
            
            $select = $queryMapper->getSql()->select();
            $select->columns(['total' => new Expression('COUNT(*)')]);
            $select->from(['u' => SelfEvaluationFormUserMapper::_TABLE]);
            $select->join(['f' => SelfEvaluationFormMapper::_TABLE], 'u.form_id  = f.id');
            $select->where->equalTo('u.user_i', $user_id);
            $select->where->equalTo('f.status', SelfEvaluationForm::STATUS_ACTIVE);
            
            
            $record = $queryMapper->fetchOne($select);
            $access_for_self_evaluation = $record['total'] > 0;
            
            */
            
            $user_uuid = $user->uuid;
            $fullname = trim($user->first_name . ' ' . $user->last_name);
            
            $profileVisitMapper = ProfileVisitMapper::getInstance($this->adapter);
            $visits = $profileVisitMapper->getTotalByVisitedId($user->id);
            
            $connectionMapper = ConnectionMapper::getInstance($this->adapter);
            $connections = $connectionMapper->fetchTotalConnectionByUser($user->id);
            
            
            if($user->location_id) {
                $locationMapper = LocationMapper::getInstance($this->adapter);
                $location = $locationMapper->fetchOne($user->location_id);
                
                $country = $location->country;
            } else {
                $country = '';
            }
            
            
          
            
            $userMapper = UserMapper::getInstance($this->adapter);
            $user = $userMapper->fetchOne($user_id);
            

            
            if($user && $user->usertype_id == UserType::ADMIN) {
                $link_admin = '/backend/signin-admin';
            } else {
                $link_admin = '';
            } 
            
         
            
            $link_company = '';
            if($network->default != Network::DEFAULT_YES) {
                $companyMapper = CompanyMapper::getInstance($this->adapter);
                $company = $companyMapper->fetchDefaultForNetworkByNetworkId($network->id);
                if($company) {
                    $companyUserMapper = CompanyUserMapper::getInstance($this->adapter);
                    $companyUser = $companyUserMapper->fetchOneByCompanyIdAndUserId($company->id, $user->id);
                    if($companyUser) {
                        if($companyUser && $companyUser->status == CompanyUser::STATUS_ACCEPTED && $companyUser->backend == CompanyUser::BACKEND_YES ) {
                            $link_company = ['route' => 'backend/signin-company', 'id' => $company->uuid ];
                        }
                    }
                }
            }
   
        } else {
            $user_uuid= '';
            $fullname = '';
            $country = '';
            $visits = 0;
            $connections = 0;
            $link_admin = '';
            $link_company = '';
        }
        
        $data = [
            'user_uuid' =>  $user_uuid,
            'fullname' => $fullname,
            'country' => $country,
            'visits' => $visits,
            'connections' => $connections,
            'link_admin' => $link_admin,
            'link_company' => $link_company,
            'pages' => $pages
        ];
        
        return $this->getView()->render('helpers/menu.phtml', $data);
    }
}