/**
  * 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 RequestHistoryManager($config, $args);
     }
     return self::$instance;
 }
 public function service()
 {
     $service_company_id = intval($_REQUEST['service_company_id']);
     if ($this->getUserLevel() === UserGroups::$SERVICE_COMPANY) {
         $requestHistoryManager = RequestHistoryManager::getInstance($this->config, $this->args);
         $customerGivenRequestRecentCountByHours = $requestHistoryManager->getCustomerGivenRequestRecentCountByHours($this->getCustomerLogin(), 24, get_class());
         if ($customerGivenRequestRecentCountByHours > intval($this->getCmsVar('company_revert_price_limit'))) {
             $jsonArr = array('status' => "err", "errText" => $this->getPhrase(557) . ' ' . intval($this->getCmsVar('company_revert_price_limit')));
             echo json_encode($jsonArr);
             return false;
         }
     }
     $serviceCompaniesPriceListManager = ServiceCompaniesPriceListManager::getInstance($this->config, $this->args);
     $ret = $serviceCompaniesPriceListManager->removeCompanyLastPrice($service_company_id);
     if ($ret > 0) {
         $jsonArr = array('status' => "ok");
         echo json_encode($jsonArr);
         return true;
     } else {
         switch ($ret) {
             case -1:
                 $errMessage = "Price doesn't exist!";
                 break;
             default:
                 $errMessage = "You can not revert the price file! You have only 1 price file on pcstore.";
                 break;
         }
         $jsonArr = array('status' => "err", "errText" => "System Error: " . $errMessage);
         echo json_encode($jsonArr);
         return false;
     }
 }
 /**
  * Initializes DB mappers
  *
  * @param object $config
  * @param object $args
  * @return
  */
 function __construct($config, $args)
 {
     $this->mapper = CompanyMapper::getInstance();
     $this->config = $config;
     $this->args = $args;
     $this->companyDealersManager = CompanyDealersManager::getInstance($this->config, $this->args);
     $this->requestHistoryManager = RequestHistoryManager::getInstance($this->config, $this->args);
     $this->companiesPriceListManager = CompaniesPriceListManager::getInstance($this->config, $this->args);
 }
 public function logRequestInDB()
 {
     if ($this->logRequest()) {
         $requestHistoryManager = RequestHistoryManager::getInstance($this->config, $this->args);
         $cust = $this->getCustomer();
         $requestHistoryManager->addRow($this->getUserLevelString(), $cust ? $cust->getEmail() : '', get_class($this), $_REQUEST);
     }
 }
require_once CLASSES_PATH . "/managers/CompanyItemCheckListManager.class.php";
require_once CLASSES_PATH . "/managers/CmsSearchRequestsManager.class.php";
require_once CLASSES_PATH . "/managers/CbaRatesManager.class.php";
require_once CLASSES_PATH . "/managers/ReceiveEmailManager.class.php";
$config = parse_ini_file(CONF_PATH . "/config.ini");
DBMSFactory::init($config);
$onlineUsersManager = new OnlineUsersManager($config, null);
$onlineUsersManager->removeTimeOutedUsers(120);
//2 minutes
$customerAlertsManager = new CustomerAlertsManager($config, null);
$customerAlertsManager->removeOldAlerts(10);
//10 minute
$companyItemCheckListManager = new CompanyItemCheckListManager($config, null);
$companyItemCheckListManager->removeOldRowsBySeconds(120);
//2 minutes
$requestHistoryManager = new RequestHistoryManager($config, null);
$requestHistoryManager->removeOldRowsByDays(90);
// 90 days
$cmsSearchRequestsManager = new CmsSearchRequestsManager($config, null);
$cmsSearchRequestsManager->removeOldRowsByDays(90);
// 90 days
//chaching cba rates for all exchanges
$rates = getCbaRates();
if ($rates !== false) {
    $datetime = $rates[1];
    $cbaRatesManager = new CbaRatesManager($config, null);
    $selectByField = $cbaRatesManager->selectByField('cba_datetime', $datetime);
    if (empty($selectByField)) {
        foreach ($rates[0] as $rate) {
            $cbaRatesManager->addRow($datetime, $rate[0], $rate[1], $rate[2]);
        }