/**
  * Returns an singleton instance of this class
  *
  * @param object $config
  * @param object $args
  * @return
  */
 public static function getInstance()
 {
     if (self::$instance == null) {
         self::$instance = new ReceiveEmailManager();
     }
     return self::$instance;
 }
$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]);
        }
    }
}
$receiveEmailManager = ReceiveEmailManager::getInstance();
$receiveEmailManager->checkPriceEmailsAndAddAlertsToOnlineAdmins();
/**
 * 
 * @return array(datetime, array(array(iso, amount, rate),...)) or FALSE
 */
function getCbaRates()
{
    $soapClient = new SoapClient("http://api.cba.am/exchangerates.asmx?wsdl");
    $ret = array();
    try {
        $info = $soapClient->ExchangeRatesLatest();
        if (!isset($info->ExchangeRatesLatestResult) || !isset($info->ExchangeRatesLatestResult->Rates) || !isset($info->ExchangeRatesLatestResult->Rates->ExchangeRate)) {
            return false;
        }
        foreach ($info->ExchangeRatesLatestResult->Rates->ExchangeRate as $dto) {