/** * Returns an singleton instance of this class * * @param object $config * @param object $args * @return */ public static function getInstance($config, $args) { if (self::$instance == null) { self::$instance = new CustomerLocalEmailsManager($config, $args); } return self::$instance; }
public function load() { $emailId = $_REQUEST['email_id']; $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $userManager = UserManager::getInstance($this->config, $this->args); $emailDto = $customerLocalEmailsManager->selectByPK($emailId); if (isset($emailId) && isset($emailDto) && $emailDto->getCustomerEmail() === $this->getCustomerLogin()) { $this->addParam("email_subject", $emailDto->getSubject()); $this->addParam("email_body", $emailDto->getBody()); $customerEmail = $emailDto->getFromEmail(); if (isset($_REQUEST['reply']) && $_REQUEST['reply'] == 1) { $this->addParam("email_to", $customerEmail); $customer = $userManager->getCustomerByEmail($customerEmail); if (isset($customer)) { $customerContactNameForEmail = $customer->getCustomerContactNameForEmail(); $this->addParam("email_to_name", $customerContactNameForEmail); $customerTypeString = $userManager->getCustomerTypeStringFromCustomerDto($customer); $this->addParam("email_to_type", $customerTypeString); } } if ($emailDto->getReadStatus() == 0) { $customerLocalEmailsManager->setReadStatus($emailId, 1); } } }
public function load() { $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $customer = $this->getCustomer(); $customerEmail = $customer->getEmail(); $emails = $customerLocalEmailsManager->getCustomerTrashEmailsByCustomerEmail($customerEmail); $this->addParam("emails", $emails); }
public function service() { $email_ids = $_REQUEST['email_ids']; $email_ids_array = explode(',', $email_ids); $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $customerLocalEmailsManager->restoreEmails($this->getCustomerLogin(), $email_ids_array); $jsonArr = array('status' => "ok"); echo json_encode($jsonArr); return true; }
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 load() { $emailId = $_REQUEST['email_id']; $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $emailDto = $customerLocalEmailsManager->selectByPK($emailId); if ($emailDto->getCustomerEmail() === $this->getCustomerLogin()) { $this->addParam("email_body_html", $emailDto->getBody()); if ($emailDto->getReadStatus() == 0) { $customerLocalEmailsManager->setReadStatus($emailId, 1); } } $customer = $this->getCustomer(); $customerEmail = $customer->getEmail(); $unreadCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($customerEmail); $this->addParam("unread_mails_count", $unreadCount); }
public function service() { $toTrash = isset($_REQUEST['to_trash']) && $_REQUEST['to_trash'] == 1 ? true : false; $delete = isset($_REQUEST['delete']) && $_REQUEST['delete'] == 1 ? true : false; $email_ids = $_REQUEST['email_ids']; $email_ids_array = explode(',', $email_ids); $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); if ($toTrash) { $customerLocalEmailsManager->trashEmails($this->getCustomerLogin(), $email_ids_array); } elseif ($delete) { $customerLocalEmailsManager->deleteEmails($this->getCustomerLogin(), $email_ids_array); } $jsonArr = array('status' => "ok"); echo json_encode($jsonArr); return true; }
public function load() { $this->addParam("mailsNavigationBarWidth", 200); if (!isset($_REQUEST['folder'])) { $_REQUEST['folder'] = 'inbox'; } switch ($_REQUEST['folder']) { case 'trash': case 'sent': case 'inbox': $this->folder = $_REQUEST['folder']; break; default: $this->folder = 'inbox'; break; } $this->addParam("active_folder_to_show", $this->folder); //unread email count $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $customer = $this->getCustomer(); $customerEmail = $customer->getEmail(); $unreadCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($customerEmail); $this->addParam("unread_mails_count", $unreadCount); }
public function deleteUserAndDependencies($id) { $userDto = $this->selectByPK($id); if ($userDto) { $email = $userDto->getEmail(); $this->deleteByPK($id); $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args); $userSubUsersManager->deleteByField('user_id', $id); $userPendingSubUsersManager = UserPendingSubUsersManager::getInstance($this->config, $this->args); $userPendingSubUsersManager->deleteByField('user_id', $id); require_once CLASSES_PATH . "/managers/CustomerCartManager.class.php"; $customerCartManager = CustomerCartManager::getInstance($this->config, $this->args); $customerCartManager->deleteByField('email', $email); require_once CLASSES_PATH . "/managers/CustomerLocalEmailsManager.class.php"; $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $customerLocalEmailsManager->deleteByField('customer_email', $email); require_once CLASSES_PATH . "/managers/CompanyDealersManager.class.php"; $companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args); $companyDealersManager->deleteByField('user_id', $id); } }
public function manageTabs() { $userLevel = $this->sessionManager->getUser()->getLevel(); $tabTitles = array(); $customer = $this->getCustomer(); $lm = LanguageManager::getInstance($this->config, $this->args); if ($this->isLoggedInCustomer()) { $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $unreadEmailsCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($this->getCustomerLogin()); } $tabsPath = array("item_search" => "main", "companies_list" => "main", "company_profile" => "company", "service_company_profile" => "servicecompany", "service_company_profile" => "servicecompany", "manage_items" => "company/stock", "pc_configurator" => "main", "upload_price" => "company/uploadprice", "service_upload_price" => "servicecompany/uploadprice", "user_management" => "main", "your_orders" => "main", "your_profile" => "main", "item_warranty" => "company", "dealers_list" => "company", "your_mails" => "main"); $this->addParam("tabs_path", $tabsPath); if ($userLevel === UserGroups::$ADMIN) { $type = $customer->getType(); if ($type === 'price_manager') { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); $tabTitles['upload_price'] = $lm->getPhraseSpan(90); $tabTitles['service_upload_price'] = "Service upload"; $tabTitles['item_search'] = $lm->getPhraseSpan(184); $this->activeLoadName = "upload_price"; } elseif ($type === 'item_manager') { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); $tabTitles['manage_items'] = $lm->getPhraseSpan(92); $tabTitles['item_search'] = $lm->getPhraseSpan(184); $this->activeLoadName = "manage_items"; } elseif ($type === 'order_manager') { $tabTitles['your_orders'] = 'Customer Orders'; $tabTitles['item_search'] = $lm->getPhraseSpan(184); $this->activeLoadName = "your_orders"; } elseif ($type === 'admin') { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); $tabTitles['upload_price'] = $lm->getPhraseSpan(90); $tabTitles['service_upload_price'] = "Service upload"; $tabTitles['items_categories'] = 'Manage Categories'; $tabTitles['manage_items'] = $lm->getPhraseSpan(92); $tabTitles['your_orders'] = 'Customer Orders'; $tabTitles['item_search'] = $lm->getPhraseSpan(184); $tabTitles['admin_statistics'] = '***'; $this->activeLoadName = "companies_list"; } elseif ($type === 'all') { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); $tabTitles['upload_price'] = $lm->getPhraseSpan(90); $tabTitles['service_upload_price'] = "Service upload"; $tabTitles['manage_items'] = $lm->getPhraseSpan(92); $tabTitles['your_orders'] = 'Customer Orders'; $tabTitles['item_search'] = $lm->getPhraseSpan(184); $this->activeLoadName = "companies_list"; } $tabTitles['your_mails'] = $lm->getPhraseSpan(468) . ($unreadEmailsCount > 0 ? '*' : ''); } elseif ($userLevel === UserGroups::$COMPANY) { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); $tabTitles['company_profile'] = $lm->getPhraseSpan(94); $tabTitles['upload_price'] = $lm->getPhraseSpan(90); $tabTitles['dealers_list'] = $lm->getPhraseSpan(93); $tabTitles['your_orders'] = $lm->getPhraseSpan(142); $tabTitles['item_warranty'] = $lm->getPhraseSpan(82); $tabTitles['manage_items'] = $lm->getPhraseSpan(92); $tabTitles['item_search'] = $lm->getPhraseSpan(184); $tabTitles['your_mails'] = $lm->getPhraseSpan(468) . ($unreadEmailsCount > 0 ? '*' : ''); $this->activeLoadName = "companies_list"; } elseif ($userLevel === UserGroups::$SERVICE_COMPANY) { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); $tabTitles['service_company_profile'] = $lm->getPhraseSpan(94); $serviceCompany = $this->getCustomer(); if ($serviceCompany->getHasPrice() == 1) { $tabTitles['service_upload_price'] = $lm->getPhraseSpan(90); $tabTitles['service_dealers_list'] = $lm->getPhraseSpan(93); } $tabTitles['your_orders'] = $lm->getPhraseSpan(142); $tabTitles['item_search'] = $lm->getPhraseSpan(184); $tabTitles['your_mails'] = $lm->getPhraseSpan(468) . ($unreadEmailsCount > 0 ? '*' : ''); $this->activeLoadName = "companies_list"; } elseif ($userLevel === UserGroups::$USER) { $tabTitles['companies_list'] = $lm->getPhraseSpan(89); if ($this->getCustomer()->getHidden() != 1) { $tabTitles['your_profile'] = $lm->getPhraseSpan(20); $tabTitles['user_management'] = $lm->getPhraseSpan(141); } $tabTitles['your_orders'] = $lm->getPhraseSpan(142); $tabTitles['item_search'] = $lm->getPhraseSpan(184); $tabTitles['your_mails'] = $lm->getPhraseSpan(468) . ($unreadEmailsCount > 0 ? '*' : ''); $this->activeLoadName = "pc_configurator"; } elseif ($userLevel === UserGroups::$GUEST) { $tabTitles['item_search'] = $lm->getPhraseSpan(184); $activeTabsArray = array('item_search', 'pc_configurator'); shuffle($activeTabsArray); $this->activeLoadName = $activeTabsArray[0]; } $tabTitles['pc_configurator'] = $lm->getPhraseSpan(226); $this->activeLoadPath = 'main/'; $activeTab = $this->getActiveTab(isset($_REQUEST["p"]) ? $_REQUEST["p"] : null); if ($activeTab != null) { $this->activeLoadName = $activeTab[0]; $this->activeLoadPath = $activeTab[1]; } //var_dump($tabTitles);exit; $this->addParam("tabTitles", $tabTitles); $this->addParam('active_load_name', $this->activeLoadName); $pagesClone = $this->pages; unset($pagesClone['item']); $_allLoadNames = array_values($pagesClone); $allLoadNames = array(); foreach ($_allLoadNames as $value) { if (is_array($value)) { $allLoadNames[] = $value[0]; } else { $allLoadNames[] = $value; } } $allLoadPageUrls = array_keys($pagesClone); $this->addParam('load_url', array_combine($allLoadNames, $allLoadPageUrls)); }
public function addCustomerMessagesAfterLoginByPreviousPing($custDto, $userLevel, $previousPing) { if ($userLevel === UserGroups::$GUEST) { return false; } $custEmail = $custDto->getEmail(); $companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args); $userCompaniesIdsArray = array(); if ($userLevel === UserGroups::$USER) { $userCompaniesIdsArray = $companyDealersManager->getUserCompaniesIdsArray($custDto->getId()); } if ($userLevel === UserGroups::$COMPANY || $userLevel === UserGroups::$ADMIN || !empty($userCompaniesIdsArray)) { //new prices after last ping $companiesPriceListManager = CompaniesPriceListManager::getInstance($this->config, $this->args); $allPricesAfterTime = $companiesPriceListManager->getAllPricesAfterTime($previousPing, $userCompaniesIdsArray); if (!empty($allPricesAfterTime)) { $pre = HTTP_PROTOCOL . HTTP_HOST; $massage = ''; foreach ($allPricesAfterTime as $dto) { $companyName = $dto->getCompanyName() . ' (`558`: ' . $dto->getUploadDateTime() . ')'; $companyId = $dto->getCompanyId(); $pricePath = HTTP_PROTOCOL . HTTP_HOST . '/price/last_price/' . $companyId; $massage .= '<div><a href="' . $pricePath . '"><img src="' . $pre . '/images/small_logo/' . $companyId . '" style="vertical-align: middle;" /> ' . $companyName . '</a></div>'; } $this->addCustomerMessage($custEmail, '540', $massage, 1, 'attention'); } } //new added dealers messages for (company only) if ($userLevel === UserGroups::$COMPANY || $userLevel === UserGroups::$ADMIN) { $dealersAfterGivenDatetime = $companyDealersManager->getAfterGivenDatetime($userLevel === UserGroups::$ADMIN ? 0 : intval($custDto->getId()), $previousPing); if (!empty($dealersAfterGivenDatetime)) { $this->addCustomerMessage($custEmail, '543', '`541` ' . count($dealersAfterGivenDatetime) . '`542`', 1, 'attention'); } } //alert to admin if dollar rate doeasn't match to config rate if ($userLevel === UserGroups::$ADMIN) { $cbaRatesManager = CbaRatesManager::getInstance($this->config, $this->args); $latestUSDExchange = $cbaRatesManager->getLatestUSDExchange(); $us_dollar_exchange = floatval($this->getCmsVar('us_dollar_exchange')); $us_dollar_exchange_down = floatval($this->getCmsVar('us_dollar_exchange_down')); $pcstoreAverageUSDExchange = ($us_dollar_exchange + $us_dollar_exchange_down) / 2; $maxAllowedDollarDifferenceParcent = floatval($this->getCmsVar('admin_alert_if_cba_dollar_rate_is_more_than_percent')); if (abs($latestUSDExchange - $pcstoreAverageUSDExchange) / $latestUSDExchange > $maxAllowedDollarDifferenceParcent / 100) { $this->addCustomerMessage($custEmail, '483', 'Cba rate for USD Dollar ($) is: ' . $latestUSDExchange, 1, 'warning'); } } //new added bonuses to user (users only) if ($userLevel === UserGroups::$USER) { $bonusHistoryManager = BonusHistoryManager::getInstance($this->config, $this->args); $userBonusesAfterGivenDatetime = $bonusHistoryManager->getUserBonusesAfterGivenDatetime($custDto->getId(), $previousPing); if (!empty($userBonusesAfterGivenDatetime)) { $pointSum = 0; foreach ($userBonusesAfterGivenDatetime as $bDto) { $pointSum += intval($bDto->getPoints()); } $pointSum = intval($pointSum); if ($pointSum > 0) { $phraseId = '544'; } else { $phraseId = '548'; } $this->addCustomerMessage($custEmail, '545', '`' . $phraseId . '` ' . strval(intval(abs($pointSum))) . 'դր.`542`', 1, 'attention'); } } //new added sub users (users only) if ($userLevel === UserGroups::$USER) { $userSubUsersManager = UserSubUsersManager::getInstance($this->config, $this->args); $rowsAddedAfterGivenDatetime = $userSubUsersManager->getRowsAddedAfterGivenDatetime($custDto->getId(), $previousPing); if (!empty($rowsAddedAfterGivenDatetime)) { $this->addCustomerMessage($custEmail, '546', strval(count($rowsAddedAfterGivenDatetime)) . ' `547`', 1, 'attention'); } } $customerLocalEmailsManager = CustomerLocalEmailsManager::getInstance($this->config, $this->args); $unreadEmailsCount = $customerLocalEmailsManager->getCustomerInboxUnreadEmailsCountCustomerEmail($custEmail); if ($unreadEmailsCount > 0) { $customerAlertsManager = CustomerAlertsManager::getInstance($this->config, $this->args); $customerAlertsManager->addUnreadEmailsCustomerAlert($custEmail, $unreadEmailsCount); } }