本文整理匯總了PHP中Stock::find_by_id方法的典型用法代碼示例。如果您正苦於以下問題:PHP Stock::find_by_id方法的具體用法?PHP Stock::find_by_id怎麽用?PHP Stock::find_by_id使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Stock
的用法示例。
在下文中一共展示了Stock::find_by_id方法的9個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: roi_with_timeline
public static function roi_with_timeline($isin, $username, $month_from, $month_to)
{
$conn = Db::get_connection();
$stock = new Stock();
if (!$stock->find_by_id($isin)) {
return;
}
$portfolio_stock_factory = new PortfolioStock();
$portfolio_stocks = $portfolio_stock_factory->find_all(array('where_clause' => "`isin` = '{$conn->escape($isin)}' " . "AND `utente` = '{$conn->escape($username)}'"));
if (count($portfolio_stocks) == 0) {
return;
}
$portfolio_stock = $portfolio_stocks[0];
$quantita = self::quantita_history($isin, $username, $month_from);
switch ($stock->tipo) {
case 'obbligazione':
$investito = $portfolio_stock->prezzo * $portfolio_stock->quantita / 100;
break;
default:
$investito = $portfolio_stock->prezzo * $portfolio_stock->quantita;
}
$investito = Change::convert($investito, $stock->divisa);
$roi = PianificatoreHelper::roi_with_timeline($isin, $quantita, $month_from, $month_to, $investito);
foreach ($roi->payments as $payment) {
$payment->portfolio_stock = $portfolio_stock;
}
// print_r($roi);
return $roi;
}
示例2: run
public function run($context)
{
$stock_count = 0;
foreach (self::$URLS as $url) {
$handle = fopen($url, 'r');
if ($handle) {
$i = 0;
while (($buffer = fgets($handle, 4096)) !== false) {
if ($i++ == 0) {
// Skip header
// ISIN;Tipologia;Emittente;Descrizione;"Data di scadenza";"Valuta di negoziazione";S&P;"Q.tà Acquisto";"Prezzo Acquisto";"Prezzo Vendita";"Q.tà Vendita";"Prezzo ultimo contratto";"Rendimento effettivo a scadenza lordo";Sospeso
continue;
}
$details = explode(';', $buffer);
// print_r($details);
$stock = new Stock();
if (!$stock->find_by_id($details[0])) {
echo 'New stock';
$stock->isin = $details[0];
$stock->tipo = 'obbligazione';
$stock->title = $this->unwrap($details[3]);
$stock->divisa = $details[5];
$stock->rating = $this->unwrap($details[6]);
$stock->mercato = 'eurotlx';
$stock->_force_create = TRUE;
print_r($stock);
$stock->save();
$stock_count++;
} else {
if ($stock->mercato == 'ita') {
echo "Updating mercato for {$stock->isin}";
$stock->mercato = 'eurotlx';
$stock->save();
$stock_count++;
}
}
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
}
printf("%s updated %d stocks\n", get_called_class(), $stock_count);
}
示例3: timeline
public static function timeline($isin, $quantita, $month_from, $month_to)
{
$payments = array();
$conn = Db::get_connection();
$stock = new Stock();
if (!$stock->find_by_id($isin)) {
return;
}
$yields = PaymentsHelper::yields($isin, $month_from, $month_to);
$refunds = PaymentsHelper::refunds($isin, $month_from, $month_to);
$events = array_merge($yields, $refunds);
$payments = array();
foreach ($events as $event) {
if (is_array($quantita)) {
// reset() rewinds array's internal pointer to the first element and returns the value of the first array element, or FALSE if the array is empty.
$q = reset($quantita);
foreach ($quantita as $date => $value) {
if (strtotime($date) < $event->timestamp) {
break;
}
$q = $value;
}
} else {
$q = $quantita;
}
if ($event->tipo == 'rimborso') {
switch ($event->stock->tipo) {
case 'obbligazione':
$event->importo *= $q / 100;
break;
default:
$event->importo *= $q;
}
} else {
$event->importo *= $q;
}
$event->quantita = $q;
$payments[] = $event;
}
// print_r($payments);
Db::close_connection($conn);
return $payments;
}
示例4: fopen
return $str;
}
if (isset($argv[1])) {
$handle = fopen($argv[1], 'r');
if ($handle) {
$i = 0;
while (($buffer = fgets($handle, 4096)) !== false) {
if ($i++ == 0) {
// Skip header
// ISIN;Tipologia;Emittente;Descrizione;"Data di scadenza";"Valuta di negoziazione";S&P;"Q.tà Acquisto";"Prezzo Acquisto";"Prezzo Vendita";"Q.tà Vendita";"Prezzo ultimo contratto";"Rendimento effettivo a scadenza lordo";Sospeso
continue;
}
$details = explode(';', $buffer);
// print_r($details);
$stock = new Stock();
if (!$stock->find_by_id($details[0])) {
echo 'New stock';
$stock->isin = $details[0];
$stock->tipo = 'obbligazione';
$stock->title = unwrap($details[3]);
$stock->divisa = $details[5];
$stock->rating = unwrap($details[6]);
$stock->mercato = 'eurotlx';
$stock->_force_create = TRUE;
print_r($stock);
$stock->save();
} else {
if ($stock->mercato == 'ita') {
echo "Updating mercato for {$stock->isin}";
$stock->mercato = 'eurotlx';
$stock->save();
示例5: sell
public function sell()
{
//Add logic to make sure stock isn't already sold
//i.e.
$this->load->model(array('portfolio', 'stock'));
$id = $this->input->post('trade_id');
$stock = Stock::find_by_id($id);
$stock->sale_time = date("Y-m-d H:i:s");
$stock->sale_price = $this->input->post('current_val');
$stock->save();
$portfolio = Portfolio::find_by_id($this->input->post('portfolio_id'));
if ($portfolio->commision_bool == 1) {
$portfolio->current_cap = $portfolio->current_cap + $stock->sale_price * $stock->shares - $portfolio->commision;
} else {
$portfolio->current_cap = $portfolio->current_cap + $stock->sale_price * $stock->shares;
}
$portfolio->last_trade = $stock->id;
$portfolio->save();
redirect('portfolios/view/' . $stock->portfolio_id);
}
示例6: get_rimborsi
private function get_rimborsi()
{
$payments = array();
$conn = $this->get_connection();
$portfolio_stock_factory = new PortfolioStock();
$portfolio_stocks = $portfolio_stock_factory->find_by_query('SELECT `creso_portfolio`.`id`, `creso_portfolio`.`quantita`, `creso_portfolio`.`isin`, `creso_titoli`.`tipo`, `creso_titoli`.`title` ' . 'FROM `creso_portfolio` ' . 'LEFT JOIN `creso_titoli` ON `creso_portfolio`.`isin` = `creso_titoli`.`isin` ' . "WHERE `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'])}' " : '') . (!empty($_REQUEST['isin']) ? "AND `creso_portfolio`.`isin` = '{$conn->escape($_REQUEST['isin'])}' " : '') . 'ORDER BY ' . sprintf('`%s` %s ', $this->get_sort('isin'), $this->get_dir()) . "LIMIT {$conn->escape($this->get_start())}, {$conn->escape($this->get_limit())}");
if (count($portfolio_stocks) == 0 && !empty($_REQUEST['isin'])) {
$portfolio_stocks = $this->synthesize_portfolio_stocks();
}
if (count($portfolio_stocks) > 0) {
foreach ($portfolio_stocks as $portfolio_stock) {
$stock = new Stock();
$stock->find_by_id($portfolio_stock->isin);
if ($this->historiful) {
$quantita_history = $this->backfill_with_historical_data($portfolio_stock);
}
switch ($stock->tipo) {
case 'azione':
break;
case 'obbligazione':
$bond_factory = new Bond();
$bonds = $bond_factory->find_all(array('where_clause' => "`isin` = '{$portfolio_stock->isin}' " . "AND `scadenza` >= '{$conn->escape($_REQUEST['month-from'])}' " . "AND `scadenza` <= '{$conn->escape($_REQUEST['month-to'])}' "));
if (count($bonds) > 0) {
$bond = $bonds[0];
$payment = new Payment();
$q = $portfolio_stock->quantita;
foreach ($quantita_history as $date => $quantita) {
if ($date < $bond->scadenza) {
break;
}
$q = $quantita;
}
$payment->stock = $stock;
$payment->portfolio_stock = $portfolio_stock;
$payment->bond = $bond;
$payment->timestamp = strtotime($bond->scadenza);
$payment->importo = $payment->bond->prezzo_rimborso * $q / 100;
$payment->quantita = $q;
$payment->tipo = 'rimborso';
$payments[] = $payment;
}
break;
}
}
}
return $payments;
}
示例7: refunds
public static function refunds($isin, $month_from, $month_to)
{
$payments = array();
$conn = Db::get_connection();
$stock = new Stock();
if (!$stock->find_by_id($isin)) {
return;
}
switch ($stock->tipo) {
case 'azione':
break;
case 'obbligazione':
$bond_factory = new Bond();
$bonds = $bond_factory->find_all(array('where_clause' => "`isin` = '{$conn->escape($isin)}' " . "AND `scadenza` >= '{$conn->escape($month_from)}' " . "AND `scadenza` <= '{$conn->escape($month_to)}' "));
if (count($bonds) > 0) {
$bond = $bonds[0];
$payment = new Payment();
$payment->stock = $stock;
$payment->bond = $bond;
$payment->timestamp = strtotime($bond->scadenza);
$payment->importo = $payment->bond->prezzo_rimborso;
$payment->tipo = 'rimborso';
$payments[] = $payment;
}
break;
}
return $payments;
}
示例8: get_roi
private function get_roi()
{
if (!isset($_REQUEST['base'])) {
$_REQUEST['base'] = 1000;
}
if (!isset($_REQUEST['month-to'])) {
$_REQUEST['month-to'] = date('Y-m-d', mktime(0, 0, 0, date('m') + self::DEFAULT_ROI_HORIZON_MONTHS, 0, date('Y')));
}
$this->roi = array();
// $this->stocks = array();
// This to ensure we get latest quote from today
$today = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')));
$last_month = date('Y-m-d', mktime(0, 0, 0, date('m') - 1, date('d'), date('Y')));
// print_r($_REQUEST['isin']);
foreach ($this->isins as $isin) {
$quote = QuoteHelper::latest_for_range($isin, $last_month, $today);
// print_r($quote);
$stock = new Stock();
if (!$stock->find_by_id($isin)) {
continue;
}
// $this->stocks[$isin] = $stock;
$investito = Change::convert($quote->quotazione * $_REQUEST['base'] / 100, $stock->divisa);
$this->roi[$isin] = PianificatoreHelper::roi_with_timeline($isin, $_REQUEST['base'], $today, $_REQUEST['month-to'], $investito);
unset($this->roi[$isin]->payments);
$this->roi[$isin]->stock = $stock;
}
// print_r($this->roi);
uasort($this->roi, $this->get_sorter());
}
示例9: Stock
$this->stock->plusminus_per_year = $this->roi[$this->id]->plusminus_per_year;
$this->stock->plusminus_percent_per_year = $this->roi[$this->id]->plusminus_percent_per_year;
$this->render(array('partial' => 'stock', 'object' => $this->stock));
?>
<tr class="rownull rowfirst">
<td colspan="12">
<div class="vstrut17"></div>
</td>
</tr>
<?php
$this->render(array('partial' => 'reinvest_header'));
foreach ($this->roi as $isin => $ignored) {
if ($isin == $_REQUEST['isin']) {
continue;
}
$bond = $this->sorted_bonds[$isin];
$id = $isin;
$stock = new Stock();
if ($stock->find_by_id($id)) {
$stock->bond = $bond;
$stock->plusminus_per_year = $this->roi[$id]->plusminus_per_year;
$stock->plusminus_percent_per_year = $this->roi[$id]->plusminus_percent_per_year;
$this->render(array('partial' => 'stock', 'object' => $stock));
}
}
?>
</table>
</form>