public function addEventIntoEventsTableForOnlineCustomers($to_emails_array, $fromName, $subject)
 {
     $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args);
     $onlineUsersManager = OnlineUsersManager::getInstance($this->config, $this->args);
     $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args);
     $onlineRegisteredCustomers = $onlineUsersManager->getOnlineRegisteredCustomers();
     foreach ($onlineRegisteredCustomers as $onlineUsersDto) {
         $custEmail = $onlineUsersDto->getEmail();
         if (in_array($custEmail, $to_emails_array)) {
             $customerInboxUnreadEmailsCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($custEmail);
             $customerAlertsManager->addNewEmailCustomerAlert($custEmail, $fromName, $subject, $customerInboxUnreadEmailsCount, $onlineUsersDto->getLanguageCode());
         }
     }
 }
 public function addEventIntoEventsTableForOnlineCustomers($company)
 {
     $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args);
     $companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args);
     $onlineUsersManager = OnlineUsersManager::getInstance($this->config, $this->args);
     $userManager = UserManager::getInstance($this->config, $this->args);
     $onlineRegisteredCustomers = $onlineUsersManager->getOnlineRegisteredCustomers();
     foreach ($onlineRegisteredCustomers as $onlineUsersDto) {
         $customerType = $userManager->getCustomerTypeByEmail($onlineUsersDto->getEmail());
         if ($customerType === UserGroups::$USER) {
             $userCustomer = $userManager->getUserByEmail($onlineUsersDto->getEmail());
             $dealerDto = $companyDealersManager->getByCompanyIdAndUserId($userCustomer->getId(), $company->getId());
             if (isset($dealerDto)) {
                 $customerAlertsManager->addPriceUploadCustomerAlert($onlineUsersDto->getEmail(), $company, $onlineUsersDto->getLanguageCode());
             }
         } elseif ($customerType === UserGroups::$COMPANY || $customerType === UserGroups::$ADMIN) {
             $customerAlertsManager->addPriceUploadCustomerAlert($onlineUsersDto->getEmail(), $company);
         }
     }
 }
 private function getOnlineAdminsEmails()
 {
     $adminManager = AdminManager::getInstance(null, null);
     $adminsDtos = $adminManager->selectAll();
     $onlineUsersManager = OnlineUsersManager::getInstance(null, null);
     $ret = array();
     foreach ($adminsDtos as $adminDto) {
         $adminEmail = $adminDto->getEmail();
         $onlineAdminDto = $onlineUsersManager->selectByField('email', $adminEmail);
         if (!empty($onlineAdminDto)) {
             $ret[] = $adminEmail;
         }
     }
     return $ret;
 }
 public function load()
 {
     $onlineUsersManager = OnlineUsersManager::getInstance($this->config, $this->args);
     $ac = $onlineUsersManager->selectAll();
     $this->addParam('onlineusers', $ac);
 }