/** * @fn preferiti * @short Lists favorite instruments * @details Action to list favorite instruments for the current user, * filtered by attributes like market, type, currency, and sorted by any of * the columns (defaults to <code>title</code>). */ public function preferiti() { $conn = $this->get_connection(); $stock_factory = new Stock(); $query = 'SELECT * FROM `creso_titoli` LEFT JOIN `creso_preferiti` ON `creso_titoli`.`isin` = `creso_preferiti`.`isin` ' . "WHERE " . (is_numeric($_REQUEST['attivo']) ? "`attivo` = {$conn->escape($_REQUEST['attivo'])} " : '`attivo` = 1 ') . "AND `utente` = '{$conn->escape($_COOKIE['username'])}' " . (!empty($_REQUEST['mercato']) ? "AND `mercato` = '{$conn->escape($_REQUEST['mercato'])}' " : '') . (!empty($_REQUEST['tipo']) ? "AND `tipo` = '{$conn->escape($_REQUEST['tipo'])}' " : '') . (!empty($_REQUEST['divisa']) ? "AND `divisa` = '{$conn->escape($_REQUEST['divisa'])}' " : '') . "ORDER BY `{$conn->escape($this->get_sort('title'))}` {$conn->escape($this->get_dir())} " . "LIMIT {$conn->escape($this->get_start())}, {$conn->escape($this->get_limit())}"; $this->stocks = $stock_factory->find_by_query($query); $query = 'SELECT COUNT(*) FROM `creso_titoli` LEFT JOIN `creso_preferiti` ON `creso_titoli`.`isin` = `creso_preferiti`.`isin` ' . "WHERE " . (is_numeric($_REQUEST['attivo']) ? "`attivo` = {$conn->escape($_REQUEST['attivo'])} " : '`attivo` = 1 ') . "AND `utente` = '{$conn->escape($_COOKIE['username'])}' " . (!empty($_REQUEST['mercato']) ? "AND `mercato` = '{$conn->escape($_REQUEST['mercato'])}' " : '') . (!empty($_REQUEST['tipo']) ? "AND `tipo` = '{$conn->escape($_REQUEST['tipo'])}' " : '') . (!empty($_REQUEST['divisa']) ? "AND `divisa` = '{$conn->escape($_REQUEST['divisa'])}' " : ''); $conn->prepare($query); $conn->exec(); $this->count = $conn->fetch_array()[0]; $conn->free_result(); $this->is_favorite = TRUE; $this->render(array('action' => 'index')); }
public function run($context) { $stock_factory = new Stock(); $stocks = $stock_factory->find_by_query('SELECT * FROM `creso_titoli` ' . 'LEFT JOIN `creso_obbligazioni` ON `creso_titoli`.`isin` = `creso_obbligazioni`.`isin` ' . 'WHERE ' . "`creso_titoli`.`tipo` = 'obbligazione' " . 'AND ' . "`creso_obbligazioni`.`emissione` = '0000-00-00' " . 'AND ' . '`creso_titoli`.`attivo` = 1 ' . 'LIMIT 1500'); $updated_count = 0; foreach ($stocks as $stock) { $bond = new Bond(); $bond->find_by_id($stock->isin); $bond->emissione = isin2emissione_ariva($stock->isin); if ($bond->emissione != '0000-00-00') { $bond->save(); $updated_count++; } } printf("%s updated %d bonds\n", get_called_class(), $updated_count); }
protected function ensure_multiple_isin() { $isins_from_request = isset($_REQUEST['id']) ? $_REQUEST['id'] : $_REQUEST['isin']; if (isset($isins_from_request)) { $isins = explode(',', $isins_from_request); } else { $conn = Db::get_connection(); $stock_factory = new Stock(); // $stocks = $stock_factory->find_all(array( // 'where_clause' => "`tipo` = 'obbligazione' " . // 'AND `attivo` = 1', // 'order_by' => '`title` ASC', // 'limit' => 57, // 'start' => 0 // )); if (!isset($_REQUEST['start'])) { $_REQUEST['start'] = 0; } $stocks = $stock_factory->find_by_query('SELECT `creso_titoli`.`isin` FROM `creso_titoli` ' . 'JOIN `creso_obbligazioni` ON `creso_titoli`.`isin` = `creso_obbligazioni`.`isin` ' . "WHERE `creso_titoli`.`tipo` = 'obbligazione' " . 'AND `creso_titoli`.`attivo` = 1 ' . 'AND `creso_obbligazioni`.`zero_coupon` = 0 ' . 'ORDER BY ' . '`creso_obbligazioni`.`tasso` DESC ' . ',' . '`creso_obbligazioni`.`scadenza` DESC ' . "LIMIT {$conn->escape($_REQUEST['start'])}, 170"); $isins = array_map(function ($stock) { return $stock->isin; }, $stocks); Db::close_connection($conn); // $this->redirect_to(array('action' => 'compare', 'id' => implode(',', $isins))); } $this->isins = $isins; }
<?php ini_set('max_execution_time', 3000); require_once dirname(__FILE__) . "/lib.inc.php"; require_once dirname(__FILE__) . "/../include/db.inc.php"; require_once dirname(__FILE__) . "/../include/" . DB_ADAPTER . "_adapter.php"; require_once dirname(__FILE__) . "/../models/preference.php"; require_once dirname(__FILE__) . "/../models/bond.php"; require_once dirname(__FILE__) . "/../models/stock.php"; date_default_timezone_set('Europe/Rome'); echo "Reading preferences..."; $preference_factory = new Preference(); $preferences = $preference_factory->find_all()[0]; // print_r($preferences); echo "done\n"; $stock_factory = new Stock(); $stocks = $stock_factory->find_by_query('SELECT * FROM `creso_titoli` ' . 'LEFT JOIN `creso_obbligazioni` ON `creso_titoli`.`isin` = `creso_obbligazioni`.`isin` ' . 'WHERE ' . "`creso_titoli`.`tipo` = 'obbligazione' " . 'AND ' . "`creso_obbligazioni`.`emissione` = '0000-00-00' " . 'AND ' . '`creso_titoli`.`attivo` = 1 ' . 'LIMIT 1500'); printf("%d bonds found\n", count($stocks)); $updated_count = 0; foreach ($stocks as $stock) { // print_r($stock); $bond = new Bond(); $bond->find_by_id($stock->isin); // print_r($bond); $bond->emissione = isin2emissione_ariva($stock->isin); print_r($bond); if ($bond->emissione != '0000-00-00') { $bond->save(); $updated_count++; } } printf("%d updated bonds\n", $updated_count);